Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-05-24 13:47:29 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-05-24 13:47:29 +0400
commit14a56caee6c63822cb3af4471ed89e3ebefebc55 (patch)
tree4c1cf223f60370894006fc0e6fdc4f3f4f09e90c /source/blender
parente76812a1d7490b01066c0f751d5311b58825ffd8 (diff)
parent5f677f995d204c378f7aad3de826b2e193276487 (diff)
Merging r46725 through r46963 from trunk into soc-2011-tomato
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/CMakeLists.txt2
-rw-r--r--source/blender/SConscript2
-rw-r--r--source/blender/avi/intern/avi.c16
-rw-r--r--source/blender/avi/intern/avirgb.c2
-rw-r--r--source/blender/blenkernel/BKE_blender.h4
-rw-r--r--source/blender/blenkernel/BKE_image.h3
-rw-r--r--source/blender/blenkernel/BKE_key.h6
-rw-r--r--source/blender/blenkernel/BKE_mesh.h4
-rw-r--r--source/blender/blenkernel/BKE_node.h23
-rw-r--r--source/blender/blenkernel/BKE_object.h1
-rw-r--r--source/blender/blenkernel/BKE_screen.h2
-rw-r--r--source/blender/blenkernel/BKE_sequencer.h8
-rw-r--r--source/blender/blenkernel/CMakeLists.txt1
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf.c3
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c4
-rw-r--r--source/blender/blenkernel/intern/action.c4
-rw-r--r--source/blender/blenkernel/intern/anim.c14
-rw-r--r--source/blender/blenkernel/intern/armature.c31
-rw-r--r--source/blender/blenkernel/intern/blender.c6
-rw-r--r--source/blender/blenkernel/intern/brush.c2
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c81
-rw-r--r--source/blender/blenkernel/intern/cloth.c12
-rw-r--r--source/blender/blenkernel/intern/collision.c15
-rw-r--r--source/blender/blenkernel/intern/constraint.c2
-rw-r--r--source/blender/blenkernel/intern/context.c5
-rw-r--r--source/blender/blenkernel/intern/curve.c12
-rw-r--r--source/blender/blenkernel/intern/customdata.c53
-rw-r--r--source/blender/blenkernel/intern/deform.c2
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c16
-rw-r--r--source/blender/blenkernel/intern/displist.c21
-rw-r--r--source/blender/blenkernel/intern/dynamicpaint.c65
-rw-r--r--source/blender/blenkernel/intern/editderivedmesh.c24
-rw-r--r--source/blender/blenkernel/intern/fcurve.c16
-rw-r--r--source/blender/blenkernel/intern/font.c24
-rw-r--r--source/blender/blenkernel/intern/group.c6
-rw-r--r--source/blender/blenkernel/intern/image.c17
-rw-r--r--source/blender/blenkernel/intern/image_gen.c10
-rw-r--r--source/blender/blenkernel/intern/key.c25
-rw-r--r--source/blender/blenkernel/intern/lattice.c26
-rw-r--r--source/blender/blenkernel/intern/mball.c12
-rw-r--r--source/blender/blenkernel/intern/mesh.c24
-rw-r--r--source/blender/blenkernel/intern/mesh_validate.c8
-rw-r--r--source/blender/blenkernel/intern/modifier.c3
-rw-r--r--source/blender/blenkernel/intern/movieclip.c6
-rw-r--r--source/blender/blenkernel/intern/node.c57
-rw-r--r--source/blender/blenkernel/intern/object.c26
-rw-r--r--source/blender/blenkernel/intern/ocean.c69
-rw-r--r--source/blender/blenkernel/intern/particle.c8
-rw-r--r--source/blender/blenkernel/intern/particle_system.c4
-rw-r--r--source/blender/blenkernel/intern/pointcache.c14
-rw-r--r--source/blender/blenkernel/intern/screen.c5
-rw-r--r--source/blender/blenkernel/intern/seqeffects.c130
-rw-r--r--source/blender/blenkernel/intern/sequencer.c19
-rw-r--r--source/blender/blenkernel/intern/smoke.c4
-rw-r--r--source/blender/blenkernel/intern/softbody.c11
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c13
-rw-r--r--source/blender/blenkernel/intern/text.c18
-rw-r--r--source/blender/blenkernel/intern/texture.c3
-rw-r--r--source/blender/blenkernel/intern/tracking.c2
-rw-r--r--source/blender/blenkernel/intern/unit.c2
-rw-r--r--source/blender/blenkernel/intern/writeffmpeg.c20
-rw-r--r--source/blender/blenlib/intern/BLI_args.c2
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c4
-rw-r--r--source/blender/blenlib/intern/fnmatch.c2
-rw-r--r--source/blender/blenlib/intern/math_rotation.c2
-rw-r--r--source/blender/blenlib/intern/noise.c16
-rw-r--r--source/blender/blenlib/intern/path_util.c4
-rw-r--r--source/blender/blenlib/intern/pbvh.c5
-rw-r--r--source/blender/blenlib/intern/string.c2
-rw-r--r--source/blender/blenlib/intern/uvproject.c8
-rw-r--r--source/blender/blenlib/intern/winstuff.c5
-rw-r--r--source/blender/blenloader/intern/readfile.c4691
-rw-r--r--source/blender/blenloader/intern/versioning_250.c6
-rw-r--r--source/blender/blenloader/intern/versioning_legacy.c10
-rw-r--r--source/blender/blenloader/intern/writefile.c20
-rw-r--r--source/blender/bmesh/bmesh.h2
-rw-r--r--source/blender/bmesh/bmesh_class.h5
-rw-r--r--source/blender/bmesh/intern/bmesh_construct.c15
-rw-r--r--source/blender/bmesh/intern/bmesh_interp.c16
-rw-r--r--source/blender/bmesh/intern/bmesh_marking.c18
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh_conv.c3
-rw-r--r--source/blender/bmesh/intern/bmesh_mods.c6
-rw-r--r--source/blender/bmesh/intern/bmesh_operators.c4
-rw-r--r--source/blender/bmesh/intern/bmesh_polygon.c6
-rw-r--r--source/blender/bmesh/intern/bmesh_queries.c62
-rw-r--r--source/blender/bmesh/intern/bmesh_queries.h6
-rw-r--r--source/blender/bmesh/operators/bmo_connect.c2
-rw-r--r--source/blender/bmesh/operators/bmo_create.c4
-rw-r--r--source/blender/bmesh/operators/bmo_extrude.c31
-rw-r--r--source/blender/bmesh/operators/bmo_slide.c1
-rw-r--r--source/blender/bmesh/operators/bmo_utils.c2
-rw-r--r--source/blender/bmesh/tools/BME_bevel.c6
-rw-r--r--source/blender/collada/ArmatureImporter.cpp4
-rw-r--r--source/blender/compositor/CMakeLists.txt608
-rw-r--r--source/blender/compositor/COM_compositor.h304
-rw-r--r--source/blender/compositor/COM_defines.h99
-rw-r--r--source/blender/compositor/SConscript14
-rw-r--r--source/blender/compositor/intern/COM_CPUDevice.cpp42
-rw-r--r--source/blender/compositor/intern/COM_CPUDevice.h41
-rw-r--r--source/blender/compositor/intern/COM_ChannelInfo.cpp35
-rw-r--r--source/blender/compositor/intern/COM_ChannelInfo.h121
-rw-r--r--source/blender/compositor/intern/COM_ChunkOrder.cpp51
-rw-r--r--source/blender/compositor/intern/COM_ChunkOrder.h45
-rw-r--r--source/blender/compositor/intern/COM_ChunkOrderHotspot.cpp40
-rw-r--r--source/blender/compositor/intern/COM_ChunkOrderHotspot.h37
-rw-r--r--source/blender/compositor/intern/COM_CompositorContext.cpp52
-rw-r--r--source/blender/compositor/intern/COM_CompositorContext.h147
-rw-r--r--source/blender/compositor/intern/COM_Converter.cpp501
-rw-r--r--source/blender/compositor/intern/COM_Converter.h70
-rw-r--r--source/blender/compositor/intern/COM_Device.cpp24
-rw-r--r--source/blender/compositor/intern/COM_Device.h57
-rw-r--r--source/blender/compositor/intern/COM_ExecutionGroup.cpp596
-rw-r--r--source/blender/compositor/intern/COM_ExecutionGroup.h404
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystem.cpp320
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystem.h229
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp329
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystemHelper.h127
-rw-r--r--source/blender/compositor/intern/COM_InputSocket.cpp243
-rw-r--r--source/blender/compositor/intern/COM_InputSocket.h160
-rw-r--r--source/blender/compositor/intern/COM_MemoryBuffer.cpp353
-rw-r--r--source/blender/compositor/intern/COM_MemoryBuffer.h170
-rw-r--r--source/blender/compositor/intern/COM_MemoryManager.cpp74
-rw-r--r--source/blender/compositor/intern/COM_MemoryManager.h146
-rw-r--r--source/blender/compositor/intern/COM_MemoryManagerState.cpp100
-rw-r--r--source/blender/compositor/intern/COM_MemoryManagerState.h87
-rw-r--r--source/blender/compositor/intern/COM_MemoryProxy.cpp39
-rw-r--r--source/blender/compositor/intern/COM_MemoryProxy.h106
-rw-r--r--source/blender/compositor/intern/COM_Node.cpp196
-rw-r--r--source/blender/compositor/intern/COM_Node.h131
-rw-r--r--source/blender/compositor/intern/COM_NodeBase.cpp143
-rw-r--r--source/blender/compositor/intern/COM_NodeBase.h174
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.cpp126
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.h247
-rw-r--r--source/blender/compositor/intern/COM_NodeProgram.cpp0
-rw-r--r--source/blender/compositor/intern/COM_NodeProgram.h7
-rw-r--r--source/blender/compositor/intern/COM_OpenCLDevice.cpp65
-rw-r--r--source/blender/compositor/intern/COM_OpenCLDevice.h88
-rw-r--r--source/blender/compositor/intern/COM_OutputSocket.cpp159
-rw-r--r--source/blender/compositor/intern/COM_OutputSocket.h105
-rw-r--r--source/blender/compositor/intern/COM_Socket.cpp50
-rw-r--r--source/blender/compositor/intern/COM_Socket.h100
-rw-r--r--source/blender/compositor/intern/COM_SocketConnection.cpp95
-rw-r--r--source/blender/compositor/intern/COM_SocketConnection.h123
-rw-r--r--source/blender/compositor/intern/COM_SocketReader.cpp25
-rw-r--r--source/blender/compositor/intern/COM_SocketReader.h113
-rw-r--r--source/blender/compositor/intern/COM_WorkPackage.cpp29
-rw-r--r--source/blender/compositor/intern/COM_WorkPackage.h64
-rw-r--r--source/blender/compositor/intern/COM_WorkScheduler.cpp329
-rw-r--r--source/blender/compositor/intern/COM_WorkScheduler.h127
-rw-r--r--source/blender/compositor/intern/COM_compositor.cpp62
-rw-r--r--source/blender/compositor/nodes/COM_AlphaOverNode.cpp72
-rw-r--r--source/blender/compositor/nodes/COM_AlphaOverNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_BilateralBlurNode.cpp43
-rw-r--r--source/blender/compositor/nodes/COM_BilateralBlurNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_BlurNode.cpp85
-rw-r--r--source/blender/compositor/nodes/COM_BlurNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_BokehBlurNode.cpp66
-rw-r--r--source/blender/compositor/nodes/COM_BokehBlurNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_BokehImageNode.cpp39
-rw-r--r--source/blender/compositor/nodes/COM_BokehImageNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_BoxMaskNode.cpp43
-rw-r--r--source/blender/compositor/nodes/COM_BoxMaskNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_BrightnessNode.cpp40
-rw-r--r--source/blender/compositor/nodes/COM_BrightnessNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ChannelMatteNode.cpp90
-rw-r--r--source/blender/compositor/nodes/COM_ChannelMatteNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ChromaMatteNode.cpp71
-rw-r--r--source/blender/compositor/nodes/COM_ChromaMatteNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ColorBalanceNode.cpp70
-rw-r--r--source/blender/compositor/nodes/COM_ColorBalanceNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp44
-rw-r--r--source/blender/compositor/nodes/COM_ColorCorrectionNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ColorCurveNode.cpp46
-rw-r--r--source/blender/compositor/nodes/COM_ColorCurveNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ColorMatteNode.cpp68
-rw-r--r--source/blender/compositor/nodes/COM_ColorMatteNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ColorNode.cpp40
-rw-r--r--source/blender/compositor/nodes/COM_ColorNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ColorRampNode.cpp52
-rw-r--r--source/blender/compositor/nodes/COM_ColorRampNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_ColorSpillNode.cpp57
-rw-r--r--source/blender/compositor/nodes/COM_ColorSpillNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_ColorToBWNode.cpp41
-rw-r--r--source/blender/compositor/nodes/COM_ColorToBWNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_CombineHSVANode.cpp45
-rw-r--r--source/blender/compositor/nodes/COM_CombineHSVANode.h38
-rw-r--r--source/blender/compositor/nodes/COM_CombineRGBANode.cpp64
-rw-r--r--source/blender/compositor/nodes/COM_CombineRGBANode.h37
-rw-r--r--source/blender/compositor/nodes/COM_CombineYCCANode.cpp44
-rw-r--r--source/blender/compositor/nodes/COM_CombineYCCANode.h37
-rw-r--r--source/blender/compositor/nodes/COM_CombineYUVANode.cpp39
-rw-r--r--source/blender/compositor/nodes/COM_CombineYUVANode.h37
-rw-r--r--source/blender/compositor/nodes/COM_CompositorNode.cpp44
-rw-r--r--source/blender/compositor/nodes/COM_CompositorNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_ConvertAlphaNode.cpp44
-rw-r--r--source/blender/compositor/nodes/COM_ConvertAlphaNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_CropNode.cpp49
-rw-r--r--source/blender/compositor/nodes/COM_CropNode.h36
-rw-r--r--source/blender/compositor/nodes/COM_DefocusNode.cpp114
-rw-r--r--source/blender/compositor/nodes/COM_DefocusNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp53
-rw-r--r--source/blender/compositor/nodes/COM_DifferenceMatteNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_DilateErodeNode.cpp72
-rw-r--r--source/blender/compositor/nodes/COM_DilateErodeNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp42
-rw-r--r--source/blender/compositor/nodes/COM_DirectionalBlurNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_DisplaceNode.cpp46
-rw-r--r--source/blender/compositor/nodes/COM_DisplaceNode.h36
-rw-r--r--source/blender/compositor/nodes/COM_DistanceMatteNode.cpp60
-rw-r--r--source/blender/compositor/nodes/COM_DistanceMatteNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp45
-rw-r--r--source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_EllipseMaskNode.cpp43
-rw-r--r--source/blender/compositor/nodes/COM_EllipseMaskNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_FilterNode.cpp82
-rw-r--r--source/blender/compositor/nodes/COM_FilterNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_FlipNode.cpp55
-rw-r--r--source/blender/compositor/nodes/COM_FlipNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_GammaNode.cpp40
-rw-r--r--source/blender/compositor/nodes/COM_GammaNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_GlareNode.cpp132
-rw-r--r--source/blender/compositor/nodes/COM_GlareNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_GroupNode.cpp73
-rw-r--r--source/blender/compositor/nodes/COM_GroupNode.h57
-rw-r--r--source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.cpp71
-rw-r--r--source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_HueSaturationValueNode.cpp70
-rw-r--r--source/blender/compositor/nodes/COM_HueSaturationValueNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_IDMaskNode.cpp51
-rw-r--r--source/blender/compositor/nodes/COM_IDMaskNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ImageNode.cpp152
-rw-r--r--source/blender/compositor/nodes/COM_ImageNode.h44
-rw-r--r--source/blender/compositor/nodes/COM_InvertNode.cpp44
-rw-r--r--source/blender/compositor/nodes/COM_InvertNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_LensDistortionNode.cpp60
-rw-r--r--source/blender/compositor/nodes/COM_LensDistortionNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp61
-rw-r--r--source/blender/compositor/nodes/COM_LuminanceMatteNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_MapUVNode.cpp43
-rw-r--r--source/blender/compositor/nodes/COM_MapUVNode.h36
-rw-r--r--source/blender/compositor/nodes/COM_MapValueNode.cpp42
-rw-r--r--source/blender/compositor/nodes/COM_MapValueNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_MathNode.cpp93
-rw-r--r--source/blender/compositor/nodes/COM_MathNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_MixNode.cpp133
-rw-r--r--source/blender/compositor/nodes/COM_MixNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_MovieClipNode.cpp126
-rw-r--r--source/blender/compositor/nodes/COM_MovieClipNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_MovieDistortionNode.cpp47
-rw-r--r--source/blender/compositor/nodes/COM_MovieDistortionNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_MuteNode.cpp98
-rw-r--r--source/blender/compositor/nodes/COM_MuteNode.h40
-rw-r--r--source/blender/compositor/nodes/COM_NormalNode.cpp57
-rw-r--r--source/blender/compositor/nodes/COM_NormalNode.h39
-rw-r--r--source/blender/compositor/nodes/COM_NormalizeNode.cpp38
-rw-r--r--source/blender/compositor/nodes/COM_NormalizeNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_OutputFileNode.cpp91
-rw-r--r--source/blender/compositor/nodes/COM_OutputFileNode.h40
-rw-r--r--source/blender/compositor/nodes/COM_RenderLayersNode.cpp114
-rw-r--r--source/blender/compositor/nodes/COM_RenderLayersNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_RotateNode.cpp62
-rw-r--r--source/blender/compositor/nodes/COM_RotateNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ScaleNode.cpp88
-rw-r--r--source/blender/compositor/nodes/COM_ScaleNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_SeparateHSVANode.cpp44
-rw-r--r--source/blender/compositor/nodes/COM_SeparateHSVANode.h39
-rw-r--r--source/blender/compositor/nodes/COM_SeparateRGBANode.cpp72
-rw-r--r--source/blender/compositor/nodes/COM_SeparateRGBANode.h37
-rw-r--r--source/blender/compositor/nodes/COM_SeparateYCCANode.cpp46
-rw-r--r--source/blender/compositor/nodes/COM_SeparateYCCANode.h38
-rw-r--r--source/blender/compositor/nodes/COM_SeparateYUVANode.cpp42
-rw-r--r--source/blender/compositor/nodes/COM_SeparateYUVANode.h38
-rw-r--r--source/blender/compositor/nodes/COM_SetAlphaNode.cpp36
-rw-r--r--source/blender/compositor/nodes/COM_SetAlphaNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_SocketProxyNode.cpp95
-rw-r--r--source/blender/compositor/nodes/COM_SocketProxyNode.h46
-rw-r--r--source/blender/compositor/nodes/COM_SplitViewerNode.cpp51
-rw-r--r--source/blender/compositor/nodes/COM_SplitViewerNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_Stabilize2dNode.cpp89
-rw-r--r--source/blender/compositor/nodes/COM_Stabilize2dNode.h34
-rw-r--r--source/blender/compositor/nodes/COM_SwitchNode.cpp46
-rw-r--r--source/blender/compositor/nodes/COM_SwitchNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_TextureNode.cpp53
-rw-r--r--source/blender/compositor/nodes/COM_TextureNode.h34
-rw-r--r--source/blender/compositor/nodes/COM_TimeNode.cpp59
-rw-r--r--source/blender/compositor/nodes/COM_TimeNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_TonemapNode.cpp41
-rw-r--r--source/blender/compositor/nodes/COM_TonemapNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_TransformNode.cpp79
-rw-r--r--source/blender/compositor/nodes/COM_TransformNode.h34
-rw-r--r--source/blender/compositor/nodes/COM_TranslateNode.cpp45
-rw-r--r--source/blender/compositor/nodes/COM_TranslateNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ValueNode.cpp40
-rw-r--r--source/blender/compositor/nodes/COM_ValueNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_VectorBlurNode.cpp47
-rw-r--r--source/blender/compositor/nodes/COM_VectorBlurNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_VectorCurveNode.cpp42
-rw-r--r--source/blender/compositor/nodes/COM_VectorCurveNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ViewLevelsNode.cpp67
-rw-r--r--source/blender/compositor/nodes/COM_ViewLevelsNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_ViewerNode.cpp56
-rw-r--r--source/blender/compositor/nodes/COM_ViewerNode.h37
-rw-r--r--source/blender/compositor/nodes/COM_ZCombineNode.cpp67
-rw-r--r--source/blender/compositor/nodes/COM_ZCombineNode.h38
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp60
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverKeyOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp63
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverMixedOperation.h48
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp61
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_AntiAliasOperation.cpp105
-rw-r--r--source/blender/compositor/operations/COM_AntiAliasOperation.h61
-rw-r--r--source/blender/compositor/operations/COM_BilateralBlurOperation.cpp121
-rw-r--r--source/blender/compositor/operations/COM_BilateralBlurOperation.h57
-rw-r--r--source/blender/compositor/operations/COM_BlurBaseOperation.cpp106
-rw-r--r--source/blender/compositor/operations/COM_BlurBaseOperation.h58
-rw-r--r--source/blender/compositor/operations/COM_BokehBlurOperation.cpp167
-rw-r--r--source/blender/compositor/operations/COM_BokehBlurOperation.h60
-rw-r--r--source/blender/compositor/operations/COM_BokehImageOperation.cpp125
-rw-r--r--source/blender/compositor/operations/COM_BokehImageOperation.h67
-rw-r--r--source/blender/compositor/operations/COM_BoxMaskOperation.cpp119
-rw-r--r--source/blender/compositor/operations/COM_BoxMaskOperation.h65
-rw-r--r--source/blender/compositor/operations/COM_BrightnessOperation.cpp80
-rw-r--r--source/blender/compositor/operations/COM_BrightnessOperation.h56
-rw-r--r--source/blender/compositor/operations/COM_CalculateMeanOperation.cpp129
-rw-r--r--source/blender/compositor/operations/COM_CalculateMeanOperation.h69
-rw-r--r--source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp97
-rw-r--r--source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h47
-rw-r--r--source/blender/compositor/operations/COM_ChangeHSVOperation.cpp54
-rw-r--r--source/blender/compositor/operations/COM_ChangeHSVOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ChannelMatteOperation.cpp121
-rw-r--r--source/blender/compositor/operations/COM_ChannelMatteOperation.h76
-rw-r--r--source/blender/compositor/operations/COM_ChromaMatteOperation.cpp101
-rw-r--r--source/blender/compositor/operations/COM_ChromaMatteOperation.h52
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp75
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h81
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp80
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h81
-rw-r--r--source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp142
-rw-r--r--source/blender/compositor/operations/COM_ColorCorrectionOperation.h64
-rw-r--r--source/blender/compositor/operations/COM_ColorCurveOperation.cpp99
-rw-r--r--source/blender/compositor/operations/COM_ColorCurveOperation.h56
-rw-r--r--source/blender/compositor/operations/COM_ColorMatteOperation.cpp84
-rw-r--r--source/blender/compositor/operations/COM_ColorMatteOperation.h52
-rw-r--r--source/blender/compositor/operations/COM_ColorRampOperation.cpp57
-rw-r--r--source/blender/compositor/operations/COM_ColorRampOperation.h57
-rw-r--r--source/blender/compositor/operations/COM_ColorSpillOperation.cpp118
-rw-r--r--source/blender/compositor/operations/COM_ColorSpillOperation.h64
-rw-r--r--source/blender/compositor/operations/COM_CombineChannelsOperation.cpp76
-rw-r--r--source/blender/compositor/operations/COM_CombineChannelsOperation.h42
-rw-r--r--source/blender/compositor/operations/COM_CompositorOperation.cpp135
-rw-r--r--source/blender/compositor/operations/COM_CompositorOperation.h69
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp51
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorProfileOperation.h78
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp47
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToBWOperation.h60
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp45
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertColourToValueProg.cpp47
-rw-r--r--source/blender/compositor/operations/COM_ConvertColourToValueProg.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp103
-rw-r--r--source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h72
-rw-r--r--source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp50
-rw-r--r--source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp57
-rw-r--r--source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h49
-rw-r--r--source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp64
-rw-r--r--source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h48
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h60
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp72
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h68
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp48
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToColourProg.cpp49
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToColourProg.h53
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp50
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp46
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp47
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp72
-rw-r--r--source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h68
-rw-r--r--source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h58
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp98
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h34
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp142
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionFilterOperation.h48
-rw-r--r--source/blender/compositor/operations/COM_CropOperation.cpp115
-rw-r--r--source/blender/compositor/operations/COM_CropOperation.h63
-rw-r--r--source/blender/compositor/operations/COM_CurveBaseOperation.cpp40
-rw-r--r--source/blender/compositor/operations/COM_CurveBaseOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp88
-rw-r--r--source/blender/compositor/operations/COM_DifferenceMatteOperation.h53
-rw-r--r--source/blender/compositor/operations/COM_DilateErodeOperation.cpp308
-rw-r--r--source/blender/compositor/operations/COM_DilateErodeOperation.h112
-rw-r--r--source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp120
-rw-r--r--source/blender/compositor/operations/COM_DirectionalBlurOperation.h59
-rw-r--r--source/blender/compositor/operations/COM_DisplaceOperation.cpp151
-rw-r--r--source/blender/compositor/operations/COM_DisplaceOperation.h63
-rw-r--r--source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp131
-rw-r--r--source/blender/compositor/operations/COM_DisplaceSimpleOperation.h63
-rw-r--r--source/blender/compositor/operations/COM_DistanceMatteOperation.cpp90
-rw-r--r--source/blender/compositor/operations/COM_DistanceMatteOperation.h52
-rw-r--r--source/blender/compositor/operations/COM_DotproductOperation.cpp55
-rw-r--r--source/blender/compositor/operations/COM_DotproductOperation.h41
-rw-r--r--source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp1301
-rw-r--r--source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h64
-rw-r--r--source/blender/compositor/operations/COM_EllipseMaskOperation.cpp123
-rw-r--r--source/blender/compositor/operations/COM_EllipseMaskOperation.h65
-rw-r--r--source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp205
-rw-r--r--source/blender/compositor/operations/COM_FastGaussianBlurOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_FlipOperation.cpp75
-rw-r--r--source/blender/compositor/operations/COM_FlipOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_FogGlowImageOperation.cpp51
-rw-r--r--source/blender/compositor/operations/COM_FogGlowImageOperation.h39
-rw-r--r--source/blender/compositor/operations/COM_GammaCorrectOperation.cpp106
-rw-r--r--source/blender/compositor/operations/COM_GammaCorrectOperation.h80
-rw-r--r--source/blender/compositor/operations/COM_GammaOperation.cpp60
-rw-r--r--source/blender/compositor/operations/COM_GammaOperation.h54
-rw-r--r--source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp182
-rw-r--r--source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h51
-rw-r--r--source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp135
-rw-r--r--source/blender/compositor/operations/COM_GaussianXBlurOperation.h49
-rw-r--r--source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp132
-rw-r--r--source/blender/compositor/operations/COM_GaussianYBlurOperation.h49
-rw-r--r--source/blender/compositor/operations/COM_GlareBaseOperation.cpp86
-rw-r--r--source/blender/compositor/operations/COM_GlareBaseOperation.h70
-rw-r--r--source/blender/compositor/operations/COM_GlareSimpleStarOperation.cpp114
-rw-r--r--source/blender/compositor/operations/COM_GlareSimpleStarOperation.h35
-rw-r--r--source/blender/compositor/operations/COM_GlareStreaksOperation.cpp95
-rw-r--r--source/blender/compositor/operations/COM_GlareStreaksOperation.h35
-rw-r--r--source/blender/compositor/operations/COM_GlareThresholdOperation.cpp52
-rw-r--r--source/blender/compositor/operations/COM_GlareThresholdOperation.h57
-rw-r--r--source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp78
-rw-r--r--source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h53
-rw-r--r--source/blender/compositor/operations/COM_IDMaskOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_IDMaskOperation.h57
-rw-r--r--source/blender/compositor/operations/COM_ImageOperation.cpp167
-rw-r--r--source/blender/compositor/operations/COM_ImageOperation.h94
-rw-r--r--source/blender/compositor/operations/COM_InvertOperation.cpp75
-rw-r--r--source/blender/compositor/operations/COM_InvertOperation.h60
-rw-r--r--source/blender/compositor/operations/COM_LensGhostOperation.cpp815
-rw-r--r--source/blender/compositor/operations/COM_LensGhostOperation.h82
-rw-r--r--source/blender/compositor/operations/COM_LensGlowImageOperation.cpp56
-rw-r--r--source/blender/compositor/operations/COM_LensGlowImageOperation.h52
-rw-r--r--source/blender/compositor/operations/COM_LensGlowOperation.cpp58
-rw-r--r--source/blender/compositor/operations/COM_LensGlowOperation.h56
-rw-r--r--source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp83
-rw-r--r--source/blender/compositor/operations/COM_LuminanceMatteOperation.h51
-rw-r--r--source/blender/compositor/operations/COM_MapUVOperation.cpp158
-rw-r--r--source/blender/compositor/operations/COM_MapUVOperation.h62
-rw-r--r--source/blender/compositor/operations/COM_MapValueOperation.cpp56
-rw-r--r--source/blender/compositor/operations/COM_MapValueOperation.h66
-rw-r--r--source/blender/compositor/operations/COM_MathBaseOperation.cpp261
-rw-r--r--source/blender/compositor/operations/COM_MathBaseOperation.h150
-rw-r--r--source/blender/compositor/operations/COM_MixAddOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_MixAddOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixBaseOperation.cpp96
-rw-r--r--source/blender/compositor/operations/COM_MixBaseOperation.h67
-rw-r--r--source/blender/compositor/operations/COM_MixBlendOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_MixBlendOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixBurnOperation.cpp86
-rw-r--r--source/blender/compositor/operations/COM_MixBurnOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixColorOperation.cpp61
-rw-r--r--source/blender/compositor/operations/COM_MixColorOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixDarkenOperation.cpp56
-rw-r--r--source/blender/compositor/operations/COM_MixDarkenOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixDifferenceOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_MixDifferenceOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixDivideOperation.cpp59
-rw-r--r--source/blender/compositor/operations/COM_MixDivideOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixDodgeOperation.cpp91
-rw-r--r--source/blender/compositor/operations/COM_MixDodgeOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixHueOperation.cpp60
-rw-r--r--source/blender/compositor/operations/COM_MixHueOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixLightenOperation.cpp54
-rw-r--r--source/blender/compositor/operations/COM_MixLightenOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_MixLinearLightOperation.cpp56
-rw-r--r--source/blender/compositor/operations/COM_MixLinearLightOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixMultiplyOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_MixMultiplyOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixOverlayOperation.cpp65
-rw-r--r--source/blender/compositor/operations/COM_MixOverlayOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixSaturationOperation.cpp56
-rw-r--r--source/blender/compositor/operations/COM_MixSaturationOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixScreenOperation.cpp50
-rw-r--r--source/blender/compositor/operations/COM_MixScreenOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_MixSoftLightOperation.cpp55
-rw-r--r--source/blender/compositor/operations/COM_MixSoftLightOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixSubtractOperation.cpp47
-rw-r--r--source/blender/compositor/operations/COM_MixSubtractOperation.h45
-rw-r--r--source/blender/compositor/operations/COM_MixValueOperation.cpp54
-rw-r--r--source/blender/compositor/operations/COM_MixValueOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp70
-rw-r--r--source/blender/compositor/operations/COM_MovieClipAttributeOperation.h61
-rw-r--r--source/blender/compositor/operations/COM_MovieClipOperation.cpp110
-rw-r--r--source/blender/compositor/operations/COM_MovieClipOperation.h64
-rw-r--r--source/blender/compositor/operations/COM_MovieDistortionOperation.cpp104
-rw-r--r--source/blender/compositor/operations/COM_MovieDistortionOperation.h139
-rw-r--r--source/blender/compositor/operations/COM_MultilayerImageOperation.cpp105
-rw-r--r--source/blender/compositor/operations/COM_MultilayerImageOperation.h68
-rw-r--r--source/blender/compositor/operations/COM_NormalizeOperation.cpp114
-rw-r--r--source/blender/compositor/operations/COM_NormalizeOperation.h69
-rw-r--r--source/blender/compositor/operations/COM_OpenCLKernels.cl10
-rw-r--r--source/blender/compositor/operations/COM_OpenCLKernels.cl.cpp15
-rw-r--r--source/blender/compositor/operations/COM_OutputFileOperation.cpp263
-rw-r--r--source/blender/compositor/operations/COM_OutputFileOperation.h89
-rw-r--r--source/blender/compositor/operations/COM_PreviewOperation.cpp135
-rw-r--r--source/blender/compositor/operations/COM_PreviewOperation.h56
-rw-r--r--source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp77
-rw-r--r--source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h64
-rw-r--r--source/blender/compositor/operations/COM_QualityStepHelper.cpp71
-rw-r--r--source/blender/compositor/operations/COM_QualityStepHelper.h53
-rw-r--r--source/blender/compositor/operations/COM_ReadBufferOperation.cpp77
-rw-r--r--source/blender/compositor/operations/COM_ReadBufferOperation.h51
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersAOOperation.cpp29
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersAOOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp49
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersAlphaProg.h35
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp138
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersBaseProg.h99
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersColorOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersColorOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersCyclesOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersCyclesOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersDepthProg.cpp29
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersDepthProg.h34
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersEmitOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersEmitOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersImageProg.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersImageProg.h34
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersIndirectOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersIndirectOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersMistOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersMistOperation.h11
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersNormalOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersNormalOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersReflectionOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersReflectionOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersRefractionOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersRefractionOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersShadowOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersShadowOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersSpecularOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersSpecularOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersSpeedOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersSpeedOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersUVOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersUVOperation.h33
-rw-r--r--source/blender/compositor/operations/COM_RotateOperation.cpp99
-rw-r--r--source/blender/compositor/operations/COM_RotateOperation.h46
-rw-r--r--source/blender/compositor/operations/COM_ScaleOperation.cpp212
-rw-r--r--source/blender/compositor/operations/COM_ScaleOperation.h77
-rw-r--r--source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp172
-rw-r--r--source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h74
-rw-r--r--source/blender/compositor/operations/COM_SeparateChannelOperation.cpp47
-rw-r--r--source/blender/compositor/operations/COM_SeparateChannelOperation.h42
-rw-r--r--source/blender/compositor/operations/COM_SetAlphaOperation.cpp55
-rw-r--r--source/blender/compositor/operations/COM_SetAlphaOperation.h51
-rw-r--r--source/blender/compositor/operations/COM_SetColorOperation.cpp42
-rw-r--r--source/blender/compositor/operations/COM_SetColorOperation.h64
-rw-r--r--source/blender/compositor/operations/COM_SetSamplerOperation.cpp43
-rw-r--r--source/blender/compositor/operations/COM_SetSamplerOperation.h51
-rw-r--r--source/blender/compositor/operations/COM_SetValueOperation.cpp39
-rw-r--r--source/blender/compositor/operations/COM_SetValueOperation.h54
-rw-r--r--source/blender/compositor/operations/COM_SetVectorOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_SetVectorOperation.h68
-rw-r--r--source/blender/compositor/operations/COM_SocketProxyOperation.cpp45
-rw-r--r--source/blender/compositor/operations/COM_SocketProxyOperation.h39
-rw-r--r--source/blender/compositor/operations/COM_SplitViewerOperation.cpp109
-rw-r--r--source/blender/compositor/operations/COM_SplitViewerOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.cpp112
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.h83
-rw-r--r--source/blender/compositor/operations/COM_TonemapOperation.cpp171
-rw-r--r--source/blender/compositor/operations/COM_TonemapOperation.h103
-rw-r--r--source/blender/compositor/operations/COM_TranslateOperation.cpp72
-rw-r--r--source/blender/compositor/operations/COM_TranslateOperation.h47
-rw-r--r--source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp149
-rw-r--r--source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h62
-rw-r--r--source/blender/compositor/operations/COM_VectorBlurOperation.cpp121
-rw-r--r--source/blender/compositor/operations/COM_VectorBlurOperation.h73
-rw-r--r--source/blender/compositor/operations/COM_VectorCurveOperation.cpp60
-rw-r--r--source/blender/compositor/operations/COM_VectorCurveOperation.h52
-rw-r--r--source/blender/compositor/operations/COM_ViewerBaseOperation.cpp99
-rw-r--r--source/blender/compositor/operations/COM_ViewerBaseOperation.h71
-rw-r--r--source/blender/compositor/operations/COM_ViewerOperation.cpp114
-rw-r--r--source/blender/compositor/operations/COM_ViewerOperation.h41
-rw-r--r--source/blender/compositor/operations/COM_WriteBufferOperation.cpp169
-rw-r--r--source/blender/compositor/operations/COM_WriteBufferOperation.h52
-rw-r--r--source/blender/compositor/operations/COM_ZCombineOperation.cpp94
-rw-r--r--source/blender/compositor/operations/COM_ZCombineOperation.h57
-rw-r--r--source/blender/editors/animation/anim_channels_defines.c68
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c4
-rw-r--r--source/blender/editors/animation/anim_draw.c2
-rw-r--r--source/blender/editors/animation/drivers.c2
-rw-r--r--source/blender/editors/armature/editarmature.c10
-rw-r--r--source/blender/editors/armature/editarmature_retarget.c4
-rw-r--r--source/blender/editors/armature/meshlaplacian.c3
-rw-r--r--source/blender/editors/armature/poseobject.c10
-rw-r--r--source/blender/editors/armature/reeb.c6
-rw-r--r--source/blender/editors/curve/editcurve.c2
-rw-r--r--source/blender/editors/datafiles/blender_icons.png.c14182
-rw-r--r--source/blender/editors/datafiles/startup.blend.c16858
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c2
-rw-r--r--source/blender/editors/include/ED_node.h3
-rw-r--r--source/blender/editors/include/ED_transform.h1
-rw-r--r--source/blender/editors/include/UI_icons.h2
-rw-r--r--source/blender/editors/include/UI_interface.h6
-rw-r--r--source/blender/editors/include/UI_resources.h9
-rw-r--r--source/blender/editors/interface/interface.c10
-rw-r--r--source/blender/editors/interface/interface_draw.c6
-rw-r--r--source/blender/editors/interface/interface_handlers.c122
-rw-r--r--source/blender/editors/interface/interface_intern.h2
-rw-r--r--source/blender/editors/interface/interface_layout.c2
-rw-r--r--source/blender/editors/interface/interface_ops.c4
-rw-r--r--source/blender/editors/interface/interface_panel.c4
-rw-r--r--source/blender/editors/interface/interface_regions.c2
-rw-r--r--source/blender/editors/interface/interface_templates.c11
-rw-r--r--source/blender/editors/interface/interface_widgets.c41
-rw-r--r--source/blender/editors/interface/resources.c39
-rw-r--r--source/blender/editors/interface/view2d.c18
-rw-r--r--source/blender/editors/mesh/editface.c10
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c6
-rw-r--r--source/blender/editors/mesh/editmesh_rip.c7
-rw-r--r--source/blender/editors/mesh/editmesh_select.c31
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c27
-rw-r--r--source/blender/editors/mesh/mesh_data.c42
-rw-r--r--source/blender/editors/object/object_add.c6
-rw-r--r--source/blender/editors/object/object_bake.c4
-rw-r--r--source/blender/editors/object/object_edit.c14
-rw-r--r--source/blender/editors/object/object_intern.h4
-rw-r--r--source/blender/editors/object/object_modifier.c428
-rw-r--r--source/blender/editors/object/object_ops.c7
-rw-r--r--source/blender/editors/object/object_relations.c6
-rw-r--r--source/blender/editors/object/object_select.c2
-rw-r--r--source/blender/editors/object/object_transform.c19
-rw-r--r--source/blender/editors/physics/physics_fluid.c10
-rw-r--r--source/blender/editors/render/render_internal.c6
-rw-r--r--source/blender/editors/render/render_preview.c10
-rw-r--r--source/blender/editors/render/render_shading.c4
-rw-r--r--source/blender/editors/screen/area.c10
-rw-r--r--source/blender/editors/screen/screen_edit.c44
-rw-r--r--source/blender/editors/screen/screen_ops.c22
-rw-r--r--source/blender/editors/screen/screendump.c4
-rw-r--r--source/blender/editors/sculpt_paint/paint_cursor.c3
-rw-r--r--source/blender/editors/sculpt_paint/paint_hide.c2
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c27
-rw-r--r--source/blender/editors/sculpt_paint/paint_intern.h2
-rw-r--r--source/blender/editors/sculpt_paint/paint_mask.c8
-rw-r--r--source/blender/editors/sculpt_paint/paint_ops.c3
-rw-r--r--source/blender/editors/sculpt_paint/paint_stroke.c73
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c18
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c38
-rw-r--r--source/blender/editors/sound/sound_ops.c92
-rw-r--r--source/blender/editors/space_clip/clip_draw.c2
-rw-r--r--source/blender/editors/space_clip/clip_ops.c2
-rw-r--r--source/blender/editors/space_console/console_ops.c8
-rw-r--r--source/blender/editors/space_file/file_ops.c6
-rw-r--r--source/blender/editors/space_file/file_panels.c2
-rw-r--r--source/blender/editors/space_file/filelist.c4
-rw-r--r--source/blender/editors/space_file/filesel.c5
-rw-r--r--source/blender/editors/space_file/fsmenu.c74
-rw-r--r--source/blender/editors/space_file/fsmenu.h5
-rw-r--r--source/blender/editors/space_file/space_file.c5
-rw-r--r--source/blender/editors/space_graph/graph_edit.c2
-rw-r--r--source/blender/editors/space_image/image_ops.c4
-rw-r--r--source/blender/editors/space_logic/logic_window.c54
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c6
-rw-r--r--source/blender/editors/space_nla/nla_draw.c14
-rw-r--r--source/blender/editors/space_nla/nla_edit.c4
-rw-r--r--source/blender/editors/space_node/drawnode.c526
-rw-r--r--source/blender/editors/space_node/node_buttons.c32
-rw-r--r--source/blender/editors/space_node/node_draw.c252
-rw-r--r--source/blender/editors/space_node/node_edit.c604
-rw-r--r--source/blender/editors/space_node/node_intern.h14
-rw-r--r--source/blender/editors/space_node/node_ops.c83
-rw-r--r--source/blender/editors/space_node/node_select.c121
-rw-r--r--source/blender/editors/space_node/node_templates.c38
-rw-r--r--source/blender/editors/space_node/space_node.c13
-rw-r--r--source/blender/editors/space_outliner/outliner_draw.c11
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c6
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c3
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c14
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c4
-rw-r--r--source/blender/editors/space_text/text_draw.c2
-rw-r--r--source/blender/editors/space_text/text_ops.c2
-rw-r--r--source/blender/editors/space_time/space_time.c4
-rw-r--r--source/blender/editors/space_userpref/space_userpref.c2
-rw-r--r--source/blender/editors/space_view3d/drawarmature.c2
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c20
-rw-r--r--source/blender/editors/space_view3d/drawobject.c95
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c28
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_fly.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c16
-rw-r--r--source/blender/editors/space_view3d/view3d_toolbar.c10
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c2
-rw-r--r--source/blender/editors/transform/transform.c533
-rw-r--r--source/blender/editors/transform/transform.h17
-rw-r--r--source/blender/editors/transform/transform_conversions.c160
-rw-r--r--source/blender/editors/transform/transform_generics.c2
-rw-r--r--source/blender/editors/transform/transform_input.c12
-rw-r--r--source/blender/editors/transform/transform_manipulator.c8
-rw-r--r--source/blender/editors/transform/transform_ops.c48
-rw-r--r--source/blender/editors/transform/transform_orientations.c2
-rw-r--r--source/blender/editors/transform/transform_snap.c6
-rw-r--r--source/blender/editors/util/editmode_undo.c8
-rw-r--r--source/blender/editors/util/undo.c8
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c3
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.c7
-rw-r--r--source/blender/editors/uvedit/uvedit_smart_stitch.c6
-rw-r--r--source/blender/gpu/intern/gpu_buffers.c8
-rw-r--r--source/blender/gpu/intern/gpu_draw.c10
-rw-r--r--source/blender/gpu/intern/gpu_material.c18
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl20
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl.c3122
-rw-r--r--source/blender/ikplugin/intern/itasc_plugin.cpp6
-rw-r--r--source/blender/imbuf/intern/anim_movie.c19
-rw-r--r--source/blender/imbuf/intern/cineon/cineon_dpx.c2
-rw-r--r--source/blender/imbuf/intern/dds/DirectDrawSurface.cpp2
-rw-r--r--source/blender/imbuf/intern/filetype.c2
-rw-r--r--source/blender/imbuf/intern/filter.c7
-rw-r--r--source/blender/imbuf/intern/indexer.c4
-rw-r--r--source/blender/imbuf/intern/indexer_dv.c5
-rw-r--r--source/blender/imbuf/intern/jp2.c4
-rw-r--r--source/blender/imbuf/intern/moviecache.c5
-rw-r--r--source/blender/imbuf/intern/png.c3
-rw-r--r--source/blender/imbuf/intern/radiance_hdr.c8
-rw-r--r--source/blender/imbuf/intern/scaling.c31
-rw-r--r--source/blender/imbuf/intern/targa.c3
-rw-r--r--source/blender/imbuf/intern/tiff.c5
-rw-r--r--source/blender/imbuf/intern/util.c6
-rw-r--r--source/blender/makesdna/DNA_action_types.h2
-rw-r--r--source/blender/makesdna/DNA_customdata_types.h10
-rw-r--r--source/blender/makesdna/DNA_meshdata_types.h21
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h37
-rw-r--r--source/blender/makesdna/DNA_node_types.h97
-rw-r--r--source/blender/makesdna/DNA_object_types.h2
-rw-r--r--source/blender/makesdna/DNA_scene_types.h9
-rw-r--r--source/blender/makesdna/DNA_space_types.h1120
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h4
-rw-r--r--source/blender/makesdna/intern/dna_genfile.c4
-rw-r--r--source/blender/makesdna/intern/makesdna.c2
-rw-r--r--source/blender/makesrna/RNA_access.h3
-rw-r--r--source/blender/makesrna/RNA_enum_types.h4
-rw-r--r--source/blender/makesrna/intern/makesrna.c6
-rw-r--r--source/blender/makesrna/intern/rna_access.c9
-rw-r--r--source/blender/makesrna/intern/rna_action.c6
-rw-r--r--source/blender/makesrna/intern/rna_controller.c3
-rw-r--r--source/blender/makesrna/intern/rna_dynamicpaint.c3
-rw-r--r--source/blender/makesrna/intern/rna_image_api.c36
-rw-r--r--source/blender/makesrna/intern/rna_internal.h3
-rw-r--r--source/blender/makesrna/intern/rna_key.c18
-rw-r--r--source/blender/makesrna/intern/rna_lamp.c14
-rw-r--r--source/blender/makesrna/intern/rna_lattice.c14
-rw-r--r--source/blender/makesrna/intern/rna_main_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_mesh.c125
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c50
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c487
-rw-r--r--source/blender/makesrna/intern/rna_nodetree_types.h12
-rw-r--r--source/blender/makesrna/intern/rna_object_api.c3
-rw-r--r--source/blender/makesrna/intern/rna_pose.c97
-rw-r--r--source/blender/makesrna/intern/rna_rna.c11
-rw-r--r--source/blender/makesrna/intern/rna_scene.c37
-rw-r--r--source/blender/makesrna/intern/rna_sculpt_paint.c5
-rw-r--r--source/blender/makesrna/intern/rna_sequencer.c6
-rw-r--r--source/blender/makesrna/intern/rna_space.c12
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c21
-rw-r--r--source/blender/makesrna/intern/rna_wm.c2
-rw-r--r--source/blender/modifiers/CMakeLists.txt1
-rw-r--r--source/blender/modifiers/MOD_modifiertypes.h1
-rw-r--r--source/blender/modifiers/intern/MOD_collision.c2
-rw-r--r--source/blender/modifiers/intern/MOD_dynamicpaint.c6
-rw-r--r--source/blender/modifiers/intern/MOD_mask.c2
-rw-r--r--source/blender/modifiers/intern/MOD_remesh.c11
-rw-r--r--source/blender/modifiers/intern/MOD_screw.c8
-rw-r--r--source/blender/modifiers/intern/MOD_skin.c1854
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c132
-rw-r--r--source/blender/modifiers/intern/MOD_util.c1
-rw-r--r--source/blender/nodes/CMakeLists.txt9
-rw-r--r--source/blender/nodes/NOD_composite.h8
-rw-r--r--source/blender/nodes/NOD_shader.h1
-rw-r--r--source/blender/nodes/SConscript1
-rw-r--r--source/blender/nodes/composite/node_composite_tree.c34
-rw-r--r--source/blender/nodes/composite/node_composite_util.c4
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_blur.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_bokehblur.c60
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_bokehimage.c66
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_boxmask.c75
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_colorcorrection.c89
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_defocus.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_ellipsemask.c75
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_image.c96
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_outputFile.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_switch.c58
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_viewer.c2
-rw-r--r--source/blender/nodes/intern/node_common.c19
-rw-r--r--source/blender/nodes/intern/node_exec.c4
-rw-r--r--source/blender/nodes/intern/node_util.c4
-rw-r--r--source/blender/nodes/shader/node_shader_util.c10
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_object_info.c61
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_environment.c7
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_image.c7
-rw-r--r--source/blender/opencl/CMakeLists.txt39
-rw-r--r--source/blender/opencl/OCL_opencl.h37
-rw-r--r--source/blender/opencl/SConscript8
-rw-r--r--source/blender/opencl/intern/OCL_opencl.c37
-rw-r--r--source/blender/opencl/intern/clew.c311
-rw-r--r--source/blender/opencl/intern/clew.h1317
-rw-r--r--source/blender/python/bmesh/bmesh_py_types.c31
-rw-r--r--source/blender/python/bmesh/bmesh_py_types_customdata.c7
-rw-r--r--source/blender/python/generic/bpy_internal_import.c2
-rw-r--r--source/blender/python/generic/idprop_py_api.c4
-rw-r--r--source/blender/python/generic/py_capi_utils.c3
-rw-r--r--source/blender/python/intern/bpy_driver.c4
-rw-r--r--source/blender/python/intern/bpy_interface.c17
-rw-r--r--source/blender/python/intern/bpy_library.c6
-rw-r--r--source/blender/python/intern/bpy_operator.c2
-rw-r--r--source/blender/python/intern/bpy_props.c32
-rw-r--r--source/blender/python/intern/bpy_rna.c6
-rw-r--r--source/blender/python/mathutils/mathutils_Quaternion.c3
-rw-r--r--source/blender/quicktime/apple/quicktime_export.c4
-rw-r--r--source/blender/render/intern/source/convertblender.c46
-rw-r--r--source/blender/render/intern/source/envmap.c4
-rw-r--r--source/blender/render/intern/source/initrender.c2
-rw-r--r--source/blender/render/intern/source/pipeline.c20
-rw-r--r--source/blender/render/intern/source/pixelshading.c4
-rw-r--r--source/blender/render/intern/source/rayshade.c16
-rw-r--r--source/blender/render/intern/source/render_texture.c38
-rw-r--r--source/blender/render/intern/source/rendercore.c28
-rw-r--r--source/blender/render/intern/source/renderdatabase.c4
-rw-r--r--source/blender/render/intern/source/shadeoutput.c24
-rw-r--r--source/blender/render/intern/source/sss.c10
-rw-r--r--source/blender/render/intern/source/zbuf.c28
-rw-r--r--source/blender/windowmanager/intern/wm_draw.c20
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c30
-rw-r--r--source/blender/windowmanager/intern/wm_files.c19
-rw-r--r--source/blender/windowmanager/intern/wm_gesture.c4
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c3
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c4
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c7
-rw-r--r--source/blender/windowmanager/intern/wm_window.c6
853 files changed, 68389 insertions, 22043 deletions
diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt
index dc7e7948088..2821254ac3b 100644
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@ -95,11 +95,13 @@ add_subdirectory(blenkernel)
add_subdirectory(blenlib)
add_subdirectory(bmesh)
add_subdirectory(render)
+add_subdirectory(compositor)
add_subdirectory(blenfont)
add_subdirectory(blenloader)
add_subdirectory(blenpluginapi)
add_subdirectory(ikplugin)
add_subdirectory(gpu)
+add_subdirectory(opencl)
add_subdirectory(imbuf)
add_subdirectory(avi)
add_subdirectory(nodes)
diff --git a/source/blender/SConscript b/source/blender/SConscript
index c3a7089f425..411a04528c5 100644
--- a/source/blender/SConscript
+++ b/source/blender/SConscript
@@ -9,9 +9,11 @@ SConscript(['avi/SConscript',
'blenloader/SConscript',
'blenpluginapi/SConscript',
'gpu/SConscript',
+ 'opencl/SConscript',
'editors/SConscript',
'imbuf/SConscript',
'makesdna/SConscript',
+ 'compositor/SConscript',
'render/SConscript',
'nodes/SConscript',
'modifiers/SConscript',
diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c
index 861e07f6eb3..e00982bae72 100644
--- a/source/blender/avi/intern/avi.c
+++ b/source/blender/avi/intern/avi.c
@@ -215,7 +215,8 @@ int AVI_is_avi(char *name)
if (GET_FCC(fp) != FCC("RIFF") ||
!GET_FCC(fp) ||
- GET_FCC(fp) != FCC("AVI ")) {
+ GET_FCC(fp) != FCC("AVI "))
+ {
ret = 0;
}
else {
@@ -245,7 +246,8 @@ int AVI_is_avi(const char *name)
return 0;
if (GET_FCC(movie.fp) != FCC("RIFF") ||
- !(movie.size = GET_FCC(movie.fp))) {
+ !(movie.size = GET_FCC(movie.fp)))
+ {
fclose(movie.fp);
return 0;
}
@@ -257,7 +259,8 @@ int AVI_is_avi(const char *name)
!GET_FCC(movie.fp) ||
GET_FCC(movie.fp) != FCC("hdrl") ||
(movie.header->fcc = GET_FCC(movie.fp)) != FCC("avih") ||
- !(movie.header->size = GET_FCC(movie.fp))) {
+ !(movie.header->size = GET_FCC(movie.fp)))
+ {
DEBUG_PRINT("bad initial header info\n");
fclose(movie.fp);
return 0;
@@ -378,8 +381,7 @@ int AVI_is_avi(const char *name)
fcca = bi->Compression;
- if (movie.streams[temp].format ==
- AVI_FORMAT_AVI_RGB) {
+ if (movie.streams[temp].format == AVI_FORMAT_AVI_RGB) {
if (fcca == FCC("DIB ") ||
fcca == FCC("RGB ") ||
fcca == FCC("rgb ") ||
@@ -829,8 +831,8 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
if (movie->streams[i].sh.Type == FCC("vids")) {
#if 0
if (movie->streams[i].format == AVI_FORMAT_MJPEG) {
- movie->streams[i].sf = MEM_mallocN(sizeof(AviBitmapInfoHeader)
- + sizeof(AviMJPEGUnknown), "moviestreamformatL");
+ movie->streams[i].sf = MEM_mallocN(sizeof(AviBitmapInfoHeader) +
+ sizeof(AviMJPEGUnknown), "moviestreamformatL");
movie->streams[i].sf_size = sizeof(AviBitmapInfoHeader) + sizeof(AviMJPEGUnknown);
}
else {
diff --git a/source/blender/avi/intern/avirgb.c b/source/blender/avi/intern/avirgb.c
index 78316990d54..7a95972845a 100644
--- a/source/blender/avi/intern/avirgb.c
+++ b/source/blender/avi/intern/avirgb.c
@@ -59,7 +59,7 @@ void *avi_converter_from_avi_rgb(AviMovie *movie, int stream, unsigned char *buf
unsigned char *to;
#ifdef __BIG_ENDIAN__
unsigned char *pxla;
-#endif
+#endif
buf = MEM_mallocN(movie->header->Height * movie->header->Width * 3, "fromavirgbbuf");
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index 7cc5d16dcc1..e0b734faddb 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -42,14 +42,14 @@ extern "C" {
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 263
-#define BLENDER_SUBVERSION 5
+#define BLENDER_SUBVERSION 6
#define BLENDER_MINVERSION 250
#define BLENDER_MINSUBVERSION 0
/* used by packaging tools */
/* can be left blank, otherwise a,b,c... etc with no quotes */
-#define BLENDER_VERSION_CHAR
+#define BLENDER_VERSION_CHAR a
/* alpha/beta/rc/release, docs use this */
#define BLENDER_VERSION_CYCLE alpha
diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h
index 97b724c09e4..91e3e9edbf0 100644
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@ -183,6 +183,9 @@ struct Image *BKE_image_copy(struct Image *ima);
/* merge source into dest, and free source */
void BKE_image_merge(struct Image *dest, struct Image *source);
+/* scale the image */
+void BKE_image_scale(struct Image *image, int width, int height);
+
/* check if texture has alpha (depth=32) */
int BKE_image_has_alpha(struct Image *image);
diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h
index 4240ef16100..1ad451b0937 100644
--- a/source/blender/blenkernel/BKE_key.h
+++ b/source/blender/blenkernel/BKE_key.h
@@ -55,9 +55,9 @@ struct Key *copy_key_nolib(struct Key *key);
void BKE_key_make_local(struct Key *key);
void sort_keys(struct Key *key);
-void key_curve_position_weights(float t, float *data, int type);
-void key_curve_tangent_weights(float t, float *data, int type);
-void key_curve_normal_weights(float t, float *data, int type);
+void key_curve_position_weights(float t, float data[4], int type);
+void key_curve_tangent_weights(float t, float data[4], int type);
+void key_curve_normal_weights(float t, float data[4], int type);
float *do_ob_key(struct Scene *scene, struct Object *ob);
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index c168c39fd9f..7abec074647 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -111,6 +111,10 @@ int poly_find_loop_from_vert(const struct MPoly *poly,
int poly_get_adj_loops_from_vert(unsigned adj_r[3], const struct MPoly *poly,
const struct MLoop *mloop, unsigned vert);
+/* Return the index of the edge vert that is not equal to 'v'. If
+ * neither edge vertex is equal to 'v', returns -1. */
+int BKE_mesh_edge_other_vert(const struct MEdge *e, int v);
+
/* update the hide flag for edges and polys from the corresponding
* flag in verts */
void BKE_mesh_flush_hidden_from_verts(const struct MVert *mvert,
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 20706e67e83..7e925e545dc 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -145,9 +145,13 @@ typedef struct bNodeType {
void (*uifunc)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr);
/// Additional parameters in the side panel.
void (*uifuncbut)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr);
+ /// Additional drawing on backdrop.
+ void (*uibackdropfunc)(struct SpaceNode* snode, struct ImBuf* backdrop, struct bNode* node, int x, int y);
+
/// Draw a node socket. Default draws the input value button.
NodeSocketButtonFunction drawinputfunc;
NodeSocketButtonFunction drawoutputfunc;
+
/// Optional custom label function for the node header.
const char *(*labelfunc)(struct bNode *);
/// Optional custom resize handle polling.
@@ -244,6 +248,12 @@ typedef struct bNodeType {
#define NODE_OLD_SHADING 1
#define NODE_NEW_SHADING 2
+/* node resize directions */
+#define NODE_RESIZE_TOP 1
+#define NODE_RESIZE_BOTTOM 2
+#define NODE_RESIZE_RIGHT 4
+#define NODE_RESIZE_LEFT 8
+
/* enum values for input/output */
#define SOCK_IN 1
#define SOCK_OUT 2
@@ -344,7 +354,8 @@ void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link);
void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
void nodeInternalRelink(struct bNodeTree *ntree, struct bNode *node);
-void nodeSpaceCoords(struct bNode *node, float *locx, float *locy);
+void nodeToView(struct bNode *node, float x, float y, float *rx, float *ry);
+void nodeFromView(struct bNode *node, float x, float y, float *rx, float *ry);
void nodeAttachNode(struct bNode *node, struct bNode *parent);
void nodeDetachNode(struct bNode *node);
@@ -512,6 +523,7 @@ struct ShadeResult;
#define SH_NODE_TEX_CHECKER 164
#define SH_NODE_BRIGHTCONTRAST 165
#define SH_NODE_LIGHT_FALLOFF 166
+#define SH_NODE_OBJECT_INFO 167
/* custom defines options for Material node */
#define SH_NODE_MAT_DIFF 1
@@ -648,6 +660,13 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat);
#define CMP_NODE_TONEMAP 302
#define CMP_NODE_LENSDIST 303
+#define CMP_NODE_COLORCORRECTION 312
+#define CMP_NODE_MASK_BOX 313
+#define CMP_NODE_MASK_ELLIPSE 314
+#define CMP_NODE_BOKEHIMAGE 315
+#define CMP_NODE_BOKEHBLUR 316
+#define CMP_NODE_SWITCH 317
+
/* channel toggles */
#define CMP_CHAN_RGB 1
#define CMP_CHAN_A 2
@@ -675,7 +694,7 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat);
struct CompBuf;
struct bNodeTreeExec *ntreeCompositBeginExecTree(struct bNodeTree *ntree, int use_tree_data);
void ntreeCompositEndExecTree(struct bNodeTreeExec *exec, int use_tree_data);
-void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int do_previews);
+void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int rendering, int do_previews);
void ntreeCompositTagRender(struct Scene *sce);
int ntreeCompositTagAnimated(struct bNodeTree *ntree);
void ntreeCompositTagGenerators(struct bNodeTree *ntree);
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 1cdf2ee2e14..890fc40c284 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -53,6 +53,7 @@ struct MovieClip;
void BKE_object_workob_clear(struct Object *workob);
void BKE_object_workob_calc_parent(struct Scene *scene, struct Object *ob, struct Object *workob);
+void BKE_object_transform_copy(struct Object *ob_tar, const struct Object *ob_src);
struct SoftBody *copy_softbody(struct SoftBody *sb);
struct BulletSoftBody *copy_bulletsoftbody(struct BulletSoftBody *sb);
void BKE_object_copy_particlesystems(struct Object *obn, struct Object *ob);
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index 7223008afad..e99fc413ca1 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -153,6 +153,8 @@ typedef struct ARegionType {
int keymapflag;
/* return without drawing. lock is set by region definition, and copied to do_lock by render. can become flag */
short do_lock, lock;
+ /* call cursor function on each move event */
+ short event_cursor;
} ARegionType;
/* panel types */
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index 4ddafbbaae9..f06e0e2f71a 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -67,8 +67,8 @@ void seq_end(SeqIterator *iter);
void seq_array(struct Editing *ed, struct Sequence ***seqarray, int *tot, int use_pointer);
#define SEQP_BEGIN(ed, _seq) \
- { \
- SeqIterator iter; \
+ { \
+ SeqIterator iter; \
for (seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) { \
_seq = iter.seq;
@@ -79,8 +79,8 @@ void seq_array(struct Editing *ed, struct Sequence ***seqarray, int *tot, int us
_seq = iter.seq;
#define SEQ_END \
- } \
- seq_end(&iter); \
+ } \
+ seq_end(&iter); \
}
typedef struct SeqRenderData {
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 521cabe31e5..18616d7d40f 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -159,6 +159,7 @@ set(SRC
BKE_bullet.h
BKE_bvhutils.h
BKE_camera.h
+ BKE_ccg.h
BKE_cdderivedmesh.h
BKE_cloth.h
BKE_collision.h
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c
index 6f768a147f7..e4309a64e56 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf.c
@@ -1166,7 +1166,8 @@ CCGError ccgSubSurf_syncVert(CCGSubSurf *ss, CCGVertHDL vHDL, const void *vertDa
v->flags = Vert_eEffected | seamflag;
}
else if (!VertDataEqual(vertData, _vert_getCo(v, 0, ss->meshIFC.vertDataSize), ss) ||
- ((v->flags & Vert_eSeam) != seamflag)) {
+ ((v->flags & Vert_eSeam) != seamflag))
+ {
*prevp = v->next;
_ehash_insert(ss->vMap, (EHEntry *) v);
VertDataCopy(_vert_getCo(v, 0, ss->meshIFC.vertDataSize), vertData, ss);
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 18560d3dbc0..7e2d881689c 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1546,7 +1546,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
/* if this is not the last modifier in the stack then recalculate the normals
* to avoid giving bogus normals to the next modifier see: [#23673] */
- if (isPrevDeform && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
+ if (isPrevDeform && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
/* XXX, this covers bug #23673, but we may need normal calc for other types */
if (dm && dm->type == DM_TYPE_CDDM) {
CDDM_apply_vert_coords(dm, deformedVerts);
@@ -2942,7 +2942,7 @@ static void navmesh_drawColored(DerivedMesh *dm)
#endif
glDisable(GL_LIGHTING);
- /* if (GPU_buffer_legacy(dm) ) */ { /* TODO - VBO draw code, not high priority - campbell */
+ /* if (GPU_buffer_legacy(dm) ) */ { /* TODO - VBO draw code, not high priority - campbell */
DEBUG_VBO("Using legacy code. drawNavMeshColored\n");
//glShadeModel(GL_SMOOTH);
glBegin(glmode = GL_QUADS);
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 0f8716e2b04..233647c9ec6 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -247,7 +247,7 @@ void set_active_action_group(bAction *act, bActionGroup *agrp, short select)
for (grp = act->groups.first; grp; grp = grp->next) {
if ((grp == agrp) && (select))
grp->flag |= AGRP_ACTIVE;
- else
+ else
grp->flag &= ~AGRP_ACTIVE;
}
}
@@ -958,7 +958,7 @@ short action_get_item_transforms(bAction *act, Object *ob, bPoseChannel *pchan,
RNA_pointer_create((ID *)ob, &RNA_PoseBone, pchan, &ptr);
else if (ob)
RNA_id_pointer_create((ID *)ob, &ptr);
- else
+ else
return 0;
/* get the basic path to the properties of interest */
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index ed6eceb036b..f73221066b1 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -452,7 +452,7 @@ void animviz_calc_motionpaths(Scene *scene, ListBase *targets)
/* get pointer to animviz settings for each target */
if (mpt->pchan)
avs = &mpt->ob->pose->avs;
- else
+ else
avs = &mpt->ob->avs;
/* clear the flag requesting recalculation of targets */
@@ -751,14 +751,14 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, i
dob = new_dupli_object(lb, go->ob, mat, ob->lay, 0, OB_DUPLIGROUP, animated);
/* check the group instance and object layers match, also that the object visible flags are ok. */
- if ( (dob->origlay & group->layer) == 0 ||
- (G.rendering == 0 && dob->ob->restrictflag & OB_RESTRICT_VIEW) ||
- (G.rendering && dob->ob->restrictflag & OB_RESTRICT_RENDER)
- ) {
- dob->no_draw = 1;
+ if ((dob->origlay & group->layer) == 0 ||
+ (G.rendering == 0 && dob->ob->restrictflag & OB_RESTRICT_VIEW) ||
+ (G.rendering && dob->ob->restrictflag & OB_RESTRICT_RENDER))
+ {
+ dob->no_draw = TRUE;
}
else {
- dob->no_draw = 0;
+ dob->no_draw = FALSE;
}
if (go->ob->transflag & OB_DUPLI) {
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index fe95d15f82e..752036c6b9f 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -437,7 +437,7 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest)
float h1[3], h2[3], scale[3], length, hlength1, hlength2, roll1 = 0.0f, roll2;
float mat3[3][3], imat[4][4], posemat[4][4], scalemat[4][4], iscalemat[4][4];
float data[MAX_BBONE_SUBDIV + 1][4], *fp;
- int a, doscale = 0;
+ int a, do_scale = 0;
length = bone->length;
@@ -455,7 +455,7 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest)
invert_m4_m4(iscalemat, scalemat);
length *= scale[1];
- doscale = 1;
+ do_scale = 1;
}
}
@@ -476,7 +476,7 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest)
if (rest) {
invert_m4_m4(imat, pchan->bone->arm_mat);
}
- else if (doscale) {
+ else if (do_scale) {
copy_m4_m4(posemat, pchan->pose_mat);
normalize_m4(posemat);
invert_m4_m4(imat, posemat);
@@ -581,7 +581,7 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest)
copy_m4_m3(result_array[a].mat, mat3);
copy_v3_v3(result_array[a].mat[3], fp);
- if (doscale) {
+ if (do_scale) {
/* correct for scaling when this matrix is used in scaled space */
mul_serie_m4(result_array[a].mat, iscalemat, result_array[a].mat, scalemat, NULL, NULL, NULL, NULL, NULL);
}
@@ -835,7 +835,7 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm, float
const short invert_vgroup = deformflag & ARM_DEF_INVERT_VGROUP;
int defbase_tot = 0; /* safety for vertexgroup index overflow */
int i, target_totvert = 0; /* safety for vertexgroup overflow */
- int use_dverts = 0;
+ int use_dverts = FALSE;
int armature_def_nr;
int totchan;
@@ -895,11 +895,12 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm, float
if (deformflag & ARM_DEF_VGROUP) {
if (ELEM(target->type, OB_MESH, OB_LATTICE)) {
/* if we have a DerivedMesh, only use dverts if it has them */
- if (dm)
- if (dm->getVertData(dm, 0, CD_MDEFORMVERT))
- use_dverts = 1;
- else use_dverts = 0;
- else if (dverts) use_dverts = 1;
+ if (dm) {
+ use_dverts = (dm->getVertData(dm, 0, CD_MDEFORMVERT) != NULL);
+ }
+ else if (dverts) {
+ use_dverts = TRUE;
+ }
if (use_dverts) {
defnrToPC = MEM_callocN(sizeof(*defnrToPC) * defbase_tot, "defnrToBone");
@@ -2245,13 +2246,13 @@ static void do_strip_modifiers(Scene *scene, Object *armob, Bone *bone, bPoseCha
int do_modif;
for (strip = armob->nlastrips.first; strip; strip = strip->next) {
- do_modif = 0;
+ do_modif = FALSE;
if (scene_cfra >= strip->start && scene_cfra <= strip->end)
- do_modif = 1;
+ do_modif = TRUE;
if ((scene_cfra > strip->end) && (strip->flag & ACTSTRIP_HOLDLASTFRAME)) {
- do_modif = 1;
+ do_modif = TRUE;
/* if there are any other strips active, ignore modifiers for this strip -
* 'hold' option should only hold action modifiers if there are
@@ -2261,7 +2262,7 @@ static void do_strip_modifiers(Scene *scene, Object *armob, Bone *bone, bPoseCha
if (scene_cfra >= strip2->start && scene_cfra <= strip2->end) {
if (!(strip2->flag & ACTSTRIP_MUTE))
- do_modif = 0;
+ do_modif = FALSE;
}
}
@@ -2270,7 +2271,7 @@ static void do_strip_modifiers(Scene *scene, Object *armob, Bone *bone, bPoseCha
for (strip2 = strip->next; strip2; strip2 = strip2->next) {
if (scene_cfra < strip2->start) continue;
if ((strip2->flag & ACTSTRIP_HOLDLASTFRAME) && !(strip2->flag & ACTSTRIP_MUTE)) {
- do_modif = 0;
+ do_modif = FALSE;
}
}
}
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index b2cbf0a1ce1..e6333ed74aa 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -334,8 +334,10 @@ static int handle_subversion_warning(Main *main, ReportList *reports)
{
if (main->minversionfile > BLENDER_VERSION ||
(main->minversionfile == BLENDER_VERSION &&
- main->minsubversionfile > BLENDER_SUBVERSION)) {
- BKE_reportf(reports, RPT_ERROR, "File written by newer Blender binary: %d.%d , expect loss of data!", main->minversionfile, main->minsubversionfile);
+ main->minsubversionfile > BLENDER_SUBVERSION))
+ {
+ BKE_reportf(reports, RPT_ERROR, "File written by newer Blender binary: %d.%d, expect loss of data!",
+ main->minversionfile, main->minsubversionfile);
}
return 1;
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index f019287144d..741d4b729ae 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -1329,7 +1329,7 @@ struct ImBuf *BKE_brush_gen_radial_control_imbuf(Brush *br)
for (i = 0; i < side; ++i) {
for (j = 0; j < side; ++j) {
- float magn = sqrt(pow(i - half, 2) + pow(j - half, 2));
+ float magn = sqrtf(powf(i - half, 2) + powf(j - half, 2));
im->rect_float[i * side + j] = BKE_brush_curve_strength_clamp(br, magn, half);
}
}
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index 3450408a0a0..f6eee44b92c 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -636,13 +636,12 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
else {
if (index) {
orig = *index++;
- if (orig == ORIGINDEX_NONE) { if (nors) nors += 3; continue; }
- if (drawParamsMapped) draw_option = drawParamsMapped(userData, orig);
- else { if (nors) nors += 3; continue; }
+ if (orig == ORIGINDEX_NONE) { if (nors) nors += 3; continue; }
+ if (drawParamsMapped) { draw_option = drawParamsMapped(userData, orig); }
+ else { if (nors) nors += 3; continue; }
}
- else
- if (drawParamsMapped) draw_option = drawParamsMapped(userData, i);
- else { if (nors) nors += 3; continue; }
+ else if (drawParamsMapped) { draw_option = drawParamsMapped(userData, i); }
+ else { if (nors) nors += 3; continue; }
}
if (draw_option != DM_DRAW_OPTION_SKIP) {
@@ -1039,13 +1038,13 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
MFace *mface = cddm->mface;
/* MTFace *tf = dm->getTessFaceDataArray(dm, CD_MTFACE); */ /* UNUSED */
float (*nors)[3] = dm->getTessFaceDataArray(dm, CD_NORMAL);
- int a, b, dodraw, matnr, new_matnr;
+ int a, b, do_draw, matnr, new_matnr;
int orig, *index = dm->getTessFaceDataArray(dm, CD_ORIGINDEX);
cdDM_update_normals_from_pbvh(dm);
matnr = -1;
- dodraw = 0;
+ do_draw = FALSE;
glShadeModel(GL_SMOOTH);
@@ -1062,14 +1061,14 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
if (new_matnr != matnr) {
glEnd();
- dodraw = setMaterial(matnr = new_matnr, &gattribs);
- if (dodraw)
+ do_draw = setMaterial(matnr = new_matnr, &gattribs);
+ if (do_draw)
DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs);
glBegin(GL_QUADS);
}
- if (!dodraw) {
+ if (!do_draw) {
continue;
}
else if (setDrawOptions) {
@@ -1139,7 +1138,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
numfaces = curface - start;
if (numfaces > 0) {
- if (dodraw) {
+ if (do_draw) {
if (numdata != 0) {
@@ -1161,9 +1160,9 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
}
numdata = 0;
start = curface;
- /* prevdraw = dodraw; */ /* UNUSED */
- dodraw = setMaterial(matnr = new_matnr, &gattribs);
- if (dodraw) {
+ /* prevdraw = do_draw; */ /* UNUSED */
+ do_draw = setMaterial(matnr = new_matnr, &gattribs);
+ if (do_draw) {
DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs);
if (attribs.totorco) {
@@ -1215,7 +1214,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
}
}
- if (dodraw && numdata != 0) {
+ if (do_draw && numdata != 0) {
offset = 0;
if (attribs.totorco) {
copy_v3_v3((float *)&varray[elementsize * curface * 3], (float *)attribs.orco.array[mface->v1]);
@@ -1257,7 +1256,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
}
curface++;
if (mface->v4) {
- if (dodraw && numdata != 0) {
+ if (do_draw && numdata != 0) {
offset = 0;
if (attribs.totorco) {
copy_v3_v3((float *)&varray[elementsize * curface * 3], (float *)attribs.orco.array[mface->v3]);
@@ -1302,7 +1301,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
}
numfaces = curface - start;
if (numfaces > 0) {
- if (dodraw) {
+ if (do_draw) {
if (numdata != 0) {
GPU_buffer_unlock(buffer);
GPU_interleaved_attrib_setup(buffer, datatypes, numdata);
@@ -1472,9 +1471,9 @@ static void cdDM_foreachMappedFaceCenter(
void *userData)
{
CDDerivedMesh *cddm = (CDDerivedMesh *)dm;
- MVert *mv = cddm->mvert;
- MPoly *mp = cddm->mpoly;
- MLoop *ml = cddm->mloop;
+ MVert *mvert = cddm->mvert;
+ MPoly *mp;
+ MLoop *ml;
int i, j, orig, *index;
index = CustomData_get_layer(&dm->polyData, CD_ORIGINDEX);
@@ -1493,23 +1492,23 @@ static void cdDM_foreachMappedFaceCenter(
ml = &cddm->mloop[mp->loopstart];
cent[0] = cent[1] = cent[2] = 0.0f;
for (j = 0; j < mp->totloop; j++, ml++) {
- add_v3_v3v3(cent, cent, mv[ml->v].co);
+ add_v3_v3v3(cent, cent, mvert[ml->v].co);
}
mul_v3_fl(cent, 1.0f / (float)j);
ml = &cddm->mloop[mp->loopstart];
if (j > 3) {
normal_quad_v3(no,
- mv[(ml + 0)->v].co,
- mv[(ml + 1)->v].co,
- mv[(ml + 2)->v].co,
- mv[(ml + 3)->v].co);
+ mvert[(ml + 0)->v].co,
+ mvert[(ml + 1)->v].co,
+ mvert[(ml + 2)->v].co,
+ mvert[(ml + 3)->v].co);
}
else {
normal_tri_v3(no,
- mv[(ml + 0)->v].co,
- mv[(ml + 1)->v].co,
- mv[(ml + 2)->v].co);
+ mvert[(ml + 0)->v].co,
+ mvert[(ml + 1)->v].co,
+ mvert[(ml + 2)->v].co);
}
func(userData, orig, cent, no);
@@ -1892,6 +1891,14 @@ DerivedMesh *CDDM_from_BMEditMesh(BMEditMesh *em, Mesh *UNUSED(me), int use_mdis
med->flag = BM_edge_flag_to_mflag(eed);
+ /* handle this differently to editmode switching,
+ * only enable draw for single user edges rather then calculating angle */
+ if ((med->flag & ME_EDGEDRAW) == 0) {
+ if (eed->l && eed->l == eed->l->radial_next) {
+ med->flag |= ME_EDGEDRAW;
+ }
+ }
+
CustomData_from_bmesh_block(&bm->edata, &dm->edgeData, eed->head.data, i);
if (add_orig) *index = i;
}
@@ -2397,11 +2404,13 @@ void CDDM_calc_edges_tessface(DerivedMesh *dm)
CustomData_add_layer(&edgeData, CD_MEDGE, CD_CALLOC, NULL, numEdges);
CustomData_add_layer(&edgeData, CD_ORIGINDEX, CD_CALLOC, NULL, numEdges);
- ehi = BLI_edgehashIterator_new(eh);
med = CustomData_get_layer(&edgeData, CD_MEDGE);
index = CustomData_get_layer(&edgeData, CD_ORIGINDEX);
- for (i = 0; !BLI_edgehashIterator_isDone(ehi);
- BLI_edgehashIterator_step(ehi), ++i, ++med, ++index) {
+
+ for (ehi = BLI_edgehashIterator_new(eh), i = 0;
+ BLI_edgehashIterator_isDone(ehi) == FALSE;
+ BLI_edgehashIterator_step(ehi), ++i, ++med, ++index)
+ {
BLI_edgehashIterator_getKey(ehi, &med->v1, &med->v2);
med->flag = ME_EDGEDRAW | ME_EDGERENDER;
@@ -2460,11 +2469,13 @@ void CDDM_calc_edges(DerivedMesh *dm)
CustomData_add_layer(&edgeData, CD_MEDGE, CD_CALLOC, NULL, numEdges);
CustomData_add_layer(&edgeData, CD_ORIGINDEX, CD_CALLOC, NULL, numEdges);
- ehi = BLI_edgehashIterator_new(eh);
med = CustomData_get_layer(&edgeData, CD_MEDGE);
index = CustomData_get_layer(&edgeData, CD_ORIGINDEX);
- for (i = 0; !BLI_edgehashIterator_isDone(ehi);
- BLI_edgehashIterator_step(ehi), ++i, ++med, ++index) {
+
+ for (ehi = BLI_edgehashIterator_new(eh), i = 0;
+ BLI_edgehashIterator_isDone(ehi) == FALSE;
+ BLI_edgehashIterator_step(ehi), ++i, ++med, ++index)
+ {
BLI_edgehashIterator_getKey(ehi, &med->v1, &med->v2);
j = GET_INT_FROM_POINTER(BLI_edgehashIterator_getValue(ehi));
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index b38f0f78cdb..e067b7195ce 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -429,10 +429,10 @@ static DerivedMesh *cloth_to_triangles(DerivedMesh *dm)
MFace *mface2 = NULL;
/* calc faces */
- for(i = 0; i < numfaces; i++)
- {
- if(mface[i].v4)
+ for (i = 0; i < numfaces; i++) {
+ if (mface[i].v4) {
quads++;
+ }
}
result = CDDM_from_template(dm, dm->getNumVerts(dm), 0, numfaces + quads, 0, 0);
@@ -443,8 +443,7 @@ static DerivedMesh *cloth_to_triangles(DerivedMesh *dm)
DM_ensure_tessface(result);
mface2 = result->getTessFaceArray(result);
- for(i = 0, j = numfaces; i < numfaces; i++)
- {
+ for (i = 0, j = numfaces; i < numfaces; i++) {
// DG TODO: is this necessary?
mface2[i].v1 = mface[i].v1;
mface2[i].v2 = mface[i].v2;
@@ -453,8 +452,7 @@ static DerivedMesh *cloth_to_triangles(DerivedMesh *dm)
mface2[i].v4 = 0;
//test_index_face(&mface2[i], &result->faceData, i, 3);
- if(mface[i].v4)
- {
+ if (mface[i].v4) {
DM_copy_tessface_data(dm, result, i, j, 1);
mface2[j].v1 = mface[i].v1;
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index a93653537c7..7c5cf68affa 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -345,19 +345,17 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM
}
}
- if(result)
- {
+ if (result) {
int i = 0;
- for(i = 0; i < 3; i++)
- {
- if(cloth1->verts[collpair->ap1].impulse_count > 0 && ABS(cloth1->verts[collpair->ap1].impulse[i]) < ABS(i1[i]))
+ for (i = 0; i < 3; i++) {
+ if (cloth1->verts[collpair->ap1].impulse_count > 0 && ABS(cloth1->verts[collpair->ap1].impulse[i]) < ABS(i1[i]))
cloth1->verts[collpair->ap1].impulse[i] = i1[i];
- if(cloth1->verts[collpair->ap2].impulse_count > 0 && ABS(cloth1->verts[collpair->ap2].impulse[i]) < ABS(i2[i]))
+ if (cloth1->verts[collpair->ap2].impulse_count > 0 && ABS(cloth1->verts[collpair->ap2].impulse[i]) < ABS(i2[i]))
cloth1->verts[collpair->ap2].impulse[i] = i2[i];
- if(cloth1->verts[collpair->ap3].impulse_count > 0 && ABS(cloth1->verts[collpair->ap3].impulse[i]) < ABS(i3[i]))
+ if (cloth1->verts[collpair->ap3].impulse_count > 0 && ABS(cloth1->verts[collpair->ap3].impulse[i]) < ABS(i3[i]))
cloth1->verts[collpair->ap3].impulse[i] = i3[i];
}
}
@@ -681,8 +679,9 @@ static int cloth_bvh_objcollisions_resolve ( ClothModifierData * clmd, Collision
}
}
- if(!result)
+ if (!result) {
break;
+ }
}
return ret;
}
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index a1f87762db7..da9350cc7b9 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -3155,7 +3155,7 @@ static void clampto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *tar
/* find bounding-box range where target is located */
if (ownLoc[clamp_axis] < curveMin[clamp_axis]) {
/* bounding-box range is before */
- offset = curveMin[clamp_axis] - ceil((curveMin[clamp_axis] - ownLoc[clamp_axis]) / len) * len;
+ offset = curveMin[clamp_axis] - ceilf((curveMin[clamp_axis] - ownLoc[clamp_axis]) / len) * len;
/* now, we calculate as per normal, except using offset instead of curveMin[clamp_axis] */
curvetime = (ownLoc[clamp_axis] - offset) / (len);
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 99223f37552..734c8553850 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -44,6 +44,7 @@
#include "BLI_listbase.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_main.h"
@@ -251,7 +252,7 @@ static int ctx_data_get(bContext *C, const char *member, bContextDataResult *res
bScreen *sc;
ScrArea *sa;
ARegion *ar;
- int done = 0, recursion = C->data.recursion;
+ int done = FALSE, recursion = C->data.recursion;
int ret = 0;
memset(result, 0, sizeof(bContextDataResult));
@@ -279,7 +280,7 @@ static int ctx_data_get(bContext *C, const char *member, bContextDataResult *res
entry = BLI_rfindstring(&C->wm.store->entries, member, offsetof(bContextStoreEntry, name));
if (entry) {
result->ptr = entry->ptr;
- done = 1;
+ done = TRUE;
}
}
if (done != 1 && recursion < 2 && (ar = CTX_wm_region(C))) {
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 6a0991cf4e5..ce62b9c10dc 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -378,7 +378,7 @@ void BKE_curve_texspace_calc(Curve *cu)
DispList *dl;
BoundBox *bb;
float *fp, min[3], max[3];
- int tot, doit = 0;
+ int tot, do_it = FALSE;
if (cu->bb == NULL)
cu->bb = MEM_callocN(sizeof(BoundBox), "boundbox");
@@ -390,7 +390,7 @@ void BKE_curve_texspace_calc(Curve *cu)
while (dl) {
tot = ELEM(dl->type, DL_INDEX3, DL_INDEX4) ? dl->nr : dl->nr * dl->parts;
- if (tot) doit = 1;
+ if (tot) do_it = TRUE;
fp = dl->verts;
while (tot--) {
minmax_v3v3_v3(min, max, fp);
@@ -399,7 +399,7 @@ void BKE_curve_texspace_calc(Curve *cu)
dl = dl->next;
}
- if (!doit) {
+ if (do_it == FALSE) {
min[0] = min[1] = min[2] = -1.0f;
max[0] = max[1] = max[2] = 1.0f;
}
@@ -1272,12 +1272,12 @@ float *BKE_curve_surf_make_orco(Object *ob)
for (b = 0; b < sizeu; b++) {
int use_b = b;
if (b == sizeu - 1 && (nu->flagu & CU_NURB_CYCLIC))
- use_b = 0;
+ use_b = FALSE;
for (a = 0; a < sizev; a++) {
int use_a = a;
if (a == sizev - 1 && (nu->flagv & CU_NURB_CYCLIC))
- use_a = 0;
+ use_a = FALSE;
tdata = _tdata + 3 * (use_b * (nu->pntsv * resolv) + use_a);
@@ -2216,7 +2216,7 @@ void BKE_curve_bevelList_make(Object *ob)
/* check if we will calculate tilt data */
do_tilt = CU_DO_TILT(cu, nu);
do_radius = CU_DO_RADIUS(cu, nu); /* normal display uses the radius, better just to calculate them */
- do_weight = 1;
+ do_weight = TRUE;
/* check we are a single point? also check we are not a surface and that the orderu is sane,
* enforced in the UI but can go wrong possibly */
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index 90a3e617477..4e7653e2473 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -992,6 +992,38 @@ static void layerInterp_shapekey(void **sources, float *weights,
}
}
+static void layerDefault_mvert_skin(void *data, int count)
+{
+ MVertSkin *vs = data;
+ int i;
+
+ for (i = 0; i < count; i++) {
+ copy_v3_fl(vs[i].radius, 0.25f);
+ vs[i].flag = 0;
+ }
+}
+
+static void layerInterp_mvert_skin(void **sources, float *weights,
+ float *UNUSED(sub_weights),
+ int count, void *dest)
+{
+ float radius[3], w;
+ MVertSkin *vs;
+ int i;
+
+ zero_v3(radius);
+ for (i = 0; i < count; i++) {
+ w = weights ? weights[i] : 1.0f;
+ vs = sources[i];
+
+ madd_v3_v3fl(radius, vs->radius, w);
+ }
+
+ vs = dest;
+ copy_v3_v3(vs->radius, radius);
+ vs->flag &= ~MVERT_SKIN_ROOT;
+}
+
static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
/* 0: CD_MVERT */
{sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL},
@@ -1093,7 +1125,10 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
{sizeof(float), "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
/* 35: CD_GRID_PAINT_MASK */
{sizeof(GridPaintMask), "GridPaintMask", 1, NULL, layerCopy_grid_paint_mask,
- layerFree_grid_paint_mask, NULL, NULL, NULL}
+ layerFree_grid_paint_mask, NULL, NULL, NULL},
+ /* 36: CD_SKIN_NODE */
+ {sizeof(MVertSkin), "MVertSkin", 1, "Skin", NULL, NULL,
+ layerInterp_mvert_skin, NULL, layerDefault_mvert_skin}
};
/* note, numbers are from trunk and need updating for bmesh */
@@ -1108,10 +1143,7 @@ static const char *LAYERTYPENAMES[CD_NUMTYPES] = {
/* BMESH ONLY */
/* 25-29 */ "CDMPoly", "CDMLoop", "CDShapeKeyIndex", "CDShapeKey", "CDBevelWeight",
/* 30-34 */ "CDSubSurfCrease", "CDOrigSpaceLoop", "CDPreviewLoopCol", "CDBMElemPyPtr", "CDPaintMask",
- /* 35 */ "CDGridPaintMask"
-
-/* END BMESH ONLY */
-
+ /* 35-36 */ "CDGridPaintMask", "CDMVertSkin"
};
@@ -1123,26 +1155,26 @@ const CustomDataMask CD_MASK_MESH =
CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR | CD_MASK_MDISPS |
CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL | CD_MASK_MPOLY | CD_MASK_MLOOP |
CD_MASK_MTEXPOLY | CD_MASK_NORMAL | CD_MASK_RECAST | CD_MASK_PAINT_MASK |
- CD_MASK_GRID_PAINT_MASK;
+ CD_MASK_GRID_PAINT_MASK | CD_MASK_MVERT_SKIN;
const CustomDataMask CD_MASK_EDITMESH =
CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE | CD_MASK_MLOOPUV |
CD_MASK_MLOOPCOL | CD_MASK_MTEXPOLY | CD_MASK_SHAPE_KEYINDEX |
CD_MASK_MCOL | CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_PROP_STR |
CD_MASK_MDISPS | CD_MASK_SHAPEKEY | CD_MASK_RECAST | CD_MASK_PAINT_MASK |
- CD_MASK_GRID_PAINT_MASK;
+ CD_MASK_GRID_PAINT_MASK | CD_MASK_MVERT_SKIN;
const CustomDataMask CD_MASK_DERIVEDMESH =
CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_MTFACE |
CD_MASK_MCOL | CD_MASK_PROP_FLT | CD_MASK_PROP_INT | CD_MASK_CLOTH_ORCO |
CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL | CD_MASK_MTEXPOLY | CD_MASK_PREVIEW_MLOOPCOL |
CD_MASK_PROP_STR | CD_MASK_ORIGSPACE | CD_MASK_ORIGSPACE_MLOOP | CD_MASK_ORCO | CD_MASK_TANGENT |
CD_MASK_PREVIEW_MCOL | CD_MASK_NORMAL | CD_MASK_SHAPEKEY | CD_MASK_RECAST |
- CD_MASK_ORIGINDEX | CD_MASK_POLYINDEX;
+ CD_MASK_ORIGINDEX | CD_MASK_POLYINDEX | CD_MASK_MVERT_SKIN;
const CustomDataMask CD_MASK_BMESH =
CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL | CD_MASK_MTEXPOLY |
CD_MASK_MSTICKY | CD_MASK_MDEFORMVERT | CD_MASK_PROP_FLT | CD_MASK_PROP_INT |
CD_MASK_PROP_STR | CD_MASK_SHAPEKEY | CD_MASK_SHAPE_KEYINDEX | CD_MASK_MDISPS |
CD_MASK_CREASE | CD_MASK_BWEIGHT | CD_MASK_RECAST | CD_MASK_PAINT_MASK |
- CD_MASK_GRID_PAINT_MASK;
+ CD_MASK_GRID_PAINT_MASK | CD_MASK_MVERT_SKIN;
const CustomDataMask CD_MASK_FACECORNERS =
CD_MASK_MTFACE | CD_MASK_MCOL | CD_MASK_MTEXPOLY | CD_MASK_MLOOPUV |
CD_MASK_MLOOPCOL;
@@ -2323,7 +2355,8 @@ void CustomData_bmesh_copy_data(const CustomData *source, CustomData *dest,
/* if we found a matching layer, copy the data */
if (dest->layers[dest_i].type == source->layers[src_i].type &&
- strcmp(dest->layers[dest_i].name, source->layers[src_i].name) == 0) {
+ strcmp(dest->layers[dest_i].name, source->layers[src_i].name) == 0)
+ {
char *src_data = (char *)src_block + source->layers[src_i].offset;
char *dest_data = (char *)*dest_block + dest->layers[dest_i].offset;
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index 0396733760f..547a64a70d4 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -538,7 +538,7 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_
break;
}
}
- /* case; beginning with r R l L , with separator after it */
+ /* case; beginning with r R l L, with separator after it */
else if (is_char_sep(name[1])) {
switch (name[0]) {
case 'l':
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index caf7634355f..bfdc8f891b7 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -718,7 +718,8 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
dag_add_relation(dag, scenenode, node, DAG_RL_SCENE, "Scene Relation");
}
-struct DagForest *build_dag(Main *bmain, Scene *sce, short mask){
+DagForest *build_dag(Main *bmain, Scene *sce, short mask)
+{
Base *base;
Object *ob;
Group *group;
@@ -1458,7 +1459,8 @@ int pre_and_post_source_DFS(DagForest *dag, short mask, DagNode *source, graph_a
// used to get the obs owning a datablock
-struct DagNodeQueue *get_obparents(struct DagForest *dag, void *ob){
+DagNodeQueue *get_obparents(struct DagForest *dag, void *ob)
+{
DagNode *node, *node1;
DagNodeQueue *nqueue;
DagAdjList *itA;
@@ -1491,7 +1493,8 @@ struct DagNodeQueue *get_obparents(struct DagForest *dag, void *ob){
return nqueue;
}
-struct DagNodeQueue *get_first_ancestors(struct DagForest *dag, void *ob){
+DagNodeQueue *get_first_ancestors(struct DagForest *dag, void *ob)
+{
DagNode *node, *node1;
DagNodeQueue *nqueue;
DagAdjList *itA;
@@ -1519,7 +1522,8 @@ struct DagNodeQueue *get_first_ancestors(struct DagForest *dag, void *ob){
}
// standard DFS list
-struct DagNodeQueue *get_all_childs(struct DagForest *dag, void *ob){
+DagNodeQueue *get_all_childs(struct DagForest *dag, void *ob)
+{
DagNode *node;
DagNodeQueue *nqueue;
DagNodeQueue *retqueue;
@@ -2639,7 +2643,7 @@ void DAG_ids_flush_tagged(Main *bmain)
ListBase *lbarray[MAX_LIBARRAY];
Scene *sce;
unsigned int lay;
- int a, do_flush = 0;
+ int a, do_flush = FALSE;
dag_current_scene_layers(bmain, &sce, &lay);
@@ -2659,7 +2663,7 @@ void DAG_ids_flush_tagged(Main *bmain)
for (; id; id = id->next) {
if (id->flag & (LIB_ID_RECALC | LIB_ID_RECALC_DATA)) {
dag_id_flush_update(sce, id);
- do_flush = 1;
+ do_flush = TRUE;
}
}
}
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 9b172b50bca..2493507dca4 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -752,7 +752,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl
Curve *cu = ob->data;
ListBase *nurb = BKE_curve_nurbs_get(cu);
int numVerts = 0;
- const int editmode = (!forRender && cu->editnurb);
+ const int editmode = (!forRender && (cu->editnurb || cu->editfont));
ModifierApplyFlag app_flag = 0;
float (*originalVerts)[3] = NULL;
float (*deformedVerts)[3] = NULL;
@@ -793,9 +793,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl
md->scene = scene;
- if ((md->mode & required_mode) != required_mode)
- continue;
- if (mti->isDisabled && mti->isDisabled(md, forRender))
+ if (!modifier_isEnabled(scene, md, required_mode))
continue;
if (mti->type != eModifierTypeType_OnlyDeform)
continue;
@@ -867,7 +865,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba
Curve *cu = ob->data;
ListBase *nurb = BKE_curve_nurbs_get(cu);
int required_mode = 0, totvert = 0;
- int editmode = (!forRender && cu->editnurb);
+ int editmode = (!forRender && (cu->editnurb || cu->editfont));
DerivedMesh *dm = NULL, *ndm;
float (*vertCos)[3] = NULL;
int useCache = !forRender;
@@ -899,13 +897,12 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba
md->scene = scene;
- if ((md->mode & required_mode) != required_mode)
- continue;
- if (mti->isDisabled && mti->isDisabled(md, forRender))
+ if (!modifier_isEnabled(scene, md, required_mode))
continue;
if (mti->type == eModifierTypeType_OnlyDeform ||
- (mti->type == eModifierTypeType_DeformOrConstruct && !dm)) {
+ (mti->type == eModifierTypeType_DeformOrConstruct && !dm))
+ {
if (editmode)
appf |= MOD_APPLY_USECACHE;
if (dm) {
@@ -1095,7 +1092,7 @@ static void curve_calc_orcodm(Scene *scene, Object *ob, DerivedMesh *derivedFina
ModifierData *pretessellatePoint;
Curve *cu = ob->data;
int required_mode;
- int editmode = (!forRender && cu->editnurb);
+ int editmode = (!forRender && (cu->editnurb || cu->editfont));
DerivedMesh *ndm, *orcodm = NULL;
const ModifierApplyFlag app_flag = forRender ? MOD_APPLY_RENDER : 0;
@@ -1118,9 +1115,7 @@ static void curve_calc_orcodm(Scene *scene, Object *ob, DerivedMesh *derivedFina
md->scene = scene;
- if ((md->mode & required_mode) != required_mode)
- continue;
- if (mti->isDisabled && mti->isDisabled(md, forRender))
+ if (!modifier_isEnabled(scene, md, required_mode))
continue;
if (mti->type != eModifierTypeType_Constructive)
continue;
diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c
index 2a2451c4ac9..eb5e4e4f8b5 100644
--- a/source/blender/blenkernel/intern/dynamicpaint.c
+++ b/source/blender/blenkernel/intern/dynamicpaint.c
@@ -259,7 +259,8 @@ int dynamicPaint_surfaceHasColorPreview(DynamicPaintSurface *surface)
}
/* get currently active surface (in user interface) */
-struct DynamicPaintSurface *get_activeSurface(DynamicPaintCanvasSettings *canvas){
+DynamicPaintSurface *get_activeSurface(DynamicPaintCanvasSettings *canvas)
+{
DynamicPaintSurface *surface = canvas->surfaces.first;
int i;
@@ -275,12 +276,12 @@ struct DynamicPaintSurface *get_activeSurface(DynamicPaintCanvasSettings *canvas
void dynamicPaint_resetPreview(DynamicPaintCanvasSettings *canvas)
{
DynamicPaintSurface *surface = canvas->surfaces.first;
- int done = 0;
+ int done = FALSE;
for (; surface; surface = surface->next) {
if (!done && dynamicPaint_surfaceHasColorPreview(surface)) {
surface->flags |= MOD_DPAINT_PREVIEW;
- done = 1;
+ done = TRUE;
}
else
surface->flags &= ~MOD_DPAINT_PREVIEW;
@@ -574,16 +575,16 @@ static int surface_getBrushFlags(DynamicPaintSurface *surface, Scene *scene)
brushObj = NULL;
/* select object */
- if (surface->brush_group) {
+ if (surface->brush_group) {
if (go->ob) brushObj = go->ob;
- }
- else
+ }
+ else
brushObj = base->object;
if (!brushObj) {
if (surface->brush_group) go = go->next;
else base = base->next;
- continue;
+ continue;
}
if (surface->brush_group)
@@ -993,7 +994,8 @@ void dynamicPaint_Modifier_free(struct DynamicPaintModifierData *pmd)
* If scene is null, frame range of 1-250 is used
* A pointer to this surface is returned
*/
-struct DynamicPaintSurface *dynamicPaint_createNewSurface(DynamicPaintCanvasSettings *canvas, Scene *scene){
+DynamicPaintSurface *dynamicPaint_createNewSurface(DynamicPaintCanvasSettings *canvas, Scene *scene)
+{
DynamicPaintSurface *surface = MEM_callocN(sizeof(DynamicPaintSurface), "DynamicPaintSurface");
if (!surface) return NULL;
@@ -1594,9 +1596,10 @@ static void dynamicPaint_applySurfaceDisplace(DynamicPaintSurface *surface, Deri
/*
* Apply canvas data to the object derived mesh
*/
-static struct DerivedMesh *dynamicPaint_Modifier_apply(DynamicPaintModifierData *pmd,
- Object *ob,
- DerivedMesh *dm){
+struct DerivedMesh *dynamicPaint_Modifier_apply(DynamicPaintModifierData *pmd,
+ Object *ob,
+ DerivedMesh *dm)
+{
DerivedMesh *result = CDDM_copy(dm);
if (pmd->canvas && !(pmd->canvas->flags & MOD_DPAINT_BAKING)) {
@@ -1901,7 +1904,8 @@ static void dynamicPaint_frameUpdate(DynamicPaintModifierData *pmd, Scene *scene
}
/* Modifier call. Processes dynamic paint modifier step. */
-struct DerivedMesh *dynamicPaint_Modifier_do(DynamicPaintModifierData *pmd, Scene *scene, Object *ob, DerivedMesh *dm){
+DerivedMesh *dynamicPaint_Modifier_do(DynamicPaintModifierData *pmd, Scene *scene, Object *ob, DerivedMesh *dm)
+{
/* For now generate tessfaces in every case
* XXX - move/remove when most of dpaint functions are converted to use bmesh types */
DM_ensure_tessface(dm);
@@ -2031,7 +2035,8 @@ static int dynamicPaint_findNeighbourPixel(PaintUVPoint *tempPoints, DerivedMesh
int v4 = (mface[i].v4) ? mface[i].v4 : -1;
if ((e1_index == mface[i].v1 || e1_index == mface[i].v2 || e1_index == mface[i].v3 || e1_index == v4) &&
- (e2_index == mface[i].v1 || e2_index == mface[i].v2 || e2_index == mface[i].v3 || e2_index == v4)) {
+ (e2_index == mface[i].v1 || e2_index == mface[i].v2 || e2_index == mface[i].v3 || e2_index == v4))
+ {
if (i == cPoint->face_index) continue;
target_face = i;
@@ -3507,7 +3512,8 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface,
}
/* get final object space depth */
else if (surface->type == MOD_DPAINT_SURFACE_T_DISPLACE ||
- surface->type == MOD_DPAINT_SURFACE_T_WAVE) {
+ surface->type == MOD_DPAINT_SURFACE_T_WAVE)
+ {
depth /= bData->bNormal[index].normal_scale * total_sample;
}
@@ -3565,7 +3571,7 @@ static int dynamicPaint_paintParticles(DynamicPaintSurface *surface,
tree = BLI_kdtree_new(psys->totpart);
/* loop through particles and insert valid ones to the tree */
- for (p = 0, pa = psys->particles; p < psys->totpart; p++, pa++) {
+ for (p = 0, pa = psys->particles; p < psys->totpart; p++, pa++) {
/* Proceed only if particle is active */
if (pa->alive == PARS_UNBORN && (part->flag & PART_UNBORN) == 0) continue;
@@ -3799,8 +3805,8 @@ static int dynamicPaint_paintSinglePoint(DynamicPaintSurface *surface, float *po
/* Smooth range or color ramp */
if (brush->proximity_falloff == MOD_DPAINT_PRFALL_SMOOTH ||
- brush->proximity_falloff == MOD_DPAINT_PRFALL_RAMP) {
-
+ brush->proximity_falloff == MOD_DPAINT_PRFALL_RAMP)
+ {
strength = 1.0f - distance / brush_radius;
CLAMP(strength, 0.0f, 1.0f);
}
@@ -3851,7 +3857,8 @@ static int dynamicPaint_paintSinglePoint(DynamicPaintSurface *surface, float *po
if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) {
if (brush->proximity_falloff == MOD_DPAINT_PRFALL_RAMP &&
- !(brush->flags & MOD_DPAINT_RAMP_ALPHA)) {
+ !(brush->flags & MOD_DPAINT_RAMP_ALPHA))
+ {
paintColor[0] = colorband[0];
paintColor[1] = colorband[1];
paintColor[2] = colorband[2];
@@ -4396,7 +4403,8 @@ void dynamicPaint_doWaveStep(DynamicPaintSurface *surface, float timescale)
avg_dist = (numOfN) ? avg_dist / numOfN : 0.0f;
if (surface->flags & MOD_DPAINT_WAVE_OPEN_BORDERS &&
- sData->adj_data->flags[index] & ADJ_ON_MESH_EDGE) {
+ sData->adj_data->flags[index] & ADJ_ON_MESH_EDGE)
+ {
/* if open borders, apply a fake height to keep waves going on */
avg_height = (numOfRN) ? avg_height / numOfRN : 0.0f;
wPoint->height = (dt * wave_speed * avg_height + wPoint->height * avg_dist) / (avg_dist + dt * wave_speed);
@@ -4503,7 +4511,8 @@ static void dynamicPaint_surfacePreStep(DynamicPaintSurface *surface, float time
/* dissolve for float types */
else if (surface->flags & MOD_DPAINT_DISSOLVE &&
(surface->type == MOD_DPAINT_SURFACE_T_DISPLACE ||
- surface->type == MOD_DPAINT_SURFACE_T_WEIGHT)) {
+ surface->type == MOD_DPAINT_SURFACE_T_WEIGHT))
+ {
float *point = &((float *)sData->type_data)[index];
/* log or linear */
@@ -4723,7 +4732,8 @@ static int dynamicPaint_generateBakeData(DynamicPaintSurface *surface, Scene *sc
/* Prepare surface normal directional scale to easily convert
* brush intersection amount between global and local space */
if (surface->type == MOD_DPAINT_SURFACE_T_DISPLACE ||
- surface->type == MOD_DPAINT_SURFACE_T_WAVE) {
+ surface->type == MOD_DPAINT_SURFACE_T_WAVE)
+ {
float temp_nor[3];
if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) {
normal_short_to_float_v3(temp_nor, mvert[index].no);
@@ -4801,17 +4811,17 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
while (base || go) {
brushObj = NULL;
/* select object */
- if (surface->brush_group) {
+ if (surface->brush_group) {
if (go->ob) brushObj = go->ob;
- }
- else
+ }
+ else
brushObj = base->object;
- if (!brushObj) {
+ if (!brushObj) {
/* skip item */
if (surface->brush_group) go = go->next;
else base = base->next;
- continue;
+ continue;
}
/* next item */
@@ -4852,7 +4862,8 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
/* Particle brush: */
if (brush->collision == MOD_DPAINT_COL_PSYS) {
if (brush && brush->psys && brush->psys->part && brush->psys->part->type == PART_EMITTER &&
- psys_check_enabled(brushObj, brush->psys)) {
+ psys_check_enabled(brushObj, brush->psys))
+ {
/* Paint a particle system */
BKE_animsys_evaluate_animdata(scene, &brush->psys->part->id, brush->psys->part->adt, BKE_scene_frame_get(scene), ADT_RECALC_ANIM);
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index 3e25281dd08..e0c3b257273 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -980,9 +980,9 @@ static void emDM_drawMappedFacesGLSL(DerivedMesh *dm,
DMVertexAttribs attribs;
GPUVertexAttribs gattribs;
- int i, b, matnr, new_matnr, dodraw;
+ int i, b, matnr, new_matnr, do_draw;
- dodraw = 0;
+ do_draw = FALSE;
matnr = -1;
memset(&attribs, 0, sizeof(attribs));
@@ -1026,12 +1026,12 @@ static void emDM_drawMappedFacesGLSL(DerivedMesh *dm,
new_matnr = efa->mat_nr + 1;
if (new_matnr != matnr) {
- dodraw = setMaterial(matnr = new_matnr, &gattribs);
- if (dodraw)
+ do_draw = setMaterial(matnr = new_matnr, &gattribs);
+ if (do_draw)
DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs);
}
- if (dodraw) {
+ if (do_draw) {
glBegin(GL_TRIANGLES);
if (!drawSmooth) {
if (vertexCos) glNormal3fv(bmdm->polyNos[BM_elem_index_get(efa)]);
@@ -1688,6 +1688,20 @@ DerivedMesh *getEditDerivedBMesh(BMEditMesh *em,
}
}
+ if (CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ BMIter iter;
+ BMVert *eve;
+ int i;
+
+ DM_add_vert_layer(&bmdm->dm, CD_MVERT_SKIN, CD_CALLOC, NULL);
+
+ BM_ITER_MESH_INDEX (eve, &iter, bmdm->tc->bm, BM_VERTS_OF_MESH, i) {
+ DM_set_vert_data(&bmdm->dm, i, CD_MVERT_SKIN,
+ CustomData_bmesh_get(&bm->vdata, eve->head.data,
+ CD_MVERT_SKIN));
+ }
+ }
+
if (vertexCos) {
BMFace *efa;
BMVert *eve;
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index 9d878cd185f..2a0f49262bc 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -505,7 +505,7 @@ void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, floa
BezTriple *bezt;
for (bezt = fcu->bezt, i = 0; i < fcu->totvert; bezt++, i++) {
- if ((do_sel_only == 0) || BEZSELECTED(bezt)) {
+ if ((do_sel_only == FALSE) || BEZSELECTED(bezt)) {
if (bezt->vec[1][1] < yminv)
yminv = bezt->vec[1][1];
if (bezt->vec[1][1] > ymaxv)
@@ -1241,7 +1241,7 @@ static float dvar_eval_transChan(ChannelDriver *driver, DriverVar *dvar)
bPoseChannel *pchan;
float mat[4][4];
float oldEul[3] = {0.0f, 0.0f, 0.0f};
- short useEulers = 0, rotOrder = ROT_MODE_EUL;
+ short use_eulers = FALSE, rot_order = ROT_MODE_EUL;
/* check if this target has valid data */
if ((ob == NULL) || (GS(ob->id.name) != ID_OB)) {
@@ -1263,8 +1263,8 @@ static float dvar_eval_transChan(ChannelDriver *driver, DriverVar *dvar)
/* bone */
if (pchan->rotmode > 0) {
copy_v3_v3(oldEul, pchan->eul);
- rotOrder = pchan->rotmode;
- useEulers = 1;
+ rot_order = pchan->rotmode;
+ use_eulers = TRUE;
}
if (dtar->flag & DTAR_FLAG_LOCALSPACE) {
@@ -1290,8 +1290,8 @@ static float dvar_eval_transChan(ChannelDriver *driver, DriverVar *dvar)
/* object */
if (ob->rotmode > 0) {
copy_v3_v3(oldEul, ob->rot);
- rotOrder = ob->rotmode;
- useEulers = 1;
+ rot_order = ob->rotmode;
+ use_eulers = TRUE;
}
if (dtar->flag & DTAR_FLAG_LOCALSPACE) {
@@ -1334,9 +1334,9 @@ static float dvar_eval_transChan(ChannelDriver *driver, DriverVar *dvar)
*/
float eul[3];
- mat4_to_eulO(eul, rotOrder, mat);
+ mat4_to_eulO(eul, rot_order, mat);
- if (useEulers) {
+ if (use_eulers) {
compatible_eul(eul, oldEul);
}
diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c
index fda078f5c42..061530965ef 100644
--- a/source/blender/blenkernel/intern/font.c
+++ b/source/blender/blenkernel/intern/font.c
@@ -520,7 +520,8 @@ static float char_width(Curve *cu, VChar *che, CharInfo *info)
}
}
-struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int mode){
+struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int mode)
+{
VFont *vfont, *oldvfont;
VFontData *vfd = NULL;
Curve *cu;
@@ -633,7 +634,7 @@ makebreak:
* But if the font is FO_BUILTIN_NAME then do not try loading since
* whole font is in the memory already
*/
- if (che == NULL && strcmp(vfont->name, FO_BUILTIN_NAME)) {
+ if (che == NULL && strcmp(vfont->name, FO_BUILTIN_NAME)) {
BLI_vfontchar_from_freetypefont(vfont, ascii);
}
@@ -704,9 +705,10 @@ makebreak:
linedata3[lnr] = tb->w / cu->fsize;
linedata4[lnr] = wsnr;
- if ( (tb->h != 0.0f) &&
- ((-(yof - (tb->y / cu->fsize))) > ((tb->h / cu->fsize) - (linedist * cu->fsize)) - cu->yof) &&
- (cu->totbox > (curbox + 1)) ) {
+ if ((tb->h != 0.0f) &&
+ ((-(yof - (tb->y / cu->fsize))) > ((tb->h / cu->fsize) - (linedist * cu->fsize)) - cu->yof) &&
+ (cu->totbox > (curbox + 1)) )
+ {
maxlen = 0;
tb++;
curbox++;
@@ -801,8 +803,7 @@ makebreak:
ct++;
}
}
- else if ((cu->spacemode == CU_FLUSH) &&
- (cu->tb[0].w != 0.0f)) {
+ else if ((cu->spacemode == CU_FLUSH) && (cu->tb[0].w != 0.0f)) {
for (i = 0; i < lnr; i++)
if (linedata2[i] > 1)
linedata[i] = (linedata3[i] - linedata[i]) / (linedata2[i] - 1);
@@ -828,7 +829,8 @@ makebreak:
}
if ((mem[j] != '\r') && (mem[j] != '\n') &&
- ((chartransdata[j].dobreak != 0))) {
+ ((chartransdata[j].dobreak != 0)))
+ {
if (mem[i] == ' ') curofs += (linedata3[ct->linenr] - linedata[ct->linenr]) / linedata4[ct->linenr];
ct->xof += curofs;
}
@@ -1028,9 +1030,9 @@ makebreak:
if ((info->flag & CU_CHINFO_UNDERLINE) && (cu->textoncurve == NULL) && (cha != '\n') && (cha != '\r')) {
float ulwidth, uloverlap = 0.0f;
- if ( (i < (slen - 1)) && (mem[i + 1] != '\n') && (mem[i + 1] != '\r') &&
- ((mem[i + 1] != ' ') || (custrinfo[i + 1].flag & CU_CHINFO_UNDERLINE)) && ((custrinfo[i + 1].flag & CU_CHINFO_WRAP) == 0)
- ) {
+ if ((i < (slen - 1)) && (mem[i + 1] != '\n') && (mem[i + 1] != '\r') &&
+ ((mem[i + 1] != ' ') || (custrinfo[i + 1].flag & CU_CHINFO_UNDERLINE)) && ((custrinfo[i + 1].flag & CU_CHINFO_WRAP) == 0))
+ {
uloverlap = xtrax + 0.1f;
}
// Find the character, the characters has to be in the memory already
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c
index 2fc436ab4de..8f077ab107c 100644
--- a/source/blender/blenkernel/intern/group.c
+++ b/source/blender/blenkernel/intern/group.c
@@ -300,7 +300,7 @@ static void group_replaces_nla(Object *parent, Object *target, char mode)
{
static ListBase nlastrips = {NULL, NULL};
static bAction *action = NULL;
- static int done = 0;
+ static int done = FALSE;
bActionStrip *strip, *nstrip;
if (mode == 's') {
@@ -314,7 +314,7 @@ static void group_replaces_nla(Object *parent, Object *target, char mode)
action = target->action;
target->action = NULL;
target->nlaflag |= OB_NLA_OVERRIDE;
- done = 1;
+ done = TRUE;
}
nstrip = MEM_dupallocN(strip);
BLI_addtail(&target->nlastrips, nstrip);
@@ -329,7 +329,7 @@ static void group_replaces_nla(Object *parent, Object *target, char mode)
nlastrips.first = nlastrips.last = NULL; /* not needed, but yah... :) */
action = NULL;
- done = 0;
+ done = FALSE;
}
}
}
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 6ee15409857..797a2093729 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -505,6 +505,20 @@ void BKE_image_merge(Image *dest, Image *source)
}
}
+/* note, we could be clever and scale all imbuf's but since some are mipmaps its not so simple */
+void BKE_image_scale(Image *image, int width, int height)
+{
+ ImBuf *ibuf;
+ void *lock;
+
+ ibuf = BKE_image_acquire_ibuf(image, NULL, &lock);
+
+ IMB_scaleImBuf(ibuf, width, height);
+ ibuf->userflags |= IB_BITMAPDIRTY;
+
+ BKE_image_release_ibuf(image, lock);
+}
+
Image *BKE_image_load(const char *filepath)
{
Image *ima;
@@ -1729,7 +1743,8 @@ void BKE_makepicstring(char *string, const char *base, const char *relbase, int
}
/* used by sequencer too */
-struct anim *openanim(const char *name, int flags, int streamindex){
+struct anim *openanim(const char *name, int flags, int streamindex)
+{
struct anim *anim;
struct ImBuf *ibuf;
diff --git a/source/blender/blenkernel/intern/image_gen.c b/source/blender/blenkernel/intern/image_gen.c
index 4579e6f92aa..f135bebb8ce 100644
--- a/source/blender/blenkernel/intern/image_gen.c
+++ b/source/blender/blenkernel/intern/image_gen.c
@@ -123,11 +123,11 @@ void BKE_image_buf_fill_checker(unsigned char *rect, float *rect_float, int widt
h = 0.125f * floorf(x / checkerwidth);
if ((fabs((x % checkerwidth) - (checkerwidth / 2)) < 4) &&
- (fabs((y % checkerwidth) - (checkerwidth / 2)) < 4)) {
-
+ (fabs((y % checkerwidth) - (checkerwidth / 2)) < 4))
+ {
if ((fabs((x % checkerwidth) - (checkerwidth / 2)) < 1) ||
- (fabs((y % checkerwidth) - (checkerwidth / 2)) < 1)) {
-
+ (fabs((y % checkerwidth) - (checkerwidth / 2)) < 1))
+ {
hue = fmodf(fabs(h - hoffs), 1.0f);
hsv_to_rgb(hue, s, v, &r, &g, &b);
@@ -250,7 +250,7 @@ static void checker_board_grid_fill(unsigned char *rect, float *rect_float, int
int x, y;
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
- if (((y % 32) == 0) || ((x % 32) == 0) || x == 0) {
+ if (((y % 32) == 0) || ((x % 32) == 0) || x == 0) {
if (rect) {
rect[0] = BLEND_CHAR(rect[0], blend);
rect[1] = BLEND_CHAR(rect[1], blend);
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index f4ec223a2fe..deb294a6738 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -271,7 +271,7 @@ void sort_keys(Key *key)
/**************** do the key ****************/
-void key_curve_position_weights(float t, float *data, int type)
+void key_curve_position_weights(float t, float data[4], int type)
{
float t2, t3, fc;
@@ -303,7 +303,7 @@ void key_curve_position_weights(float t, float *data, int type)
}
/* first derivative */
-void key_curve_tangent_weights(float t, float *data, int type)
+void key_curve_tangent_weights(float t, float data[4], int type)
{
float t2, fc;
@@ -333,7 +333,7 @@ void key_curve_tangent_weights(float t, float *data, int type)
}
/* second derivative */
-void key_curve_normal_weights(float t, float *data, int type)
+void key_curve_normal_weights(float t, float data[4], int type)
{
float fc;
@@ -359,11 +359,11 @@ void key_curve_normal_weights(float t, float *data, int type)
}
}
-static int setkeys(float fac, ListBase *lb, KeyBlock *k[], float *t, int cycl)
+static int setkeys(float fac, ListBase *lb, KeyBlock *k[], float t[4], int cycl)
{
/* return 1 means k[2] is the position, return 0 means interpolate */
KeyBlock *k1, *firstkey;
- float d, dpos, ofs = 0, lastpos, temp, fval[4];
+ float d, dpos, ofs = 0, lastpos;
short bsplinetype;
firstkey = lb->first;
@@ -467,17 +467,12 @@ static int setkeys(float fac, ListBase *lb, KeyBlock *k[], float *t, int cycl)
}
/* interpolation */
-
key_curve_position_weights(d, t, k[1]->type);
if (k[1]->type != k[2]->type) {
- key_curve_position_weights(d, fval, k[2]->type);
-
- temp = 1.0f - d;
- t[0] = temp * t[0] + d * fval[0];
- t[1] = temp * t[1] + d * fval[1];
- t[2] = temp * t[2] + d * fval[2];
- t[3] = temp * t[3] + d * fval[3];
+ float t_other[4];
+ key_curve_position_weights(d, t_other, k[2]->type);
+ interp_v4_v4v4(t, t, t_other, d);
}
return 0;
@@ -721,7 +716,6 @@ void do_rel_key(const int start, int end, const int tot, char *basispoin, Key *k
KeyBlock *kb;
int *ofsp, ofs[3], elemsize, b;
char *cp, *poin, *reffrom, *from, elemstr[8];
- char *freefrom, *freereffrom;
int poinsize;
/* currently always 0, in future key_pointer_size may assign */
@@ -754,6 +748,7 @@ void do_rel_key(const int start, int end, const int tot, char *basispoin, Key *k
if (!(kb->flag & KEYBLOCK_MUTE) && icuval != 0.0f && kb->totelem == tot) {
KeyBlock *refb;
float weight, *weights = kb->weights;
+ char *freefrom = NULL, *freereffrom = NULL;
/* reference now can be any block */
refb = BLI_findlink(&key->block, kb->relative);
@@ -1260,7 +1255,7 @@ static void do_latt_key(Scene *scene, Object *ob, Key *key, char *out, const int
float t[4];
int flag;
- if (key->slurph && key->type != KEY_RELATIVE) {
+ if (key->slurph && key->type != KEY_RELATIVE) {
const float ctime_scaled = key->ctime / 100.0f;
float delta = (float)key->slurph / tot;
float cfra = (float)scene->r.cfra;
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 6a69ffb474a..15db290ff14 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -658,13 +658,16 @@ void curve_deform_verts(Scene *scene, Object *cuOb, Object *target,
*/
if (target && target->type == OB_MESH) {
/* if there's derived data without deformverts, don't use vgroups */
- if (dm && !dm->getVertData(dm, 0, CD_MDEFORMVERT))
- use_vgroups = 0;
- else
- use_vgroups = 1;
+ if (dm) {
+ use_vgroups = (dm->getVertData(dm, 0, CD_MDEFORMVERT) != NULL);
+ }
+ else {
+ Mesh *me = target->data;
+ use_vgroups = (me->dvert != NULL);
+ }
}
else {
- use_vgroups = 0;
+ use_vgroups = FALSE;
}
if (vgroup && vgroup[0] && use_vgroups) {
@@ -801,13 +804,16 @@ void lattice_deform_verts(Object *laOb, Object *target, DerivedMesh *dm,
*/
if (target && target->type == OB_MESH) {
/* if there's derived data without deformverts, don't use vgroups */
- if (dm && !dm->getVertData(dm, 0, CD_MDEFORMVERT))
- use_vgroups = 0;
- else
- use_vgroups = 1;
+ if (dm) {
+ use_vgroups = (dm->getVertData(dm, 0, CD_MDEFORMVERT) != NULL);
+ }
+ else {
+ Mesh *me = target->data;
+ use_vgroups = (me->dvert != NULL);
+ }
}
else {
- use_vgroups = 0;
+ use_vgroups = FALSE;
}
if (vgroup && vgroup[0] && use_vgroups) {
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index 7da0661fef6..bef5f2e18a3 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -351,7 +351,7 @@ void BKE_mball_texspace_calc(Object *ob)
DispList *dl;
BoundBox *bb;
float *data, min[3], max[3] /*, loc[3], size[3] */;
- int tot, doit = 0;
+ int tot, do_it = FALSE;
if (ob->bb == NULL) ob->bb = MEM_callocN(sizeof(BoundBox), "mb boundbox");
bb = ob->bb;
@@ -364,7 +364,7 @@ void BKE_mball_texspace_calc(Object *ob)
dl = ob->disp.first;
while (dl) {
tot = dl->nr;
- if (tot) doit = 1;
+ if (tot) do_it = TRUE;
data = dl->verts;
while (tot--) {
/* Also weird... but longer. From utildefines. */
@@ -374,7 +374,7 @@ void BKE_mball_texspace_calc(Object *ob)
dl = dl->next;
}
- if (!doit) {
+ if (!do_it) {
min[0] = min[1] = min[2] = -1.0f;
max[0] = max[1] = max[2] = 1.0f;
}
@@ -1135,11 +1135,11 @@ static int otherface(int edge, int face)
static void makecubetable(void)
{
- static int isdone = 0;
+ static int is_done = FALSE;
int i, e, c, done[12], pos[8];
- if (isdone) return;
- isdone = 1;
+ if (is_done) return;
+ is_done = TRUE;
for (i = 0; i < 256; i++) {
for (e = 0; e < 12; e++) done[e] = 0;
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 7a5c43b28f8..9eb74986b29 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -50,6 +50,7 @@
#include "BLI_math.h"
#include "BLI_edgehash.h"
#include "BLI_scanfill.h"
+#include "BLI_array.h"
#include "BKE_animsys.h"
#include "BKE_main.h"
@@ -70,11 +71,6 @@
#include "BKE_tessmesh.h"
#include "BLI_edgehash.h"
-#include "BLI_blenlib.h"
-#include "BLI_math.h"
-#include "BLI_array.h"
-#include "BLI_edgehash.h"
-
#include "bmesh.h"
enum {
@@ -88,7 +84,7 @@ enum {
MESHCMP_POLYMISMATCH,
MESHCMP_EDGEUNKNOWN,
MESHCMP_VERTCOMISMATCH,
- MESHCMP_CDLAYERS_MISMATCH,
+ MESHCMP_CDLAYERS_MISMATCH
};
static const char *cmpcode_to_str(int code)
@@ -812,8 +808,8 @@ int test_index_face(MFace *mface, CustomData *fdata, int mfindex, int nr)
mface->v4 == mface->v1 ||
/* across the face */
mface->v1 == mface->v3 ||
- mface->v2 == mface->v4
- ) {
+ mface->v2 == mface->v4)
+ {
return 0;
}
}
@@ -3000,6 +2996,18 @@ int poly_get_adj_loops_from_vert(unsigned adj_r[3], const MPoly *poly,
return corner;
}
+/* Return the index of the edge vert that is not equal to 'v'. If
+ * neither edge vertex is equal to 'v', returns -1. */
+int BKE_mesh_edge_other_vert(const MEdge *e, int v)
+{
+ if (e->v1 == v)
+ return e->v2;
+ else if (e->v2 == v)
+ return e->v1;
+ else
+ return -1;
+}
+
/* update the hide flag for edges and faces from the corresponding
* flag in verts */
void BKE_mesh_flush_hidden_from_verts(const MVert *mvert,
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c
index 1645a8c9c9b..a60bb98ac18 100644
--- a/source/blender/blenkernel/intern/mesh_validate.c
+++ b/source/blender/blenkernel/intern/mesh_validate.c
@@ -667,11 +667,11 @@ void BKE_mesh_calc_edges(Mesh *mesh, int update)
memset(&edata, 0, sizeof(edata));
CustomData_add_layer(&edata, CD_MEDGE, CD_CALLOC, NULL, totedge);
- ehi = BLI_edgehashIterator_new(eh);
med = CustomData_get_layer(&edata, CD_MEDGE);
- for (i = 0; !BLI_edgehashIterator_isDone(ehi);
- BLI_edgehashIterator_step(ehi), ++i, ++med) {
-
+ for (ehi = BLI_edgehashIterator_new(eh), i = 0;
+ BLI_edgehashIterator_isDone(ehi) == FALSE;
+ BLI_edgehashIterator_step(ehi), ++i, ++med)
+ {
if (update && (med_orig = BLI_edgehashIterator_getValue(ehi))) {
*med = *med_orig; /* copy from the original */
}
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 2159837c9a0..b4c30203000 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -250,8 +250,7 @@ int modifier_couldBeCage(struct Scene *scene, ModifierData *md)
int modifier_sameTopology(ModifierData *md)
{
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
- return ELEM3(mti->type, eModifierTypeType_OnlyDeform, eModifierTypeType_Nonconstructive,
- eModifierTypeType_NonGeometrical);
+ return ELEM(mti->type, eModifierTypeType_OnlyDeform, eModifierTypeType_NonGeometrical);
}
int modifier_nonGeometrical(ModifierData *md)
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c
index 952e87077dc..e0239cde86d 100644
--- a/source/blender/blenkernel/intern/movieclip.c
+++ b/source/blender/blenkernel/intern/movieclip.c
@@ -195,7 +195,7 @@ static ImBuf *movieclip_load_sequence_file(MovieClip *clip, MovieClipUser *user,
{
struct ImBuf *ibuf;
char name[FILE_MAX];
- int loadflag, use_proxy = 0;
+ int loadflag, use_proxy = FALSE;
use_proxy = (flag & MCLIP_USE_PROXY) && user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL;
if (use_proxy) {
@@ -540,10 +540,6 @@ static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *dist
{
ImBuf *undistibuf;
- /* XXX: because of #27997 do not use float buffers to undistort,
- * otherwise, undistorted proxy can be darker than it should */
- imb_freerectfloatImBuf(ibuf);
-
if (distortion)
undistibuf = BKE_tracking_distortion_exec(distortion, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1);
else
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 9bae9c81533..54edd7064a1 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -336,6 +336,7 @@ bNode *nodeAddNode(bNodeTree *ntree, struct bNodeTemplate *ntemp)
node->width= ntype->width;
node->miniwidth= 42.0f;
node->height= ntype->height;
+ node->color[0] = node->color[1] = node->color[2] = 0.608; /* default theme color */
node_add_sockets_from_type(ntree, node, ntype);
@@ -591,40 +592,49 @@ void nodeInternalRelink(bNodeTree *ntree, bNode *node)
BLI_freelistN(&intlinks);
}
-/* transforms node location to area coords */
-void nodeSpaceCoords(bNode *node, float *locx, float *locy)
+void nodeToView(bNode *node, float x, float y, float *rx, float *ry)
{
if (node->parent) {
- nodeSpaceCoords(node->parent, locx, locy);
- *locx += node->locx;
- *locy += node->locy;
+ nodeToView(node->parent, x + node->locx, y + node->locy, rx, ry);
}
else {
- *locx = node->locx;
- *locy = node->locy;
+ *rx = x + node->locx;
+ *ry = y + node->locy;
+ }
+}
+
+void nodeFromView(bNode *node, float x, float y, float *rx, float *ry)
+{
+ if (node->parent) {
+ nodeFromView(node->parent, x, y, rx, ry);
+ *rx -= node->locx;
+ *ry -= node->locy;
+ }
+ else {
+ *rx = x - node->locx;
+ *ry = y - node->locy;
}
}
void nodeAttachNode(bNode *node, bNode *parent)
{
- float parentx, parenty;
+ float locx, locy;
+ nodeToView(node, 0.0f, 0.0f, &locx, &locy);
node->parent = parent;
/* transform to parent space */
- nodeSpaceCoords(parent, &parentx, &parenty);
- node->locx -= parentx;
- node->locy -= parenty;
+ nodeFromView(parent, locx, locy, &node->locx, &node->locy);
}
void nodeDetachNode(struct bNode *node)
{
- float parentx, parenty;
+ float locx, locy;
if (node->parent) {
- /* transform to "global" (area) space */
- nodeSpaceCoords(node->parent, &parentx, &parenty);
- node->locx += parentx;
- node->locy += parenty;
+ /* transform to view space */
+ nodeToView(node, 0.0f, 0.0f, &locx, &locy);
+ node->locx = locx;
+ node->locy = locy;
node->parent = NULL;
}
}
@@ -1392,7 +1402,7 @@ static int node_get_deplist_recurs(bNode *node, bNode ***nsort)
bNodeSocket *sock;
int level = 0xFFF;
- node->done= 1;
+ node->done = TRUE;
/* check linked nodes */
for (sock= node->inputs.first; sock; sock= sock->next) {
@@ -1431,7 +1441,7 @@ void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***deplist, in
/* first clear data */
for (node= ntree->nodes.first; node; node= node->next) {
- node->done= 0;
+ node->done = FALSE;
(*totnodes)++;
}
if (*totnodes==0) {
@@ -1456,7 +1466,7 @@ static void ntree_update_node_level(bNodeTree *ntree)
/* first clear tag */
for (node= ntree->nodes.first; node; node= node->next) {
- node->done= 0;
+ node->done = FALSE;
}
/* recursive check */
@@ -1930,6 +1940,14 @@ static void registerCompositNodes(bNodeTreeType *ttype)
register_node_type_cmp_transform(ttype);
register_node_type_cmp_stabilize2d(ttype);
register_node_type_cmp_moviedistortion(ttype);
+
+ register_node_type_cmp_colorcorrection(ttype);
+ register_node_type_cmp_boxmask(ttype);
+ register_node_type_cmp_ellipsemask(ttype);
+ register_node_type_cmp_bokehimage(ttype);
+ register_node_type_cmp_bokehblur(ttype);
+ register_node_type_cmp_switch(ttype);
+
register_node_type_cmp_mask(ttype);
}
@@ -1971,6 +1989,7 @@ static void registerShaderNodes(bNodeTreeType *ttype)
register_node_type_sh_geometry(ttype);
register_node_type_sh_light_path(ttype);
register_node_type_sh_light_falloff(ttype);
+ register_node_type_sh_object_info(ttype);
register_node_type_sh_fresnel(ttype);
register_node_type_sh_layer_weight(ttype);
register_node_type_sh_tex_coord(ttype);
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 9000019ca2a..6b9253e9657 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1036,6 +1036,10 @@ static void copy_object_pose(Object *obn, Object *ob)
chan->flag &= ~(POSE_LOC | POSE_ROT | POSE_SIZE);
+ if (chan->custom) {
+ id_us_plus(&chan->custom->id);
+ }
+
for (con = chan->constraints.first; con; con = con->next) {
bConstraintTypeInfo *cti = constraint_get_typeinfo(con);
ListBase targets = {NULL, NULL};
@@ -1086,7 +1090,7 @@ Object *BKE_object_pose_armature_get(Object *ob)
return NULL;
}
-static void copy_object_transform(Object *ob_tar, Object *ob_src)
+void BKE_object_transform_copy(Object *ob_tar, const Object *ob_src)
{
copy_v3_v3(ob_tar->loc, ob_src->loc);
copy_v3_v3(ob_tar->rot, ob_src->rot);
@@ -1361,7 +1365,7 @@ void BKE_object_make_proxy(Object *ob, Object *target, Object *gob)
BKE_object_apply_mat4(ob, ob->obmat, FALSE, TRUE);
}
else {
- copy_object_transform(ob, target);
+ BKE_object_transform_copy(ob, target);
ob->parent = target->parent; /* libdata */
copy_m4_m4(ob->parentinv, target->parentinv);
}
@@ -2763,11 +2767,11 @@ int BKE_object_obdata_texspace_get(Object *ob, short **r_texflag, float **r_loc,
int BKE_boundbox_ray_hit_check(struct BoundBox *bb, float ray_start[3], float ray_normal[3])
{
static int triangle_indexes[12][3] = {{0, 1, 2}, {0, 2, 3},
- {3, 2, 6}, {3, 6, 7},
- {1, 2, 6}, {1, 6, 5},
- {5, 6, 7}, {4, 5, 7},
- {0, 3, 7}, {0, 4, 7},
- {0, 1, 5}, {0, 4, 5}};
+ {3, 2, 6}, {3, 6, 7},
+ {1, 2, 6}, {1, 6, 5},
+ {5, 6, 7}, {4, 5, 7},
+ {0, 3, 7}, {0, 4, 7},
+ {0, 1, 5}, {0, 4, 5}};
int result = 0;
int i;
@@ -3026,10 +3030,12 @@ int BKE_object_is_animated(Scene *scene, Object *ob)
ModifierData *md;
for (md = modifiers_getVirtualModifierList(ob); md; md = md->next)
- if(modifier_dependsOnTime(md) &&
- (modifier_isEnabled(scene, md, eModifierMode_Realtime) ||
- modifier_isEnabled(scene, md, eModifierMode_Render)))
+ if (modifier_dependsOnTime(md) &&
+ (modifier_isEnabled(scene, md, eModifierMode_Realtime) ||
+ modifier_isEnabled(scene, md, eModifierMode_Render)))
+ {
return 1;
+ }
return 0;
}
diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c
index b2096ca97d4..3d3a5ed7556 100644
--- a/source/blender/blenkernel/intern/ocean.c
+++ b/source/blender/blenkernel/intern/ocean.c
@@ -500,10 +500,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
// compute a new htilda
#pragma omp parallel for private(i, j)
- for (i = 0; i < o->_M; ++i) {
+ for (i = 0; i < o->_M; ++i) {
// note the <= _N/2 here, see the fftw doco about
// the mechanics of the complex->real fft storage
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex exp_param1;
fftw_complex exp_param2;
fftw_complex conj_param;
@@ -538,8 +538,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
{
if (o->_do_chop) {
// x displacement
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
fftw_complex minus_i;
@@ -560,8 +560,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
{
if (o->_do_chop) {
// z displacement
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
fftw_complex minus_i;
@@ -582,8 +582,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
{
if (o->_do_jacobian) {
// Jxx
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
//init_complex(mul_param, -scale, 0);
@@ -597,8 +597,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
}
fftw_execute(o->_Jxx_plan);
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j < o->_N; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j < o->_N; ++j) {
o->_Jxx[i * o->_N + j] += 1.0;
}
}
@@ -609,8 +609,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
{
if (o->_do_jacobian) {
// Jzz
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
//init_complex(mul_param, -scale, 0);
@@ -623,8 +623,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
}
}
fftw_execute(o->_Jzz_plan);
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j < o->_N; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j < o->_N; ++j) {
o->_Jzz[i * o->_N + j] += 1.0;
}
}
@@ -635,8 +635,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
{
if (o->_do_jacobian) {
// Jxz
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
//init_complex(mul_param, -scale, 0);
@@ -656,8 +656,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
{
// fft normals
if (o->_do_normals) {
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
init_complex(mul_param, 0.0, -1.0);
@@ -674,8 +674,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
#pragma omp section
{
if (o->_do_normals) {
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j <= o->_N / 2; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j <= o->_N / 2; ++j) {
fftw_complex mul_param;
init_complex(mul_param, 0.0, -1.0);
@@ -687,8 +687,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount
fftw_execute(o->_N_z_plan);
#if 0
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j < o->_N; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j < o->_N; ++j) {
o->_N_y[i * o->_N + j] = 1.0f / scale;
}
}
@@ -735,7 +735,8 @@ static void set_height_normalize_factor(struct Ocean *oc)
oc->normalize_factor = res;
}
-struct Ocean *BKE_add_ocean(void){
+struct Ocean *BKE_add_ocean(void)
+{
Ocean *oc = MEM_callocN(sizeof(Ocean), "ocean sim data");
BLI_rw_mutex_init(&oc->oceanmutex);
@@ -801,21 +802,21 @@ void BKE_init_ocean(struct Ocean *o, int M, int N, float Lx, float Lz, float V,
o->_kz[i] = -2.0f * (float)M_PI * ii / o->_Lz;
// pre-calculate the k matrix
- for (i = 0; i < o->_M; ++i)
- for (j = 0; j <= o->_N / 2; ++j)
+ for (i = 0; i < o->_M; ++i)
+ for (j = 0; j <= o->_N / 2; ++j)
o->_k[i * (1 + o->_N / 2) + j] = sqrt(o->_kx[i] * o->_kx[i] + o->_kz[j] * o->_kz[j]);
/*srand(seed);*/
BLI_srand(seed);
- for (i = 0; i < o->_M; ++i) {
- for (j = 0; j < o->_N; ++j) {
+ for (i = 0; i < o->_M; ++i) {
+ for (j = 0; j < o->_N; ++j) {
float r1 = gaussRand();
float r2 = gaussRand();
fftw_complex r1r2;
init_complex(r1r2, r1, r2);
- mul_complex_f(o->_h0[i * o->_N + j], r1r2, (float)(sqrt(Ph(o, o->_kx[i], o->_kz[j]) / 2.0f)));
+ mul_complex_f(o->_h0[i * o->_N + j], r1r2, (float)(sqrt(Ph(o, o->_kx[i], o->_kz[j]) / 2.0f)));
mul_complex_f(o->_h0_minus[i * o->_N + j], r1r2, (float)(sqrt(Ph(o, -o->_kx[i], -o->_kz[j]) / 2.0f)));
}
}
@@ -1079,7 +1080,8 @@ void BKE_ocean_cache_eval_ij(struct OceanCache *och, struct OceanResult *ocr, in
struct OceanCache *BKE_init_ocean_cache(const char *bakepath, const char *relbase,
int start, int end, float wave_scale,
- float chop_amount, float foam_coverage, float foam_fade, int resolution){
+ float chop_amount, float foam_coverage, float foam_fade, int resolution)
+{
OceanCache *och = MEM_callocN(sizeof(OceanCache), "ocean cache data");
och->bakepath = bakepath;
@@ -1251,13 +1253,13 @@ void BKE_bake_ocean(struct Ocean *o, struct OceanCache *och, void (*update_cb)(v
printf("Cannot save Displacement File Output to %s\n", string);
if (o->_do_jacobian) {
- cache_filename(string, och->bakepath, och->relbase, f, CACHE_TYPE_FOAM);
+ cache_filename(string, och->bakepath, och->relbase, f, CACHE_TYPE_FOAM);
if (0 == BKE_imbuf_write(ibuf_foam, string, &imf))
printf("Cannot save Foam File Output to %s\n", string);
}
if (o->_do_normals) {
- cache_filename(string, och->bakepath, och->relbase, f, CACHE_TYPE_NORMAL);
+ cache_filename(string, och->bakepath, och->relbase, f, CACHE_TYPE_NORMAL);
if (0 == BKE_imbuf_write(ibuf_normal, string, &imf))
printf("Cannot save Normal File Output to %s\n", string);
}
@@ -1360,9 +1362,10 @@ void BKE_ocean_cache_eval_ij(struct OceanCache *UNUSED(och), struct OceanResult
{
}
-struct OceanCache *BKE_init_ocean_cache(const char *UNUSED(bakepath), const char *UNUSED(relbase),
+OceanCache *BKE_init_ocean_cache(const char *UNUSED(bakepath), const char *UNUSED(relbase),
int UNUSED(start), int UNUSED(end), float UNUSED(wave_scale),
- float UNUSED(chop_amount), float UNUSED(foam_coverage), float UNUSED(foam_fade), int UNUSED(resolution)){
+ float UNUSED(chop_amount), float UNUSED(foam_coverage), float UNUSED(foam_fade), int UNUSED(resolution))
+{
OceanCache *och = MEM_callocN(sizeof(OceanCache), "ocean cache data");
return och;
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 8676a3e75a0..66dd23e76b9 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -614,7 +614,7 @@ typedef struct ParticleRenderData {
float viewmat[4][4], winmat[4][4];
int winx, winy;
- int dosimplify;
+ int do_simplify;
int timeoffset;
ParticleRenderElem *elems;
int *origindex;
@@ -821,7 +821,7 @@ int psys_render_simplify_distribution(ParticleThreadContext *ctx, int tot)
if (data->elems)
MEM_freeN(data->elems);
- data->dosimplify = 1;
+ data->do_simplify = TRUE;
data->elems = elems;
data->origindex = origindex;
@@ -960,7 +960,7 @@ int psys_render_simplify_params(ParticleSystem *psys, ChildParticle *cpa, float
return 0;
data = psys->renderdata;
- if (!data->dosimplify)
+ if (!data->do_simplify)
return 0;
b = (data->origindex) ? data->origindex[cpa->num] : cpa->num;
@@ -3465,7 +3465,7 @@ ModifierData *object_add_particle_system(Scene *scene, Object *ob, const char *n
md = modifier_new(eModifierType_ParticleSystem);
- if (name) BLI_strncpy(md->name, name, sizeof(md->name));
+ if (name) BLI_strncpy_utf8(md->name, name, sizeof(md->name));
else BLI_snprintf(md->name, sizeof(md->name), "ParticleSystem %i", BLI_countlist(&ob->particlesystem));
modifier_unique_name(&ob->modifiers, md);
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 5397b1729f9..9497a81d386 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -206,7 +206,7 @@ static void realloc_particles(ParticleSimulationData *sim, int new_totpart)
int totpart, totsaved = 0;
if (new_totpart<0) {
- if (part->distr==PART_DISTR_GRID && part->from != PART_FROM_VERT) {
+ if ((part->distr == PART_DISTR_GRID) && (part->from != PART_FROM_VERT)) {
totpart= part->grid_res;
totpart*=totpart*totpart;
}
@@ -4135,7 +4135,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra))
pa->dietime = sim->scene->r.efra + 1;
pa->lifetime = sim->scene->r.efra;
pa->alive = PARS_ALIVE;
- //if (a < 25) fprintf(stderr,"FSPARTICLE debug set %s , a%d = %f,%f,%f , life=%f\n", filename, a, pa->co[0],pa->co[1],pa->co[2], pa->lifetime );
+ //if (a < 25) fprintf(stderr,"FSPARTICLE debug set %s, a%d = %f,%f,%f, life=%f\n", filename, a, pa->co[0],pa->co[1],pa->co[2], pa->lifetime );
}
else {
// skip...
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index 69808db52b6..f676cfb2fb8 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -2732,7 +2732,7 @@ static void ptcache_dt_to_str(char *str, double dtime)
static void *ptcache_bake_thread(void *ptr)
{
- int usetimer = 0, sfra, efra;
+ int use_timer = FALSE, sfra, efra;
double stime, ptime, ctime, fetd;
char run[32], cur[32], etd[32];
@@ -2752,8 +2752,8 @@ static void *ptcache_bake_thread(void *ptr)
fetd = (ctime-ptime)*(efra-*data->cfra_ptr)/data->step;
- if (usetimer || fetd > 60.0) {
- usetimer = 1;
+ if (use_timer || fetd > 60.0) {
+ use_timer = TRUE;
ptcache_dt_to_str(cur, ctime-ptime);
ptcache_dt_to_str(run, ctime-stime);
@@ -2765,7 +2765,7 @@ static void *ptcache_bake_thread(void *ptr)
}
}
- if (usetimer) {
+ if (use_timer) {
ptcache_dt_to_str(run, PIL_check_seconds_timer()-stime);
printf("Bake %s %s (%i frames simulated).\n", (data->break_operation ? "canceled after" : "finished in"), run, *data->cfra_ptr-sfra);
}
@@ -3292,9 +3292,9 @@ void BKE_ptcache_update_info(PTCacheID *pid)
mb = (bytes > 1024.0f * 1024.0f);
BLI_snprintf(mem_info, sizeof(mem_info), "%i frames in memory (%.1f %s)",
- totframes,
- bytes / (mb ? 1024.0f * 1024.0f : 1024.0f),
- mb ? "Mb" : "kb");
+ totframes,
+ bytes / (mb ? 1024.0f * 1024.0f : 1024.0f),
+ mb ? "Mb" : "kb");
}
if (cache->flag & PTCACHE_OUTDATED) {
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 1f129b1c547..4dfa9f7e12e 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -44,7 +44,8 @@
#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
-#include "BLI_blenlib.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
#include "BKE_screen.h"
@@ -251,7 +252,7 @@ void BKE_spacedata_draw_locks(int set)
if (set)
art->do_lock = art->lock;
else
- art->do_lock = 0;
+ art->do_lock = FALSE;
}
}
}
diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c
index 9358b786472..fac74d27e0d 100644
--- a/source/blender/blenkernel/intern/seqeffects.c
+++ b/source/blender/blenkernel/intern/seqeffects.c
@@ -74,10 +74,11 @@ enum {
GlowA = 3
};
-static struct ImBuf *prepare_effect_imbufs(
- SeqRenderData context,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *prepare_effect_imbufs(
+ SeqRenderData context,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out;
int x = context.rectx;
int y = context.recty;
@@ -282,7 +283,7 @@ static ImBuf *IMB_cast_away_list(ImBuf *i)
return (ImBuf *) (((void **) i) + 2);
}
-static struct ImBuf *do_plugin_effect(
+static ImBuf *do_plugin_effect(
SeqRenderData context, Sequence *seq, float cfra,
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
@@ -290,9 +291,9 @@ static struct ImBuf *do_plugin_effect(
{
char *cp;
int float_rendering;
- int use_temp_bufs = 0; /* Are needed since blur.c (and maybe some other
- * old plugins) do very bad stuff
- * with imbuf-internals */
+ int use_temp_bufs = FALSE; /* Are needed since blur.c (and maybe some other
+ * old plugins) do very bad stuff
+ * with imbuf-internals */
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
int x = context.rectx;
@@ -318,7 +319,7 @@ static struct ImBuf *do_plugin_effect(
float_rendering = (out->rect_float != NULL);
if (seq->plugin->version <= 3 && float_rendering) {
- use_temp_bufs = 1;
+ use_temp_bufs = TRUE;
if (ibuf1) {
ibuf1 = IMB_dupImBuf(ibuf1);
@@ -541,7 +542,7 @@ static void do_alphaover_effect_float(float facf0, float facf1, int x, int y,
}
}
-static struct ImBuf *do_alphaover_effect(
+static ImBuf *do_alphaover_effect(
SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
@@ -719,7 +720,7 @@ static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y,
}
}
-static struct ImBuf *do_alphaunder_effect(
+static ImBuf *do_alphaunder_effect(
SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
@@ -845,7 +846,7 @@ static void do_cross_effect_float(float facf0, float facf1, int x, int y,
/* careful: also used by speed effect! */
-static struct ImBuf *do_cross_effect(
+static ImBuf *do_cross_effect(
SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
@@ -1111,7 +1112,7 @@ static void do_gammacross_effect_float(float facf0, float UNUSED(facf1),
}
}
-static struct ImBuf *do_gammacross_effect(
+static ImBuf *do_gammacross_effect(
SeqRenderData context,
Sequence *UNUSED(seq), float UNUSED(cfra),
float facf0, float facf1,
@@ -1231,11 +1232,12 @@ static void do_add_effect_float(float facf0, float facf1, int x, int y,
}
}
-static struct ImBuf *do_add_effect(SeqRenderData context,
- Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *do_add_effect(SeqRenderData context,
+ Sequence *UNUSED(seq), float UNUSED(cfra),
+ float facf0, float facf1,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
if (out->rect_float) {
@@ -1347,11 +1349,12 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y,
}
}
-static struct ImBuf *do_sub_effect(
- SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *do_sub_effect(
+ SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
+ float facf0, float facf1,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
if (out->rect_float) {
@@ -1560,7 +1563,7 @@ static void do_mul_effect_float(float facf0, float facf1, int x, int y,
}
}
-static struct ImBuf *do_mul_effect(
+static ImBuf *do_mul_effect(
SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
@@ -2008,11 +2011,12 @@ static void do_wipe_effect_float(Sequence *seq, float facf0, float UNUSED(facf1)
}
}
-static struct ImBuf *do_wipe_effect(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *do_wipe_effect(
+ SeqRenderData context, Sequence *seq, float UNUSED(cfra),
+ float facf0, float facf1,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
if (out->rect_float) {
@@ -2155,11 +2159,12 @@ static void do_transform(Scene *scene, Sequence *seq, float UNUSED(facf0), int x
}
-static struct ImBuf *do_transform_effect(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float UNUSED(facf1),
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *do_transform_effect(
+ SeqRenderData context, Sequence *seq, float UNUSED(cfra),
+ float facf0, float UNUSED(facf1),
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
do_transform(context.scene, seq, facf0,
@@ -2671,7 +2676,7 @@ static void do_glow_effect_float(Sequence *seq, int render_size, float facf0, fl
RVAddBitmaps_float(inbuf, outbuf, outbuf, x, y);
}
-static struct ImBuf *do_glow_effect(
+static ImBuf *do_glow_effect(
SeqRenderData context, Sequence *seq, float UNUSED(cfra),
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
@@ -2736,11 +2741,12 @@ static int early_out_color(struct Sequence *UNUSED(seq),
return -1;
}
-static struct ImBuf *do_solid_color(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *do_solid_color(
+ SeqRenderData context, Sequence *seq, float UNUSED(cfra),
+ float facf0, float facf1,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
SolidColorVars *cv = (SolidColorVars *)seq->effectdata;
@@ -2833,11 +2839,12 @@ static int early_out_multicam(struct Sequence *UNUSED(seq), float UNUSED(facf0),
return -1;
}
-static struct ImBuf *do_multicam(
- SeqRenderData context, Sequence *seq, float cfra,
- float UNUSED(facf0), float UNUSED(facf1),
- struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2),
- struct ImBuf *UNUSED(ibuf3)){
+static ImBuf *do_multicam(
+ SeqRenderData context, Sequence *seq, float cfra,
+ float UNUSED(facf0), float UNUSED(facf1),
+ struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2),
+ struct ImBuf *UNUSED(ibuf3))
+{
struct ImBuf *i;
struct ImBuf *out;
Editing *ed;
@@ -2887,8 +2894,8 @@ static int early_out_adjustment(struct Sequence *UNUSED(seq), float UNUSED(facf0
return -1;
}
-static struct ImBuf *do_adjustment_impl(SeqRenderData context, Sequence *seq,
- float cfra){
+static ImBuf *do_adjustment_impl(SeqRenderData context, Sequence *seq, float cfra)
+{
Editing *ed;
ListBase *seqbasep;
struct ImBuf *i = NULL;
@@ -2920,11 +2927,12 @@ static struct ImBuf *do_adjustment_impl(SeqRenderData context, Sequence *seq,
return i;
}
-static struct ImBuf *do_adjustment(
- SeqRenderData context, Sequence *seq, float cfra,
- float UNUSED(facf0), float UNUSED(facf1),
- struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2),
- struct ImBuf *UNUSED(ibuf3)){
+static ImBuf *do_adjustment(
+ SeqRenderData context, Sequence *seq, float cfra,
+ float UNUSED(facf0), float UNUSED(facf1),
+ struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2),
+ struct ImBuf *UNUSED(ibuf3))
+{
struct ImBuf *i = NULL;
struct ImBuf *out;
Editing *ed;
@@ -3214,13 +3222,14 @@ static void get_default_fac_fade(struct Sequence *seq, float cfra,
*facf1 /= seq->len;
}
-static struct ImBuf *do_overdrop_effect(SeqRenderData context,
- Sequence *UNUSED(seq),
- float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1,
- struct ImBuf *ibuf2,
- struct ImBuf *ibuf3){
+static ImBuf *do_overdrop_effect(SeqRenderData context,
+ Sequence *UNUSED(seq),
+ float UNUSED(cfra),
+ float facf0, float facf1,
+ struct ImBuf *ibuf1,
+ struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3)
+{
struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
int x = context.rectx;
int y = context.recty;
@@ -3250,7 +3259,8 @@ static struct ImBuf *do_overdrop_effect(SeqRenderData context,
return out;
}
-static struct SeqEffectHandle get_sequence_effect_impl(int seq_type){
+static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
+{
struct SeqEffectHandle rval;
int sequence_type = seq_type;
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 41858eeecb4..8fbb3ee9800 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -1448,7 +1448,8 @@ void seq_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_upd
100);
for (cfra = seq->startdisp + seq->startstill;
- cfra < seq->enddisp - seq->endstill; cfra++) {
+ cfra < seq->enddisp - seq->endstill; cfra++)
+ {
if (context->size_flags & IMB_PROXY_25) {
seq_proxy_build_frame(render_context, seq, cfra, 25);
}
@@ -1464,7 +1465,7 @@ void seq_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_upd
*progress = (float)cfra / (seq->enddisp - seq->endstill -
seq->startdisp + seq->startstill);
- *do_update = 1;
+ *do_update = TRUE;
if (*stop || G.afbreek)
break;
@@ -1675,7 +1676,8 @@ int input_have_to_preprocess(
float mul;
if (seq->flag & (SEQ_FILTERY | SEQ_USE_CROP | SEQ_USE_TRANSFORM | SEQ_FLIPX |
- SEQ_FLIPY | SEQ_USE_COLOR_BALANCE | SEQ_MAKE_PREMUL)) {
+ SEQ_FLIPY | SEQ_USE_COLOR_BALANCE | SEQ_MAKE_PREMUL))
+ {
return TRUE;
}
@@ -1762,8 +1764,10 @@ static ImBuf *input_preprocess(
}
}
- if (c.top + c.bottom >= ibuf->y || c.left + c.right >= ibuf->x ||
- t.xofs >= dx || t.yofs >= dy) {
+ if (c.top + c.bottom >= ibuf->y ||
+ c.left + c.right >= ibuf->x ||
+ t.xofs >= dx || t.yofs >= dy)
+ {
make_black_ibuf(ibuf);
}
else {
@@ -3168,7 +3172,7 @@ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag)
}
if (rightflag) {
- if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_final_left(seq, 0)) {
+ if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_final_left(seq, 0)) {
seq_tx_set_final_right(seq, seq_tx_get_final_left(seq, 0) + 1);
}
@@ -3508,7 +3512,8 @@ Sequence *seq_metastrip(ListBase *seqbase, Sequence *meta, Sequence *seq)
return meta;
}
else if (iseq->seqbase.first &&
- (rval = seq_metastrip(&iseq->seqbase, iseq, seq))) {
+ (rval = seq_metastrip(&iseq->seqbase, iseq, seq)))
+ {
return rval;
}
}
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 4b814a5b22b..51183511454 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -103,7 +103,7 @@ static void tend ( void )
{
QueryPerformanceCounter ( &liCurrentTime );
}
-static double tval( void )
+static double UNUSED_FUNCTION(tval)( void )
{
return ((double)( (liCurrentTime.QuadPart - liStartTime.QuadPart)* (double)1000.0/(double)liFrequency.QuadPart ));
}
@@ -120,7 +120,7 @@ static void tend ( void )
gettimeofday ( &_tend,&tz );
}
-static double tval( void )
+static double UNUSED_FUNCTION(tval)( void )
{
double t1, t2;
t1 = ( double ) _tstart.tv_sec*1000 + ( double ) _tstart.tv_usec/ ( 1000 );
diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c
index 1041fb12305..85027efa246 100644
--- a/source/blender/blenkernel/intern/softbody.c
+++ b/source/blender/blenkernel/intern/softbody.c
@@ -697,7 +697,7 @@ static void add_2nd_order_roller(Object *ob, float UNUSED(stiffness), int *count
if (bpo) {/* so now we have a 2nd order humpdidump */
for (c=bpo->nofsprings;c>0;c--) {
bs2 = sb->bspring + bpo->springs[c-1];
- if ((bs2->v1 != notthis) && (bs2->v1 > v0)) {
+ if ((bs2->v1 != notthis) && (bs2->v1 > v0)) {
(*counter)++;/*hit */
if (addsprings) {
bs3->v1= v0;
@@ -1685,7 +1685,7 @@ static void sb_sfesf_threads_run(Scene *scene, struct Object *ob, float timenow,
else
sb_threads[i].ifirst = 0;
sb_threads[i].do_effector = do_effector;
- sb_threads[i].do_deflector = 0;// not used here
+ sb_threads[i].do_deflector = FALSE;// not used here
sb_threads[i].fieldfactor = 0.0f;// not used here
sb_threads[i].windfactor = 0.0f;// not used here
sb_threads[i].nr= i;
@@ -2228,7 +2228,7 @@ static int _softbody_calc_forces_slice_in_a_thread(Scene *scene, Object *ob, flo
attached = 0;
for (b=obp->nofsprings;b>0;b--) {
bs = sb->bspring + obp->springs[b-1];
- if (( ilast-bb == bs->v2) || ( ilast-bb == bs->v1)) {
+ if (( ilast-bb == bs->v2) || ( ilast-bb == bs->v1)) {
attached=1;
continue;}
}
@@ -2600,7 +2600,7 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa
attached = 0;
for (b=obp->nofsprings;b>0;b--) {
bs = sb->bspring + obp->springs[b-1];
- if (( sb->totpoint-a == bs->v2) || ( sb->totpoint-a == bs->v1)) {
+ if (( sb->totpoint-a == bs->v2) || ( sb->totpoint-a == bs->v1)) {
attached=1;
continue;}
}
@@ -4078,7 +4078,8 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i
/* verify if we need to create the softbody data */
if (sb->bpoint == NULL ||
- ((ob->softflag & OB_SB_EDGES) && !ob->soft->bspring && object_has_edges(ob))) {
+ ((ob->softflag & OB_SB_EDGES) && !ob->soft->bspring && object_has_edges(ob)))
+ {
switch (ob->type) {
case OB_MESH:
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index aec54ba827a..22e702d5930 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -610,7 +610,8 @@ static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm,
* other parts of code significantly to handle missing faces.
* since this really shouldn't even be possible we just bail.*/
if (ccgSubSurf_syncFace(ss, SET_INT_IN_POINTER(i), mp->totloop,
- fVerts, &f) == eCCGError_InvalidValue) {
+ fVerts, &f) == eCCGError_InvalidValue)
+ {
static int hasGivenError = 0;
if (!hasGivenError) {
@@ -1788,12 +1789,12 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm,
int gridFaces = gridSize - 1;
int edgeSize = ccgSubSurf_getEdgeSize(ss);
DMFlagMat *faceFlags = ccgdm->faceFlags;
- int a, b, i, doDraw, numVerts, matnr, new_matnr, totface;
+ int a, b, i, do_draw, numVerts, matnr, new_matnr, totface;
CCG_key_top_level(&key, ss);
ccgdm_pbvh_update(ccgdm);
- doDraw = 0;
+ do_draw = 0;
matnr = -1;
#define PASSATTRIB(dx, dy, vert) { \
@@ -1837,12 +1838,12 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm,
}
if (new_matnr != matnr) {
- doDraw = setMaterial(matnr = new_matnr, &gattribs);
- if (doDraw)
+ do_draw = setMaterial(matnr = new_matnr, &gattribs);
+ if (do_draw)
DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs);
}
- if (!doDraw || (setDrawOptions && (origIndex != ORIGINDEX_NONE) &&
+ if (!do_draw || (setDrawOptions && (origIndex != ORIGINDEX_NONE) &&
(setDrawOptions(userData, origIndex) == DM_DRAW_OPTION_SKIP)))
{
a += gridFaces * gridFaces * numVerts;
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 7634528927a..7bfd4189cc3 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -912,7 +912,7 @@ void txt_move_left(Text *text, short sel)
void txt_move_right(Text *text, short sel)
{
TextLine **linep;
- int *charp, oundoing = undoing, do_tab = 0, i;
+ int *charp, oundoing = undoing, do_tab = FALSE, i;
if (!text) return;
if (sel) txt_curs_sel(text, &linep, &charp);
@@ -931,10 +931,10 @@ void txt_move_right(Text *text, short sel)
// do nice right only if there are only spaces
// spaces hardcoded in DNA_text_types.h
if (text->flags & TXT_TABSTOSPACES && (*linep)->line[*charp] == ' ') {
- do_tab = 1;
+ do_tab = TRUE;
for (i = 0; i < *charp; i++)
if ((*linep)->line[i] != ' ') {
- do_tab = 0;
+ do_tab = FALSE;
break;
}
}
@@ -1124,7 +1124,8 @@ static void txt_pop_first(Text *text)
{
if (txt_get_span(text->curl, text->sell) < 0 ||
- (text->curl == text->sell && text->curc > text->selc)) {
+ (text->curl == text->sell && text->curc > text->selc))
+ {
txt_curs_swap(text);
}
@@ -1140,7 +1141,8 @@ static void txt_pop_first(Text *text)
static void txt_pop_last(Text *text)
{
if (txt_get_span(text->curl, text->sell) > 0 ||
- (text->curl == text->sell && text->curc < text->selc)) {
+ (text->curl == text->sell && text->curc < text->selc))
+ {
txt_curs_swap(text);
}
@@ -3214,7 +3216,8 @@ short txt_clear_marker_region(Text *text, TextLine *line, int start, int end, in
else if (marker->lineno > lineno) break;
if ((marker->start == marker->end && start <= marker->start && marker->start <= end) ||
- (marker->start < end && marker->end > start)) {
+ (marker->start < end && marker->end > start))
+ {
BLI_freelinkN(&text->markers, marker);
cleared = 1;
}
@@ -3234,7 +3237,8 @@ short txt_clear_markers(Text *text, int group, int flags)
next = marker->next;
if ((!group || marker->group == group) &&
- (marker->flags & flags) == flags) {
+ (marker->flags & flags) == flags)
+ {
BLI_freelinkN(&text->markers, marker);
cleared = 1;
}
diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c
index 2c868ca2601..2ec42b47e5c 100644
--- a/source/blender/blenkernel/intern/texture.c
+++ b/source/blender/blenkernel/intern/texture.c
@@ -233,7 +233,8 @@ void init_tex_mapping(TexMapping *texmap)
float smat[3][3], rmat[3][3], mat[3][3], proj[3][3];
if (texmap->projx == PROJ_X && texmap->projy == PROJ_Y && texmap->projz == PROJ_Z &&
- is_zero_v3(texmap->loc) && is_zero_v3(texmap->rot) && is_one_v3(texmap->size)) {
+ is_zero_v3(texmap->loc) && is_zero_v3(texmap->rot) && is_one_v3(texmap->size))
+ {
unit_m4(texmap->mat);
texmap->flag |= TEXMAP_UNIT_MATRIX;
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index 7df10aa679c..8df6e4c3748 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -3158,7 +3158,7 @@ ImBuf *BKE_tracking_distortion_exec(MovieDistortion *distortion, MovieTracking *
}
#endif
- ibuf->userflags |= IB_RECT_INVALID;
+ resibuf->userflags |= IB_RECT_INVALID;
}
else {
#ifdef WITH_LIBMV
diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c
index 03afc97f324..aa9cc40f71f 100644
--- a/source/blender/blenkernel/intern/unit.c
+++ b/source/blender/blenkernel/intern/unit.c
@@ -663,7 +663,7 @@ int bUnit_ReplaceString(char *str, int len_max, const char *str_prev, double sca
if (*ch == ' ' || *ch == '\t') {
/* do nothing */
}
- else if (ch_is_op(*ch) || *ch == ',') { /* found an op, no need to insert a ,*/
+ else if (ch_is_op(*ch) || *ch == ',') { /* found an op, no need to insert a ',' */
op_found = 1;
break;
}
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index a3fdb41fe37..91e93bbd05d 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -472,7 +472,8 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
c->time_base.num = 100;
}
else if ((double) ((int) rd->frs_sec_base) ==
- rd->frs_sec_base) {
+ rd->frs_sec_base)
+ {
c->time_base.den = rd->frs_sec;
c->time_base.num = (int) rd->frs_sec_base;
}
@@ -523,7 +524,7 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
if (codec_id == CODEC_ID_FFV1) {
#ifdef FFMPEG_FFV1_ALPHA_SUPPORTED
- if (rd->im_format.planes == R_IMF_PLANES_RGBA) {
+ if (rd->im_format.planes == R_IMF_PLANES_RGBA) {
c->pix_fmt = PIX_FMT_RGB32;
}
else {
@@ -535,7 +536,7 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
}
if (codec_id == CODEC_ID_QTRLE) {
- if (rd->im_format.planes == R_IMF_PLANES_RGBA) {
+ if (rd->im_format.planes == R_IMF_PLANES_RGBA) {
c->pix_fmt = PIX_FMT_ARGB;
}
}
@@ -544,7 +545,8 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
// || !strcmp(of->oformat->name, "mp4")
// || !strcmp(of->oformat->name, "mov")
// || !strcmp(of->oformat->name, "3gp")
- ) {
+ )
+ {
fprintf(stderr, "Using global header\n");
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
@@ -903,7 +905,8 @@ void BKE_ffmpeg_filepath_get(char *string, RenderData *rd)
while (*fe) {
if (BLI_strcasecmp(string + strlen(string) - strlen(*fe),
- *fe) == 0) {
+ *fe) == 0)
+ {
break;
}
fe++;
@@ -955,7 +958,8 @@ static void write_audio_frames(double to_pts)
while (audio_stream && !finished) {
if ((audio_time >= to_pts) ||
- (write_audio_frame())) {
+ (write_audio_frame()))
+ {
finished = 1;
}
}
@@ -1406,8 +1410,8 @@ void BKE_ffmpeg_image_type_verify(RenderData *rd, ImageFormatData *imf)
if (rd->ffcodecdata.type <= 0 ||
rd->ffcodecdata.codec <= 0 ||
rd->ffcodecdata.audio_codec <= 0 ||
- rd->ffcodecdata.video_bitrate <= 1) {
-
+ rd->ffcodecdata.video_bitrate <= 1)
+ {
rd->ffcodecdata.codec = CODEC_ID_MPEG2VIDEO;
BKE_ffmpeg_preset_set(rd, FFMPEG_PRESET_DVD);
diff --git a/source/blender/blenlib/intern/BLI_args.c b/source/blender/blenlib/intern/BLI_args.c
index 4e194b24c1e..785c9f9f32b 100644
--- a/source/blender/blenlib/intern/BLI_args.c
+++ b/source/blender/blenlib/intern/BLI_args.c
@@ -240,7 +240,7 @@ void BLI_argsPrintArgDoc(struct bArgs *ba, const char *arg)
internalDocPrint(d);
- d->done = 1;
+ d->done = TRUE;
}
}
diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c
index 2b21758fdc1..e9ee91505de 100644
--- a/source/blender/blenlib/intern/BLI_kdopbvh.c
+++ b/source/blender/blenlib/intern/BLI_kdopbvh.c
@@ -438,7 +438,7 @@ static char get_largest_axis(float *bv)
middle_point[0] = (bv[1]) - (bv[0]); // x axis
middle_point[1] = (bv[3]) - (bv[2]); // y axis
middle_point[2] = (bv[5]) - (bv[4]); // z axis
- if (middle_point[0] > middle_point[1]) {
+ if (middle_point[0] > middle_point[1]) {
if (middle_point[0] > middle_point[2])
return 1; // max x axis
else
@@ -464,7 +464,7 @@ static void node_join(BVHTree *tree, BVHNode *node)
}
for (i = 0; i < tree->tree_type; i++) {
- if (node->children[i]) {
+ if (node->children[i]) {
for (j = tree->start_axis; j < tree->stop_axis; j++) {
// update minimum
if (node->children[i]->bv[(2 * j)] < node->bv[(2 * j)])
diff --git a/source/blender/blenlib/intern/fnmatch.c b/source/blender/blenlib/intern/fnmatch.c
index 53172957560..e29f31897c0 100644
--- a/source/blender/blenlib/intern/fnmatch.c
+++ b/source/blender/blenlib/intern/fnmatch.c
@@ -235,7 +235,7 @@ fnmatch (const char *pattern, const char *string, int flags)
# undef FOLD
}
-#endif /* _LIBC or not __GNU_LIBRARY__. */
+#endif /* _LIBC or not __GNU_LIBRARY__. */
#else
diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c
index 066c9e7cd15..f1e08993825 100644
--- a/source/blender/blenlib/intern/math_rotation.c
+++ b/source/blender/blenlib/intern/math_rotation.c
@@ -82,7 +82,7 @@ void mul_qt_qtqt(float q[4], const float q1[4], const float q2[4])
* \note:
* Assumes a unit quaternion?
*
- * infact not, but you may wan't to use a unit quat, read on...
+ * in fact not, but you may wan't to use a unit quat, read on...
*
* Shortcut for 'q v q*' when \a v is actually a quaternion.
* This removes the need for converting a vector to a quaternion,
diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c
index f591dc17f5b..cad4addc87b 100644
--- a/source/blender/blenlib/intern/noise.c
+++ b/source/blender/blenlib/intern/noise.c
@@ -302,14 +302,14 @@ static float newPerlin(float x, float y, float z)
w = npfade(z);
A = hash[X ]+Y; AA = hash[A]+Z; AB = hash[A+1]+Z; // HASH COORDINATES OF
B = hash[X+1]+Y; BA = hash[B]+Z; BB = hash[B+1]+Z; // THE 8 CUBE CORNERS,
- return lerp(w, lerp(v, lerp(u, grad(hash[AA ], x , y , z ), // AND ADD
- grad(hash[BA ], x-1, y , z )), // BLENDED
- lerp(u, grad(hash[AB ], x , y-1, z ), // RESULTS
- grad(hash[BB ], x-1, y-1, z ))),// FROM 8
- lerp(v, lerp(u, grad(hash[AA+1], x , y , z-1 ), // CORNERS
- grad(hash[BA+1], x-1, y , z-1 )), // OF CUBE
- lerp(u, grad(hash[AB+1], x , y-1, z-1 ),
- grad(hash[BB+1], x-1, y-1, z-1 ))));
+ return lerp(w, lerp(v, lerp(u, grad(hash[AA ], x, y, z ), // AND ADD
+ grad(hash[BA ], x - 1, y, z )), // BLENDED
+ lerp(u, grad(hash[AB ], x, y - 1, z ), // RESULTS
+ grad(hash[BB ], x - 1, y - 1, z ))), // FROM 8
+ lerp(v, lerp(u, grad(hash[AA + 1], x, y, z - 1), // CORNERS
+ grad(hash[BA + 1], x - 1, y, z - 1)), // OF CUBE
+ lerp(u, grad(hash[AB + 1], x, y - 1, z - 1),
+ grad(hash[BB + 1], x - 1, y - 1, z - 1))));
}
/* for use with BLI_gNoise()/BLI_gTurbulence(), returns unsigned improved perlin noise */
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c
index 59147040fd8..ed3eedb8e10 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -1529,7 +1529,7 @@ void BLI_join_dirfile(char *dst, const size_t maxlen, const char *dir, const cha
size_t dirlen = BLI_strnlen(dir, maxlen);
if (dst != dir) {
- if (dirlen == maxlen) {
+ if (dirlen == maxlen) {
memcpy(dst, dir, dirlen);
dst[dirlen - 1] = '\0';
return; /* dir fills the path */
@@ -1920,7 +1920,7 @@ static void BLI_where_is_temp(char *fullname, const size_t maxlen, char *userdir
BLI_strncpy(fullname, tmp, maxlen);
}
}
-#endif
+#endif
if (fullname[0] == '\0') {
BLI_strncpy(fullname, "/tmp/", maxlen);
diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c
index fdb0cc0ccc8..f4b57857173 100644
--- a/source/blender/blenlib/intern/pbvh.c
+++ b/source/blender/blenlib/intern/pbvh.c
@@ -406,8 +406,9 @@ static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node)
/* Build the vertex list, unique verts first */
for (iter = BLI_ghashIterator_new(map), i = 0;
- !BLI_ghashIterator_isDone(iter);
- BLI_ghashIterator_step(iter), ++i) {
+ BLI_ghashIterator_isDone(iter) == FALSE;
+ BLI_ghashIterator_step(iter), ++i)
+ {
void *value = BLI_ghashIterator_getValue(iter);
int ndx = GET_INT_FROM_POINTER(value);
diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c
index 53531871aa6..e73899ce929 100644
--- a/source/blender/blenlib/intern/string.c
+++ b/source/blender/blenlib/intern/string.c
@@ -135,7 +135,7 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen)
case '\t':
case '\n':
case '\r':
- if (len + 1 < maxlen) {
+ if (len + 1 < maxlen) {
*dst++ = '\\';
len++;
}
diff --git a/source/blender/blenlib/intern/uvproject.c b/source/blender/blenlib/intern/uvproject.c
index 18c69bd2ba8..1b59dc6a3f5 100644
--- a/source/blender/blenlib/intern/uvproject.c
+++ b/source/blender/blenlib/intern/uvproject.c
@@ -58,7 +58,7 @@ void BLI_uvproject_from_camera(float target[2], float source[3], ProjCameraInfo
if (uci->do_pano) {
float angle = atan2f(pv4[0], -pv4[2]) / ((float)M_PI * 2.0f); /* angle around the camera */
- if (uci->do_persp == 0) {
+ if (uci->do_persp == FALSE) {
target[0] = angle; /* no correct method here, just map to 0-1 */
target[1] = pv4[1] / uci->camsize;
}
@@ -74,7 +74,7 @@ void BLI_uvproject_from_camera(float target[2], float source[3], ProjCameraInfo
if (pv4[2] == 0.0f)
pv4[2] = 0.00001f; /* don't allow div by 0 */
- if (uci->do_persp == 0) {
+ if (uci->do_persp == FALSE) {
target[0] = (pv4[0] / uci->camsize);
target[1] = (pv4[1] / uci->camsize);
}
@@ -154,10 +154,10 @@ ProjCameraInfo *BLI_uvproject_camera_info(Object *ob, float(*rotmat)[4], float w
/* normal projection */
if (rotmat) {
copy_m4_m4(uci.rotmat, rotmat);
- uci.do_rotmat = 1;
+ uci.do_rotmat = TRUE;
}
else {
- uci.do_rotmat = 0;
+ uci.do_rotmat = FALSE;
}
/* also make aspect ratio adjustment factors */
diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c
index 3eb62228aad..e34150ee4f2 100644
--- a/source/blender/blenlib/intern/winstuff.c
+++ b/source/blender/blenlib/intern/winstuff.c
@@ -158,7 +158,7 @@ void RegisterBlendExtension(void)
ThumbHandlerDLL = "BlendThumb64.dll";
else
ThumbHandlerDLL = "BlendThumb.dll";
-#endif
+#endif
snprintf(RegCmd, MAX_PATH * 2, "%s\\regsvr32 /s \"%s\\%s\"", SysDir, InstallDir, ThumbHandlerDLL);
system(RegCmd);
@@ -217,7 +217,8 @@ static wchar_t *UNUSED_FUNCTION(BLI_alloc_utf16_from_8) (char *in8, size_t add)
-struct dirent *readdir(DIR *dp){
+struct dirent *readdir(DIR *dp)
+{
if (dp->direntry.d_name) {
MEM_freeN(dp->direntry.d_name);
dp->direntry.d_name = NULL;
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 3b6b888b7d8..edea4ccab5b 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -148,9 +148,6 @@
#include "NOD_socket.h"
-//XXX #include "BIF_butspace.h" // badlevel, for do_versions, patching event codes
-//XXX #include "BIF_filelist.h" // badlevel too, where to move this? - elubie
-//XXX #include "BIF_previewrender.h" // bedlelvel, for struct RenderInfo
#include "BLO_readfile.h"
#include "BLO_undofile.h"
@@ -264,18 +261,18 @@ static void convert_tface_mt(FileData *fd, Main *main);
static void BKE_reportf_wrap(ReportList *reports, ReportType type, const char *format, ...)
{
char fixed_buf[1024]; /* should be long enough */
-
+
va_list args;
-
+
va_start(args, format);
vsnprintf(fixed_buf, sizeof(fixed_buf), format, args);
va_end(args);
-
+
fixed_buf[sizeof(fixed_buf) - 1] = '\0';
-
+
BKE_report(reports, type, fixed_buf);
-
- if (G.background==0) {
+
+ if (G.background == 0) {
printf("%s\n", fixed_buf);
}
}
@@ -284,8 +281,8 @@ static OldNewMap *oldnewmap_new(void)
{
OldNewMap *onm= MEM_callocN(sizeof(*onm), "OldNewMap");
- onm->entriessize= 1024;
- onm->entries= MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries");
+ onm->entriessize = 1024;
+ onm->entries = MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries");
return onm;
}
@@ -294,8 +291,8 @@ static int verg_oldnewmap(const void *v1, const void *v2)
{
const struct OldNew *x1=v1, *x2=v2;
- if ( x1->old > x2->old) return 1;
- else if ( x1->old < x2->old) return -1;
+ if (x1->old > x2->old) return 1;
+ else if (x1->old < x2->old) return -1;
return 0;
}
@@ -303,31 +300,31 @@ static int verg_oldnewmap(const void *v1, const void *v2)
static void oldnewmap_sort(FileData *fd)
{
qsort(fd->libmap->entries, fd->libmap->nentries, sizeof(OldNew), verg_oldnewmap);
- fd->libmap->sorted= 1;
+ fd->libmap->sorted = 1;
}
/* nr is zero for data, and ID code for libdata */
static void oldnewmap_insert(OldNewMap *onm, void *oldaddr, void *newaddr, int nr)
{
OldNew *entry;
-
+
if (oldaddr==NULL || newaddr==NULL) return;
- if (onm->nentries==onm->entriessize) {
- int osize= onm->entriessize;
- OldNew *oentries= onm->entries;
-
- onm->entriessize*= 2;
- onm->entries= MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries");
-
+ if (onm->nentries == onm->entriessize) {
+ int osize = onm->entriessize;
+ OldNew *oentries = onm->entries;
+
+ onm->entriessize *= 2;
+ onm->entries = MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries");
+
memcpy(onm->entries, oentries, sizeof(*oentries)*osize);
MEM_freeN(oentries);
}
- entry= &onm->entries[onm->nentries++];
- entry->old= oldaddr;
- entry->newp= newaddr;
- entry->nr= nr;
+ entry = &onm->entries[onm->nentries++];
+ entry->old = oldaddr;
+ entry->newp = newaddr;
+ entry->nr = nr;
}
void blo_do_versions_oldnewmap_insert(OldNewMap *onm, void *oldaddr, void *newaddr, int nr)
@@ -338,29 +335,29 @@ void blo_do_versions_oldnewmap_insert(OldNewMap *onm, void *oldaddr, void *newad
static void *oldnewmap_lookup_and_inc(OldNewMap *onm, void *addr)
{
int i;
-
- if (addr==NULL) return NULL;
-
- if (onm->lasthit<onm->nentries-1) {
- OldNew *entry= &onm->entries[++onm->lasthit];
-
- if (entry->old==addr) {
+
+ if (addr == NULL) return NULL;
+
+ if (onm->lasthit < onm->nentries-1) {
+ OldNew *entry = &onm->entries[++onm->lasthit];
+
+ if (entry->old == addr) {
entry->nr++;
return entry->newp;
}
}
-
- for (i=0; i<onm->nentries; i++) {
- OldNew *entry= &onm->entries[i];
-
- if (entry->old==addr) {
- onm->lasthit= i;
-
+
+ for (i = 0; i < onm->nentries; i++) {
+ OldNew *entry = &onm->entries[i];
+
+ if (entry->old == addr) {
+ onm->lasthit = i;
+
entry->nr++;
return entry->newp;
}
}
-
+
return NULL;
}
@@ -369,17 +366,17 @@ static void *oldnewmap_liblookup(OldNewMap *onm, void *addr, void *lib)
{
int i;
- if (addr==NULL) return NULL;
+ if (addr == NULL) return NULL;
/* lasthit works fine for non-libdata, linking there is done in same sequence as writing */
if (onm->sorted) {
OldNew entry_s, *entry;
- entry_s.old= addr;
+ entry_s.old = addr;
- entry= bsearch(&entry_s, onm->entries, onm->nentries, sizeof(OldNew), verg_oldnewmap);
+ entry = bsearch(&entry_s, onm->entries, onm->nentries, sizeof(OldNew), verg_oldnewmap);
if (entry) {
- ID *id= entry->newp;
+ ID *id = entry->newp;
if (id && (!lib || id->lib)) {
return entry->newp;
@@ -387,12 +384,12 @@ static void *oldnewmap_liblookup(OldNewMap *onm, void *addr, void *lib)
}
}
- for (i=0; i<onm->nentries; i++) {
- OldNew *entry= &onm->entries[i];
-
- if (entry->old==addr) {
- ID *id= entry->newp;
-
+ for (i = 0; i < onm->nentries; i++) {
+ OldNew *entry = &onm->entries[i];
+
+ if (entry->old == addr) {
+ ID *id = entry->newp;
+
if (id && (!lib || id->lib)) {
return entry->newp;
}
@@ -406,19 +403,19 @@ static void oldnewmap_free_unused(OldNewMap *onm)
{
int i;
- for (i=0; i<onm->nentries; i++) {
- OldNew *entry= &onm->entries[i];
- if (entry->nr==0) {
+ for (i = 0; i < onm->nentries; i++) {
+ OldNew *entry = &onm->entries[i];
+ if (entry->nr == 0) {
MEM_freeN(entry->newp);
- entry->newp= NULL;
+ entry->newp = NULL;
}
}
}
static void oldnewmap_clear(OldNewMap *onm)
{
- onm->nentries= 0;
- onm->lasthit= 0;
+ onm->nentries = 0;
+ onm->lasthit = 0;
}
static void oldnewmap_free(OldNewMap *onm)
@@ -437,9 +434,9 @@ static void add_main_to_main(Main *mainvar, Main *from)
{
ListBase *lbarray[MAX_LIBARRAY], *fromarray[MAX_LIBARRAY];
int a;
-
+
set_listbasepointers(mainvar, lbarray);
- a= set_listbasepointers(from, fromarray);
+ a = set_listbasepointers(from, fromarray);
while (a--) {
BLI_movelisttolist(lbarray[a], fromarray[a]);
}
@@ -449,9 +446,8 @@ void blo_join_main(ListBase *mainlist)
{
Main *tojoin, *mainl;
-
- mainl= mainlist->first;
- while ((tojoin= mainl->next)) {
+ mainl = mainlist->first;
+ while ((tojoin = mainl->next)) {
add_main_to_main(mainl, tojoin);
BLI_remlink(mainlist, tojoin);
MEM_freeN(tojoin);
@@ -463,24 +459,24 @@ static void split_libdata(ListBase *lb, Main *first)
ListBase *lbn;
ID *id, *idnext;
Main *mainvar;
-
- id= lb->first;
+
+ id = lb->first;
while (id) {
- idnext= id->next;
+ idnext = id->next;
if (id->lib) {
- mainvar= first;
+ mainvar = first;
while (mainvar) {
- if (mainvar->curlib==id->lib) {
+ if (mainvar->curlib == id->lib) {
lbn= which_libbase(mainvar, GS(id->name));
BLI_remlink(lb, id);
BLI_addtail(lbn, id);
break;
}
- mainvar= mainvar->next;
+ mainvar = mainvar->next;
}
- if (mainvar==NULL) printf("error split_libdata\n");
+ if (mainvar == NULL) printf("error split_libdata\n");
}
- id= idnext;
+ id = idnext;
}
}
@@ -489,20 +485,20 @@ void blo_split_main(ListBase *mainlist, Main *main)
ListBase *lbarray[MAX_LIBARRAY];
Library *lib;
int i;
-
- mainlist->first= mainlist->last= main;
- main->next= NULL;
-
- if (main->library.first==NULL)
+
+ mainlist->first = mainlist->last = main;
+ main->next = NULL;
+
+ if (main->library.first == NULL)
return;
- for (lib= main->library.first; lib; lib= lib->id.next) {
- Main *libmain= MEM_callocN(sizeof(Main), "libmain");
- libmain->curlib= lib;
+ for (lib = main->library.first; lib; lib = lib->id.next) {
+ Main *libmain = MEM_callocN(sizeof(Main), "libmain");
+ libmain->curlib = lib;
BLI_addtail(mainlist, libmain);
}
-
- i= set_listbasepointers(main, lbarray);
+
+ i = set_listbasepointers(main, lbarray);
while (i--)
split_libdata(lbarray[i], main->next);
}
@@ -522,7 +518,7 @@ static void read_file_version(FileData *fd, Main *main)
BHead *bhead;
for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
- if (bhead->code==GLOB) {
+ if (bhead->code == GLOB) {
FileGlobal *fg= read_struct(fd, bhead, "Global");
if (fg) {
main->subversionfile= fg->subversion;
@@ -530,7 +526,7 @@ static void read_file_version(FileData *fd, Main *main)
main->minsubversionfile= fg->minsubversion;
MEM_freeN(fg);
}
- else if (bhead->code==ENDB)
+ else if (bhead->code == ENDB)
break;
}
}
@@ -547,24 +543,24 @@ static Main *blo_find_main(FileData *fd, ListBase *mainlist, const char *filepat
cleanup_path(relabase, name1);
// printf("blo_find_main: original in %s\n", name);
// printf("blo_find_main: converted to %s\n", name1);
-
- for (m= mainlist->first; m; m= m->next) {
- char *libname= (m->curlib)?m->curlib->filepath:m->name;
+
+ for (m = mainlist->first; m; m = m->next) {
+ char *libname = (m->curlib) ? m->curlib->filepath : m->name;
if (BLI_path_cmp(name1, libname) == 0) {
if (G.debug & G_DEBUG) printf("blo_find_main: found library %s\n", libname);
return m;
}
}
-
- m= MEM_callocN(sizeof(Main), "find_main");
+
+ m = MEM_callocN(sizeof(Main), "find_main");
BLI_addtail(mainlist, m);
-
- lib= BKE_libblock_alloc(&m->library, ID_LI, "lib");
+
+ lib = BKE_libblock_alloc(&m->library, ID_LI, "lib");
BLI_strncpy(lib->name, filepath, sizeof(lib->name));
BLI_strncpy(lib->filepath, name1, sizeof(lib->filepath));
- m->curlib= lib;
+ m->curlib = lib;
read_file_version(fd, m);
@@ -578,8 +574,8 @@ static Main *blo_find_main(FileData *fd, ListBase *mainlist, const char *filepat
static void switch_endian_bh4(BHead4 *bhead)
{
/* the ID_.. codes */
- if ((bhead->code & 0xFFFF)==0) bhead->code >>=16;
-
+ if ((bhead->code & 0xFFFF)==0) bhead->code >>= 16;
+
if (bhead->code != ENDB) {
SWITCH_INT(bhead->len);
SWITCH_INT(bhead->SDNAnr);
@@ -590,8 +586,8 @@ static void switch_endian_bh4(BHead4 *bhead)
static void switch_endian_bh8(BHead8 *bhead)
{
/* the ID_.. codes */
- if ((bhead->code & 0xFFFF)==0) bhead->code >>=16;
-
+ if ((bhead->code & 0xFFFF)==0) bhead->code >>= 16;
+
if (bhead->code != ENDB) {
SWITCH_INT(bhead->len);
SWITCH_INT(bhead->SDNAnr);
@@ -608,37 +604,37 @@ static void bh4_from_bh8(BHead *bhead, BHead8 *bhead8, int do_endian_swap)
long long old;
#endif
- bhead4->code= bhead8->code;
- bhead4->len= bhead8->len;
+ bhead4->code = bhead8->code;
+ bhead4->len = bhead8->len;
if (bhead4->code != ENDB) {
-
- //perform a endian swap on 64bit pointers, otherwise the pointer might map to zero
- //0x0000000000000000000012345678 would become 0x12345678000000000000000000000000
+ /* perform a endian swap on 64bit pointers, otherwise the pointer might map to zero
+ * 0x0000000000000000000012345678 would become 0x12345678000000000000000000000000
+ */
if (do_endian_swap) {
SWITCH_LONGINT(bhead8->old);
}
-
+
/* this patch is to avoid a long long being read from not-eight aligned positions
* is necessary on any modern 64bit architecture) */
memcpy(&old, &bhead8->old, 8);
bhead4->old = (int) (old >> 3);
-
- bhead4->SDNAnr= bhead8->SDNAnr;
- bhead4->nr= bhead8->nr;
+
+ bhead4->SDNAnr = bhead8->SDNAnr;
+ bhead4->nr = bhead8->nr;
}
}
static void bh8_from_bh4(BHead *bhead, BHead4 *bhead4)
{
BHead8 *bhead8 = (BHead8 *) bhead;
-
- bhead8->code= bhead4->code;
- bhead8->len= bhead4->len;
-
+
+ bhead8->code = bhead4->code;
+ bhead8->len = bhead4->len;
+
if (bhead8->code != ENDB) {
- bhead8->old= bhead4->old;
- bhead8->SDNAnr= bhead4->SDNAnr;
+ bhead8->old = bhead4->old;
+ bhead8->SDNAnr = bhead4->SDNAnr;
bhead8->nr= bhead4->nr;
}
}
@@ -649,29 +645,29 @@ static BHeadN *get_bhead(FileData *fd)
int readsize;
if (fd) {
- if ( ! fd->eof) {
+ if (!fd->eof) {
/* initializing to zero isn't strictly needed but shuts valgrind up
* since uninitialized memory gets compared */
- BHead8 bhead8= {0};
- BHead4 bhead4= {0};
- BHead bhead= {0};
+ BHead8 bhead8 = {0};
+ BHead4 bhead4 = {0};
+ BHead bhead = {0};
- // First read the bhead structure.
- // Depending on the platform the file was written on this can
- // be a big or little endian BHead4 or BHead8 structure.
-
- // As usual 'ENDB' (the last *partial* bhead of the file)
- // needs some special handling. We don't want to EOF just yet.
-
+ /* First read the bhead structure.
+ * Depending on the platform the file was written on this can
+ * be a big or little endian BHead4 or BHead8 structure.
+ *
+ * As usual 'ENDB' (the last *partial* bhead of the file)
+ * needs some special handling. We don't want to EOF just yet.
+ */
if (fd->flags & FD_FLAGS_FILE_POINTSIZE_IS_4) {
bhead4.code = DATA;
readsize = fd->read(fd, &bhead4, sizeof(bhead4));
-
+
if (readsize == sizeof(bhead4) || bhead4.code == ENDB) {
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
switch_endian_bh4(&bhead4);
}
-
+
if (fd->flags & FD_FLAGS_POINTSIZE_DIFFERS) {
bh8_from_bh4(&bhead, &bhead4);
}
@@ -687,12 +683,12 @@ static BHeadN *get_bhead(FileData *fd)
else {
bhead8.code = DATA;
readsize = fd->read(fd, &bhead8, sizeof(bhead8));
-
+
if (readsize == sizeof(bhead8) || bhead8.code == ENDB) {
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
switch_endian_bh8(&bhead8);
}
-
+
if (fd->flags & FD_FLAGS_POINTSIZE_DIFFERS) {
bh4_from_bh8(&bhead, &bhead8, (fd->flags & FD_FLAGS_SWITCH_ENDIAN));
}
@@ -705,21 +701,21 @@ static BHeadN *get_bhead(FileData *fd)
bhead.len= 0;
}
}
-
+
/* make sure people are not trying to pass bad blend files */
if (bhead.len < 0) fd->eof = 1;
-
- // bhead now contains the (converted) bhead structure. Now read
- // the associated data and put everything in a BHeadN (creative naming !)
-
- if ( ! fd->eof) {
+
+ /* bhead now contains the (converted) bhead structure. Now read
+ * the associated data and put everything in a BHeadN (creative naming !)
+ */
+ if (!fd->eof) {
new_bhead = MEM_mallocN(sizeof(BHeadN) + bhead.len, "new_bhead");
if (new_bhead) {
new_bhead->next = new_bhead->prev = NULL;
new_bhead->bhead = bhead;
-
+
readsize = fd->read(fd, new_bhead + 1, bhead.len);
-
+
if (readsize != bhead.len) {
fd->eof = 1;
MEM_freeN(new_bhead);
@@ -733,13 +729,13 @@ static BHeadN *get_bhead(FileData *fd)
}
}
- // We've read a new block. Now add it to the list
- // of blocks.
-
+ /* We've read a new block. Now add it to the list
+ * of blocks.
+ */
if (new_bhead) {
BLI_addtail(&fd->listbase, new_bhead);
}
-
+
return(new_bhead);
}
@@ -747,53 +743,53 @@ BHead *blo_firstbhead(FileData *fd)
{
BHeadN *new_bhead;
BHead *bhead = NULL;
-
- // Rewind the file
- // Read in a new block if necessary
-
+
+ /* Rewind the file
+ * Read in a new block if necessary
+ */
new_bhead = fd->listbase.first;
if (new_bhead == NULL) {
new_bhead = get_bhead(fd);
}
-
+
if (new_bhead) {
bhead = &new_bhead->bhead;
}
-
+
return(bhead);
}
BHead *blo_prevbhead(FileData *UNUSED(fd), BHead *thisblock)
{
- BHeadN *bheadn= (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
- BHeadN *prev= bheadn->prev;
-
- return prev?&prev->bhead:NULL;
+ BHeadN *bheadn = (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
+ BHeadN *prev = bheadn->prev;
+
+ return (prev) ? &prev->bhead : NULL;
}
BHead *blo_nextbhead(FileData *fd, BHead *thisblock)
{
BHeadN *new_bhead = NULL;
BHead *bhead = NULL;
-
+
if (thisblock) {
// bhead is actually a sub part of BHeadN
// We calculate the BHeadN pointer from the BHead pointer below
new_bhead = (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
-
+
// get the next BHeadN. If it doesn't exist we read in the next one
new_bhead = new_bhead->next;
if (new_bhead == NULL) {
new_bhead = get_bhead(fd);
}
}
-
+
if (new_bhead) {
// here we do the reverse:
// go from the BHeadN pointer to the BHead pointer
bhead = &new_bhead->bhead;
}
-
+
return(bhead);
}
@@ -801,17 +797,17 @@ static void decode_blender_header(FileData *fd)
{
char header[SIZEOFBLENDERHEADER], num[4];
int readsize;
-
- // read in the header data
+
+ /* read in the header data */
readsize = fd->read(fd, header, sizeof(header));
-
+
if (readsize == sizeof(header)) {
if (strncmp(header, "BLENDER", 7) == 0) {
- int remove_this_endian_test= 1;
-
+ int remove_this_endian_test = 1;
+
fd->flags |= FD_FLAGS_FILE_OK;
-
- // what size are pointers in the file ?
+
+ /* what size are pointers in the file ? */
if (header[7]=='_') {
fd->flags |= FD_FLAGS_FILE_POINTSIZE_IS_4;
if (sizeof(void *) != 4) {
@@ -823,16 +819,16 @@ static void decode_blender_header(FileData *fd)
fd->flags |= FD_FLAGS_POINTSIZE_DIFFERS;
}
}
-
- // is the file saved in a different endian
- // than we need ?
+
+ /* is the file saved in a different endian
+ * than we need ?
+ */
if (((((char*)&remove_this_endian_test)[0]==1)?L_ENDIAN:B_ENDIAN) != ((header[8]=='v')?L_ENDIAN:B_ENDIAN)) {
fd->flags |= FD_FLAGS_SWITCH_ENDIAN;
}
-
- // get the version number
-
- memcpy(num, header+9, 3);
+
+ /* get the version number */
+ memcpy(num, header + 9, 3);
num[3] = 0;
fd->fileversion = atoi(num);
}
@@ -842,115 +838,114 @@ static void decode_blender_header(FileData *fd)
static int read_file_dna(FileData *fd)
{
BHead *bhead;
-
- for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
- if (bhead->code==DNA1) {
- int do_endian_swap= (fd->flags&FD_FLAGS_SWITCH_ENDIAN)?1:0;
-
- fd->filesdna= DNA_sdna_from_data(&bhead[1], bhead->len, do_endian_swap);
+
+ for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead)) {
+ if (bhead->code == DNA1) {
+ int do_endian_swap = (fd->flags & FD_FLAGS_SWITCH_ENDIAN) ? 1 : 0;
+
+ fd->filesdna = DNA_sdna_from_data(&bhead[1], bhead->len, do_endian_swap);
if (fd->filesdna) {
-
- fd->compflags= DNA_struct_get_compareflags(fd->filesdna, fd->memsdna);
+ fd->compflags = DNA_struct_get_compareflags(fd->filesdna, fd->memsdna);
/* used to retrieve ID names from (bhead+1) */
- fd->id_name_offs= DNA_elem_offset(fd->filesdna, "ID", "char", "name[]");
+ fd->id_name_offs = DNA_elem_offset(fd->filesdna, "ID", "char", "name[]");
}
-
+
return 1;
}
- else if (bhead->code==ENDB)
+ else if (bhead->code == ENDB)
break;
}
-
+
return 0;
}
static int fd_read_from_file(FileData *filedata, void *buffer, unsigned int size)
{
int readsize = read(filedata->filedes, buffer, size);
-
+
if (readsize < 0) {
readsize = EOF;
}
else {
filedata->seek += readsize;
}
-
- return (readsize);
+
+ return readsize;
}
static int fd_read_gzip_from_file(FileData *filedata, void *buffer, unsigned int size)
{
int readsize = gzread(filedata->gzfiledes, buffer, size);
-
+
if (readsize < 0) {
readsize = EOF;
}
else {
filedata->seek += readsize;
}
-
+
return (readsize);
}
static int fd_read_from_memory(FileData *filedata, void *buffer, unsigned int size)
{
- // don't read more bytes then there are available in the buffer
+ /* don't read more bytes then there are available in the buffer */
int readsize = (int)MIN2(size, (unsigned int)(filedata->buffersize - filedata->seek));
-
+
memcpy(buffer, filedata->buffer + filedata->seek, readsize);
filedata->seek += readsize;
-
+
return (readsize);
}
static int fd_read_from_memfile(FileData *filedata, void *buffer, unsigned int size)
{
- static unsigned int seek= 1<<30; /* the current position */
- static unsigned int offset= 0; /* size of previous chunks */
- static MemFileChunk *chunk=NULL;
+ static unsigned int seek = (1<<30); /* the current position */
+ static unsigned int offset = 0; /* size of previous chunks */
+ static MemFileChunk *chunk = NULL;
unsigned int chunkoffset, readsize, totread;
- if (size==0) return 0;
+ if (size == 0) return 0;
if (seek != (unsigned int)filedata->seek) {
- chunk= filedata->memfile->chunks.first;
- seek= 0;
+ chunk = filedata->memfile->chunks.first;
+ seek = 0;
while (chunk) {
if (seek + chunk->size > (unsigned) filedata->seek) break;
- seek+= chunk->size;
- chunk= chunk->next;
+ seek += chunk->size;
+ chunk = chunk->next;
}
- offset= seek;
- seek= filedata->seek;
+ offset = seek;
+ seek = filedata->seek;
}
if (chunk) {
- totread= 0;
-
+ totread = 0;
+
do {
/* first check if it's on the end if current chunk */
if (seek-offset == chunk->size) {
- offset+= chunk->size;
- chunk= chunk->next;
+ offset += chunk->size;
+ chunk = chunk->next;
}
-
+
/* debug, should never happen */
- if (chunk==NULL) {
+ if (chunk == NULL) {
printf("illegal read, chunk zero\n");
return 0;
}
-
- chunkoffset= seek-offset;
- readsize= size-totread;
-
+
+ chunkoffset = seek-offset;
+ readsize = size-totread;
+
/* data can be spread over multiple chunks, so clamp size
* to within this chunk, and then it will read further in
* the next chunk */
if (chunkoffset+readsize > chunk->size)
readsize= chunk->size-chunkoffset;
-
- memcpy((char*)buffer+totread, chunk->buf+chunkoffset, readsize);
+
+ memcpy((char*)buffer + totread, chunk->buf + chunkoffset, readsize);
totread += readsize;
filedata->seek += readsize;
seek += readsize;
@@ -958,47 +953,47 @@ static int fd_read_from_memfile(FileData *filedata, void *buffer, unsigned int s
return totread;
}
-
+
return 0;
}
static FileData *filedata_new(void)
{
FileData *fd = MEM_callocN(sizeof(FileData), "FileData");
-
+
fd->filedes = -1;
fd->gzfiledes = NULL;
-
+
/* XXX, this doesn't need to be done all the time,
* but it keeps us re-entrant, remove once we have
* a lib that provides a nice lock. - zr
*/
fd->memsdna = DNA_sdna_from_data(DNAstr, DNAlen, 0);
-
+
fd->datamap = oldnewmap_new();
fd->globmap = oldnewmap_new();
fd->libmap = oldnewmap_new();
-
+
return fd;
}
static FileData *blo_decode_and_check(FileData *fd, ReportList *reports)
{
decode_blender_header(fd);
-
+
if (fd->flags & FD_FLAGS_FILE_OK) {
if (!read_file_dna(fd)) {
BKE_reportf(reports, RPT_ERROR, "Failed to read blend file: \"%s\", incomplete", fd->relabase);
blo_freefiledata(fd);
- fd= NULL;
+ fd = NULL;
}
}
else {
BKE_reportf(reports, RPT_ERROR, "Failed to read blend file: \"%s\", not a blend file", fd->relabase);
blo_freefiledata(fd);
- fd= NULL;
+ fd = NULL;
}
-
+
return fd;
}
@@ -1007,9 +1002,9 @@ static FileData *blo_decode_and_check(FileData *fd, ReportList *reports)
FileData *blo_openblenderfile(const char *filepath, ReportList *reports)
{
gzFile gzfile;
- errno= 0;
- gzfile= BLI_gzopen(filepath, "rb");
-
+ errno = 0;
+ gzfile = BLI_gzopen(filepath, "rb");
+
if (gzfile == (gzFile)Z_NULL) {
BKE_reportf(reports, RPT_ERROR, "Unable to open \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error reading file");
return NULL;
@@ -1018,10 +1013,10 @@ FileData *blo_openblenderfile(const char *filepath, ReportList *reports)
FileData *fd = filedata_new();
fd->gzfiledes = gzfile;
fd->read = fd_read_gzip_from_file;
-
+
/* needed for library_append and read_libraries */
BLI_strncpy(fd->relabase, filepath, sizeof(fd->relabase));
-
+
return blo_decode_and_check(fd, reports);
}
}
@@ -1033,12 +1028,12 @@ FileData *blo_openblendermemory(void *mem, int memsize, ReportList *reports)
return NULL;
}
else {
- FileData *fd= filedata_new();
- fd->buffer= mem;
- fd->buffersize= memsize;
- fd->read= fd_read_from_memory;
- fd->flags|= FD_FLAGS_NOT_MY_BUFFER;
-
+ FileData *fd = filedata_new();
+ fd->buffer = mem;
+ fd->buffersize = memsize;
+ fd->read = fd_read_from_memory;
+ fd->flags |= FD_FLAGS_NOT_MY_BUFFER;
+
return blo_decode_and_check(fd, reports);
}
}
@@ -1050,12 +1045,12 @@ FileData *blo_openblendermemfile(MemFile *memfile, ReportList *reports)
return NULL;
}
else {
- FileData *fd= filedata_new();
- fd->memfile= memfile;
-
- fd->read= fd_read_from_memfile;
- fd->flags|= FD_FLAGS_NOT_MY_BUFFER;
-
+ FileData *fd = filedata_new();
+ fd->memfile = memfile;
+
+ fd->read = fd_read_from_memfile;
+ fd->flags |= FD_FLAGS_NOT_MY_BUFFER;
+
return blo_decode_and_check(fd, reports);
}
}
@@ -1064,30 +1059,29 @@ FileData *blo_openblendermemfile(MemFile *memfile, ReportList *reports)
void blo_freefiledata(FileData *fd)
{
if (fd) {
-
if (fd->filedes != -1) {
close(fd->filedes);
}
-
+
if (fd->gzfiledes != NULL) {
gzclose(fd->gzfiledes);
}
-
+
if (fd->buffer && !(fd->flags & FD_FLAGS_NOT_MY_BUFFER)) {
MEM_freeN(fd->buffer);
fd->buffer = NULL;
}
-
+
// Free all BHeadN data blocks
BLI_freelistN(&fd->listbase);
-
+
if (fd->memsdna)
DNA_sdna_free(fd->memsdna);
if (fd->filesdna)
DNA_sdna_free(fd->filesdna);
if (fd->compflags)
MEM_freeN(fd->compflags);
-
+
if (fd->datamap)
oldnewmap_free(fd->datamap);
if (fd->globmap)
@@ -1109,7 +1103,9 @@ void blo_freefiledata(FileData *fd)
int BLO_has_bfile_extension(const char *str)
{
- return (BLI_testextensie(str, ".ble") || BLI_testextensie(str, ".blend") || BLI_testextensie(str, ".blend.gz"));
+ return (BLI_testextensie(str, ".ble") ||
+ BLI_testextensie(str, ".blend") ||
+ BLI_testextensie(str, ".blend.gz"));
}
int BLO_is_a_library(const char *path, char *dir, char *group)
@@ -1121,32 +1117,32 @@ int BLO_is_a_library(const char *path, char *dir, char *group)
char *fd;
strcpy(dir, path);
- len= strlen(dir);
- if (len<7) return 0;
- if ( dir[len-1] != '/' && dir[len-1] != '\\') return 0;
+ len = strlen(dir);
+ if (len < 7) return 0;
+ if ((dir[len - 1] != '/') && (dir[len - 1] != '\\')) return 0;
- group[0]= 0;
- dir[len-1]= 0;
+ group[0] = '\0';
+ dir[len - 1] = '\0';
/* Find the last slash */
- fd= BLI_last_slash(dir);
+ fd = BLI_last_slash(dir);
- if (fd==NULL) return 0;
- *fd= 0;
+ if (fd == NULL) return 0;
+ *fd = 0;
if (BLO_has_bfile_extension(fd+1)) {
/* the last part of the dir is a .blend file, no group follows */
- *fd= '/'; /* put back the removed slash separating the dir and the .blend file name */
+ *fd = '/'; /* put back the removed slash separating the dir and the .blend file name */
}
else {
- char *gp = fd+1; // in case we have a .blend file, gp points to the group
-
+ char *gp = fd + 1; // in case we have a .blend file, gp points to the group
+
/* Find the last slash */
- fd= BLI_last_slash(dir);
+ fd = BLI_last_slash(dir);
if (!fd || !BLO_has_bfile_extension(fd+1)) return 0;
-
+
/* now we know that we are in a blend file and it is safe to
* assume that gp actually points to a group */
- if (strcmp("Screen", gp)!=0)
+ if (strcmp("Screen", gp) != 0)
BLI_strncpy(group, gp, GROUP_MAX);
}
return 1;
@@ -1191,11 +1187,11 @@ void *blo_do_versions_newlibadr(FileData *fd, void *lib, void *adr) /* only lib
static void *newlibadr_us(FileData *fd, void *lib, void *adr) /* increases user number */
{
- ID *id= newlibadr(fd, lib, adr);
-
+ ID *id = newlibadr(fd, lib, adr);
+
if (id)
id->us++;
-
+
return id;
}
@@ -1208,12 +1204,12 @@ static void change_idid_adr_fd(FileData *fd, void *old, void *new)
{
int i;
- for (i=0; i<fd->libmap->nentries; i++) {
- OldNew *entry= &fd->libmap->entries[i];
+ for (i = 0; i < fd->libmap->nentries; i++) {
+ OldNew *entry = &fd->libmap->entries[i];
if (old==entry->newp && entry->nr==ID_ID) {
- entry->newp= new;
- if (new) entry->nr= GS( ((ID *)new)->name );
+ entry->newp = new;
+ if (new) entry->nr = GS( ((ID *)new)->name );
break;
}
}
@@ -1223,11 +1219,13 @@ static void change_idid_adr(ListBase *mainlist, FileData *basefd, void *old, voi
{
Main *mainptr;
- for (mainptr= mainlist->first; mainptr; mainptr= mainptr->next) {
+ for (mainptr = mainlist->first; mainptr; mainptr = mainptr->next) {
FileData *fd;
- if (mainptr->curlib) fd= mainptr->curlib->filedata;
- else fd= basefd;
+ if (mainptr->curlib)
+ fd = mainptr->curlib->filedata;
+ else
+ fd = basefd;
if (fd) {
change_idid_adr_fd(fd, old, new);
@@ -1241,35 +1239,36 @@ static void change_idid_adr(ListBase *mainlist, FileData *basefd, void *old, voi
* if the local object still exists */
void blo_clear_proxy_pointers_from_lib(Main *oldmain)
{
- Object *ob= oldmain->object.first;
+ Object *ob = oldmain->object.first;
- for (;ob; ob= ob->id.next)
+ for (; ob; ob= ob->id.next) {
if (ob->id.lib)
- ob->proxy_from= NULL;
+ ob->proxy_from = NULL;
+ }
}
void blo_make_image_pointer_map(FileData *fd, Main *oldmain)
{
- Image *ima= oldmain->image.first;
- Scene *sce= oldmain->scene.first;
+ Image *ima = oldmain->image.first;
+ Scene *sce = oldmain->scene.first;
int a;
- fd->imamap= oldnewmap_new();
+ fd->imamap = oldnewmap_new();
- for (;ima; ima= ima->id.next) {
- Link *ibuf= ima->ibufs.first;
- for (; ibuf; ibuf= ibuf->next)
+ for (; ima; ima = ima->id.next) {
+ Link *ibuf = ima->ibufs.first;
+ for (; ibuf; ibuf = ibuf->next)
oldnewmap_insert(fd->imamap, ibuf, ibuf, 0);
if (ima->gputexture)
oldnewmap_insert(fd->imamap, ima->gputexture, ima->gputexture, 0);
- for (a=0; a<IMA_MAX_RENDER_SLOT; a++)
+ for (a=0; a < IMA_MAX_RENDER_SLOT; a++)
if (ima->renders[a])
oldnewmap_insert(fd->imamap, ima->renders[a], ima->renders[a], 0);
}
- for (; sce; sce= sce->id.next) {
+ for (; sce; sce = sce->id.next) {
if (sce->nodetree) {
bNode *node;
- for (node= sce->nodetree->nodes.first; node; node= node->next)
+ for (node = sce->nodetree->nodes.first; node; node = node->next)
oldnewmap_insert(fd->imamap, node->preview, node->preview, 0);
}
}
@@ -1279,63 +1278,63 @@ void blo_make_image_pointer_map(FileData *fd, Main *oldmain)
/* this works because freeing old main only happens after this call */
void blo_end_image_pointer_map(FileData *fd, Main *oldmain)
{
- OldNew *entry= fd->imamap->entries;
- Image *ima= oldmain->image.first;
- Scene *sce= oldmain->scene.first;
+ OldNew *entry = fd->imamap->entries;
+ Image *ima = oldmain->image.first;
+ Scene *sce = oldmain->scene.first;
int i;
/* used entries were restored, so we put them to zero */
- for (i=0; i<fd->imamap->nentries; i++, entry++) {
- if (entry->nr>0)
- entry->newp= NULL;
+ for (i = 0; i < fd->imamap->nentries; i++, entry++) {
+ if (entry->nr > 0)
+ entry->newp = NULL;
}
- for (;ima; ima= ima->id.next) {
+ for (; ima; ima = ima->id.next) {
Link *ibuf, *next;
/* this mirrors direct_link_image */
- for (ibuf= ima->ibufs.first; ibuf; ibuf= next) {
- next= ibuf->next;
- if (NULL==newimaadr(fd, ibuf)) { /* so was restored */
+ for (ibuf = ima->ibufs.first; ibuf; ibuf = next) {
+ next = ibuf->next;
+ if (NULL == newimaadr(fd, ibuf)) { /* so was restored */
BLI_remlink(&ima->ibufs, ibuf);
- ima->bindcode= 0;
- ima->gputexture= NULL;
+ ima->bindcode = 0;
+ ima->gputexture = NULL;
}
}
- for (i=0; i<IMA_MAX_RENDER_SLOT; i++)
- ima->renders[i]= newimaadr(fd, ima->renders[i]);
-
- ima->gputexture= newimaadr(fd, ima->gputexture);
+ for (i = 0; i < IMA_MAX_RENDER_SLOT; i++)
+ ima->renders[i] = newimaadr(fd, ima->renders[i]);
+
+ ima->gputexture = newimaadr(fd, ima->gputexture);
}
- for (; sce; sce= sce->id.next) {
+ for (; sce; sce = sce->id.next) {
if (sce->nodetree) {
bNode *node;
- for (node= sce->nodetree->nodes.first; node; node= node->next)
- node->preview= newimaadr(fd, node->preview);
+ for (node = sce->nodetree->nodes.first; node; node = node->next)
+ node->preview = newimaadr(fd, node->preview);
}
}
}
void blo_make_movieclip_pointer_map(FileData *fd, Main *oldmain)
{
- MovieClip *clip= oldmain->movieclip.first;
- Scene *sce= oldmain->scene.first;
-
- fd->movieclipmap= oldnewmap_new();
-
- for (;clip; clip= clip->id.next) {
+ MovieClip *clip = oldmain->movieclip.first;
+ Scene *sce = oldmain->scene.first;
+
+ fd->movieclipmap = oldnewmap_new();
+
+ for (; clip; clip = clip->id.next) {
if (clip->cache)
oldnewmap_insert(fd->movieclipmap, clip->cache, clip->cache, 0);
-
+
if (clip->tracking.camera.intrinsics)
oldnewmap_insert(fd->movieclipmap, clip->tracking.camera.intrinsics, clip->tracking.camera.intrinsics, 0);
}
-
- for (; sce; sce= sce->id.next) {
+
+ for (; sce; sce = sce->id.next) {
if (sce->nodetree) {
bNode *node;
- for (node= sce->nodetree->nodes.first; node; node= node->next)
- if (node->type==CMP_NODE_MOVIEDISTORTION)
+ for (node = sce->nodetree->nodes.first; node; node= node->next)
+ if (node->type == CMP_NODE_MOVIEDISTORTION)
oldnewmap_insert(fd->movieclipmap, node->storage, node->storage, 0);
}
}
@@ -1345,28 +1344,28 @@ void blo_make_movieclip_pointer_map(FileData *fd, Main *oldmain)
/* this works because freeing old main only happens after this call */
void blo_end_movieclip_pointer_map(FileData *fd, Main *oldmain)
{
- OldNew *entry= fd->movieclipmap->entries;
- MovieClip *clip= oldmain->movieclip.first;
- Scene *sce= oldmain->scene.first;
+ OldNew *entry = fd->movieclipmap->entries;
+ MovieClip *clip = oldmain->movieclip.first;
+ Scene *sce = oldmain->scene.first;
int i;
-
+
/* used entries were restored, so we put them to zero */
- for (i=0; i<fd->movieclipmap->nentries; i++, entry++) {
- if (entry->nr>0)
- entry->newp= NULL;
+ for (i=0; i < fd->movieclipmap->nentries; i++, entry++) {
+ if (entry->nr > 0)
+ entry->newp = NULL;
}
-
- for (;clip; clip= clip->id.next) {
- clip->cache= newmclipadr(fd, clip->cache);
- clip->tracking.camera.intrinsics= newmclipadr(fd, clip->tracking.camera.intrinsics);
+
+ for (; clip; clip = clip->id.next) {
+ clip->cache = newmclipadr(fd, clip->cache);
+ clip->tracking.camera.intrinsics = newmclipadr(fd, clip->tracking.camera.intrinsics);
}
-
- for (; sce; sce= sce->id.next) {
+
+ for (; sce; sce = sce->id.next) {
if (sce->nodetree) {
bNode *node;
- for (node= sce->nodetree->nodes.first; node; node= node->next)
- if (node->type==CMP_NODE_MOVIEDISTORTION)
- node->storage= newmclipadr(fd, node->storage);
+ for (node = sce->nodetree->nodes.first; node; node = node->next)
+ if (node->type == CMP_NODE_MOVIEDISTORTION)
+ node->storage = newmclipadr(fd, node->storage);
}
}
}
@@ -1375,19 +1374,19 @@ void blo_end_movieclip_pointer_map(FileData *fd, Main *oldmain)
/* undo file support: add all library pointers in lookup */
void blo_add_library_pointer_map(ListBase *mainlist, FileData *fd)
{
- Main *ptr= mainlist->first;
+ Main *ptr = mainlist->first;
ListBase *lbarray[MAX_LIBARRAY];
- for (ptr= ptr->next; ptr; ptr= ptr->next) {
- int i= set_listbasepointers(ptr, lbarray);
+ for (ptr = ptr->next; ptr; ptr = ptr->next) {
+ int i = set_listbasepointers(ptr, lbarray);
while (i--) {
ID *id;
- for (id= lbarray[i]->first; id; id= id->next)
+ for (id = lbarray[i]->first; id; id = id->next)
oldnewmap_insert(fd->libmap, id, id, GS(id->name));
}
}
}
-
+
/* ********** END OLD POINTERS ****************** */
/* ********** READ FILE ****************** */
@@ -1396,33 +1395,33 @@ static void switch_endian_structs(struct SDNA *filesdna, BHead *bhead)
{
int blocksize, nblocks;
char *data;
-
- data= (char *)(bhead+1);
- blocksize= filesdna->typelens[ filesdna->structs[bhead->SDNAnr][0] ];
-
- nblocks= bhead->nr;
+
+ data = (char *)(bhead+1);
+ blocksize = filesdna->typelens[ filesdna->structs[bhead->SDNAnr][0] ];
+
+ nblocks = bhead->nr;
while (nblocks--) {
DNA_struct_switch_endian(filesdna, bhead->SDNAnr, data);
-
- data+= blocksize;
+
+ data += blocksize;
}
}
static void *read_struct(FileData *fd, BHead *bh, const char *blockname)
{
- void *temp= NULL;
-
+ void *temp = NULL;
+
if (bh->len) {
/* switch is based on file dna */
if (bh->SDNAnr && (fd->flags & FD_FLAGS_SWITCH_ENDIAN))
switch_endian_structs(fd->filesdna, bh);
-
+
if (fd->compflags[bh->SDNAnr]) { /* flag==0: doesn't exist anymore */
- if (fd->compflags[bh->SDNAnr]==2) {
- temp= DNA_struct_reconstruct(fd->memsdna, fd->filesdna, fd->compflags, bh->SDNAnr, bh->nr, (bh+1));
+ if (fd->compflags[bh->SDNAnr] == 2) {
+ temp = DNA_struct_reconstruct(fd->memsdna, fd->filesdna, fd->compflags, bh->SDNAnr, bh->nr, (bh+1));
}
else {
- temp= MEM_mallocN(bh->len, blockname);
+ temp = MEM_mallocN(bh->len, blockname);
memcpy(temp, (bh+1), bh->len);
}
}
@@ -1434,19 +1433,19 @@ static void *read_struct(FileData *fd, BHead *bh, const char *blockname)
static void link_list(FileData *fd, ListBase *lb) /* only direct data */
{
Link *ln, *prev;
-
- if (lb->first==NULL) return;
-
- lb->first= newdataadr(fd, lb->first);
- ln= lb->first;
- prev= NULL;
+
+ if (lb->first == NULL) return;
+
+ lb->first = newdataadr(fd, lb->first);
+ ln = lb->first;
+ prev = NULL;
while (ln) {
- ln->next= newdataadr(fd, ln->next);
- ln->prev= prev;
- prev= ln;
- ln= ln->next;
+ ln->next = newdataadr(fd, ln->next);
+ ln->prev = prev;
+ prev = ln;
+ ln = ln->next;
}
- lb->last= prev;
+ lb->last = prev;
}
static void link_glob_list(FileData *fd, ListBase *lb) /* for glob data */
@@ -1454,26 +1453,26 @@ static void link_glob_list(FileData *fd, ListBase *lb) /* for glob data */
Link *ln, *prev;
void *poin;
- if (lb->first==NULL) return;
- poin= newdataadr(fd, lb->first);
+ if (lb->first == NULL) return;
+ poin = newdataadr(fd, lb->first);
if (lb->first) {
oldnewmap_insert(fd->globmap, lb->first, poin, 0);
}
- lb->first= poin;
-
- ln= lb->first;
- prev= NULL;
+ lb->first = poin;
+
+ ln = lb->first;
+ prev = NULL;
while (ln) {
- poin= newdataadr(fd, ln->next);
+ poin = newdataadr(fd, ln->next);
if (ln->next) {
oldnewmap_insert(fd->globmap, ln->next, poin, 0);
}
- ln->next= poin;
- ln->prev= prev;
- prev= ln;
- ln= ln->next;
+ ln->next = poin;
+ ln->prev = prev;
+ prev = ln;
+ ln = ln->next;
}
- lb->last= prev;
+ lb->last = prev;
}
static void test_pointer_array(FileData *fd, void **mat)
@@ -1491,29 +1490,29 @@ static void test_pointer_array(FileData *fd, void **mat)
* the new dna format.
*/
if (*mat) {
- len= MEM_allocN_len(*mat)/fd->filesdna->pointerlen;
-
+ len = MEM_allocN_len(*mat)/fd->filesdna->pointerlen;
+
if (fd->filesdna->pointerlen==8 && fd->memsdna->pointerlen==4) {
- ipoin=imat= MEM_mallocN(len*4, "newmatar");
+ ipoin=imat= MEM_mallocN(len * 4, "newmatar");
lpoin= *mat;
-
+
while (len-- > 0) {
if ((fd->flags & FD_FLAGS_SWITCH_ENDIAN))
SWITCH_LONGINT(*lpoin);
- *ipoin= (int) ((*lpoin) >> 3);
+ *ipoin = (int)((*lpoin) >> 3);
ipoin++;
lpoin++;
}
MEM_freeN(*mat);
- *mat= imat;
+ *mat = imat;
}
-
+
if (fd->filesdna->pointerlen==4 && fd->memsdna->pointerlen==8) {
- lpoin=lmat= MEM_mallocN(len*8, "newmatar");
- ipoin= *mat;
-
+ lpoin = lmat = MEM_mallocN(len * 8, "newmatar");
+ ipoin = *mat;
+
while (len-- > 0) {
- *lpoin= *ipoin;
+ *lpoin = *ipoin;
ipoin++;
lpoin++;
}
@@ -1532,22 +1531,22 @@ static void IDP_DirectLinkIDPArray(IDProperty *prop, int switch_endian, FileData
{
IDProperty *array;
int i;
-
- /*since we didn't save the extra buffer, set totallen to len.*/
+
+ /* since we didn't save the extra buffer, set totallen to len */
prop->totallen = prop->len;
prop->data.pointer = newdataadr(fd, prop->data.pointer);
- array= (IDProperty*) prop->data.pointer;
+ array = (IDProperty *)prop->data.pointer;
/* note!, idp-arrays didn't exist in 2.4x, so the pointer will be cleared
* theres not really anything we can do to correct this, at least don't crash */
- if (array==NULL) {
- prop->len= 0;
- prop->totallen= 0;
+ if (array == NULL) {
+ prop->len = 0;
+ prop->totallen = 0;
}
-
- for (i=0; i<prop->len; i++)
+
+ for (i = 0; i < prop->len; i++)
IDP_DirectLinkProperty(&array[i], switch_endian, fd);
}
@@ -1555,29 +1554,29 @@ static void IDP_DirectLinkArray(IDProperty *prop, int switch_endian, FileData *f
{
IDProperty **array;
int i;
-
- /*since we didn't save the extra buffer, set totallen to len.*/
+
+ /* since we didn't save the extra buffer, set totallen to len */
prop->totallen = prop->len;
prop->data.pointer = newdataadr(fd, prop->data.pointer);
-
+
if (prop->subtype == IDP_GROUP) {
test_pointer_array(fd, prop->data.pointer);
- array= prop->data.pointer;
-
- for (i=0; i<prop->len; i++)
+ array = prop->data.pointer;
+
+ for (i = 0; i < prop->len; i++)
IDP_DirectLinkProperty(array[i], switch_endian, fd);
}
else if (prop->subtype == IDP_DOUBLE) {
if (switch_endian) {
- for (i=0; i<prop->len; i++) {
- SWITCH_LONGINT(((double*)prop->data.pointer)[i]);
+ for (i = 0; i < prop->len; i++) {
+ SWITCH_LONGINT(((double *)prop->data.pointer)[i]);
}
}
}
else {
if (switch_endian) {
- for (i=0; i<prop->len; i++) {
- SWITCH_INT(((int*)prop->data.pointer)[i]);
+ for (i = 0; i < prop->len; i++) {
+ SWITCH_INT(((int *)prop->data.pointer)[i]);
}
}
}
@@ -1594,9 +1593,9 @@ static void IDP_DirectLinkGroup(IDProperty *prop, int switch_endian, FileData *f
{
ListBase *lb = &prop->data.group;
IDProperty *loop;
-
+
link_list(fd, lb);
-
+
/*Link child id properties now*/
for (loop=prop->data.group.first; loop; loop=loop->next) {
IDP_DirectLinkProperty(loop, switch_endian, fd);
@@ -1639,7 +1638,7 @@ static void IDP_DirectLinkProperty(IDProperty *prop, int switch_endian, FileData
}
}
-/*stub function*/
+/* stub function */
static void IDP_LibLinkProperty(IDProperty *UNUSED(prop), int UNUSED(switch_endian), FileData *UNUSED(fd))
{
}
@@ -1654,10 +1653,10 @@ static void direct_link_curvemapping(FileData *fd, CurveMapping *cumap)
/* flag seems to be able to hang? Maybe old files... not bad to clear anyway */
cumap->flag &= ~CUMA_PREMULLED;
- for (a=0; a<CM_TOT; a++) {
- cumap->cm[a].curve= newdataadr(fd, cumap->cm[a].curve);
- cumap->cm[a].table= NULL;
- cumap->cm[a].premultable= NULL;
+ for (a = 0; a < CM_TOT; a++) {
+ cumap->cm[a].curve = newdataadr(fd, cumap->cm[a].curve);
+ cumap->cm[a].table = NULL;
+ cumap->cm[a].premultable = NULL;
}
}
@@ -1668,12 +1667,12 @@ static void lib_link_brush(FileData *fd, Main *main)
Brush *brush;
/* only link ID pointers */
- for (brush= main->brush.first; brush; brush= brush->id.next) {
+ for (brush = main->brush.first; brush; brush = brush->id.next) {
if (brush->id.flag & LIB_NEEDLINK) {
brush->id.flag -= LIB_NEEDLINK;
-
- brush->mtex.tex= newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
- brush->clone.image= newlibadr_us(fd, brush->id.lib, brush->clone.image);
+
+ brush->mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
+ brush->clone.image = newlibadr_us(fd, brush->id.lib, brush->clone.image);
}
}
}
@@ -1683,14 +1682,14 @@ static void direct_link_brush(FileData *fd, Brush *brush)
/* brush itself has been read */
/* fallof curve */
- brush->curve= newdataadr(fd, brush->curve);
+ brush->curve = newdataadr(fd, brush->curve);
if (brush->curve)
direct_link_curvemapping(fd, brush->curve);
else
BKE_brush_curve_preset(brush, CURVE_PRESET_SHARP);
- brush->preview= NULL;
- brush->icon_imbuf= NULL;
+ brush->preview = NULL;
+ brush->icon_imbuf = NULL;
}
static void direct_link_script(FileData *UNUSED(fd), Script *script)
@@ -1704,12 +1703,12 @@ static void direct_link_script(FileData *UNUSED(fd), Script *script)
static PackedFile *direct_link_packedfile(FileData *fd, PackedFile *oldpf)
{
- PackedFile *pf= newdataadr(fd, oldpf);
-
+ PackedFile *pf = newdataadr(fd, oldpf);
+
if (pf) {
- pf->data= newdataadr(fd, pf->data);
+ pf->data = newdataadr(fd, pf->data);
}
-
+
return pf;
}
@@ -1717,17 +1716,17 @@ static PackedFile *direct_link_packedfile(FileData *fd, PackedFile *oldpf)
static PreviewImage *direct_link_preview_image(FileData *fd, PreviewImage *old_prv)
{
- PreviewImage *prv= newdataadr(fd, old_prv);
-
+ PreviewImage *prv = newdataadr(fd, old_prv);
+
if (prv) {
int i;
- for (i=0; i < NUM_ICON_SIZES; ++i) {
+ for (i = 0; i < NUM_ICON_SIZES; ++i) {
if (prv->rect[i]) {
prv->rect[i] = newdataadr(fd, prv->rect[i]);
}
}
}
-
+
return prv;
}
@@ -1739,18 +1738,16 @@ static PreviewImage *direct_link_preview_image(FileData *fd, PreviewImage *old_p
static void lib_link_ipo(FileData *fd, Main *main)
{
Ipo *ipo;
-
- ipo= main->ipo.first;
- while (ipo) {
+
+ for (ipo = main->ipo.first; ipo; ipo = ipo->id.next) {
if (ipo->id.flag & LIB_NEEDLINK) {
IpoCurve *icu;
- for (icu= ipo->curve.first; icu; icu= icu->next) {
+ for (icu = ipo->curve.first; icu; icu = icu->next) {
if (icu->driver)
- icu->driver->ob= newlibadr(fd, ipo->id.lib, icu->driver->ob);
+ icu->driver->ob = newlibadr(fd, ipo->id.lib, icu->driver->ob);
}
ipo->id.flag -= LIB_NEEDLINK;
}
- ipo= ipo->id.next;
}
}
@@ -1760,12 +1757,11 @@ static void direct_link_ipo(FileData *fd, Ipo *ipo)
IpoCurve *icu;
link_list(fd, &(ipo->curve));
- icu= ipo->curve.first;
- while (icu) {
- icu->bezt= newdataadr(fd, icu->bezt);
- icu->bp= newdataadr(fd, icu->bp);
- icu->driver= newdataadr(fd, icu->driver);
- icu= icu->next;
+
+ for (icu = ipo->curve.first; icu; icu = icu->next) {
+ icu->bezt = newdataadr(fd, icu->bezt);
+ icu->bp = newdataadr(fd, icu->bp);
+ icu->driver = newdataadr(fd, icu->driver);
}
}
@@ -1779,8 +1775,8 @@ static void lib_link_nlastrips(FileData *fd, ID *id, ListBase *striplist)
strip->object = newlibadr(fd, id->lib, strip->object);
strip->act = newlibadr_us(fd, id->lib, strip->act);
strip->ipo = newlibadr(fd, id->lib, strip->ipo);
- for (amod= strip->modifiers.first; amod; amod= amod->next)
- amod->ob= newlibadr(fd, id->lib, amod->ob);
+ for (amod = strip->modifiers.first; amod; amod = amod->next)
+ amod->ob = newlibadr(fd, id->lib, amod->ob);
}
}
@@ -1791,7 +1787,7 @@ static void direct_link_nlastrips(FileData *fd, ListBase *strips)
link_list(fd, strips);
- for (strip= strips->first; strip; strip= strip->next)
+ for (strip = strips->first; strip; strip = strip->next)
link_list(fd, &strip->modifiers);
}
@@ -1811,12 +1807,12 @@ static void lib_link_fmodifiers(FileData *fd, ID *id, ListBase *list)
{
FModifier *fcm;
- for (fcm= list->first; fcm; fcm= fcm->next) {
+ for (fcm = list->first; fcm; fcm = fcm->next) {
/* data for specific modifiers */
switch (fcm->type) {
case FMODIFIER_TYPE_PYTHON:
{
- FMod_Python *data= (FMod_Python *)fcm->data;
+ FMod_Python *data = (FMod_Python *)fcm->data;
data->script = newlibadr(fd, id->lib, data->script);
}
break;
@@ -1832,10 +1828,10 @@ static void lib_link_fcurves(FileData *fd, ID *id, ListBase *list)
return;
/* relink ID-block references... */
- for (fcu= list->first; fcu; fcu= fcu->next) {
+ for (fcu = list->first; fcu; fcu = fcu->next) {
/* driver data */
if (fcu->driver) {
- ChannelDriver *driver= fcu->driver;
+ ChannelDriver *driver = fcu->driver;
DriverVar *dvar;
for (dvar= driver->variables.first; dvar; dvar= dvar->next) {
@@ -1843,9 +1839,9 @@ static void lib_link_fcurves(FileData *fd, ID *id, ListBase *list)
{
/* only relink if still used */
if (tarIndex < dvar->num_targets)
- dtar->id= newlibadr(fd, id->lib, dtar->id);
+ dtar->id = newlibadr(fd, id->lib, dtar->id);
else
- dtar->id= NULL;
+ dtar->id = NULL;
}
DRIVER_TARGETS_LOOPER_END
}
@@ -1862,19 +1858,19 @@ static void direct_link_fmodifiers(FileData *fd, ListBase *list)
{
FModifier *fcm;
- for (fcm= list->first; fcm; fcm= fcm->next) {
+ for (fcm = list->first; fcm; fcm = fcm->next) {
/* relink general data */
- fcm->data = newdataadr(fd, fcm->data);
- fcm->edata= NULL;
+ fcm->data = newdataadr(fd, fcm->data);
+ fcm->edata = NULL;
/* do relinking of data for specific types */
switch (fcm->type) {
case FMODIFIER_TYPE_GENERATOR:
{
- FMod_Generator *data= (FMod_Generator *)fcm->data;
+ FMod_Generator *data = (FMod_Generator *)fcm->data;
+
+ data->coefficients = newdataadr(fd, data->coefficients);
- data->coefficients= newdataadr(fd, data->coefficients);
-
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
unsigned int a;
for (a = 0; a < data->arraysize; a++)
@@ -1884,14 +1880,14 @@ static void direct_link_fmodifiers(FileData *fd, ListBase *list)
break;
case FMODIFIER_TYPE_ENVELOPE:
{
- FMod_Envelope *data= (FMod_Envelope *)fcm->data;
+ FMod_Envelope *data= (FMod_Envelope *)fcm->data;
data->data= newdataadr(fd, data->data);
}
break;
case FMODIFIER_TYPE_PYTHON:
{
- FMod_Python *data= (FMod_Python *)fcm->data;
+ FMod_Python *data = (FMod_Python *)fcm->data;
data->prop = newdataadr(fd, data->prop);
IDP_DirectLinkProperty(data->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
@@ -1907,24 +1903,24 @@ static void direct_link_fcurves(FileData *fd, ListBase *list)
FCurve *fcu;
/* link F-Curve data to F-Curve again (non ID-libs) */
- for (fcu= list->first; fcu; fcu= fcu->next) {
+ for (fcu = list->first; fcu; fcu = fcu->next) {
/* curve data */
- fcu->bezt= newdataadr(fd, fcu->bezt);
- fcu->fpt= newdataadr(fd, fcu->fpt);
+ fcu->bezt = newdataadr(fd, fcu->bezt);
+ fcu->fpt = newdataadr(fd, fcu->fpt);
/* rna path */
- fcu->rna_path= newdataadr(fd, fcu->rna_path);
+ fcu->rna_path = newdataadr(fd, fcu->rna_path);
/* group */
- fcu->grp= newdataadr(fd, fcu->grp);
+ fcu->grp = newdataadr(fd, fcu->grp);
/* driver */
fcu->driver= newdataadr(fd, fcu->driver);
if (fcu->driver) {
ChannelDriver *driver= fcu->driver;
DriverVar *dvar;
-
- driver->expr_comp= NULL;
+
+ driver->expr_comp = NULL;
/* relink variables, targets and their paths */
link_list(fd, &driver->variables);
@@ -1933,9 +1929,9 @@ static void direct_link_fcurves(FileData *fd, ListBase *list)
{
/* only relink the targets being used */
if (tarIndex < dvar->num_targets)
- dtar->rna_path= newdataadr(fd, dtar->rna_path);
+ dtar->rna_path = newdataadr(fd, dtar->rna_path);
else
- dtar->rna_path= NULL;
+ dtar->rna_path = NULL;
}
DRIVER_TARGETS_LOOPER_END
}
@@ -1953,13 +1949,13 @@ static void lib_link_action(FileData *fd, Main *main)
bAction *act;
bActionChannel *chan;
- for (act= main->action.first; act; act= act->id.next) {
+ for (act = main->action.first; act; act = act->id.next) {
if (act->id.flag & LIB_NEEDLINK) {
act->id.flag -= LIB_NEEDLINK;
// XXX depreceated - old animation system <<<
for (chan=act->chanbase.first; chan; chan=chan->next) {
- chan->ipo= newlibadr_us(fd, act->id.lib, chan->ipo);
+ chan->ipo = newlibadr_us(fd, act->id.lib, chan->ipo);
lib_link_constraint_channels(fd, &act->id, &chan->constraintChannels);
}
// >>> XXX depreceated - old animation system
@@ -1981,7 +1977,7 @@ static void direct_link_action(FileData *fd, bAction *act)
// XXX depreceated - old animation system <<<
for (achan = act->chanbase.first; achan; achan=achan->next) {
- achan->grp= newdataadr(fd, achan->grp);
+ achan->grp = newdataadr(fd, achan->grp);
link_list(fd, &achan->constraintChannels);
}
@@ -1999,7 +1995,7 @@ static void lib_link_nladata_strips(FileData *fd, ID *id, ListBase *list)
{
NlaStrip *strip;
- for (strip= list->first; strip; strip= strip->next) {
+ for (strip = list->first; strip; strip = strip->next) {
/* check strip's children */
lib_link_nladata_strips(fd, id, &strip->strips);
@@ -2020,7 +2016,7 @@ static void lib_link_nladata(FileData *fd, ID *id, ListBase *list)
NlaTrack *nlt;
/* we only care about the NLA strips inside the tracks */
- for (nlt= list->first; nlt; nlt= nlt->next) {
+ for (nlt = list->first; nlt; nlt = nlt->next) {
lib_link_nladata_strips(fd, id, &nlt->strips);
}
}
@@ -2032,7 +2028,7 @@ static void direct_link_nladata_strips(FileData *fd, ListBase *list)
{
NlaStrip *strip;
- for (strip= list->first; strip; strip= strip->next) {
+ for (strip = list->first; strip; strip = strip->next) {
/* strip's child strips */
link_list(fd, &strip->strips);
direct_link_nladata_strips(fd, &strip->strips);
@@ -2052,7 +2048,7 @@ static void direct_link_nladata(FileData *fd, ListBase *list)
{
NlaTrack *nlt;
- for (nlt= list->first; nlt; nlt= nlt->next) {
+ for (nlt = list->first; nlt; nlt = nlt->next) {
/* relink list of strips */
link_list(fd, &nlt->strips);
@@ -2069,8 +2065,8 @@ static void lib_link_keyingsets(FileData *fd, ID *id, ListBase *list)
KS_Path *ksp;
/* here, we're only interested in the ID pointer stored in some of the paths */
- for (ks= list->first; ks; ks= ks->next) {
- for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
+ for (ks = list->first; ks; ks = ks->next) {
+ for (ksp = ks->paths.first; ksp; ksp = ksp->next) {
ksp->id= newlibadr(fd, id->lib, ksp->id);
}
}
@@ -2083,11 +2079,11 @@ static void direct_link_keyingsets(FileData *fd, ListBase *list)
KS_Path *ksp;
/* link KeyingSet data to KeyingSet again (non ID-libs) */
- for (ks= list->first; ks; ks= ks->next) {
+ for (ks = list->first; ks; ks = ks->next) {
/* paths */
link_list(fd, &ks->paths);
- for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
+ for (ksp = ks->paths.first; ksp; ksp = ksp->next) {
/* rna path */
ksp->rna_path= newdataadr(fd, ksp->rna_path);
}
@@ -2143,7 +2139,7 @@ static void direct_link_animdata(FileData *fd, AnimData *adt)
*/
// TODO: it's not really nice that anyone should be able to save the file in this
// state, but it's going to be too hard to enforce this single case...
- adt->actstrip= newdataadr(fd, adt->actstrip);
+ adt->actstrip = newdataadr(fd, adt->actstrip);
}
/* ************ READ MOTION PATHS *************** */
@@ -2156,7 +2152,7 @@ static void direct_link_motionpath(FileData *fd, bMotionPath *mpath)
return;
/* relink points cache */
- mpath->points= newdataadr(fd, mpath->points);
+ mpath->points = newdataadr(fd, mpath->points);
}
/* ************ READ NODE TREE *************** */
@@ -2168,10 +2164,10 @@ static void lib_link_ntree(FileData *fd, ID *id, bNodeTree *ntree)
if (ntree->adt) lib_link_animdata(fd, &ntree->id, ntree->adt);
- ntree->gpd= newlibadr_us(fd, id->lib, ntree->gpd);
+ ntree->gpd = newlibadr_us(fd, id->lib, ntree->gpd);
- for (node= ntree->nodes.first; node; node= node->next)
- node->id= newlibadr_us(fd, id->lib, node->id);
+ for (node = ntree->nodes.first; node; node = node->next)
+ node->id = newlibadr_us(fd, id->lib, node->id);
}
/* library ntree linking after fileread */
@@ -2180,7 +2176,7 @@ static void lib_link_nodetree(FileData *fd, Main *main)
bNodeTree *ntree;
/* only link ID pointers */
- for (ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next) {
if (ntree->id.flag & LIB_NEEDLINK) {
ntree->id.flag -= LIB_NEEDLINK;
lib_link_ntree(fd, &ntree->id, ntree);
@@ -2198,24 +2194,24 @@ static void do_versions_socket_default_value(bNodeSocket *sock)
return;
switch (sock->type) {
- case SOCK_FLOAT:
- valfloat = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueFloat), "default socket value");
- valfloat->value = sock->ns.vec[0];
- valfloat->min = sock->ns.min;
- valfloat->max = sock->ns.max;
- valfloat->subtype = PROP_NONE;
- break;
- case SOCK_VECTOR:
- valvector = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueVector), "default socket value");
- copy_v3_v3(valvector->value, sock->ns.vec);
- valvector->min = sock->ns.min;
- valvector->max = sock->ns.max;
- valvector->subtype = PROP_NONE;
- break;
- case SOCK_RGBA:
- valrgba = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueRGBA), "default socket value");
- copy_v4_v4(valrgba->value, sock->ns.vec);
- break;
+ case SOCK_FLOAT:
+ valfloat = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueFloat), "default socket value");
+ valfloat->value = sock->ns.vec[0];
+ valfloat->min = sock->ns.min;
+ valfloat->max = sock->ns.max;
+ valfloat->subtype = PROP_NONE;
+ break;
+ case SOCK_VECTOR:
+ valvector = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueVector), "default socket value");
+ copy_v3_v3(valvector->value, sock->ns.vec);
+ valvector->min = sock->ns.min;
+ valvector->max = sock->ns.max;
+ valvector->subtype = PROP_NONE;
+ break;
+ case SOCK_RGBA:
+ valrgba = sock->default_value = MEM_callocN(sizeof(bNodeSocketValueRGBA), "default socket value");
+ copy_v4_v4(valrgba->value, sock->ns.vec);
+ break;
}
}
@@ -2240,7 +2236,7 @@ static void lib_nodetree_init_types_cb(void *UNUSED(data), ID *UNUSED(id), bNode
bNode *node;
ntreeInitTypes(ntree);
-
+
/* need to do this here instead of in do_versions, otherwise next function can crash */
blo_do_versions_nodetree_default_value(ntree);
@@ -2254,7 +2250,7 @@ static void lib_nodetree_init_types_cb(void *UNUSED(data), ID *UNUSED(id), bNode
*/
static void lib_node_do_versions_group_indices(bNode *gnode)
{
- bNodeTree *ngroup= (bNodeTree*)gnode->id;
+ bNodeTree *ngroup = (bNodeTree*)gnode->id;
bNode *intnode;
bNodeSocket *sock, *gsock, *intsock;
int found;
@@ -2289,9 +2285,9 @@ static void lib_nodetree_do_versions_group_indices_cb(void *UNUSED(data), ID *UN
{
bNode *node;
- for (node=ntree->nodes.first; node; node=node->next) {
- if (node->type==NODE_GROUP) {
- bNodeTree *ngroup= (bNodeTree*)node->id;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == NODE_GROUP) {
+ bNodeTree *ngroup = (bNodeTree*)node->id;
if (ngroup && (ngroup->flag & NTREE_DO_VERSIONS_GROUP_EXPOSE))
lib_node_do_versions_group_indices(node);
}
@@ -2313,31 +2309,31 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open))
bNodeTree *ntree;
int i;
bNodeTreeType *ntreetype;
-
+
/* this crashes blender on undo/redo */
#if 0
- if (open==1) {
+ if (open == 1) {
reinit_nodesystem();
}
#endif
/* set node->typeinfo pointers */
- for (i=0; i < NUM_NTREE_TYPES; ++i) {
- ntreetype= ntreeGetType(i);
+ for (i = 0; i < NUM_NTREE_TYPES; ++i) {
+ ntreetype = ntreeGetType(i);
if (ntreetype && ntreetype->foreach_nodetree)
ntreetype->foreach_nodetree(main, NULL, lib_nodetree_init_types_cb);
}
- for (ntree= main->nodetree.first; ntree; ntree= ntree->id.next)
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next)
lib_nodetree_init_types_cb(NULL, NULL, ntree);
{
- int has_old_groups=0;
+ int has_old_groups = 0;
/* XXX this should actually be part of do_versions, but since we need
* finished library linking, it is not possible there. Instead in do_versions
* we have set the NTREE_DO_VERSIONS flag, so at this point we can do the
* actual group node updates.
*/
- for (ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next) {
if (ntree->flag & NTREE_DO_VERSIONS_GROUP_EXPOSE) {
/* this adds copies and links from all unlinked internal sockets to group inputs/outputs. */
node_group_expose_all_sockets(ntree);
@@ -2346,30 +2342,30 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open))
}
if (has_old_groups) {
- for (i=0; i < NUM_NTREE_TYPES; ++i) {
- ntreetype= ntreeGetType(i);
+ for (i = 0; i < NUM_NTREE_TYPES; ++i) {
+ ntreetype = ntreeGetType(i);
if (ntreetype && ntreetype->foreach_nodetree)
ntreetype->foreach_nodetree(main, NULL, lib_nodetree_do_versions_group_indices_cb);
}
}
- for (ntree= main->nodetree.first; ntree; ntree= ntree->id.next)
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next)
ntree->flag &= ~NTREE_DO_VERSIONS_GROUP_EXPOSE;
}
-
+
/* verify all group user nodes */
- for (ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next) {
ntreeVerifyNodes(main, &ntree->id);
}
/* make update calls where necessary */
{
- for (ntree= main->nodetree.first; ntree; ntree= ntree->id.next)
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next)
if (ntree->update)
ntreeUpdateTree(ntree);
-
- for (i=0; i < NUM_NTREE_TYPES; ++i) {
- ntreetype= ntreeGetType(i);
+
+ for (i = 0; i < NUM_NTREE_TYPES; i++) {
+ ntreetype = ntreeGetType(i);
if (ntreetype && ntreetype->foreach_nodetree)
ntreetype->foreach_nodetree(main, NULL, lib_nodetree_do_versions_update_cb);
}
@@ -2378,10 +2374,10 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open))
static void direct_link_node_socket(FileData *fd, bNodeSocket *sock)
{
- sock->link= newdataadr(fd, sock->link);
- sock->storage= newdataadr(fd, sock->storage);
- sock->default_value= newdataadr(fd, sock->default_value);
- sock->cache= NULL;
+ sock->link = newdataadr(fd, sock->link);
+ sock->storage = newdataadr(fd, sock->storage);
+ sock->default_value = newdataadr(fd, sock->default_value);
+ sock->cache = NULL;
}
/* ntree itself has been read! */
@@ -2392,46 +2388,46 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
bNodeSocket *sock;
bNodeLink *link;
- ntree->init= 0; /* to set callbacks and force setting types */
- ntree->progress= NULL;
- ntree->execdata= NULL;
+ ntree->init = 0; /* to set callbacks and force setting types */
+ ntree->progress = NULL;
+ ntree->execdata = NULL;
- ntree->adt= newdataadr(fd, ntree->adt);
+ ntree->adt = newdataadr(fd, ntree->adt);
direct_link_animdata(fd, ntree->adt);
link_list(fd, &ntree->nodes);
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
if (node->type == NODE_DYNAMIC) {
- node->custom1= 0;
- node->custom1= BSET(node->custom1, NODE_DYNAMIC_LOADED);
+ node->custom1 = 0;
+ node->custom1 = BSET(node->custom1, NODE_DYNAMIC_LOADED);
}
-
- node->typeinfo= NULL;
+
+ node->typeinfo = NULL;
link_list(fd, &node->inputs);
link_list(fd, &node->outputs);
if (node->type == CMP_NODE_MOVIEDISTORTION) {
- node->storage= newmclipadr(fd, node->storage);
+ node->storage = newmclipadr(fd, node->storage);
}
else
- node->storage= newdataadr(fd, node->storage);
-
+ node->storage = newdataadr(fd, node->storage);
+
if (node->storage) {
/* could be handlerized at some point */
if (ntree->type==NTREE_SHADER && (node->type==SH_NODE_CURVE_VEC || node->type==SH_NODE_CURVE_RGB))
direct_link_curvemapping(fd, node->storage);
else if (ntree->type==NTREE_COMPOSIT) {
- if ( ELEM4(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT))
+ if (ELEM4(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT))
direct_link_curvemapping(fd, node->storage);
else if (ELEM3(node->type, CMP_NODE_IMAGE, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
- ((ImageUser *)node->storage)->ok= 1;
+ ((ImageUser *)node->storage)->ok = 1;
}
else if ( ntree->type==NTREE_TEXTURE) {
if (node->type==TEX_NODE_CURVE_RGB || node->type==TEX_NODE_CURVE_TIME)
direct_link_curvemapping(fd, node->storage);
else if (node->type==TEX_NODE_IMAGE)
- ((ImageUser *)node->storage)->ok= 1;
+ ((ImageUser *)node->storage)->ok = 1;
}
}
}
@@ -2442,26 +2438,26 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
link_list(fd, &ntree->outputs);
/* and we connect the rest */
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
node->parent = newdataadr(fd, node->parent);
- node->preview= newimaadr(fd, node->preview);
- node->lasty= 0;
+ node->preview = newimaadr(fd, node->preview);
+ node->lasty = 0;
- for (sock= node->inputs.first; sock; sock= sock->next)
+ for (sock = node->inputs.first; sock; sock = sock->next)
direct_link_node_socket(fd, sock);
- for (sock= node->outputs.first; sock; sock= sock->next)
+ for (sock = node->outputs.first; sock; sock = sock->next)
direct_link_node_socket(fd, sock);
}
- for (sock= ntree->inputs.first; sock; sock= sock->next)
+ for (sock = ntree->inputs.first; sock; sock = sock->next)
direct_link_node_socket(fd, sock);
- for (sock= ntree->outputs.first; sock; sock= sock->next)
+ for (sock = ntree->outputs.first; sock; sock = sock->next)
direct_link_node_socket(fd, sock);
- for (link= ntree->links.first; link; link= link->next) {
- link->fromnode= newdataadr(fd, link->fromnode);
- link->tonode= newdataadr(fd, link->tonode);
- link->fromsock= newdataadr(fd, link->fromsock);
- link->tosock= newdataadr(fd, link->tosock);
+ for (link = ntree->links.first; link; link= link->next) {
+ link->fromnode = newdataadr(fd, link->fromnode);
+ link->tonode = newdataadr(fd, link->tonode);
+ link->fromsock = newdataadr(fd, link->fromsock);
+ link->tosock = newdataadr(fd, link->tosock);
}
/* type verification is in lib-link */
@@ -2499,16 +2495,16 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist)
for (con = conlist->first; con; con=con->next) {
/* patch for error introduced by changing constraints (dunno how) */
/* if con->data type changes, dna cannot resolve the pointer! (ton) */
- if (con->data==NULL) {
- con->type= CONSTRAINT_TYPE_NULL;
+ if (con->data == NULL) {
+ con->type = CONSTRAINT_TYPE_NULL;
}
/* own ipo, all constraints have it */
- con->ipo= newlibadr_us(fd, id->lib, con->ipo); // XXX depreceated - old animation system
+ con->ipo = newlibadr_us(fd, id->lib, con->ipo); // XXX depreceated - old animation system
}
/* relink all ID-blocks used by the constraints */
- cld.fd= fd;
- cld.id= id;
+ cld.fd = fd;
+ cld.id = id;
id_loop_constraints(conlist, lib_link_constraint_cb, &cld);
}
@@ -2516,7 +2512,7 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist)
static void direct_link_constraints(FileData *fd, ListBase *lb)
{
bConstraint *con;
-
+
link_list(fd, lb);
for (con=lb->first; con; con=con->next) {
con->data = newdataadr(fd, con->data);
@@ -2559,16 +2555,16 @@ static void direct_link_constraints(FileData *fd, ListBase *lb)
static void lib_link_pose(FileData *fd, Object *ob, bPose *pose)
{
bPoseChannel *pchan;
- bArmature *arm= ob->data;
+ bArmature *arm = ob->data;
int rebuild;
if (!pose || !arm)
return;
-
+
/* always rebuild to match proxy or lib changes */
- rebuild= ob->proxy || (ob->id.lib==NULL && arm->id.lib);
-
+ rebuild = ob->proxy || (ob->id.lib==NULL && arm->id.lib);
+
if (ob->proxy) {
/* sync proxy layer */
if (pose->proxy_layer)
@@ -2581,15 +2577,15 @@ static void lib_link_pose(FileData *fd, Object *ob, bPose *pose)
arm->act_bone = bone;
}
}
-
+
for (pchan = pose->chanbase.first; pchan; pchan=pchan->next) {
lib_link_constraints(fd, (ID *)ob, &pchan->constraints);
/* hurms... loop in a loop, but yah... later... (ton) */
- pchan->bone= BKE_armature_find_bone_name(arm, pchan->name);
+ pchan->bone = BKE_armature_find_bone_name(arm, pchan->name);
- pchan->custom= newlibadr_us(fd, arm->id.lib, pchan->custom);
- if (pchan->bone==NULL)
+ pchan->custom = newlibadr_us(fd, arm->id.lib, pchan->custom);
+ if (pchan->bone == NULL)
rebuild= 1;
else if (ob->id.lib==NULL && arm->id.lib) {
/* local pose selection copied to armature, bit hackish */
@@ -2599,7 +2595,7 @@ static void lib_link_pose(FileData *fd, Object *ob, bPose *pose)
}
if (rebuild) {
- ob->recalc= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
+ ob->recalc = (OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
pose->flag |= POSE_RECALC;
}
}
@@ -2607,54 +2603,49 @@ static void lib_link_pose(FileData *fd, Object *ob, bPose *pose)
static void lib_link_armature(FileData *fd, Main *main)
{
bArmature *arm;
-
- arm= main->armature.first;
-
- while (arm) {
+
+ for (arm = main->armature.first; arm; arm = arm->id.next) {
if (arm->id.flag & LIB_NEEDLINK) {
if (arm->adt) lib_link_animdata(fd, &arm->id, arm->adt);
arm->id.flag -= LIB_NEEDLINK;
}
- arm= arm->id.next;
}
}
static void direct_link_bones(FileData *fd, Bone* bone)
{
- Bone *child;
-
- bone->parent= newdataadr(fd, bone->parent);
- bone->prop= newdataadr(fd, bone->prop);
+ Bone *child;
+
+ bone->parent = newdataadr(fd, bone->parent);
+ bone->prop = newdataadr(fd, bone->prop);
if (bone->prop)
IDP_DirectLinkProperty(bone->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
bone->flag &= ~BONE_DRAW_ACTIVE;
-
+
link_list(fd, &bone->childbase);
-
+
for (child=bone->childbase.first; child; child=child->next)
direct_link_bones(fd, child);
}
static void direct_link_armature(FileData *fd, bArmature *arm)
{
- Bone *bone;
-
+ Bone *bone;
+
link_list(fd, &arm->bonebase);
- arm->edbo= NULL;
+ arm->edbo = NULL;
arm->sketch = NULL;
- arm->adt= newdataadr(fd, arm->adt);
+ arm->adt = newdataadr(fd, arm->adt);
direct_link_animdata(fd, arm->adt);
- bone=arm->bonebase.first;
- while (bone) {
+ for (bone = arm->bonebase.first; bone; bone = bone->next) {
direct_link_bones(fd, bone);
- bone=bone->next;
}
-
- arm->act_bone= newdataadr(fd, arm->act_bone);
- arm->act_edbone= NULL;
+
+ arm->act_bone = newdataadr(fd, arm->act_bone);
+ arm->act_edbone = NULL;
}
/* ************ READ CAMERA ***************** */
@@ -2662,25 +2653,23 @@ static void direct_link_armature(FileData *fd, bArmature *arm)
static void lib_link_camera(FileData *fd, Main *main)
{
Camera *ca;
-
- ca= main->camera.first;
- while (ca) {
+
+ for (ca = main->camera.first; ca; ca = ca->id.next) {
if (ca->id.flag & LIB_NEEDLINK) {
if (ca->adt) lib_link_animdata(fd, &ca->id, ca->adt);
- ca->ipo= newlibadr_us(fd, ca->id.lib, ca->ipo); // XXX depreceated - old animation system
+ ca->ipo = newlibadr_us(fd, ca->id.lib, ca->ipo); // XXX depreceated - old animation system
- ca->dof_ob= newlibadr_us(fd, ca->id.lib, ca->dof_ob);
+ ca->dof_ob = newlibadr_us(fd, ca->id.lib, ca->dof_ob);
ca->id.flag -= LIB_NEEDLINK;
}
- ca= ca->id.next;
}
}
static void direct_link_camera(FileData *fd, Camera *ca)
{
- ca->adt= newdataadr(fd, ca->adt);
+ ca->adt = newdataadr(fd, ca->adt);
direct_link_animdata(fd, ca->adt);
}
@@ -2692,28 +2681,26 @@ static void lib_link_lamp(FileData *fd, Main *main)
Lamp *la;
MTex *mtex;
int a;
-
- la= main->lamp.first;
- while (la) {
+
+ for (la = main->lamp.first; la; la = la->id.next) {
if (la->id.flag & LIB_NEEDLINK) {
if (la->adt) lib_link_animdata(fd, &la->id, la->adt);
- for (a=0; a<MAX_MTEX; a++) {
- mtex= la->mtex[a];
+ for (a = 0; a < MAX_MTEX; a++) {
+ mtex = la->mtex[a];
if (mtex) {
- mtex->tex= newlibadr_us(fd, la->id.lib, mtex->tex);
- mtex->object= newlibadr(fd, la->id.lib, mtex->object);
+ mtex->tex = newlibadr_us(fd, la->id.lib, mtex->tex);
+ mtex->object = newlibadr(fd, la->id.lib, mtex->object);
}
}
- la->ipo= newlibadr_us(fd, la->id.lib, la->ipo); // XXX depreceated - old animation system
-
+ la->ipo = newlibadr_us(fd, la->id.lib, la->ipo); // XXX depreceated - old animation system
+
if (la->nodetree)
lib_link_ntree(fd, &la->id, la->nodetree);
la->id.flag -= LIB_NEEDLINK;
}
- la= la->id.next;
}
}
@@ -2721,14 +2708,14 @@ static void direct_link_lamp(FileData *fd, Lamp *la)
{
int a;
- la->adt= newdataadr(fd, la->adt);
+ la->adt = newdataadr(fd, la->adt);
direct_link_animdata(fd, la->adt);
-
+
for (a=0; a<MAX_MTEX; a++) {
- la->mtex[a]= newdataadr(fd, la->mtex[a]);
+ la->mtex[a] = newdataadr(fd, la->mtex[a]);
}
- la->curfalloff= newdataadr(fd, la->curfalloff);
+ la->curfalloff = newdataadr(fd, la->curfalloff);
if (la->curfalloff)
direct_link_curvemapping(fd, la->curfalloff);
@@ -2744,28 +2731,26 @@ static void direct_link_lamp(FileData *fd, Lamp *la)
static void lib_link_key(FileData *fd, Main *main)
{
Key *key;
-
- key= main->key.first;
- while (key) {
+
+ for (key = main->key.first; key; key = key->id.next) {
/*check if we need to generate unique ids for the shapekeys*/
if (!key->uidgen) {
KeyBlock *block;
-
+
key->uidgen = 1;
for (block=key->block.first; block; block=block->next) {
block->uid = key->uidgen++;
}
}
-
+
if (key->id.flag & LIB_NEEDLINK) {
if (key->adt) lib_link_animdata(fd, &key->id, key->adt);
- key->ipo= newlibadr_us(fd, key->id.lib, key->ipo); // XXX depreceated - old animation system
- key->from= newlibadr(fd, key->id.lib, key->from);
-
+ key->ipo = newlibadr_us(fd, key->id.lib, key->ipo); // XXX depreceated - old animation system
+ key->from = newlibadr(fd, key->id.lib, key->from);
+
key->id.flag -= LIB_NEEDLINK;
}
- key= key->id.next;
}
}
@@ -2773,31 +2758,29 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb)
{
int elemsize, a, b;
char *data, *poin, *cp;
-
- elemsize= key->elemsize;
- data= kb->data;
-
- for (a=0; a<kb->totelem; a++) {
-
- cp= key->elemstr;
- poin= data;
-
- while ( cp[0] ) { /* cp[0] == amount */
-
+
+ elemsize = key->elemsize;
+ data = kb->data;
+
+ for (a = 0; a < kb->totelem; a++) {
+ cp = key->elemstr;
+ poin = data;
+
+ while (cp[0]) { /* cp[0] == amount */
switch (cp[1]) { /* cp[1] = type */
- case IPO_FLOAT:
- case IPO_BPOINT:
- case IPO_BEZTRIPLE:
- b= cp[0];
- while (b--) {
- SWITCH_INT((*poin));
- poin+= 4;
- }
- break;
+ case IPO_FLOAT:
+ case IPO_BPOINT:
+ case IPO_BEZTRIPLE:
+ b = cp[0];
+
+ while (b--) {
+ SWITCH_INT((*poin));
+ poin += 4;
+ }
+ break;
}
-
- cp+= 2;
-
+
+ cp += 2;
}
data+= elemsize;
}
@@ -2806,23 +2789,19 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb)
static void direct_link_key(FileData *fd, Key *key)
{
KeyBlock *kb;
-
+
link_list(fd, &(key->block));
-
- key->adt= newdataadr(fd, key->adt);
- direct_link_animdata(fd, key->adt);
+ key->adt = newdataadr(fd, key->adt);
+ direct_link_animdata(fd, key->adt);
+
key->refkey= newdataadr(fd, key->refkey);
-
- kb= key->block.first;
- while (kb) {
-
- kb->data= newdataadr(fd, kb->data);
+
+ for (kb = key->block.first; kb; kb = kb->next) {
+ kb->data = newdataadr(fd, kb->data);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN)
switch_endian_keyblock(key, kb);
-
- kb= kb->next;
}
}
@@ -2832,37 +2811,36 @@ static void lib_link_mball(FileData *fd, Main *main)
{
MetaBall *mb;
int a;
-
- mb= main->mball.first;
- while (mb) {
+
+ for (mb = main->mball.first; mb; mb = mb->id.next) {
if (mb->id.flag & LIB_NEEDLINK) {
if (mb->adt) lib_link_animdata(fd, &mb->id, mb->adt);
- for (a=0; a<mb->totcol; a++) mb->mat[a]= newlibadr_us(fd, mb->id.lib, mb->mat[a]);
-
- mb->ipo= newlibadr_us(fd, mb->id.lib, mb->ipo); // XXX depreceated - old animation system
-
+ for (a = 0; a < mb->totcol; a++)
+ mb->mat[a]= newlibadr_us(fd, mb->id.lib, mb->mat[a]);
+
+ mb->ipo = newlibadr_us(fd, mb->id.lib, mb->ipo); // XXX depreceated - old animation system
+
mb->id.flag -= LIB_NEEDLINK;
}
- mb= mb->id.next;
}
}
static void direct_link_mball(FileData *fd, MetaBall *mb)
{
- mb->adt= newdataadr(fd, mb->adt);
+ mb->adt = newdataadr(fd, mb->adt);
direct_link_animdata(fd, mb->adt);
- mb->mat= newdataadr(fd, mb->mat);
+ mb->mat = newdataadr(fd, mb->mat);
test_pointer_array(fd, (void **)&mb->mat);
-
+
link_list(fd, &(mb->elems));
-
- mb->disp.first= mb->disp.last= NULL;
- mb->editelems= NULL;
- mb->bb= NULL;
+
+ mb->disp.first = mb->disp.last = NULL;
+ mb->editelems = NULL;
+ mb->bb = NULL;
/* mb->edit_elems.first= mb->edit_elems.last= NULL;*/
- mb->lastelem= NULL;
+ mb->lastelem = NULL;
}
/* ************ READ WORLD ***************** */
@@ -2872,46 +2850,44 @@ static void lib_link_world(FileData *fd, Main *main)
World *wrld;
MTex *mtex;
int a;
-
- wrld= main->world.first;
- while (wrld) {
+
+ for (wrld = main->world.first; wrld; wrld = wrld->id.next) {
if (wrld->id.flag & LIB_NEEDLINK) {
if (wrld->adt) lib_link_animdata(fd, &wrld->id, wrld->adt);
- wrld->ipo= newlibadr_us(fd, wrld->id.lib, wrld->ipo); // XXX depreceated - old animation system
+ wrld->ipo = newlibadr_us(fd, wrld->id.lib, wrld->ipo); // XXX depreceated - old animation system
- for (a=0; a<MAX_MTEX; a++) {
- mtex= wrld->mtex[a];
+ for (a=0; a < MAX_MTEX; a++) {
+ mtex = wrld->mtex[a];
if (mtex) {
- mtex->tex= newlibadr_us(fd, wrld->id.lib, mtex->tex);
- mtex->object= newlibadr(fd, wrld->id.lib, mtex->object);
+ mtex->tex = newlibadr_us(fd, wrld->id.lib, mtex->tex);
+ mtex->object = newlibadr(fd, wrld->id.lib, mtex->object);
}
}
-
+
if (wrld->nodetree)
lib_link_ntree(fd, &wrld->id, wrld->nodetree);
wrld->id.flag -= LIB_NEEDLINK;
}
- wrld= wrld->id.next;
}
}
static void direct_link_world(FileData *fd, World *wrld)
{
int a;
-
- wrld->adt= newdataadr(fd, wrld->adt);
+
+ wrld->adt = newdataadr(fd, wrld->adt);
direct_link_animdata(fd, wrld->adt);
-
- for (a=0; a<MAX_MTEX; a++) {
- wrld->mtex[a]= newdataadr(fd, wrld->mtex[a]);
+
+ for (a = 0; a < MAX_MTEX; a++) {
+ wrld->mtex[a] = newdataadr(fd, wrld->mtex[a]);
}
-
- wrld->nodetree= newdataadr(fd, wrld->nodetree);
+
+ wrld->nodetree = newdataadr(fd, wrld->nodetree);
if (wrld->nodetree)
direct_link_nodetree(fd, wrld->nodetree);
-
+
wrld->preview = direct_link_preview_image(fd, wrld->preview);
}
@@ -2921,20 +2897,18 @@ static void direct_link_world(FileData *fd, World *wrld)
static void lib_link_vfont(FileData *UNUSED(fd), Main *main)
{
VFont *vf;
-
- vf= main->vfont.first;
- while (vf) {
+
+ for (vf = main->vfont.first; vf; vf = vf->id.next) {
if (vf->id.flag & LIB_NEEDLINK) {
vf->id.flag -= LIB_NEEDLINK;
}
- vf= vf->id.next;
}
}
static void direct_link_vfont(FileData *fd, VFont *vf)
{
- vf->data= NULL;
- vf->packedfile= direct_link_packedfile(fd, vf->packedfile);
+ vf->data = NULL;
+ vf->packedfile = direct_link_packedfile(fd, vf->packedfile);
}
/* ************ READ TEXT ****************** */
@@ -2942,57 +2916,52 @@ static void direct_link_vfont(FileData *fd, VFont *vf)
static void lib_link_text(FileData *UNUSED(fd), Main *main)
{
Text *text;
-
- text= main->text.first;
- while (text) {
+
+ for (text = main->text.first; text; text = text->id.next) {
if (text->id.flag & LIB_NEEDLINK) {
text->id.flag -= LIB_NEEDLINK;
}
- text= text->id.next;
}
}
static void direct_link_text(FileData *fd, Text *text)
{
TextLine *ln;
-
- text->name= newdataadr(fd, text->name);
-
- text->undo_pos= -1;
- text->undo_len= TXT_INIT_UNDO;
- text->undo_buf= MEM_mallocN(text->undo_len, "undo buf");
-
- text->compiled= NULL;
-
+
+ text->name = newdataadr(fd, text->name);
+
+ text->undo_pos = -1;
+ text->undo_len = TXT_INIT_UNDO;
+ text->undo_buf = MEM_mallocN(text->undo_len, "undo buf");
+
+ text->compiled = NULL;
+
#if 0
if (text->flags & TXT_ISEXT) {
BKE_text_reload(text);
}
else {
#endif
-
+
link_list(fd, &text->lines);
link_list(fd, &text->markers);
-
- text->curl= newdataadr(fd, text->curl);
- text->sell= newdataadr(fd, text->sell);
-
- ln= text->lines.first;
- while (ln) {
- ln->line= newdataadr(fd, ln->line);
- ln->format= NULL;
+
+ text->curl = newdataadr(fd, text->curl);
+ text->sell = newdataadr(fd, text->sell);
+
+ for (ln = text->lines.first; ln; ln = ln->next) {
+ ln->line = newdataadr(fd, ln->line);
+ ln->format = NULL;
if (ln->len != (int) strlen(ln->line)) {
printf("Error loading text, line lengths differ\n");
ln->len = strlen(ln->line);
}
-
- ln= ln->next;
}
-
+
text->flags = (text->flags) & ~TXT_ISEXT;
-
- text->id.us= 1;
+
+ text->id.us = 1;
}
/* ************ READ IMAGE ***************** */
@@ -3000,15 +2969,13 @@ static void direct_link_text(FileData *fd, Text *text)
static void lib_link_image(FileData *fd, Main *main)
{
Image *ima;
-
- ima= main->image.first;
- while (ima) {
+
+ for (ima = main->image.first; ima; ima = ima->id.next) {
if (ima->id.flag & LIB_NEEDLINK) {
if (ima->id.properties) IDP_LibLinkProperty(ima->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
-
+
ima->id.flag -= LIB_NEEDLINK;
}
- ima= ima->id.next;
}
}
@@ -3016,18 +2983,18 @@ static void link_ibuf_list(FileData *fd, ListBase *lb)
{
Link *ln, *prev;
- if (lb->first==NULL) return;
+ if (lb->first == NULL) return;
- lb->first= newimaadr(fd, lb->first);
- ln= lb->first;
- prev= NULL;
+ lb->first = newimaadr(fd, lb->first);
+ ln = lb->first;
+ prev = NULL;
while (ln) {
- ln->next= newimaadr(fd, ln->next);
- ln->prev= prev;
- prev= ln;
- ln= ln->next;
+ ln->next = newimaadr(fd, ln->next);
+ ln->prev = prev;
+ prev = ln;
+ ln = ln->next;
}
- lb->last= prev;
+ lb->last = prev;
}
static void direct_link_image(FileData *fd, Image *ima)
@@ -3036,33 +3003,33 @@ static void direct_link_image(FileData *fd, Image *ima)
if (fd->imamap)
link_ibuf_list(fd, &ima->ibufs);
else
- ima->ibufs.first= ima->ibufs.last= NULL;
+ ima->ibufs.first = ima->ibufs.last = NULL;
/* if not restored, we keep the binded opengl index */
- if (ima->ibufs.first==NULL) {
- ima->bindcode= 0;
- ima->gputexture= NULL;
+ if (ima->ibufs.first == NULL) {
+ ima->bindcode = 0;
+ ima->gputexture = NULL;
}
- ima->anim= NULL;
- ima->rr= NULL;
- ima->repbind= NULL;
+ ima->anim = NULL;
+ ima->rr = NULL;
+ ima->repbind = NULL;
/* undo system, try to restore render buffers */
if (fd->imamap) {
int a;
- for (a=0; a<IMA_MAX_RENDER_SLOT; a++)
- ima->renders[a]= newimaadr(fd, ima->renders[a]);
+ for (a = 0; a < IMA_MAX_RENDER_SLOT; a++)
+ ima->renders[a] = newimaadr(fd, ima->renders[a]);
}
else {
memset(ima->renders, 0, sizeof(ima->renders));
- ima->last_render_slot= ima->render_slot;
+ ima->last_render_slot = ima->render_slot;
}
ima->packedfile = direct_link_packedfile(fd, ima->packedfile);
ima->preview = direct_link_preview_image(fd, ima->preview);
- ima->ok= 1;
+ ima->ok = 1;
}
@@ -3072,28 +3039,27 @@ static void lib_link_curve(FileData *fd, Main *main)
{
Curve *cu;
int a;
-
- cu= main->curve.first;
- while (cu) {
+
+ for (cu = main->curve.first; cu; cu = cu->id.next) {
if (cu->id.flag & LIB_NEEDLINK) {
if (cu->adt) lib_link_animdata(fd, &cu->id, cu->adt);
-
- for (a=0; a<cu->totcol; a++) cu->mat[a]= newlibadr_us(fd, cu->id.lib, cu->mat[a]);
-
- cu->bevobj= newlibadr(fd, cu->id.lib, cu->bevobj);
- cu->taperobj= newlibadr(fd, cu->id.lib, cu->taperobj);
- cu->textoncurve= newlibadr(fd, cu->id.lib, cu->textoncurve);
- cu->vfont= newlibadr_us(fd, cu->id.lib, cu->vfont);
- cu->vfontb= newlibadr_us(fd, cu->id.lib, cu->vfontb);
- cu->vfonti= newlibadr_us(fd, cu->id.lib, cu->vfonti);
- cu->vfontbi= newlibadr_us(fd, cu->id.lib, cu->vfontbi);
-
- cu->ipo= newlibadr_us(fd, cu->id.lib, cu->ipo); // XXX depreceated - old animation system
- cu->key= newlibadr_us(fd, cu->id.lib, cu->key);
-
+
+ for (a = 0; a < cu->totcol; a++)
+ cu->mat[a] = newlibadr_us(fd, cu->id.lib, cu->mat[a]);
+
+ cu->bevobj = newlibadr(fd, cu->id.lib, cu->bevobj);
+ cu->taperobj = newlibadr(fd, cu->id.lib, cu->taperobj);
+ cu->textoncurve = newlibadr(fd, cu->id.lib, cu->textoncurve);
+ cu->vfont = newlibadr_us(fd, cu->id.lib, cu->vfont);
+ cu->vfontb = newlibadr_us(fd, cu->id.lib, cu->vfontb);
+ cu->vfonti = newlibadr_us(fd, cu->id.lib, cu->vfonti);
+ cu->vfontbi = newlibadr_us(fd, cu->id.lib, cu->vfontbi);
+
+ cu->ipo = newlibadr_us(fd, cu->id.lib, cu->ipo); // XXX depreceated - old animation system
+ cu->key = newlibadr_us(fd, cu->id.lib, cu->key);
+
cu->id.flag -= LIB_NEEDLINK;
}
- cu= cu->id.next;
}
}
@@ -3101,15 +3067,15 @@ static void lib_link_curve(FileData *fd, Main *main)
static void switch_endian_knots(Nurb *nu)
{
int len;
-
+
if (nu->knotsu) {
- len= KNOTSU(nu);
+ len = KNOTSU(nu);
while (len--) {
SWITCH_INT(nu->knotsu[len]);
}
}
if (nu->knotsv) {
- len= KNOTSV(nu);
+ len = KNOTSV(nu);
while (len--) {
SWITCH_INT(nu->knotsv[len]);
}
@@ -3124,21 +3090,21 @@ static void direct_link_curve(FileData *fd, Curve *cu)
cu->adt= newdataadr(fd, cu->adt);
direct_link_animdata(fd, cu->adt);
- cu->mat= newdataadr(fd, cu->mat);
+ cu->mat = newdataadr(fd, cu->mat);
test_pointer_array(fd, (void **)&cu->mat);
- cu->str= newdataadr(fd, cu->str);
+ cu->str = newdataadr(fd, cu->str);
cu->strinfo= newdataadr(fd, cu->strinfo);
- cu->tb= newdataadr(fd, cu->tb);
+ cu->tb = newdataadr(fd, cu->tb);
if (cu->vfont == NULL) link_list(fd, &(cu->nurb));
else {
cu->nurb.first=cu->nurb.last= NULL;
-
- tb= MEM_callocN(MAXTEXTBOX*sizeof(TextBox), "TextBoxread");
+
+ tb = MEM_callocN(MAXTEXTBOX*sizeof(TextBox), "TextBoxread");
if (cu->tb) {
memcpy(tb, cu->tb, cu->totbox*sizeof(TextBox));
MEM_freeN(cu->tb);
- cu->tb= tb;
+ cu->tb = tb;
}
else {
cu->totbox = 1;
@@ -3149,28 +3115,25 @@ static void direct_link_curve(FileData *fd, Curve *cu)
if (cu->wordspace == 0.0f) cu->wordspace = 1.0f;
}
- cu->bev.first=cu->bev.last= NULL;
- cu->disp.first=cu->disp.last= NULL;
- cu->editnurb= NULL;
- cu->lastsel= NULL;
- cu->path= NULL;
- cu->editfont= NULL;
+ cu->bev.first = cu->bev.last = NULL;
+ cu->disp.first = cu->disp.last = NULL;
+ cu->editnurb = NULL;
+ cu->lastsel = NULL;
+ cu->path = NULL;
+ cu->editfont = NULL;
- nu= cu->nurb.first;
- while (nu) {
- nu->bezt= newdataadr(fd, nu->bezt);
- nu->bp= newdataadr(fd, nu->bp);
- nu->knotsu= newdataadr(fd, nu->knotsu);
- nu->knotsv= newdataadr(fd, nu->knotsv);
+ for (nu = cu->nurb.first; nu; nu = nu->next) {
+ nu->bezt = newdataadr(fd, nu->bezt);
+ nu->bp = newdataadr(fd, nu->bp);
+ nu->knotsu = newdataadr(fd, nu->knotsu);
+ nu->knotsv = newdataadr(fd, nu->knotsv);
if (cu->vfont == NULL) nu->charidx= nu->mat_nr;
-
+
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
switch_endian_knots(nu);
}
-
- nu= nu->next;
}
- cu->bb= NULL;
+ cu->bb = NULL;
}
/* ************ READ TEX ***************** */
@@ -3178,81 +3141,81 @@ static void direct_link_curve(FileData *fd, Curve *cu)
static void lib_link_texture(FileData *fd, Main *main)
{
Tex *tex;
-
- tex= main->tex.first;
- while (tex) {
+
+ for (tex = main->tex.first; tex; tex = tex->id.next) {
if (tex->id.flag & LIB_NEEDLINK) {
if (tex->adt) lib_link_animdata(fd, &tex->id, tex->adt);
-
- tex->ima= newlibadr_us(fd, tex->id.lib, tex->ima);
- tex->ipo= newlibadr_us(fd, tex->id.lib, tex->ipo);
- if (tex->env) tex->env->object= newlibadr(fd, tex->id.lib, tex->env->object);
+
+ tex->ima = newlibadr_us(fd, tex->id.lib, tex->ima);
+ tex->ipo = newlibadr_us(fd, tex->id.lib, tex->ipo);
+ if (tex->env)
+ tex->env->object = newlibadr(fd, tex->id.lib, tex->env->object);
if (tex->pd)
- tex->pd->object= newlibadr(fd, tex->id.lib, tex->pd->object);
- if (tex->vd) tex->vd->object= newlibadr(fd, tex->id.lib, tex->vd->object);
- if (tex->ot) tex->ot->object= newlibadr(fd, tex->id.lib, tex->ot->object);
-
-
+ tex->pd->object = newlibadr(fd, tex->id.lib, tex->pd->object);
+ if (tex->vd)
+ tex->vd->object = newlibadr(fd, tex->id.lib, tex->vd->object);
+ if (tex->ot)
+ tex->ot->object = newlibadr(fd, tex->id.lib, tex->ot->object);
+
if (tex->nodetree)
lib_link_ntree(fd, &tex->id, tex->nodetree);
tex->id.flag -= LIB_NEEDLINK;
}
- tex= tex->id.next;
}
}
static void direct_link_texture(FileData *fd, Tex *tex)
{
- tex->adt= newdataadr(fd, tex->adt);
+ tex->adt = newdataadr(fd, tex->adt);
direct_link_animdata(fd, tex->adt);
- tex->plugin= newdataadr(fd, tex->plugin);
+ tex->plugin = newdataadr(fd, tex->plugin);
if (tex->plugin) {
- tex->plugin->handle= NULL;
+ tex->plugin->handle = NULL;
open_plugin_tex(tex->plugin);
/* initialize data for this instance, if an initialization
* function exists.
*/
if (tex->plugin->instance_init)
- tex->plugin->instance_init((void *) tex->plugin->data);
+ tex->plugin->instance_init((void *)tex->plugin->data);
}
- tex->coba= newdataadr(fd, tex->coba);
- tex->env= newdataadr(fd, tex->env);
+ tex->coba = newdataadr(fd, tex->coba);
+ tex->env = newdataadr(fd, tex->env);
if (tex->env) {
- tex->env->ima= NULL;
+ tex->env->ima = NULL;
memset(tex->env->cube, 0, 6*sizeof(void *));
tex->env->ok= 0;
}
- tex->pd= newdataadr(fd, tex->pd);
+ tex->pd = newdataadr(fd, tex->pd);
if (tex->pd) {
tex->pd->point_tree = NULL;
- tex->pd->coba= newdataadr(fd, tex->pd->coba);
- tex->pd->falloff_curve= newdataadr(fd, tex->pd->falloff_curve);
+ tex->pd->coba = newdataadr(fd, tex->pd->coba);
+ tex->pd->falloff_curve = newdataadr(fd, tex->pd->falloff_curve);
if (tex->pd->falloff_curve) {
direct_link_curvemapping(fd, tex->pd->falloff_curve);
}
}
- tex->vd= newdataadr(fd, tex->vd);
+ tex->vd = newdataadr(fd, tex->vd);
if (tex->vd) {
tex->vd->dataset = NULL;
tex->vd->ok = 0;
}
else {
if (tex->type == TEX_VOXELDATA)
- tex->vd= MEM_callocN(sizeof(VoxelData), "direct_link_texture VoxelData");
+ tex->vd = MEM_callocN(sizeof(VoxelData), "direct_link_texture VoxelData");
}
- tex->ot= newdataadr(fd, tex->ot);
+ tex->ot = newdataadr(fd, tex->ot);
- tex->nodetree= newdataadr(fd, tex->nodetree);
+ tex->nodetree = newdataadr(fd, tex->nodetree);
if (tex->nodetree)
direct_link_nodetree(fd, tex->nodetree);
tex->preview = direct_link_preview_image(fd, tex->preview);
-
- tex->iuser.ok= 1;
+
+ tex->iuser.ok = 1;
}
@@ -3264,24 +3227,23 @@ static void lib_link_material(FileData *fd, Main *main)
Material *ma;
MTex *mtex;
int a;
-
- ma= main->mat.first;
- while (ma) {
+
+ for (ma = main->mat.first; ma; ma = ma->id.next) {
if (ma->id.flag & LIB_NEEDLINK) {
if (ma->adt) lib_link_animdata(fd, &ma->id, ma->adt);
-
+
/* Link ID Properties -- and copy this comment EXACTLY for easy finding
* of library blocks that implement this.*/
if (ma->id.properties) IDP_LibLinkProperty(ma->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
-
- ma->ipo= newlibadr_us(fd, ma->id.lib, ma->ipo);
- ma->group= newlibadr_us(fd, ma->id.lib, ma->group);
- for (a=0; a<MAX_MTEX; a++) {
- mtex= ma->mtex[a];
+ ma->ipo = newlibadr_us(fd, ma->id.lib, ma->ipo);
+ ma->group = newlibadr_us(fd, ma->id.lib, ma->group);
+
+ for (a = 0; a < MAX_MTEX; a++) {
+ mtex = ma->mtex[a];
if (mtex) {
- mtex->tex= newlibadr_us(fd, ma->id.lib, mtex->tex);
- mtex->object= newlibadr(fd, ma->id.lib, mtex->object);
+ mtex->tex = newlibadr_us(fd, ma->id.lib, mtex->tex);
+ mtex->object = newlibadr(fd, ma->id.lib, mtex->object);
}
}
@@ -3290,28 +3252,27 @@ static void lib_link_material(FileData *fd, Main *main)
ma->id.flag -= LIB_NEEDLINK;
}
- ma= ma->id.next;
}
}
static void direct_link_material(FileData *fd, Material *ma)
{
int a;
-
- ma->adt= newdataadr(fd, ma->adt);
+
+ ma->adt = newdataadr(fd, ma->adt);
direct_link_animdata(fd, ma->adt);
- for (a=0; a<MAX_MTEX; a++) {
- ma->mtex[a]= newdataadr(fd, ma->mtex[a]);
+ for (a = 0; a < MAX_MTEX; a++) {
+ ma->mtex[a] = newdataadr(fd, ma->mtex[a]);
}
-
- ma->ramp_col= newdataadr(fd, ma->ramp_col);
- ma->ramp_spec= newdataadr(fd, ma->ramp_spec);
- ma->nodetree= newdataadr(fd, ma->nodetree);
+ ma->ramp_col = newdataadr(fd, ma->ramp_col);
+ ma->ramp_spec = newdataadr(fd, ma->ramp_spec);
+
+ ma->nodetree = newdataadr(fd, ma->nodetree);
if (ma->nodetree)
direct_link_nodetree(fd, ma->nodetree);
-
+
ma->preview = direct_link_preview_image(fd, ma->preview);
ma->gpumaterial.first = ma->gpumaterial.last = NULL;
}
@@ -3334,39 +3295,39 @@ static void direct_link_pointcache(FileData *fd, PointCache *cache)
PTCacheMem *pm;
PTCacheExtra *extra;
int i;
-
+
link_list(fd, &cache->mem_cache);
-
+
pm = cache->mem_cache.first;
-
+
for (; pm; pm=pm->next) {
for (i=0; i<BPHYS_TOT_DATA; i++) {
pm->data[i] = newdataadr(fd, pm->data[i]);
/* the cache saves non-struct data without DNA */
if (pm->data[i] && ptcache_data_struct[i][0]=='\0' && (fd->flags & FD_FLAGS_SWITCH_ENDIAN)) {
- int j, tot= (BKE_ptcache_data_size (i) * pm->totpoint)/4; /* data_size returns bytes */
- int *poin= pm->data[i];
+ int j, tot = (BKE_ptcache_data_size (i) * pm->totpoint)/4; /* data_size returns bytes */
+ int *poin = pm->data[i];
- for (j= 0; j<tot; j++)
+ for (j = 0; j < tot; j++)
SWITCH_INT(poin[j]);
}
}
link_list(fd, &pm->extradata);
-
+
for (extra=pm->extradata.first; extra; extra=extra->next)
extra->data = newdataadr(fd, extra->data);
}
}
else
cache->mem_cache.first = cache->mem_cache.last = NULL;
-
+
cache->flag &= ~PTCACHE_SIMULATION_VALID;
- cache->simframe= 0;
- cache->edit= NULL;
- cache->free_edit= NULL;
- cache->cached_frames= NULL;
+ cache->simframe = 0;
+ cache->edit = NULL;
+ cache->free_edit = NULL;
+ cache->cached_frames = NULL;
}
static void direct_link_pointcache_list(FileData *fd, ListBase *ptcaches, PointCache **ocache, int force_disk)
@@ -3381,7 +3342,7 @@ static void direct_link_pointcache_list(FileData *fd, ListBase *ptcaches, PointC
cache->step = 1;
}
}
-
+
*ocache = newdataadr(fd, *ocache);
}
else if (*ocache) {
@@ -3392,7 +3353,7 @@ static void direct_link_pointcache_list(FileData *fd, ListBase *ptcaches, PointC
(*ocache)->flag |= PTCACHE_DISK_CACHE;
(*ocache)->step = 1;
}
-
+
ptcaches->first = ptcaches->last = *ocache;
}
}
@@ -3400,7 +3361,7 @@ static void direct_link_pointcache_list(FileData *fd, ListBase *ptcaches, PointC
static void lib_link_partdeflect(FileData *fd, ID *id, PartDeflect *pd)
{
if (pd && pd->tex)
- pd->tex=newlibadr_us(fd, id->lib, pd->tex);
+ pd->tex = newlibadr_us(fd, id->lib, pd->tex);
}
static void lib_link_particlesettings(FileData *fd, Main *main)
@@ -3409,24 +3370,23 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
ParticleDupliWeight *dw;
MTex *mtex;
int a;
-
- part= main->particle.first;
- while (part) {
+
+ for (part = main->particle.first; part; part = part->id.next) {
if (part->id.flag & LIB_NEEDLINK) {
if (part->adt) lib_link_animdata(fd, &part->id, part->adt);
- part->ipo= newlibadr_us(fd, part->id.lib, part->ipo); // XXX depreceated - old animation system
+ part->ipo = newlibadr_us(fd, part->id.lib, part->ipo); // XXX depreceated - old animation system
part->dup_ob = newlibadr(fd, part->id.lib, part->dup_ob);
part->dup_group = newlibadr(fd, part->id.lib, part->dup_group);
part->eff_group = newlibadr(fd, part->id.lib, part->eff_group);
part->bb_ob = newlibadr(fd, part->id.lib, part->bb_ob);
-
+
lib_link_partdeflect(fd, &part->id, part->pd);
lib_link_partdeflect(fd, &part->id, part->pd2);
-
+
if (part->effector_weights)
part->effector_weights->group = newlibadr(fd, part->id.lib, part->effector_weights->group);
-
+
if (part->dupliweights.first && part->dup_group) {
int index_ok = 0;
/* check for old files without indices (all indexes 0) */
@@ -3443,7 +3403,7 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
}
}
}
-
+
if (index_ok) {
/* if we have indexes, let's use them */
dw = part->dupliweights.first;
@@ -3461,7 +3421,7 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
else {
part->dupliweights.first = part->dupliweights.last = NULL;
}
-
+
if (part->boids) {
BoidState *state = part->boids->states.first;
BoidRule *rule;
@@ -3486,31 +3446,31 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
}
}
- for (a=0; a<MAX_MTEX; a++) {
+ for (a = 0; a < MAX_MTEX; a++) {
mtex= part->mtex[a];
if (mtex) {
mtex->tex = newlibadr_us(fd, part->id.lib, mtex->tex);
mtex->object = newlibadr(fd, part->id.lib, mtex->object);
}
}
-
+
part->id.flag -= LIB_NEEDLINK;
}
- part= part->id.next;
}
}
static void direct_link_partdeflect(PartDeflect *pd)
{
- if (pd) pd->rng=NULL;
+ if (pd) pd->rng = NULL;
}
static void direct_link_particlesettings(FileData *fd, ParticleSettings *part)
{
int a;
- part->adt= newdataadr(fd, part->adt);
- part->pd= newdataadr(fd, part->pd);
- part->pd2= newdataadr(fd, part->pd2);
+
+ part->adt = newdataadr(fd, part->adt);
+ part->pd = newdataadr(fd, part->pd);
+ part->pd2 = newdataadr(fd, part->pd2);
direct_link_animdata(fd, part->adt);
direct_link_partdeflect(part->pd);
@@ -3522,8 +3482,8 @@ static void direct_link_particlesettings(FileData *fd, ParticleSettings *part)
link_list(fd, &part->dupliweights);
- part->boids= newdataadr(fd, part->boids);
- part->fluid= newdataadr(fd, part->fluid);
+ part->boids = newdataadr(fd, part->boids);
+ part->fluid = newdataadr(fd, part->fluid);
if (part->boids) {
BoidState *state;
@@ -3535,8 +3495,8 @@ static void direct_link_particlesettings(FileData *fd, ParticleSettings *part)
link_list(fd, &state->actions);
}
}
- for (a=0; a<MAX_MTEX; a++) {
- part->mtex[a]= newdataadr(fd, part->mtex[a]);
+ for (a = 0; a < MAX_MTEX; a++) {
+ part->mtex[a] = newdataadr(fd, part->mtex[a]);
}
}
@@ -3545,32 +3505,32 @@ static void lib_link_particlesystems(FileData *fd, Object *ob, ID *id, ListBase
ParticleSystem *psys, *psysnext;
for (psys=particles->first; psys; psys=psysnext) {
- psysnext= psys->next;
+ psysnext = psys->next;
psys->part = newlibadr_us(fd, id->lib, psys->part);
if (psys->part) {
ParticleTarget *pt = psys->targets.first;
-
+
for (; pt; pt=pt->next)
pt->ob=newlibadr(fd, id->lib, pt->ob);
-
- psys->parent= newlibadr_us(fd, id->lib, psys->parent);
+
+ psys->parent = newlibadr_us(fd, id->lib, psys->parent);
psys->target_ob = newlibadr(fd, id->lib, psys->target_ob);
-
+
if (psys->clmd) {
/* XXX - from reading existing code this seems correct but intended usage of
* pointcache should /w cloth should be added in 'ParticleSystem' - campbell */
- psys->clmd->point_cache= psys->pointcache;
- psys->clmd->ptcaches.first= psys->clmd->ptcaches.last= NULL;
- psys->clmd->coll_parms->group= newlibadr(fd, id->lib, psys->clmd->coll_parms->group);
+ psys->clmd->point_cache = psys->pointcache;
+ psys->clmd->ptcaches.first = psys->clmd->ptcaches.last= NULL;
+ psys->clmd->coll_parms->group = newlibadr(fd, id->lib, psys->clmd->coll_parms->group);
}
}
else {
/* particle modifier must be removed before particle system */
- ParticleSystemModifierData *psmd= psys_get_modifier(ob, psys);
+ ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
BLI_remlink(&ob->modifiers, psmd);
modifier_free((ModifierData *)psmd);
-
+
BLI_remlink(particles, psys);
MEM_freeN(psys);
}
@@ -3581,7 +3541,7 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
ParticleSystem *psys;
ParticleData *pa;
int a;
-
+
for (psys=particles->first; psys; psys=psys->next) {
psys->particles=newdataadr(fd, psys->particles);
@@ -3595,10 +3555,10 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
pa->keys= NULL;
pa->totkey= 0;
}
-
+
psys->flag &= ~PSYS_KEYED;
}
-
+
if (psys->particles && psys->particles->boid) {
pa = psys->particles;
pa->boid = newdataadr(fd, pa->boid);
@@ -3609,14 +3569,14 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
for (a=0, pa=psys->particles; a<psys->totpart; a++, pa++)
pa->boid = NULL;
}
-
+
psys->fluid_springs = newdataadr(fd, psys->fluid_springs);
-
+
psys->child = newdataadr(fd, psys->child);
psys->effectors = NULL;
-
+
link_list(fd, &psys->targets);
-
+
psys->edit = NULL;
psys->free_edit = NULL;
psys->pathcache = NULL;
@@ -3628,7 +3588,7 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
psys->renderdata = NULL;
direct_link_pointcache_list(fd, &psys->ptcaches, &psys->pointcache, 0);
-
+
if (psys->clmd) {
psys->clmd = newdataadr(fd, psys->clmd);
psys->clmd->clothObject = NULL;
@@ -3641,12 +3601,12 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
if (psys->clmd->sim_parms->presets > 10)
psys->clmd->sim_parms->presets = 0;
}
-
+
psys->hair_in_dm = psys->hair_out_dm = NULL;
-
+
psys->clmd->point_cache = psys->pointcache;
}
-
+
psys->tree = NULL;
psys->bvhtree = NULL;
}
@@ -3659,11 +3619,11 @@ static void lib_link_mtface(FileData *fd, Mesh *me, MTFace *mtface, int totface)
{
MTFace *tf= mtface;
int i;
-
+
/* Add pseudo-references (not fake users!) to images used by texface. A
* little bogus; it would be better if each mesh consistently added one ref
* to each image it used. - z0r */
- for (i=0; i<totface; i++, tf++) {
+ for (i = 0; i < totface; i++, tf++) {
tf->tpage= newlibadr(fd, me->id.lib, tf->tpage);
if (tf->tpage && tf->tpage->id.us==0)
tf->tpage->id.us= 1;
@@ -3673,7 +3633,7 @@ static void lib_link_mtface(FileData *fd, Mesh *me, MTFace *mtface, int totface)
static void lib_link_customdata_mtface(FileData *fd, Mesh *me, CustomData *fdata, int totface)
{
int i;
- for (i=0; i<fdata->totlayer; i++) {
+ for (i = 0; i < fdata->totlayer; i++) {
CustomDataLayer *layer = &fdata->layers[i];
if (layer->type == CD_MTFACE)
@@ -3686,17 +3646,17 @@ static void lib_link_customdata_mtpoly(FileData *fd, Mesh *me, CustomData *pdata
{
int i;
- for (i=0; i<pdata->totlayer; i++) {
+ for (i=0; i < pdata->totlayer; i++) {
CustomDataLayer *layer = &pdata->layers[i];
if (layer->type == CD_MTEXPOLY) {
MTexPoly *tf= layer->data;
int i;
-
- for (i=0; i<totface; i++, tf++) {
- tf->tpage= newlibadr(fd, me->id.lib, tf->tpage);
+
+ for (i = 0; i < totface; i++, tf++) {
+ tf->tpage = newlibadr(fd, me->id.lib, tf->tpage);
if (tf->tpage && tf->tpage->id.us==0)
- tf->tpage->id.us= 1;
+ tf->tpage->id.us = 1;
}
}
}
@@ -3705,35 +3665,34 @@ static void lib_link_customdata_mtpoly(FileData *fd, Mesh *me, CustomData *pdata
static void lib_link_mesh(FileData *fd, Main *main)
{
Mesh *me;
-
- me= main->mesh.first;
- while (me) {
+
+ for (me = main->mesh.first; me; me = me->id.next) {
if (me->id.flag & LIB_NEEDLINK) {
int i;
-
+
/* Link ID Properties -- and copy this comment EXACTLY for easy finding
* of library blocks that implement this.*/
if (me->id.properties) IDP_LibLinkProperty(me->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
if (me->adt) lib_link_animdata(fd, &me->id, me->adt);
-
+
/* this check added for python created meshes */
if (me->mat) {
- for (i=0; i<me->totcol; i++) {
- me->mat[i]= newlibadr_us(fd, me->id.lib, me->mat[i]);
+ for (i = 0; i < me->totcol; i++) {
+ me->mat[i] = newlibadr_us(fd, me->id.lib, me->mat[i]);
}
}
- else me->totcol= 0;
-
- me->ipo= newlibadr_us(fd, me->id.lib, me->ipo);
- me->key= newlibadr_us(fd, me->id.lib, me->key);
- me->texcomesh= newlibadr_us(fd, me->id.lib, me->texcomesh);
-
+ else me->totcol = 0;
+
+ me->ipo = newlibadr_us(fd, me->id.lib, me->ipo); // XXX: deprecated: old anim sys
+ me->key = newlibadr_us(fd, me->id.lib, me->key);
+ me->texcomesh = newlibadr_us(fd, me->id.lib, me->texcomesh);
+
lib_link_customdata_mtface(fd, me, &me->fdata, me->totface);
lib_link_customdata_mtpoly(fd, me, &me->pdata, me->totpoly);
if (me->mr && me->mr->levels.first)
lib_link_customdata_mtface(fd, me, &me->mr->fdata,
((MultiresLevel*)me->mr->levels.first)->totface);
-
+
/*check if we need to convert mfaces to mpolys*/
if (me->totface && !me->totpoly) {
/* temporarily switch main so that reading from
@@ -3742,7 +3701,7 @@ static void lib_link_mesh(FileData *fd, Main *main)
G.main = main;
BKE_mesh_convert_mfaces_to_mpolys(me);
-
+
G.main = gmain;
}
@@ -3761,12 +3720,11 @@ static void lib_link_mesh(FileData *fd, Main *main)
#else
BKE_mesh_tessface_clear(me);
#endif
-
+
me->id.flag -= LIB_NEEDLINK;
}
- me= me->id.next;
}
-
+
/* convert texface options to material */
convert_tface_mt(fd, main);
}
@@ -3774,24 +3732,24 @@ static void lib_link_mesh(FileData *fd, Main *main)
static void direct_link_dverts(FileData *fd, int count, MDeformVert *mdverts)
{
int i;
-
+
if (mdverts == NULL) {
return;
}
-
- for (i= count; i > 0; i--, mdverts++) {
+
+ for (i = count; i > 0; i--, mdverts++) {
/*convert to vgroup allocation system*/
MDeformWeight *dw;
- if (mdverts->dw && (dw= newdataadr(fd, mdverts->dw))) {
- const ssize_t dw_len= mdverts->totweight * sizeof(MDeformWeight);
- void *dw_tmp= MEM_mallocN(dw_len, "direct_link_dverts");
+ if (mdverts->dw && (dw = newdataadr(fd, mdverts->dw))) {
+ const ssize_t dw_len = mdverts->totweight * sizeof(MDeformWeight);
+ void *dw_tmp = MEM_mallocN(dw_len, "direct_link_dverts");
memcpy(dw_tmp, dw, dw_len);
- mdverts->dw= dw_tmp;
+ mdverts->dw = dw_tmp;
MEM_freeN(dw);
}
else {
- mdverts->dw= NULL;
- mdverts->totweight= 0;
+ mdverts->dw = NULL;
+ mdverts->totweight = 0;
}
}
}
@@ -3800,11 +3758,11 @@ static void direct_link_mdisps(FileData *fd, int count, MDisps *mdisps, int exte
{
if (mdisps) {
int i;
-
+
for (i = 0; i < count; ++i) {
mdisps[i].disps = newdataadr(fd, mdisps[i].disps);
mdisps[i].hidden = newdataadr(fd, mdisps[i].hidden);
-
+
if (mdisps[i].totdisp && !mdisps[i].level) {
/* this calculation is only correct for loop mdisps;
* if loading pre-BMesh face mdisps this will be
@@ -3813,13 +3771,13 @@ static void direct_link_mdisps(FileData *fd, int count, MDisps *mdisps, int exte
float gridsize = sqrtf(mdisps[i].totdisp);
mdisps[i].level = (int)(logf(gridsize - 1.0f) / (float)M_LN2) + 1;
}
-
- if ( (fd->flags & FD_FLAGS_SWITCH_ENDIAN) && (mdisps[i].disps) ) {
+
+ if ((fd->flags & FD_FLAGS_SWITCH_ENDIAN) && (mdisps[i].disps)) {
/* DNA_struct_switch_endian doesn't do endian swap for (*disps)[] */
/* this does swap for data written at write_mdisps() - readfile.c */
int x;
- float *tmpdisps= *mdisps[i].disps;
- for (x=0;x<mdisps[i].totdisp*3;x++) {
+ float *tmpdisps = *mdisps[i].disps;
+ for (x = 0; x < mdisps[i].totdisp * 3; x++) {
SWITCH_INT(*tmpdisps);
tmpdisps++;
}
@@ -3832,12 +3790,12 @@ static void direct_link_mdisps(FileData *fd, int count, MDisps *mdisps, int exte
static void direct_link_grid_paint_mask(FileData *fd, int count, GridPaintMask *grid_paint_mask)
{
- if(grid_paint_mask) {
+ if (grid_paint_mask) {
int i;
-
- for(i = 0; i < count; ++i) {
+
+ for (i = 0; i < count; ++i) {
GridPaintMask *gpm = &grid_paint_mask[i];
- if(gpm->data)
+ if (gpm->data)
gpm->data = newdataadr(fd, gpm->data);
}
}
@@ -3847,34 +3805,34 @@ static void direct_link_grid_paint_mask(FileData *fd, int count, GridPaintMask *
static void direct_link_customdata(FileData *fd, CustomData *data, int count)
{
int i = 0;
-
- data->layers= newdataadr(fd, data->layers);
-
+
+ data->layers = newdataadr(fd, data->layers);
+
/* annoying workaround for bug [#31079] loading legacy files with
* no polygons _but_ have stale customdata */
if (UNLIKELY(count == 0 && data->layers == NULL && data->totlayer != 0)) {
memset(data, 0, sizeof(*data));
return;
}
-
- data->external= newdataadr(fd, data->external);
-
+
+ data->external = newdataadr(fd, data->external);
+
while (i < data->totlayer) {
CustomDataLayer *layer = &data->layers[i];
-
+
if (layer->flag & CD_FLAG_EXTERNAL)
layer->flag &= ~CD_FLAG_IN_MEMORY;
-
+
if (CustomData_verify_versions(data, i)) {
layer->data = newdataadr(fd, layer->data);
if (layer->type == CD_MDISPS)
direct_link_mdisps(fd, count, layer->data, layer->flag & CD_FLAG_EXTERNAL);
- else if(layer->type == CD_GRID_PAINT_MASK)
+ else if (layer->type == CD_GRID_PAINT_MASK)
direct_link_grid_paint_mask(fd, count, layer->data);
i++;
}
}
-
+
CustomData_update_typemap(data);
}
@@ -3882,68 +3840,67 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
{
mesh->mat= newdataadr(fd, mesh->mat);
test_pointer_array(fd, (void **)&mesh->mat);
-
- mesh->mvert= newdataadr(fd, mesh->mvert);
- mesh->medge= newdataadr(fd, mesh->medge);
- mesh->mface= newdataadr(fd, mesh->mface);
- mesh->mloop= newdataadr(fd, mesh->mloop);
- mesh->mpoly= newdataadr(fd, mesh->mpoly);
- mesh->tface= newdataadr(fd, mesh->tface);
- mesh->mtface= newdataadr(fd, mesh->mtface);
- mesh->mcol= newdataadr(fd, mesh->mcol);
- mesh->msticky= newdataadr(fd, mesh->msticky);
- mesh->dvert= newdataadr(fd, mesh->dvert);
- mesh->mloopcol= newdataadr(fd, mesh->mloopcol);
- mesh->mloopuv= newdataadr(fd, mesh->mloopuv);
- mesh->mtpoly= newdataadr(fd, mesh->mtpoly);
+
+ mesh->mvert = newdataadr(fd, mesh->mvert);
+ mesh->medge = newdataadr(fd, mesh->medge);
+ mesh->mface = newdataadr(fd, mesh->mface);
+ mesh->mloop = newdataadr(fd, mesh->mloop);
+ mesh->mpoly = newdataadr(fd, mesh->mpoly);
+ mesh->tface = newdataadr(fd, mesh->tface);
+ mesh->mtface = newdataadr(fd, mesh->mtface);
+ mesh->mcol = newdataadr(fd, mesh->mcol);
+ mesh->msticky = newdataadr(fd, mesh->msticky);
+ mesh->dvert = newdataadr(fd, mesh->dvert);
+ mesh->mloopcol = newdataadr(fd, mesh->mloopcol);
+ mesh->mloopuv = newdataadr(fd, mesh->mloopuv);
+ mesh->mtpoly = newdataadr(fd, mesh->mtpoly);
mesh->mselect = newdataadr(fd, mesh->mselect);
-
+
/* animdata */
- mesh->adt= newdataadr(fd, mesh->adt);
+ mesh->adt = newdataadr(fd, mesh->adt);
direct_link_animdata(fd, mesh->adt);
-
+
/* normally direct_link_dverts should be called in direct_link_customdata,
* but for backwards compat in do_versions to work we do it here */
direct_link_dverts(fd, mesh->totvert, mesh->dvert);
-
+
direct_link_customdata(fd, &mesh->vdata, mesh->totvert);
direct_link_customdata(fd, &mesh->edata, mesh->totedge);
direct_link_customdata(fd, &mesh->fdata, mesh->totface);
direct_link_customdata(fd, &mesh->ldata, mesh->totloop);
direct_link_customdata(fd, &mesh->pdata, mesh->totpoly);
-
+
#ifdef USE_BMESH_FORWARD_COMPAT
/* NEVER ENABLE THIS CODE INTO BMESH!
* THIS IS FOR LOADING BMESH INTO OLDER FILES ONLY */
- mesh->mpoly= newdataadr(fd, mesh->mpoly);
- mesh->mloop= newdataadr(fd, mesh->mloop);
+ mesh->mpoly = newdataadr(fd, mesh->mpoly);
+ mesh->mloop = newdataadr(fd, mesh->mloop);
direct_link_customdata(fd, &mesh->pdata, mesh->totpoly);
direct_link_customdata(fd, &mesh->ldata, mesh->totloop);
if (mesh->mpoly) {
/* be clever and load polygons as mfaces */
-
mesh->totface= BKE_mesh_mpoly_to_mface(&mesh->fdata, &mesh->ldata, &mesh->pdata,
mesh->totface, mesh->totloop, mesh->totpoly);
-
+
CustomData_free(&mesh->pdata, mesh->totpoly);
memset(&mesh->pdata, 0, sizeof(CustomData));
mesh->totpoly = 0;
-
+
CustomData_free(&mesh->ldata, mesh->totloop);
memset(&mesh->ldata, 0, sizeof(CustomData));
mesh->totloop = 0;
-
+
mesh_update_customdata_pointers(mesh);
}
#endif
-
-
- mesh->bb= NULL;
- mesh->edit_btmesh= NULL;
+
+
+ mesh->bb = NULL;
+ mesh->edit_btmesh = NULL;
/* Multires data */
mesh->mr= newdataadr(fd, mesh->mr);
@@ -3951,15 +3908,15 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
MultiresLevel *lvl;
link_list(fd, &mesh->mr->levels);
- lvl= mesh->mr->levels.first;
+ lvl = mesh->mr->levels.first;
direct_link_customdata(fd, &mesh->mr->vdata, lvl->totvert);
direct_link_dverts(fd, lvl->totvert, CustomData_get(&mesh->mr->vdata, 0, CD_MDEFORMVERT));
direct_link_customdata(fd, &mesh->mr->fdata, lvl->totface);
- mesh->mr->edge_flags= newdataadr(fd, mesh->mr->edge_flags);
- mesh->mr->edge_creases= newdataadr(fd, mesh->mr->edge_creases);
-
+ mesh->mr->edge_flags = newdataadr(fd, mesh->mr->edge_flags);
+ mesh->mr->edge_creases = newdataadr(fd, mesh->mr->edge_creases);
+
mesh->mr->verts = newdataadr(fd, mesh->mr->verts);
/* If mesh has the same number of vertices as the
@@ -3974,11 +3931,11 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
mesh->mr->verts = MEM_dupallocN(mesh->mvert);
}
- for (; lvl; lvl= lvl->next) {
- lvl->verts= newdataadr(fd, lvl->verts);
- lvl->faces= newdataadr(fd, lvl->faces);
- lvl->edges= newdataadr(fd, lvl->edges);
- lvl->colfaces= newdataadr(fd, lvl->colfaces);
+ for (; lvl; lvl = lvl->next) {
+ lvl->verts = newdataadr(fd, lvl->verts);
+ lvl->faces = newdataadr(fd, lvl->faces);
+ lvl->edges = newdataadr(fd, lvl->edges);
+ lvl->colfaces = newdataadr(fd, lvl->colfaces);
}
}
@@ -3990,10 +3947,10 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
}
if ((fd->flags & FD_FLAGS_SWITCH_ENDIAN) && mesh->tface) {
- TFace *tf= mesh->tface;
+ TFace *tf = mesh->tface;
int i;
-
- for (i=0; i< (mesh->totface); i++, tf++) {
+
+ for (i = 0; i < (mesh->totface); i++, tf++) {
SWITCH_INT(tf->col[0]);
SWITCH_INT(tf->col[1]);
SWITCH_INT(tf->col[2]);
@@ -4008,28 +3965,26 @@ static void lib_link_latt(FileData *fd, Main *main)
{
Lattice *lt;
- lt= main->latt.first;
- while (lt) {
+ for (lt = main->latt.first; lt; lt = lt->id.next) {
if (lt->id.flag & LIB_NEEDLINK) {
if (lt->adt) lib_link_animdata(fd, &lt->id, lt->adt);
- lt->ipo= newlibadr_us(fd, lt->id.lib, lt->ipo); // XXX depreceated - old animation system
- lt->key= newlibadr_us(fd, lt->id.lib, lt->key);
+ lt->ipo = newlibadr_us(fd, lt->id.lib, lt->ipo); // XXX depreceated - old animation system
+ lt->key = newlibadr_us(fd, lt->id.lib, lt->key);
lt->id.flag -= LIB_NEEDLINK;
}
- lt= lt->id.next;
}
}
static void direct_link_latt(FileData *fd, Lattice *lt)
{
- lt->def= newdataadr(fd, lt->def);
+ lt->def = newdataadr(fd, lt->def);
- lt->dvert= newdataadr(fd, lt->dvert);
+ lt->dvert = newdataadr(fd, lt->dvert);
direct_link_dverts(fd, lt->pntsu*lt->pntsv*lt->pntsw, lt->dvert);
- lt->editlatt= NULL;
+ lt->editlatt = NULL;
lt->adt = newdataadr(fd, lt->adt);
direct_link_animdata(fd, lt->adt);
@@ -4062,29 +4017,28 @@ static void lib_link_object(FileData *fd, Main *main)
bActuator *act;
void *poin;
int warn=0, a;
-
- ob= main->object.first;
- while (ob) {
+
+ for (ob = main->object.first; ob; ob = ob->id.next) {
if (ob->id.flag & LIB_NEEDLINK) {
if (ob->id.properties) IDP_LibLinkProperty(ob->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
if (ob->adt) lib_link_animdata(fd, &ob->id, ob->adt);
// XXX depreceated - old animation system <<<
- ob->ipo= newlibadr_us(fd, ob->id.lib, ob->ipo);
+ ob->ipo = newlibadr_us(fd, ob->id.lib, ob->ipo);
ob->action = newlibadr_us(fd, ob->id.lib, ob->action);
// >>> XXX depreceated - old animation system
- ob->parent= newlibadr(fd, ob->id.lib, ob->parent);
- ob->track= newlibadr(fd, ob->id.lib, ob->track);
- ob->poselib= newlibadr_us(fd, ob->id.lib, ob->poselib);
- ob->dup_group= newlibadr_us(fd, ob->id.lib, ob->dup_group);
+ ob->parent = newlibadr(fd, ob->id.lib, ob->parent);
+ ob->track = newlibadr(fd, ob->id.lib, ob->track);
+ ob->poselib = newlibadr_us(fd, ob->id.lib, ob->poselib);
+ ob->dup_group = newlibadr_us(fd, ob->id.lib, ob->dup_group);
- ob->proxy= newlibadr_us(fd, ob->id.lib, ob->proxy);
+ ob->proxy = newlibadr_us(fd, ob->id.lib, ob->proxy);
if (ob->proxy) {
/* paranoia check, actually a proxy_from pointer should never be written... */
- if (ob->proxy->id.lib==NULL) {
- ob->proxy->proxy_from= NULL;
- ob->proxy= NULL;
+ if (ob->proxy->id.lib == NULL) {
+ ob->proxy->proxy_from = NULL;
+ ob->proxy = NULL;
if (ob->id.lib)
printf("Proxy lost from object %s lib %s\n", ob->id.name+2, ob->id.lib->name);
@@ -4093,47 +4047,48 @@ static void lib_link_object(FileData *fd, Main *main)
}
else {
/* this triggers object_update to always use a copy */
- ob->proxy->proxy_from= ob;
+ ob->proxy->proxy_from = ob;
/* force proxy updates after load/undo, a bit weak */
- ob->recalc= ob->proxy->recalc= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
+ ob->recalc = ob->proxy->recalc = (OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
}
}
- ob->proxy_group= newlibadr(fd, ob->id.lib, ob->proxy_group);
+ ob->proxy_group = newlibadr(fd, ob->id.lib, ob->proxy_group);
+
+ poin = ob->data;
+ ob->data = newlibadr_us(fd, ob->id.lib, ob->data);
- poin= ob->data;
- ob->data= newlibadr_us(fd, ob->id.lib, ob->data);
-
if (ob->data==NULL && poin!=NULL) {
if (ob->id.lib)
printf("Can't find obdata of %s lib %s\n", ob->id.name+2, ob->id.lib->name);
else
printf("Object %s lost data.\n", ob->id.name+2);
-
- ob->type= OB_EMPTY;
- warn= 1;
-
+
+ ob->type = OB_EMPTY;
+ warn = 1;
+
if (ob->pose) {
BKE_pose_free(ob->pose);
ob->pose= NULL;
ob->mode &= ~OB_MODE_POSE;
}
}
- for (a=0; a<ob->totcol; a++) ob->mat[a]= newlibadr_us(fd, ob->id.lib, ob->mat[a]);
+ for (a=0; a < ob->totcol; a++)
+ ob->mat[a] = newlibadr_us(fd, ob->id.lib, ob->mat[a]);
/* When the object is local and the data is library its possible
* the material list size gets out of sync. [#22663] */
if (ob->data && ob->id.lib != ((ID *)ob->data)->lib) {
- short *totcol_data= give_totcolp(ob);
+ short *totcol_data = give_totcolp(ob);
/* Only expand so as not to loose any object materials that might be set. */
- if (totcol_data && *totcol_data > ob->totcol) {
+ if (totcol_data && (*totcol_data > ob->totcol)) {
/* printf("'%s' %d -> %d\n", ob->id.name, ob->totcol, *totcol_data); */
resize_object_material(ob, *totcol_data);
}
}
-
- ob->gpd= newlibadr_us(fd, ob->id.lib, ob->gpd);
- ob->duplilist= NULL;
-
+
+ ob->gpd = newlibadr_us(fd, ob->id.lib, ob->gpd);
+ ob->duplilist = NULL;
+
ob->id.flag -= LIB_NEEDLINK;
/* if id.us==0 a new base will be created later on */
@@ -4145,75 +4100,69 @@ static void lib_link_object(FileData *fd, Main *main)
lib_link_constraint_channels(fd, &ob->id, &ob->constraintChannels);
lib_link_nlastrips(fd, &ob->id, &ob->nlastrips);
// >>> XXX depreceated - old animation system
-
- for (paf= ob->effect.first; paf; paf= paf->next) {
- if (paf->type==EFF_PARTICLE) {
- paf->group= newlibadr_us(fd, ob->id.lib, paf->group);
+
+ for (paf = ob->effect.first; paf; paf = paf->next) {
+ if (paf->type == EFF_PARTICLE) {
+ paf->group = newlibadr_us(fd, ob->id.lib, paf->group);
}
}
-
- sens= ob->sensors.first;
- while (sens) {
- for (a=0; a<sens->totlinks; a++)
- sens->links[a]= newglobadr(fd, sens->links[a]);
-
- if (sens->type==SENS_TOUCH) {
- bTouchSensor *ts= sens->data;
- ts->ma= newlibadr(fd, ob->id.lib, ts->ma);
+
+ for (sens = ob->sensors.first; sens; sens = sens->next) {
+ for (a = 0; a < sens->totlinks; a++)
+ sens->links[a] = newglobadr(fd, sens->links[a]);
+
+ if (sens->type == SENS_TOUCH) {
+ bTouchSensor *ts = sens->data;
+ ts->ma = newlibadr(fd, ob->id.lib, ts->ma);
}
- else if (sens->type==SENS_MESSAGE) {
- bMessageSensor *ms= sens->data;
- ms->fromObject=
+ else if (sens->type == SENS_MESSAGE) {
+ bMessageSensor *ms = sens->data;
+ ms->fromObject =
newlibadr(fd, ob->id.lib, ms->fromObject);
}
- sens= sens->next;
}
-
- cont= ob->controllers.first;
- while (cont) {
- for (a=0; a<cont->totlinks; a++)
- cont->links[a]= newglobadr(fd, cont->links[a]);
-
- if (cont->type==CONT_PYTHON) {
- bPythonCont *pc= cont->data;
- pc->text= newlibadr(fd, ob->id.lib, pc->text);
+
+ for (cont = ob->controllers.first; cont; cont = cont->next) {
+ for (a=0; a < cont->totlinks; a++)
+ cont->links[a] = newglobadr(fd, cont->links[a]);
+
+ if (cont->type == CONT_PYTHON) {
+ bPythonCont *pc = cont->data;
+ pc->text = newlibadr(fd, ob->id.lib, pc->text);
}
- cont->slinks= NULL;
- cont->totslinks= 0;
-
- cont= cont->next;
+ cont->slinks = NULL;
+ cont->totslinks = 0;
}
-
- act= ob->actuators.first;
- while (act) {
- if (act->type==ACT_SOUND) {
- bSoundActuator *sa= act->data;
+
+ for (act = ob->actuators.first; act; act = act->next) {
+ if (act->type == ACT_SOUND) {
+ bSoundActuator *sa = act->data;
sa->sound= newlibadr_us(fd, ob->id.lib, sa->sound);
}
- else if (act->type==ACT_GAME) {
+ else if (act->type == ACT_GAME) {
/* bGameActuator *ga= act->data; */
}
- else if (act->type==ACT_CAMERA) {
- bCameraActuator *ca= act->data;
+ else if (act->type == ACT_CAMERA) {
+ bCameraActuator *ca = act->data;
ca->ob= newlibadr(fd, ob->id.lib, ca->ob);
}
/* leave this one, it's obsolete but necessary to read for conversion */
- else if (act->type==ACT_ADD_OBJECT) {
- bAddObjectActuator *eoa= act->data;
+ else if (act->type == ACT_ADD_OBJECT) {
+ bAddObjectActuator *eoa = act->data;
if (eoa) eoa->ob= newlibadr(fd, ob->id.lib, eoa->ob);
}
- else if (act->type==ACT_OBJECT) {
- bObjectActuator *oa= act->data;
- if (oa==NULL) {
+ else if (act->type == ACT_OBJECT) {
+ bObjectActuator *oa = act->data;
+ if (oa == NULL) {
init_actuator(act);
}
else {
- oa->reference= newlibadr(fd, ob->id.lib, oa->reference);
+ oa->reference = newlibadr(fd, ob->id.lib, oa->reference);
}
}
- else if (act->type==ACT_EDIT_OBJECT) {
- bEditObjectActuator *eoa= act->data;
- if (eoa==NULL) {
+ else if (act->type == ACT_EDIT_OBJECT) {
+ bEditObjectActuator *eoa = act->data;
+ if (eoa == NULL) {
init_actuator(act);
}
else {
@@ -4221,49 +4170,48 @@ static void lib_link_object(FileData *fd, Main *main)
eoa->me= newlibadr(fd, ob->id.lib, eoa->me);
}
}
- else if (act->type==ACT_SCENE) {
- bSceneActuator *sa= act->data;
+ else if (act->type == ACT_SCENE) {
+ bSceneActuator *sa = act->data;
sa->camera= newlibadr(fd, ob->id.lib, sa->camera);
sa->scene= newlibadr(fd, ob->id.lib, sa->scene);
}
- else if (act->type==ACT_ACTION) {
- bActionActuator *aa= act->data;
+ else if (act->type == ACT_ACTION) {
+ bActionActuator *aa = act->data;
aa->act= newlibadr(fd, ob->id.lib, aa->act);
}
- else if (act->type==ACT_SHAPEACTION) {
- bActionActuator *aa= act->data;
+ else if (act->type == ACT_SHAPEACTION) {
+ bActionActuator *aa = act->data;
aa->act= newlibadr(fd, ob->id.lib, aa->act);
}
- else if (act->type==ACT_PROPERTY) {
- bPropertyActuator *pa= act->data;
+ else if (act->type == ACT_PROPERTY) {
+ bPropertyActuator *pa = act->data;
pa->ob= newlibadr(fd, ob->id.lib, pa->ob);
}
- else if (act->type==ACT_MESSAGE) {
- bMessageActuator *ma= act->data;
+ else if (act->type == ACT_MESSAGE) {
+ bMessageActuator *ma = act->data;
ma->toObject= newlibadr(fd, ob->id.lib, ma->toObject);
}
- else if (act->type==ACT_2DFILTER) {
+ else if (act->type == ACT_2DFILTER) {
bTwoDFilterActuator *_2dfa = act->data;
_2dfa->text= newlibadr(fd, ob->id.lib, _2dfa->text);
}
- else if (act->type==ACT_PARENT) {
+ else if (act->type == ACT_PARENT) {
bParentActuator *parenta = act->data;
parenta->ob = newlibadr(fd, ob->id.lib, parenta->ob);
}
- else if (act->type==ACT_STATE) {
+ else if (act->type == ACT_STATE) {
/* bStateActuator *statea = act->data; */
}
- else if (act->type==ACT_ARMATURE) {
+ else if (act->type == ACT_ARMATURE) {
bArmatureActuator *arma= act->data;
arma->target= newlibadr(fd, ob->id.lib, arma->target);
arma->subtarget= newlibadr(fd, ob->id.lib, arma->subtarget);
}
- else if (act->type==ACT_STEERING) {
+ else if (act->type == ACT_STEERING) {
bSteeringActuator *steeringa = act->data;
steeringa->target = newlibadr(fd, ob->id.lib, steeringa->target);
steeringa->navmesh = newlibadr(fd, ob->id.lib, steeringa->navmesh);
}
- act= act->next;
}
{
@@ -4272,28 +4220,27 @@ static void lib_link_object(FileData *fd, Main *main)
if (fluidmd && fluidmd->fss)
fluidmd->fss->ipo = newlibadr_us(fd, ob->id.lib, fluidmd->fss->ipo);
}
-
+
{
SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
- if (smd && smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) {
+ if (smd && (smd->type == MOD_SMOKE_TYPE_DOMAIN) && smd->domain) {
smd->domain->flags |= MOD_SMOKE_FILE_LOAD; /* flag for refreshing the simulation after loading */
}
}
-
+
/* texture field */
if (ob->pd)
lib_link_partdeflect(fd, &ob->id, ob->pd);
-
+
if (ob->soft)
ob->soft->effector_weights->group = newlibadr(fd, ob->id.lib, ob->soft->effector_weights->group);
-
+
lib_link_particlesystems(fd, ob, &ob->id, &ob->particlesystem);
lib_link_modifiers(fd, ob);
}
- ob= ob->id.next;
}
-
+
if (warn) {
BKE_report(fd->reports, RPT_WARNING, "Warning in console");
}
@@ -4310,13 +4257,13 @@ static void direct_link_pose(FileData *fd, bPose *pose)
link_list(fd, &pose->chanbase);
link_list(fd, &pose->agroups);
- pose->chanhash= NULL;
+ pose->chanhash = NULL;
for (pchan = pose->chanbase.first; pchan; pchan=pchan->next) {
- pchan->bone= NULL;
- pchan->parent= newdataadr(fd, pchan->parent);
- pchan->child= newdataadr(fd, pchan->child);
- pchan->custom_tx= newdataadr(fd, pchan->custom_tx);
+ pchan->bone = NULL;
+ pchan->parent = newdataadr(fd, pchan->parent);
+ pchan->child = newdataadr(fd, pchan->child);
+ pchan->custom_tx = newdataadr(fd, pchan->custom_tx);
direct_link_constraints(fd, &pchan->constraints);
@@ -4324,100 +4271,100 @@ static void direct_link_pose(FileData *fd, bPose *pose)
if (pchan->prop)
IDP_DirectLinkProperty(pchan->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
- pchan->mpath= newdataadr(fd, pchan->mpath);
+ pchan->mpath = newdataadr(fd, pchan->mpath);
if (pchan->mpath)
direct_link_motionpath(fd, pchan->mpath);
- pchan->iktree.first= pchan->iktree.last= NULL;
- pchan->siktree.first= pchan->siktree.last= NULL;
+ pchan->iktree.first = pchan->iktree.last = NULL;
+ pchan->siktree.first = pchan->siktree.last = NULL;
/* in case this value changes in future, clamp else we get undefined behavior */
CLAMP(pchan->rotmode, ROT_MODE_MIN, ROT_MODE_MAX);
}
pose->ikdata = NULL;
if (pose->ikparam != NULL) {
- pose->ikparam= newdataadr(fd, pose->ikparam);
+ pose->ikparam = newdataadr(fd, pose->ikparam);
}
}
static void direct_link_modifiers(FileData *fd, ListBase *lb)
{
ModifierData *md;
-
+
link_list(fd, lb);
-
+
for (md=lb->first; md; md=md->next) {
md->error = NULL;
md->scene = NULL;
/* if modifiers disappear, or for upward compatibility */
- if (NULL==modifierType_getInfo(md->type))
- md->type= eModifierType_None;
+ if (NULL == modifierType_getInfo(md->type))
+ md->type = eModifierType_None;
+
+ if (md->type == eModifierType_Subsurf) {
+ SubsurfModifierData *smd = (SubsurfModifierData *)md;
- if (md->type==eModifierType_Subsurf) {
- SubsurfModifierData *smd = (SubsurfModifierData*) md;
-
smd->emCache = smd->mCache = NULL;
}
- else if (md->type==eModifierType_Armature) {
- ArmatureModifierData *amd = (ArmatureModifierData*) md;
+ else if (md->type == eModifierType_Armature) {
+ ArmatureModifierData *amd = (ArmatureModifierData *)md;
- amd->prevCos= NULL;
+ amd->prevCos = NULL;
}
- else if (md->type==eModifierType_Cloth) {
- ClothModifierData *clmd = (ClothModifierData*) md;
+ else if (md->type == eModifierType_Cloth) {
+ ClothModifierData *clmd = (ClothModifierData *)md;
clmd->clothObject = NULL;
clmd->sim_parms= newdataadr(fd, clmd->sim_parms);
clmd->coll_parms= newdataadr(fd, clmd->coll_parms);
-
+
direct_link_pointcache_list(fd, &clmd->ptcaches, &clmd->point_cache, 0);
if (clmd->sim_parms) {
if (clmd->sim_parms->presets > 10)
clmd->sim_parms->presets = 0;
-
+
clmd->sim_parms->reset = 0;
-
+
clmd->sim_parms->effector_weights = newdataadr(fd, clmd->sim_parms->effector_weights);
-
+
if (!clmd->sim_parms->effector_weights) {
clmd->sim_parms->effector_weights = BKE_add_effector_weights(NULL);
}
}
}
- else if (md->type==eModifierType_Fluidsim) {
- FluidsimModifierData *fluidmd = (FluidsimModifierData*) md;
+ else if (md->type == eModifierType_Fluidsim) {
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)md;
- fluidmd->fss= newdataadr(fd, fluidmd->fss);
+ fluidmd->fss = newdataadr(fd, fluidmd->fss);
if (fluidmd->fss) {
- fluidmd->fss->fmd= fluidmd;
+ fluidmd->fss->fmd = fluidmd;
fluidmd->fss->meshVelocities = NULL;
}
}
- else if (md->type==eModifierType_Smoke) {
- SmokeModifierData *smd = (SmokeModifierData*) md;
-
- if (smd->type==MOD_SMOKE_TYPE_DOMAIN) {
+ else if (md->type == eModifierType_Smoke) {
+ SmokeModifierData *smd = (SmokeModifierData *)md;
+
+ if (smd->type == MOD_SMOKE_TYPE_DOMAIN) {
smd->flow = NULL;
smd->coll = NULL;
smd->domain = newdataadr(fd, smd->domain);
smd->domain->smd = smd;
-
+
smd->domain->fluid = NULL;
smd->domain->wt = NULL;
smd->domain->shadow = NULL;
smd->domain->tex = NULL;
smd->domain->tex_shadow = NULL;
smd->domain->tex_wt = NULL;
-
+
smd->domain->effector_weights = newdataadr(fd, smd->domain->effector_weights);
if (!smd->domain->effector_weights)
smd->domain->effector_weights = BKE_add_effector_weights(NULL);
-
+
direct_link_pointcache_list(fd, &(smd->domain->ptcaches[0]), &(smd->domain->point_cache[0]), 1);
-
+
/* Smoke uses only one cache from now on, so store pointer convert */
if (smd->domain->ptcaches[1].first || smd->domain->point_cache[1]) {
if (smd->domain->point_cache[1]) {
@@ -4433,14 +4380,14 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
smd->domain->point_cache[1] = NULL;
}
}
- else if (smd->type==MOD_SMOKE_TYPE_FLOW) {
+ else if (smd->type == MOD_SMOKE_TYPE_FLOW) {
smd->domain = NULL;
smd->coll = NULL;
smd->flow = newdataadr(fd, smd->flow);
smd->flow->smd = smd;
smd->flow->psys = newdataadr(fd, smd->flow->psys);
}
- else if (smd->type==MOD_SMOKE_TYPE_COLL) {
+ else if (smd->type == MOD_SMOKE_TYPE_COLL) {
smd->flow = NULL;
smd->domain = NULL;
smd->coll = newdataadr(fd, smd->coll);
@@ -4450,27 +4397,26 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
}
else
smd->type = 0;
-
}
}
- else if (md->type==eModifierType_DynamicPaint) {
- DynamicPaintModifierData *pmd = (DynamicPaintModifierData*) md;
-
+ else if (md->type == eModifierType_DynamicPaint) {
+ DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md;
+
if (pmd->canvas) {
pmd->canvas = newdataadr(fd, pmd->canvas);
pmd->canvas->pmd = pmd;
pmd->canvas->dm = NULL;
pmd->canvas->flags &= ~MOD_DPAINT_BAKING; /* just in case */
-
+
if (pmd->canvas->surfaces.first) {
DynamicPaintSurface *surface;
link_list(fd, &pmd->canvas->surfaces);
-
+
for (surface=pmd->canvas->surfaces.first; surface; surface=surface->next) {
surface->canvas = pmd->canvas;
surface->data = NULL;
direct_link_pointcache_list(fd, &(surface->ptcaches), &(surface->pointcache), 1);
-
+
if (!(surface->effector_weights = newdataadr(fd, surface->effector_weights)))
surface->effector_weights = BKE_add_effector_weights(NULL);
}
@@ -4485,9 +4431,8 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
pmd->brush->dm = NULL;
}
}
- else if (md->type==eModifierType_Collision) {
-
- CollisionModifierData *collmd = (CollisionModifierData*) md;
+ else if (md->type == eModifierType_Collision) {
+ CollisionModifierData *collmd = (CollisionModifierData *)md;
/*
// TODO: CollisionModifier should use pointcache
// + have proper reset events before enabling this
@@ -4511,55 +4456,55 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
collmd->mfaces = NULL;
}
- else if (md->type==eModifierType_Surface) {
- SurfaceModifierData *surmd = (SurfaceModifierData*) md;
-
+ else if (md->type == eModifierType_Surface) {
+ SurfaceModifierData *surmd = (SurfaceModifierData *)md;
+
surmd->dm = NULL;
surmd->bvhtree = NULL;
surmd->x = NULL;
surmd->v = NULL;
surmd->numverts = 0;
}
- else if (md->type==eModifierType_Hook) {
- HookModifierData *hmd = (HookModifierData*) md;
-
- hmd->indexar= newdataadr(fd, hmd->indexar);
+ else if (md->type == eModifierType_Hook) {
+ HookModifierData *hmd = (HookModifierData *)md;
+
+ hmd->indexar = newdataadr(fd, hmd->indexar);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
int a;
- for (a=0; a<hmd->totindex; a++) {
+ for (a = 0; a < hmd->totindex; a++) {
SWITCH_INT(hmd->indexar[a]);
}
}
}
- else if (md->type==eModifierType_ParticleSystem) {
- ParticleSystemModifierData *psmd = (ParticleSystemModifierData*) md;
-
+ else if (md->type == eModifierType_ParticleSystem) {
+ ParticleSystemModifierData *psmd = (ParticleSystemModifierData *)md;
+
psmd->dm= NULL;
psmd->psys= newdataadr(fd, psmd->psys);
psmd->flag &= ~eParticleSystemFlag_psys_updated;
psmd->flag |= eParticleSystemFlag_file_loaded;
}
- else if (md->type==eModifierType_Explode) {
- ExplodeModifierData *psmd = (ExplodeModifierData*) md;
-
- psmd->facepa=NULL;
+ else if (md->type == eModifierType_Explode) {
+ ExplodeModifierData *psmd = (ExplodeModifierData *)md;
+
+ psmd->facepa = NULL;
}
- else if (md->type==eModifierType_MeshDeform) {
- MeshDeformModifierData *mmd = (MeshDeformModifierData*) md;
-
- mmd->bindinfluences= newdataadr(fd, mmd->bindinfluences);
- mmd->bindoffsets= newdataadr(fd, mmd->bindoffsets);
- mmd->bindcagecos= newdataadr(fd, mmd->bindcagecos);
- mmd->dyngrid= newdataadr(fd, mmd->dyngrid);
- mmd->dyninfluences= newdataadr(fd, mmd->dyninfluences);
- mmd->dynverts= newdataadr(fd, mmd->dynverts);
-
- mmd->bindweights= newdataadr(fd, mmd->bindweights);
- mmd->bindcos= newdataadr(fd, mmd->bindcos);
-
+ else if (md->type == eModifierType_MeshDeform) {
+ MeshDeformModifierData *mmd = (MeshDeformModifierData *)md;
+
+ mmd->bindinfluences = newdataadr(fd, mmd->bindinfluences);
+ mmd->bindoffsets = newdataadr(fd, mmd->bindoffsets);
+ mmd->bindcagecos = newdataadr(fd, mmd->bindcagecos);
+ mmd->dyngrid = newdataadr(fd, mmd->dyngrid);
+ mmd->dyninfluences = newdataadr(fd, mmd->dyninfluences);
+ mmd->dynverts = newdataadr(fd, mmd->dynverts);
+
+ mmd->bindweights = newdataadr(fd, mmd->bindweights);
+ mmd->bindcos = newdataadr(fd, mmd->bindcos);
+
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
int a;
-
+
if (mmd->bindoffsets)
for (a=0; a<mmd->totvert+1; a++)
SWITCH_INT(mmd->bindoffsets[a]);
@@ -4569,7 +4514,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
if (mmd->dynverts)
for (a=0; a<mmd->totvert; a++)
SWITCH_INT(mmd->dynverts[a]);
-
+
if (mmd->bindweights)
for (a=0; a<mmd->totcagevert*mmd->totvert; a++)
SWITCH_INT(mmd->bindweights[a]);
@@ -4578,22 +4523,22 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
SWITCH_INT(mmd->bindcos[a]);
}
}
- else if (md->type==eModifierType_Ocean) {
- OceanModifierData *omd = (OceanModifierData*) md;
+ else if (md->type == eModifierType_Ocean) {
+ OceanModifierData *omd = (OceanModifierData *)md;
omd->oceancache = NULL;
omd->ocean = NULL;
omd->refresh = (MOD_OCEAN_REFRESH_ADD|MOD_OCEAN_REFRESH_RESET|MOD_OCEAN_REFRESH_SIM);
}
- else if (md->type==eModifierType_Warp) {
- WarpModifierData *tmd = (WarpModifierData *) md;
-
+ else if (md->type == eModifierType_Warp) {
+ WarpModifierData *tmd = (WarpModifierData *)md;
+
tmd->curfalloff= newdataadr(fd, tmd->curfalloff);
if (tmd->curfalloff)
direct_link_curvemapping(fd, tmd->curfalloff);
}
- else if (md->type==eModifierType_WeightVGEdit) {
- WeightVGEditModifierData *wmd = (WeightVGEditModifierData*) md;
-
+ else if (md->type == eModifierType_WeightVGEdit) {
+ WeightVGEditModifierData *wmd = (WeightVGEditModifierData *)md;
+
wmd->cmap_curve = newdataadr(fd, wmd->cmap_curve);
if (wmd->cmap_curve)
direct_link_curvemapping(fd, wmd->cmap_curve);
@@ -4611,30 +4556,30 @@ static void direct_link_object(FileData *fd, Object *ob)
/* weak weak... this was only meant as draw flag, now is used in give_base_to_objects too */
ob->flag &= ~OB_FROMGROUP;
-
+
/* loading saved files with editmode enabled works, but for undo we like
* to stay in object mode during undo presses so keep editmode disabled */
if (fd->memfile)
- ob->mode &= ~(OB_MODE_EDIT|OB_MODE_PARTICLE_EDIT);
+ ob->mode &= ~(OB_MODE_EDIT | OB_MODE_PARTICLE_EDIT);
- ob->disp.first=ob->disp.last= NULL;
+ ob->disp.first = ob->disp.last = NULL;
- ob->adt= newdataadr(fd, ob->adt);
+ ob->adt = newdataadr(fd, ob->adt);
direct_link_animdata(fd, ob->adt);
- ob->pose= newdataadr(fd, ob->pose);
+ ob->pose = newdataadr(fd, ob->pose);
direct_link_pose(fd, ob->pose);
- ob->mpath= newdataadr(fd, ob->mpath);
+ ob->mpath = newdataadr(fd, ob->mpath);
if (ob->mpath)
direct_link_motionpath(fd, ob->mpath);
-
+
link_list(fd, &ob->defbase);
// XXX depreceated - old animation system <<<
direct_link_nlastrips(fd, &ob->nlastrips);
link_list(fd, &ob->constraintChannels);
// >>> XXX depreceated - old animation system
-
+
ob->mat= newdataadr(fd, ob->mat);
test_pointer_array(fd, (void **)&ob->mat);
ob->matbits= newdataadr(fd, ob->matbits);
@@ -4645,14 +4590,14 @@ static void direct_link_object(FileData *fd, Object *ob)
link_list(fd, &ob->effect);
paf= ob->effect.first;
while (paf) {
- if (paf->type==EFF_PARTICLE) {
- paf->keys= NULL;
+ if (paf->type == EFF_PARTICLE) {
+ paf->keys = NULL;
}
- if (paf->type==EFF_WAVE) {
+ if (paf->type == EFF_WAVE) {
WaveEff *wav = (WaveEff*) paf;
PartEff *next = paf->next;
WaveModifierData *wmd = (WaveModifierData*) modifier_new(eModifierType_Wave);
-
+
wmd->damp = wav->damp;
wmd->flag = wav->flag;
wmd->height = wav->height;
@@ -4663,83 +4608,80 @@ static void direct_link_object(FileData *fd, Object *ob)
wmd->starty = wav->startx;
wmd->timeoffs = wav->timeoffs;
wmd->width = wav->width;
-
+
BLI_addtail(&ob->modifiers, wmd);
-
+
BLI_remlink(&ob->effect, paf);
MEM_freeN(paf);
-
+
paf = next;
continue;
}
- if (paf->type==EFF_BUILD) {
+ if (paf->type == EFF_BUILD) {
BuildEff *baf = (BuildEff*) paf;
PartEff *next = paf->next;
BuildModifierData *bmd = (BuildModifierData*) modifier_new(eModifierType_Build);
-
+
bmd->start = baf->sfra;
bmd->length = baf->len;
bmd->randomize = 0;
bmd->seed = 1;
-
+
BLI_addtail(&ob->modifiers, bmd);
-
+
BLI_remlink(&ob->effect, paf);
MEM_freeN(paf);
-
+
paf = next;
continue;
}
- paf= paf->next;
+ paf = paf->next;
}
-
+
ob->pd= newdataadr(fd, ob->pd);
direct_link_partdeflect(ob->pd);
ob->soft= newdataadr(fd, ob->soft);
if (ob->soft) {
- SoftBody *sb= ob->soft;
+ SoftBody *sb = ob->soft;
- sb->bpoint= NULL; // init pointers so it gets rebuilt nicely
- sb->bspring= NULL;
- sb->scratch= NULL;
+ sb->bpoint = NULL; // init pointers so it gets rebuilt nicely
+ sb->bspring = NULL;
+ sb->scratch = NULL;
/* although not used anymore */
/* still have to be loaded to be compatible with old files */
- sb->keys= newdataadr(fd, sb->keys);
+ sb->keys = newdataadr(fd, sb->keys);
test_pointer_array(fd, (void **)&sb->keys);
if (sb->keys) {
int a;
- for (a=0; a<sb->totkey; a++) {
- sb->keys[a]= newdataadr(fd, sb->keys[a]);
+ for (a = 0; a < sb->totkey; a++) {
+ sb->keys[a] = newdataadr(fd, sb->keys[a]);
}
}
-
+
sb->effector_weights = newdataadr(fd, sb->effector_weights);
if (!sb->effector_weights)
sb->effector_weights = BKE_add_effector_weights(NULL);
-
+
direct_link_pointcache_list(fd, &sb->ptcaches, &sb->pointcache, 0);
}
- ob->bsoft= newdataadr(fd, ob->bsoft);
+ ob->bsoft = newdataadr(fd, ob->bsoft);
ob->fluidsimSettings= newdataadr(fd, ob->fluidsimSettings); /* NT */
link_list(fd, &ob->particlesystem);
direct_link_particlesystems(fd, &ob->particlesystem);
link_list(fd, &ob->prop);
- prop= ob->prop.first;
- while (prop) {
- prop->poin= newdataadr(fd, prop->poin);
- if (prop->poin==NULL) prop->poin= &prop->data;
- prop= prop->next;
+ for (prop = ob->prop.first; prop; prop = prop->next) {
+ prop->poin = newdataadr(fd, prop->poin);
+ if (prop->poin == NULL)
+ prop->poin = &prop->data;
}
link_list(fd, &ob->sensors);
- sens= ob->sensors.first;
- while (sens) {
- sens->data= newdataadr(fd, sens->data);
- sens->links= newdataadr(fd, sens->links);
+ for (sens = ob->sensors.first; sens; sens = sens->next) {
+ sens->data = newdataadr(fd, sens->data);
+ sens->links = newdataadr(fd, sens->links);
test_pointer_array(fd, (void **)&sens->links);
- sens= sens->next;
}
direct_link_constraints(fd, &ob->constraints);
@@ -4752,40 +4694,36 @@ static void direct_link_object(FileData *fd, Object *ob)
else if (!ob->state) {
ob->state = 1;
}
- cont= ob->controllers.first;
- while (cont) {
- cont->data= newdataadr(fd, cont->data);
- cont->links= newdataadr(fd, cont->links);
+ for (cont = ob->controllers.first; cont; cont = cont->next) {
+ cont->data = newdataadr(fd, cont->data);
+ cont->links = newdataadr(fd, cont->links);
test_pointer_array(fd, (void **)&cont->links);
if (cont->state_mask == 0)
cont->state_mask = 1;
- cont= cont->next;
}
link_glob_list(fd, &ob->actuators);
- act= ob->actuators.first;
- while (act) {
- act->data= newdataadr(fd, act->data);
- act= act->next;
+ for (act = ob->actuators.first; act; act = act->next) {
+ act->data = newdataadr(fd, act->data);
}
link_list(fd, &ob->hooks);
while (ob->hooks.first) {
ObHook *hook = ob->hooks.first;
- HookModifierData *hmd = (HookModifierData*) modifier_new(eModifierType_Hook);
-
+ HookModifierData *hmd = (HookModifierData *)modifier_new(eModifierType_Hook);
+
hook->indexar= newdataadr(fd, hook->indexar);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
int a;
- for (a=0; a<hook->totindex; a++) {
+ for (a = 0; a < hook->totindex; a++) {
SWITCH_INT(hook->indexar[a]);
}
}
-
- /* Do conversion here because if we have loaded
- * a hook we need to make sure it gets converted
- * and freed, regardless of version.
- */
+
+ /* Do conversion here because if we have loaded
+ * a hook we need to make sure it gets converted
+ * and freed, regardless of version.
+ */
copy_v3_v3(hmd->cent, hook->cent);
hmd->falloff = hook->falloff;
hmd->force = hook->force;
@@ -4793,27 +4731,27 @@ static void direct_link_object(FileData *fd, Object *ob)
hmd->object = hook->parent;
memcpy(hmd->parentinv, hook->parentinv, sizeof(hmd->parentinv));
hmd->totindex = hook->totindex;
-
+
BLI_addhead(&ob->modifiers, hmd);
BLI_remlink(&ob->hooks, hook);
modifier_unique_name(&ob->modifiers, (ModifierData*)hmd);
-
+
MEM_freeN(hook);
}
- ob->customdata_mask= 0;
- ob->bb= NULL;
- ob->derivedDeform= NULL;
- ob->derivedFinal= NULL;
- ob->gpulamp.first= ob->gpulamp.last= NULL;
+ ob->customdata_mask = 0;
+ ob->bb = NULL;
+ ob->derivedDeform = NULL;
+ ob->derivedFinal = NULL;
+ ob->gpulamp.first= ob->gpulamp.last = NULL;
link_list(fd, &ob->pc_ids);
/* in case this value changes in future, clamp else we get undefined behavior */
CLAMP(ob->rotmode, ROT_MODE_MIN, ROT_MODE_MAX);
if (ob->sculpt) {
- ob->sculpt= MEM_callocN(sizeof(SculptSession), "reload sculpt session");
+ ob->sculpt = MEM_callocN(sizeof(SculptSession), "reload sculpt session");
}
}
@@ -4824,16 +4762,17 @@ static void composite_patch(bNodeTree *ntree, Scene *scene)
{
bNode *node;
- for (node= ntree->nodes.first; node; node= node->next)
+ for (node= ntree->nodes.first; node; node= node->next) {
if (node->id==NULL && ELEM4(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS, CMP_NODE_OUTPUT_FILE))
- node->id= &scene->id;
+ node->id = &scene->id;
+ }
}
static void link_paint(FileData *fd, Scene *sce, Paint *p)
{
if (p) {
- p->brush= newlibadr_us(fd, sce->id.lib, p->brush);
- p->paint_cursor= NULL;
+ p->brush = newlibadr_us(fd, sce->id.lib, p->brush);
+ p->paint_cursor = NULL;
}
}
@@ -4845,8 +4784,7 @@ static void lib_link_scene(FileData *fd, Main *main)
SceneRenderLayer *srl;
TimeMarker *marker;
- sce= main->scene.first;
- while (sce) {
+ for (sce = main->scene.first; sce; sce = sce->id.next) {
if (sce->id.flag & LIB_NEEDLINK) {
/* Link ID Properties -- and copy this comment EXACTLY for easy finding
* of library blocks that implement this.*/
@@ -4855,10 +4793,10 @@ static void lib_link_scene(FileData *fd, Main *main)
lib_link_keyingsets(fd, &sce->id, &sce->keyingsets);
- sce->camera= newlibadr(fd, sce->id.lib, sce->camera);
- sce->world= newlibadr_us(fd, sce->id.lib, sce->world);
- sce->set= newlibadr(fd, sce->id.lib, sce->set);
- sce->gpd= newlibadr_us(fd, sce->id.lib, sce->gpd);
+ sce->camera = newlibadr(fd, sce->id.lib, sce->camera);
+ sce->world = newlibadr_us(fd, sce->id.lib, sce->world);
+ sce->set = newlibadr(fd, sce->id.lib, sce->set);
+ sce->gpd = newlibadr_us(fd, sce->id.lib, sce->gpd);
link_paint(fd, sce, &sce->toolsettings->sculpt->paint);
link_paint(fd, sce, &sce->toolsettings->vpaint->paint);
@@ -4866,29 +4804,29 @@ static void lib_link_scene(FileData *fd, Main *main)
link_paint(fd, sce, &sce->toolsettings->imapaint.paint);
link_paint(fd, sce, &sce->toolsettings->uvsculpt->paint);
sce->toolsettings->skgen_template = newlibadr(fd, sce->id.lib, sce->toolsettings->skgen_template);
-
- for (base= sce->base.first; base; base= next) {
- next= base->next;
-
+
+ for (base = sce->base.first; base; base = next) {
+ next = base->next;
+
/* base->object= newlibadr_us(fd, sce->id.lib, base->object); */
- base->object= newlibadr_us(fd, sce->id.lib, base->object);
+ base->object = newlibadr_us(fd, sce->id.lib, base->object);
- if (base->object==NULL) {
+ if (base->object == NULL) {
BKE_reportf_wrap(fd->reports, RPT_ERROR,
"LIB ERROR: Object lost from scene:'%s\'",
sce->id.name + 2);
BLI_remlink(&sce->base, base);
- if (base==sce->basact) sce->basact= NULL;
+ if (base == sce->basact) sce->basact = NULL;
MEM_freeN(base);
}
}
-
+
SEQ_BEGIN (sce->ed, seq)
{
- if (seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo);
+ if (seq->ipo) seq->ipo = newlibadr_us(fd, sce->id.lib, seq->ipo);
seq->scene_sound = NULL;
if (seq->scene) {
- seq->scene= newlibadr(fd, sce->id.lib, seq->scene);
+ seq->scene = newlibadr(fd, sce->id.lib, seq->scene);
if (seq->scene) {
seq->scene_sound = sound_scene_add_scene_sound_defaults(sce, seq);
}
@@ -4897,32 +4835,32 @@ static void lib_link_scene(FileData *fd, Main *main)
seq->clip = newlibadr(fd, sce->id.lib, seq->clip);
seq->clip->id.us++;
}
- if (seq->scene_camera) seq->scene_camera= newlibadr(fd, sce->id.lib, seq->scene_camera);
+ if (seq->scene_camera) seq->scene_camera = newlibadr(fd, sce->id.lib, seq->scene_camera);
if (seq->sound) {
seq->scene_sound = NULL;
if (seq->type == SEQ_HD_SOUND)
seq->type = SEQ_SOUND;
else
- seq->sound= newlibadr(fd, sce->id.lib, seq->sound);
+ seq->sound = newlibadr(fd, sce->id.lib, seq->sound);
if (seq->sound) {
seq->sound->id.us++;
seq->scene_sound = sound_add_scene_sound_defaults(sce, seq);
}
}
- seq->anim= NULL;
+ seq->anim = NULL;
}
SEQ_END
#ifdef DURIAN_CAMERA_SWITCH
- for (marker= sce->markers.first; marker; marker= marker->next) {
+ for (marker = sce->markers.first; marker; marker = marker->next) {
if (marker->camera) {
- marker->camera= newlibadr(fd, sce->id.lib, marker->camera);
+ marker->camera = newlibadr(fd, sce->id.lib, marker->camera);
}
}
#else
(void)marker;
#endif
-
+
seq_update_muting(sce->ed);
seq_update_sound_bounds_all(sce);
@@ -4931,38 +4869,39 @@ static void lib_link_scene(FileData *fd, Main *main)
composite_patch(sce->nodetree, sce);
}
- for (srl= sce->r.layers.first; srl; srl= srl->next) {
- srl->mat_override= newlibadr_us(fd, sce->id.lib, srl->mat_override);
- srl->light_override= newlibadr_us(fd, sce->id.lib, srl->light_override);
+ for (srl = sce->r.layers.first; srl; srl = srl->next) {
+ srl->mat_override = newlibadr_us(fd, sce->id.lib, srl->mat_override);
+ srl->light_override = newlibadr_us(fd, sce->id.lib, srl->light_override);
}
/*Game Settings: Dome Warp Text*/
- sce->gm.dome.warptext= newlibadr(fd, sce->id.lib, sce->gm.dome.warptext);
-
+ sce->gm.dome.warptext = newlibadr(fd, sce->id.lib, sce->gm.dome.warptext);
+
/* Motion Tracking */
- sce->clip= newlibadr_us(fd, sce->id.lib, sce->clip);
-
+ sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip);
+
sce->id.flag -= LIB_NEEDLINK;
}
-
- sce= sce->id.next;
}
}
static void link_recurs_seq(FileData *fd, ListBase *lb)
{
Sequence *seq;
-
+
link_list(fd, lb);
-
- for (seq=lb->first; seq; seq=seq->next)
+
+ for (seq = lb->first; seq; seq = seq->next) {
if (seq->seqbase.first)
link_recurs_seq(fd, &seq->seqbase);
+ }
}
static void direct_link_paint(FileData *fd, Paint **paint)
{
-/* TODO. is this needed */
- (*paint)= newdataadr(fd, (*paint));
+ /* TODO. is this needed */
+ (*paint) = newdataadr(fd, (*paint));
+ if (*paint && (*paint)->num_input_samples < 1)
+ (*paint)->num_input_samples = 1;
}
static void direct_link_scene(FileData *fd, Scene *sce)
@@ -4970,29 +4909,29 @@ static void direct_link_scene(FileData *fd, Scene *sce)
Editing *ed;
Sequence *seq;
MetaStack *ms;
-
+
sce->theDag = NULL;
sce->dagisvalid = 0;
- sce->obedit= NULL;
- sce->stats= NULL;
- sce->fps_info= NULL;
- sce->customdata_mask_modal= 0;
+ sce->obedit = NULL;
+ sce->stats = NULL;
+ sce->fps_info = NULL;
+ sce->customdata_mask_modal = 0;
sce->lay_updated = 0;
-
+
sound_create_scene(sce);
-
+
/* set users to one by default, not in lib-link, this will increase it for compo nodes */
- sce->id.us= 1;
-
+ sce->id.us = 1;
+
link_list(fd, &(sce->base));
- sce->adt= newdataadr(fd, sce->adt);
+ sce->adt = newdataadr(fd, sce->adt);
direct_link_animdata(fd, sce->adt);
link_list(fd, &sce->keyingsets);
direct_link_keyingsets(fd, &sce->keyingsets);
- sce->basact= newdataadr(fd, sce->basact);
+ sce->basact = newdataadr(fd, sce->basact);
sce->toolsettings= newdataadr(fd, sce->toolsettings);
if (sce->toolsettings) {
@@ -5000,50 +4939,46 @@ static void direct_link_scene(FileData *fd, Scene *sce)
direct_link_paint(fd, (Paint**)&sce->toolsettings->vpaint);
direct_link_paint(fd, (Paint**)&sce->toolsettings->wpaint);
direct_link_paint(fd, (Paint**)&sce->toolsettings->uvsculpt);
-
- sce->toolsettings->imapaint.paintcursor= NULL;
- sce->toolsettings->particle.paintcursor= NULL;
+
+ sce->toolsettings->imapaint.paintcursor = NULL;
+ sce->toolsettings->particle.paintcursor = NULL;
}
if (sce->ed) {
- ListBase *old_seqbasep= &((Editing *)sce->ed)->seqbase;
+ ListBase *old_seqbasep = &((Editing *)sce->ed)->seqbase;
+
+ ed = sce->ed = newdataadr(fd, sce->ed);
+
+ ed->act_seq = newdataadr(fd, ed->act_seq);
- ed= sce->ed= newdataadr(fd, sce->ed);
-
- ed->act_seq= newdataadr(fd, ed->act_seq);
-
/* recursive link sequences, lb will be correctly initialized */
link_recurs_seq(fd, &ed->seqbase);
-
+
SEQ_BEGIN (ed, seq)
{
seq->seq1= newdataadr(fd, seq->seq1);
seq->seq2= newdataadr(fd, seq->seq2);
seq->seq3= newdataadr(fd, seq->seq3);
/* a patch: after introduction of effects with 3 input strips */
- if (seq->seq3==NULL) seq->seq3= seq->seq2;
-
- seq->plugin= newdataadr(fd, seq->plugin);
- seq->effectdata= newdataadr(fd, seq->effectdata);
+ if (seq->seq3 == NULL) seq->seq3 = seq->seq2;
+
+ seq->plugin = newdataadr(fd, seq->plugin);
+ seq->effectdata = newdataadr(fd, seq->effectdata);
if (seq->type & SEQ_EFFECT)
seq->flag |= SEQ_EFFECT_NOT_LOADED;
-
+
if (seq->type == SEQ_SPEED) {
- SpeedControlVars *s= seq->effectdata;
- s->frameMap= NULL;
+ SpeedControlVars *s = seq->effectdata;
+ s->frameMap = NULL;
}
-
- seq->strip= newdataadr(fd, seq->strip);
+
+ seq->strip = newdataadr(fd, seq->strip);
if (seq->strip && seq->strip->done==0) {
- seq->strip->done= 1;
-
- if (seq->type == SEQ_IMAGE ||
- seq->type == SEQ_MOVIE ||
- seq->type == SEQ_RAM_SOUND ||
- seq->type == SEQ_HD_SOUND) {
- seq->strip->stripdata = newdataadr(
- fd, seq->strip->stripdata);
+ seq->strip->done = TRUE;
+
+ if (ELEM4(seq->type, SEQ_IMAGE, SEQ_MOVIE, SEQ_RAM_SOUND, SEQ_HD_SOUND)) {
+ seq->strip->stripdata = newdataadr(fd, seq->strip->stripdata);
}
else {
seq->strip->stripdata = NULL;
@@ -5090,35 +5025,38 @@ static void direct_link_scene(FileData *fd, Scene *sce)
char *poin;
intptr_t offset;
- offset= ((intptr_t)&(temp.seqbase)) - ((intptr_t)&temp);
+ offset = ((intptr_t)&(temp.seqbase)) - ((intptr_t)&temp);
/* root pointer */
if (ed->seqbasep == old_seqbasep) {
- ed->seqbasep= &ed->seqbase;
+ ed->seqbasep = &ed->seqbase;
}
else {
-
- poin= (char *)ed->seqbasep;
+ poin = (char *)ed->seqbasep;
poin -= offset;
- poin= newdataadr(fd, poin);
- if (poin) ed->seqbasep= (ListBase *)(poin+offset);
- else ed->seqbasep= &ed->seqbase;
+ poin = newdataadr(fd, poin);
+ if (poin)
+ ed->seqbasep = (ListBase *)(poin+offset);
+ else
+ ed->seqbasep = &ed->seqbase;
}
/* stack */
link_list(fd, &(ed->metastack));
- for (ms= ed->metastack.first; ms; ms= ms->next) {
- ms->parseq= newdataadr(fd, ms->parseq);
+ for (ms = ed->metastack.first; ms; ms= ms->next) {
+ ms->parseq = newdataadr(fd, ms->parseq);
if (ms->oldbasep == old_seqbasep)
ms->oldbasep= &ed->seqbase;
else {
- poin= (char *)ms->oldbasep;
+ poin = (char *)ms->oldbasep;
poin -= offset;
- poin= newdataadr(fd, poin);
- if (poin) ms->oldbasep= (ListBase *)(poin+offset);
- else ms->oldbasep= &ed->seqbase;
+ poin = newdataadr(fd, poin);
+ if (poin)
+ ms->oldbasep = (ListBase *)(poin+offset);
+ else
+ ms->oldbasep = &ed->seqbase;
}
}
}
@@ -5135,20 +5073,18 @@ static void direct_link_scene(FileData *fd, Scene *sce)
sce->r.qtcodecdata->cdParms = newdataadr(fd, sce->r.qtcodecdata->cdParms);
}
if (sce->r.ffcodecdata.properties) {
- sce->r.ffcodecdata.properties = newdataadr(
- fd, sce->r.ffcodecdata.properties);
+ sce->r.ffcodecdata.properties = newdataadr(fd, sce->r.ffcodecdata.properties);
if (sce->r.ffcodecdata.properties) {
- IDP_DirectLinkProperty(
- sce->r.ffcodecdata.properties,
+ IDP_DirectLinkProperty(sce->r.ffcodecdata.properties,
(fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
}
}
-
+
link_list(fd, &(sce->markers));
link_list(fd, &(sce->transform_spaces));
link_list(fd, &(sce->r.layers));
-
- sce->nodetree= newdataadr(fd, sce->nodetree);
+
+ sce->nodetree = newdataadr(fd, sce->nodetree);
if (sce->nodetree)
direct_link_nodetree(fd, sce->nodetree);
}
@@ -5159,44 +5095,44 @@ static void direct_link_windowmanager(FileData *fd, wmWindowManager *wm)
{
wmWindow *win;
- wm->id.us= 1;
- link_list(fd, &(wm->windows));
+ wm->id.us = 1;
+ link_list(fd, &wm->windows);
- for (win= wm->windows.first; win; win= win->next) {
- win->ghostwin= NULL;
- win->eventstate= NULL;
- win->curswin= NULL;
- win->tweak= NULL;
-
- win->queue.first= win->queue.last= NULL;
- win->handlers.first= win->handlers.last= NULL;
- win->modalhandlers.first= win->modalhandlers.last= NULL;
- win->subwindows.first= win->subwindows.last= NULL;
- win->gesture.first= win->gesture.last= NULL;
-
- win->drawdata= NULL;
- win->drawmethod= -1;
- win->drawfail= 0;
+ for (win = wm->windows.first; win; win = win->next) {
+ win->ghostwin = NULL;
+ win->eventstate = NULL;
+ win->curswin = NULL;
+ win->tweak = NULL;
+
+ win->queue.first = win->queue.last = NULL;
+ win->handlers.first = win->handlers.last = NULL;
+ win->modalhandlers.first = win->modalhandlers.last = NULL;
+ win->subwindows.first = win->subwindows.last = NULL;
+ win->gesture.first = win->gesture.last = NULL;
+
+ win->drawdata = NULL;
+ win->drawmethod = -1;
+ win->drawfail = 0;
}
- wm->timers.first= wm->timers.last= NULL;
- wm->operators.first= wm->operators.last= NULL;
- wm->paintcursors.first= wm->paintcursors.last= NULL;
- wm->queue.first= wm->queue.last= NULL;
+ wm->timers.first = wm->timers.last = NULL;
+ wm->operators.first = wm->operators.last = NULL;
+ wm->paintcursors.first = wm->paintcursors.last = NULL;
+ wm->queue.first = wm->queue.last = NULL;
BKE_reports_init(&wm->reports, RPT_STORE);
-
- wm->keyconfigs.first= wm->keyconfigs.last= NULL;
- wm->defaultconf= NULL;
- wm->addonconf= NULL;
- wm->userconf= NULL;
-
- wm->jobs.first= wm->jobs.last= NULL;
- wm->drags.first= wm->drags.last= NULL;
- wm->windrawable= NULL;
- wm->winactive= NULL;
- wm->initialized= 0;
- wm->op_undo_depth= 0;
+ wm->keyconfigs.first = wm->keyconfigs.last = NULL;
+ wm->defaultconf = NULL;
+ wm->addonconf = NULL;
+ wm->userconf = NULL;
+
+ wm->jobs.first = wm->jobs.last = NULL;
+ wm->drags.first = wm->drags.last = NULL;
+
+ wm->windrawable = NULL;
+ wm->winactive = NULL;
+ wm->initialized = 0;
+ wm->op_undo_depth = 0;
}
static void lib_link_windowmanager(FileData *fd, Main *main)
@@ -5204,11 +5140,11 @@ static void lib_link_windowmanager(FileData *fd, Main *main)
wmWindowManager *wm;
wmWindow *win;
- for (wm= main->wm.first; wm; wm= wm->id.next) {
+ for (wm = main->wm.first; wm; wm = wm->id.next) {
if (wm->id.flag & LIB_NEEDLINK) {
- for (win= wm->windows.first; win; win= win->next)
- win->screen= newlibadr(fd, NULL, win->screen);
-
+ for (win = wm->windows.first; win; win = win->next)
+ win->screen = newlibadr(fd, NULL, win->screen);
+
wm->id.flag -= LIB_NEEDLINK;
}
}
@@ -5230,17 +5166,17 @@ static void direct_link_gpencil(FileData *fd, bGPdata *gpd)
/* relink layers */
link_list(fd, &gpd->layers);
- for (gpl= gpd->layers.first; gpl; gpl= gpl->next) {
+ for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
/* relink frames */
link_list(fd, &gpl->frames);
- gpl->actframe= newdataadr(fd, gpl->actframe);
+ gpl->actframe = newdataadr(fd, gpl->actframe);
- for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
+ for (gpf = gpl->frames.first; gpf; gpf = gpf->next) {
/* relink strokes (and their points) */
link_list(fd, &gpf->strokes);
- for (gps= gpf->strokes.first; gps; gps= gps->next) {
- gps->points= newdataadr(fd, gps->points);
+ for (gps = gpf->strokes.first; gps; gps = gps->next) {
+ gps->points = newdataadr(fd, gps->points);
}
}
}
@@ -5254,19 +5190,19 @@ static void butspace_version_132(SpaceButs *buts)
buts->v2d.tot.ymin = 0.0f;
buts->v2d.tot.xmax = 1279.0f;
buts->v2d.tot.ymax = 228.0f;
-
- buts->v2d.min[0]= 256.0f;
- buts->v2d.min[1]= 42.0f;
-
- buts->v2d.max[0]= 2048.0f;
- buts->v2d.max[1]= 450.0f;
-
- buts->v2d.minzoom= 0.5f;
- buts->v2d.maxzoom= 1.21f;
-
- buts->v2d.scroll= 0;
- buts->v2d.keepzoom= 1;
- buts->v2d.keeptot= 1;
+
+ buts->v2d.min[0] = 256.0f;
+ buts->v2d.min[1] = 42.0f;
+
+ buts->v2d.max[0] = 2048.0f;
+ buts->v2d.max[1] = 450.0f;
+
+ buts->v2d.minzoom = 0.5f;
+ buts->v2d.maxzoom = 1.21f;
+
+ buts->v2d.scroll = 0;
+ buts->v2d.keepzoom = 1;
+ buts->v2d.keeptot = 1;
}
/* note: file read without screens option G_FILE_NO_UI;
@@ -5275,22 +5211,21 @@ static void lib_link_screen(FileData *fd, Main *main)
{
bScreen *sc;
ScrArea *sa;
-
- for (sc= main->screen.first; sc; sc= sc->id.next) {
+
+ for (sc = main->screen.first; sc; sc = sc->id.next) {
if (sc->id.flag & LIB_NEEDLINK) {
- sc->id.us= 1;
- sc->scene= newlibadr(fd, sc->id.lib, sc->scene);
- sc->animtimer= NULL; /* saved in rare cases */
+ sc->id.us = 1;
+ sc->scene = newlibadr(fd, sc->id.lib, sc->scene);
+ sc->animtimer = NULL; /* saved in rare cases */
- sa= sc->areabase.first;
- while (sa) {
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
SpaceLink *sl;
- sa->full= newlibadr(fd, sc->id.lib, sa->full);
+ sa->full = newlibadr(fd, sc->id.lib, sa->full);
- for (sl= sa->spacedata.first; sl; sl= sl->next) {
- if (sl->spacetype==SPACE_VIEW3D) {
- View3D *v3d= (View3D*) sl;
+ for (sl = sa->spacedata.first; sl; sl= sl->next) {
+ if (sl->spacetype == SPACE_VIEW3D) {
+ View3D *v3d = (View3D*) sl;
BGpic *bgpic = NULL;
v3d->camera= newlibadr(fd, sc->id.lib, v3d->camera);
@@ -5298,147 +5233,144 @@ static void lib_link_screen(FileData *fd, Main *main)
/* should be do_versions but not easy adding into the listbase */
if (v3d->bgpic) {
- v3d->bgpic= newlibadr(fd, sc->id.lib, v3d->bgpic);
+ v3d->bgpic = newlibadr(fd, sc->id.lib, v3d->bgpic);
BLI_addtail(&v3d->bgpicbase, bgpic);
- v3d->bgpic= NULL;
+ v3d->bgpic = NULL;
}
-
- for (bgpic= v3d->bgpicbase.first; bgpic; bgpic= bgpic->next) {
- bgpic->ima= newlibadr_us(fd, sc->id.lib, bgpic->ima);
- bgpic->clip= newlibadr_us(fd, sc->id.lib, bgpic->clip);
+
+ for (bgpic = v3d->bgpicbase.first; bgpic; bgpic = bgpic->next) {
+ bgpic->ima = newlibadr_us(fd, sc->id.lib, bgpic->ima);
+ bgpic->clip = newlibadr_us(fd, sc->id.lib, bgpic->clip);
}
if (v3d->localvd) {
- v3d->localvd->camera= newlibadr(fd, sc->id.lib, v3d->localvd->camera);
+ v3d->localvd->camera = newlibadr(fd, sc->id.lib, v3d->localvd->camera);
}
}
- else if (sl->spacetype==SPACE_IPO) {
- SpaceIpo *sipo= (SpaceIpo *)sl;
- bDopeSheet *ads= sipo->ads;
+ else if (sl->spacetype == SPACE_IPO) {
+ SpaceIpo *sipo = (SpaceIpo *)sl;
+ bDopeSheet *ads = sipo->ads;
if (ads) {
- ads->source= newlibadr(fd, sc->id.lib, ads->source);
- ads->filter_grp= newlibadr(fd, sc->id.lib, ads->filter_grp);
+ ads->source = newlibadr(fd, sc->id.lib, ads->source);
+ ads->filter_grp = newlibadr(fd, sc->id.lib, ads->filter_grp);
}
}
- else if (sl->spacetype==SPACE_BUTS) {
- SpaceButs *sbuts= (SpaceButs *)sl;
- sbuts->pinid= newlibadr(fd, sc->id.lib, sbuts->pinid);
- sbuts->mainbo= sbuts->mainb;
- sbuts->mainbuser= sbuts->mainb;
- if (main->versionfile<132)
+ else if (sl->spacetype == SPACE_BUTS) {
+ SpaceButs *sbuts = (SpaceButs *)sl;
+ sbuts->pinid = newlibadr(fd, sc->id.lib, sbuts->pinid);
+ sbuts->mainbo = sbuts->mainb;
+ sbuts->mainbuser = sbuts->mainb;
+ if (main->versionfile < 132)
butspace_version_132(sbuts);
}
- else if (sl->spacetype==SPACE_FILE) {
- SpaceFile *sfile= (SpaceFile *)sl;
- sfile->files= NULL;
- sfile->op= NULL;
- sfile->layout= NULL;
- sfile->folders_prev= NULL;
- sfile->folders_next= NULL;
+ else if (sl->spacetype == SPACE_FILE) {
+ SpaceFile *sfile = (SpaceFile *)sl;
+ sfile->files = NULL;
+ sfile->op = NULL;
+ sfile->layout = NULL;
+ sfile->folders_prev = NULL;
+ sfile->folders_next = NULL;
}
- else if (sl->spacetype==SPACE_ACTION) {
- SpaceAction *saction= (SpaceAction *)sl;
- bDopeSheet *ads= &saction->ads;
+ else if (sl->spacetype == SPACE_ACTION) {
+ SpaceAction *saction = (SpaceAction *)sl;
+ bDopeSheet *ads = &saction->ads;
if (ads) {
- ads->source= newlibadr(fd, sc->id.lib, ads->source);
- ads->filter_grp= newlibadr(fd, sc->id.lib, ads->filter_grp);
+ ads->source = newlibadr(fd, sc->id.lib, ads->source);
+ ads->filter_grp = newlibadr(fd, sc->id.lib, ads->filter_grp);
}
saction->action = newlibadr(fd, sc->id.lib, saction->action);
}
- else if (sl->spacetype==SPACE_IMAGE) {
- SpaceImage *sima= (SpaceImage *)sl;
-
- sima->image= newlibadr_us(fd, sc->id.lib, sima->image);
+ else if (sl->spacetype == SPACE_IMAGE) {
+ SpaceImage *sima = (SpaceImage *)sl;
+
+ sima->image = newlibadr_us(fd, sc->id.lib, sima->image);
/* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data
* so fingers crossed this works fine!
*/
- sima->gpd= newlibadr_us(fd, sc->id.lib, sima->gpd);
+ sima->gpd = newlibadr_us(fd, sc->id.lib, sima->gpd);
}
- else if (sl->spacetype==SPACE_NLA) {
+ else if (sl->spacetype == SPACE_NLA) {
SpaceNla *snla= (SpaceNla *)sl;
bDopeSheet *ads= snla->ads;
if (ads) {
- ads->source= newlibadr(fd, sc->id.lib, ads->source);
- ads->filter_grp= newlibadr(fd, sc->id.lib, ads->filter_grp);
+ ads->source = newlibadr(fd, sc->id.lib, ads->source);
+ ads->filter_grp = newlibadr(fd, sc->id.lib, ads->filter_grp);
}
}
- else if (sl->spacetype==SPACE_TEXT) {
+ else if (sl->spacetype == SPACE_TEXT) {
SpaceText *st= (SpaceText *)sl;
-
+
st->text= newlibadr(fd, sc->id.lib, st->text);
st->drawcache= NULL;
-
}
- else if (sl->spacetype==SPACE_SCRIPT) {
-
- SpaceScript *scpt= (SpaceScript *)sl;
+ else if (sl->spacetype == SPACE_SCRIPT) {
+ SpaceScript *scpt = (SpaceScript *)sl;
/*scpt->script = NULL; - 2.45 set to null, better re-run the script */
if (scpt->script) {
- scpt->script= newlibadr(fd, sc->id.lib, scpt->script);
+ scpt->script = newlibadr(fd, sc->id.lib, scpt->script);
if (scpt->script) {
SCRIPT_SET_NULL(scpt->script);
}
}
}
- else if (sl->spacetype==SPACE_OUTLINER) {
+ else if (sl->spacetype == SPACE_OUTLINER) {
SpaceOops *so= (SpaceOops *)sl;
TreeStoreElem *tselem;
int a;
-
- so->tree.first= so->tree.last= NULL;
- so->search_tse.id= newlibadr(fd, NULL, so->search_tse.id);
+
+ so->tree.first = so->tree.last= NULL;
+ so->search_tse.id = newlibadr(fd, NULL, so->search_tse.id);
if (so->treestore) {
- tselem= so->treestore->data;
- for (a=0; a<so->treestore->usedelem; a++, tselem++) {
- tselem->id= newlibadr(fd, NULL, tselem->id);
+ tselem = so->treestore->data;
+ for (a=0; a < so->treestore->usedelem; a++, tselem++) {
+ tselem->id = newlibadr(fd, NULL, tselem->id);
}
}
}
- else if (sl->spacetype==SPACE_NODE) {
- SpaceNode *snode= (SpaceNode *)sl;
+ else if (sl->spacetype == SPACE_NODE) {
+ SpaceNode *snode = (SpaceNode *)sl;
- snode->id= newlibadr(fd, sc->id.lib, snode->id);
- snode->edittree= NULL;
+ snode->id = newlibadr(fd, sc->id.lib, snode->id);
+ snode->edittree = NULL;
if (ELEM3(snode->treetype, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE)) {
/* internal data, a bit patchy */
- snode->nodetree= NULL;
+ snode->nodetree = NULL;
if (snode->id) {
if (GS(snode->id->name)==ID_MA)
- snode->nodetree= ((Material *)snode->id)->nodetree;
+ snode->nodetree = ((Material *)snode->id)->nodetree;
else if (GS(snode->id->name)==ID_WO)
- snode->nodetree= ((World *)snode->id)->nodetree;
+ snode->nodetree = ((World *)snode->id)->nodetree;
else if (GS(snode->id->name)==ID_LA)
- snode->nodetree= ((Lamp *)snode->id)->nodetree;
+ snode->nodetree = ((Lamp *)snode->id)->nodetree;
else if (GS(snode->id->name)==ID_SCE)
- snode->nodetree= ((Scene *)snode->id)->nodetree;
+ snode->nodetree = ((Scene *)snode->id)->nodetree;
else if (GS(snode->id->name)==ID_TE)
- snode->nodetree= ((Tex *)snode->id)->nodetree;
+ snode->nodetree = ((Tex *)snode->id)->nodetree;
}
}
else {
- snode->nodetree= newlibadr_us(fd, sc->id.lib, snode->nodetree);
+ snode->nodetree = newlibadr_us(fd, sc->id.lib, snode->nodetree);
}
snode->linkdrag.first = snode->linkdrag.last = NULL;
}
- else if (sl->spacetype==SPACE_CLIP) {
- SpaceClip *sclip= (SpaceClip *)sl;
+ else if (sl->spacetype == SPACE_CLIP) {
+ SpaceClip *sclip = (SpaceClip *)sl;
- sclip->clip= newlibadr_us(fd, sc->id.lib, sclip->clip);
- sclip->mask= newlibadr_us(fd, sc->id.lib, sclip->mask);
+ sclip->clip = newlibadr_us(fd, sc->id.lib, sclip->clip);
+ sclip->mask = newlibadr_us(fd, sc->id.lib, sclip->mask);
sclip->scopes.track_preview = NULL;
sclip->draw_context = NULL;
sclip->scopes.ok = 0;
}
}
- sa= sa->next;
}
sc->id.flag -= LIB_NEEDLINK;
}
@@ -5448,23 +5380,22 @@ static void lib_link_screen(FileData *fd, Main *main)
/* Only for undo files, or to restore a screen after reading without UI... */
static void *restore_pointer_by_name(Main *mainp, ID *id, int user)
{
-
if (id) {
- ListBase *lb= which_libbase(mainp, GS(id->name));
+ ListBase *lb = which_libbase(mainp, GS(id->name));
if (lb) { // there's still risk of checking corrupt mem (freed Ids in oops)
- ID *idn= lb->first;
- char *name= id->name+2;
+ ID *idn = lb->first;
+ char *name = id->name + 2;
- while (idn) {
- if (idn->name[2]==name[0] && strcmp(idn->name+2, name)==0) {
- if (idn->lib==id->lib) {
- if (user && idn->us==0) idn->us++;
+ for (; idn; idn = idn->next) {
+ if (idn->name[2] == name[0] && strcmp(idn->name+2, name) == 0) {
+ if (idn->lib == id->lib) {
+ if (user && idn->us == 0) idn->us++;
break;
}
}
- idn= idn->next;
}
+
return idn;
}
}
@@ -5474,18 +5405,18 @@ static void *restore_pointer_by_name(Main *mainp, ID *id, int user)
static int lib_link_seq_clipboard_cb(Sequence *seq, void *arg_pt)
{
Main *newmain = (Main *)arg_pt;
-
+
if (seq->sound) {
seq->sound = restore_pointer_by_name(newmain, (ID *)seq->sound, 0);
seq->sound->id.us++;
}
-
+
if (seq->scene)
seq->scene = restore_pointer_by_name(newmain, (ID *)seq->scene, 1);
-
+
if (seq->scene_camera)
seq->scene_camera = restore_pointer_by_name(newmain, (ID *)seq->scene_camera, 1);
-
+
return 1;
}
@@ -5504,56 +5435,55 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
wmWindowManager *wm;
bScreen *sc;
ScrArea *sa;
-
+
/* first windowmanager */
- for (wm= newmain->wm.first; wm; wm= wm->id.next) {
+ for (wm = newmain->wm.first; wm; wm = wm->id.next) {
for (win= wm->windows.first; win; win= win->next) {
- win->screen= restore_pointer_by_name(newmain, (ID *)win->screen, 1);
+ win->screen = restore_pointer_by_name(newmain, (ID *)win->screen, 1);
- if (win->screen==NULL)
- win->screen= curscreen;
-
- win->screen->winid= win->winid;
+ if (win->screen == NULL)
+ win->screen = curscreen;
+
+ win->screen->winid = win->winid;
}
}
- for (sc= newmain->screen.first; sc; sc= sc->id.next) {
- Scene *oldscene= sc->scene;
-
+ for (sc = newmain->screen.first; sc; sc = sc->id.next) {
+ Scene *oldscene = sc->scene;
+
sc->scene= restore_pointer_by_name(newmain, (ID *)sc->scene, 1);
- if (sc->scene==NULL)
- sc->scene= curscene;
-
+ if (sc->scene == NULL)
+ sc->scene = curscene;
+
/* keep cursor location through undo */
copy_v3_v3(sc->scene->cursor, oldscene->cursor);
-
- sa= sc->areabase.first;
- while (sa) {
+
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
SpaceLink *sl;
-
- for (sl= sa->spacedata.first; sl; sl= sl->next) {
- if (sl->spacetype==SPACE_VIEW3D) {
- View3D *v3d= (View3D*) sl;
+
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_VIEW3D) {
+ View3D *v3d = (View3D *)sl;
BGpic *bgpic;
ARegion *ar;
if (v3d->scenelock)
- v3d->camera= NULL; /* always get from scene */
+ v3d->camera = NULL; /* always get from scene */
else
- v3d->camera= restore_pointer_by_name(newmain, (ID *)v3d->camera, 1);
- if (v3d->camera==NULL)
- v3d->camera= sc->scene->camera;
- v3d->ob_centre= restore_pointer_by_name(newmain, (ID *)v3d->ob_centre, 1);
+ v3d->camera = restore_pointer_by_name(newmain, (ID *)v3d->camera, 1);
+ if (v3d->camera == NULL)
+ v3d->camera = sc->scene->camera;
+ v3d->ob_centre = restore_pointer_by_name(newmain, (ID *)v3d->ob_centre, 1);
for (bgpic= v3d->bgpicbase.first; bgpic; bgpic= bgpic->next) {
- bgpic->ima= restore_pointer_by_name(newmain, (ID *)bgpic->ima, 1);
- bgpic->clip= restore_pointer_by_name(newmain, (ID *)bgpic->clip, 1);
+ bgpic->ima = restore_pointer_by_name(newmain, (ID *)bgpic->ima, 1);
+ bgpic->clip = restore_pointer_by_name(newmain, (ID *)bgpic->clip, 1);
}
if (v3d->localvd) {
/*Base *base;*/
-
- v3d->localvd->camera= sc->scene->camera;
+
+ v3d->localvd->camera = sc->scene->camera;
/* localview can become invalid during undo/redo steps, so we exit it when no could be found */
/* XXX regionlocalview ?
@@ -5568,60 +5498,59 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
}
*/
}
- else if (v3d->scenelock) v3d->lay= sc->scene->lay;
-
+ else if (v3d->scenelock) v3d->lay = sc->scene->lay;
+
/* not very nice, but could help */
- if ((v3d->layact & v3d->lay)==0) v3d->layact= v3d->lay;
+ if ((v3d->layact & v3d->lay) == 0) v3d->layact = v3d->lay;
/* free render engines for now */
- for (ar= sa->regionbase.first; ar; ar= ar->next) {
+ for (ar = sa->regionbase.first; ar; ar = ar->next) {
RegionView3D *rv3d= ar->regiondata;
-
+
if (rv3d && rv3d->render_engine) {
RE_engine_free(rv3d->render_engine);
- rv3d->render_engine= NULL;
+ rv3d->render_engine = NULL;
}
}
}
- else if (sl->spacetype==SPACE_IPO) {
- SpaceIpo *sipo= (SpaceIpo *)sl;
- bDopeSheet *ads= sipo->ads;
+ else if (sl->spacetype == SPACE_IPO) {
+ SpaceIpo *sipo = (SpaceIpo *)sl;
+ bDopeSheet *ads = sipo->ads;
if (ads) {
- ads->source= restore_pointer_by_name(newmain, (ID *)ads->source, 1);
+ ads->source = restore_pointer_by_name(newmain, (ID *)ads->source, 1);
if (ads->filter_grp)
- ads->filter_grp= restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
+ ads->filter_grp = restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
}
}
- else if (sl->spacetype==SPACE_BUTS) {
- SpaceButs *sbuts= (SpaceButs *)sl;
+ else if (sl->spacetype == SPACE_BUTS) {
+ SpaceButs *sbuts = (SpaceButs *)sl;
sbuts->pinid = restore_pointer_by_name(newmain, sbuts->pinid, 0);
//XXX if (sbuts->ri) sbuts->ri->curtile = 0;
}
- else if (sl->spacetype==SPACE_FILE) {
-
- SpaceFile *sfile= (SpaceFile *)sl;
- sfile->op= NULL;
+ else if (sl->spacetype == SPACE_FILE) {
+ SpaceFile *sfile = (SpaceFile *)sl;
+ sfile->op = NULL;
}
- else if (sl->spacetype==SPACE_ACTION) {
- SpaceAction *saction= (SpaceAction *)sl;
+ else if (sl->spacetype == SPACE_ACTION) {
+ SpaceAction *saction = (SpaceAction *)sl;
saction->action = restore_pointer_by_name(newmain, (ID *)saction->action, 1);
saction->ads.source= restore_pointer_by_name(newmain, (ID *)saction->ads.source, 1);
-
+
if (saction->ads.filter_grp)
saction->ads.filter_grp= restore_pointer_by_name(newmain, (ID *)saction->ads.filter_grp, 0);
}
- else if (sl->spacetype==SPACE_IMAGE) {
- SpaceImage *sima= (SpaceImage *)sl;
-
- sima->image= restore_pointer_by_name(newmain, (ID *)sima->image, 1);
-
+ else if (sl->spacetype == SPACE_IMAGE) {
+ SpaceImage *sima = (SpaceImage *)sl;
+
+ sima->image = restore_pointer_by_name(newmain, (ID *)sima->image, 1);
+
/* this will be freed, not worth attempting to find same scene,
* since it gets initialized later */
sima->iuser.scene = NULL;
-
+
sima->scopes.waveform_1 = NULL;
sima->scopes.waveform_2 = NULL;
sima->scopes.waveform_3 = NULL;
@@ -5631,80 +5560,79 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
/* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data
* so assume that here we're doing for undo only...
*/
- sima->gpd= restore_pointer_by_name(newmain, (ID *)sima->gpd, 1);
+ sima->gpd = restore_pointer_by_name(newmain, (ID *)sima->gpd, 1);
}
- else if (sl->spacetype==SPACE_NLA) {
- SpaceNla *snla= (SpaceNla *)sl;
- bDopeSheet *ads= snla->ads;
+ else if (sl->spacetype == SPACE_NLA) {
+ SpaceNla *snla = (SpaceNla *)sl;
+ bDopeSheet *ads = snla->ads;
if (ads) {
- ads->source= restore_pointer_by_name(newmain, (ID *)ads->source, 1);
+ ads->source = restore_pointer_by_name(newmain, (ID *)ads->source, 1);
if (ads->filter_grp)
- ads->filter_grp= restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
+ ads->filter_grp = restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
}
}
- else if (sl->spacetype==SPACE_TEXT) {
- SpaceText *st= (SpaceText *)sl;
-
- st->text= restore_pointer_by_name(newmain, (ID *)st->text, 1);
- if (st->text==NULL) st->text= newmain->text.first;
+ else if (sl->spacetype == SPACE_TEXT) {
+ SpaceText *st = (SpaceText *)sl;
+
+ st->text = restore_pointer_by_name(newmain, (ID *)st->text, 1);
+ if (st->text == NULL) st->text = newmain->text.first;
}
- else if (sl->spacetype==SPACE_SCRIPT) {
- SpaceScript *scpt= (SpaceScript *)sl;
+ else if (sl->spacetype == SPACE_SCRIPT) {
+ SpaceScript *scpt = (SpaceScript *)sl;
- scpt->script= restore_pointer_by_name(newmain, (ID *)scpt->script, 1);
+ scpt->script = restore_pointer_by_name(newmain, (ID *)scpt->script, 1);
/*sc->script = NULL; - 2.45 set to null, better re-run the script */
if (scpt->script) {
SCRIPT_SET_NULL(scpt->script);
}
}
- else if (sl->spacetype==SPACE_OUTLINER) {
+ else if (sl->spacetype == SPACE_OUTLINER) {
SpaceOops *so= (SpaceOops *)sl;
int a;
- so->search_tse.id= restore_pointer_by_name(newmain, so->search_tse.id, 0);
+ so->search_tse.id = restore_pointer_by_name(newmain, so->search_tse.id, 0);
if (so->treestore) {
- TreeStore *ts= so->treestore;
- TreeStoreElem *tselem=ts->data;
- for (a=0; a<ts->usedelem; a++, tselem++) {
- tselem->id= restore_pointer_by_name(newmain, tselem->id, 0);
+ TreeStore *ts = so->treestore;
+ TreeStoreElem *tselem = ts->data;
+ for (a = 0; a < ts->usedelem; a++, tselem++) {
+ tselem->id = restore_pointer_by_name(newmain, tselem->id, 0);
}
}
}
- else if (sl->spacetype==SPACE_NODE) {
+ else if (sl->spacetype == SPACE_NODE) {
SpaceNode *snode= (SpaceNode *)sl;
- snode->id= restore_pointer_by_name(newmain, snode->id, 1);
- snode->edittree= NULL;
+ snode->id = restore_pointer_by_name(newmain, snode->id, 1);
+ snode->edittree = NULL;
if (ELEM3(snode->treetype, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE)) {
- snode->nodetree= NULL;
+ snode->nodetree = NULL;
if (snode->id) {
if (GS(snode->id->name)==ID_MA)
- snode->nodetree= ((Material *)snode->id)->nodetree;
+ snode->nodetree = ((Material *)snode->id)->nodetree;
else if (GS(snode->id->name)==ID_SCE)
- snode->nodetree= ((Scene *)snode->id)->nodetree;
+ snode->nodetree = ((Scene *)snode->id)->nodetree;
else if (GS(snode->id->name)==ID_TE)
- snode->nodetree= ((Tex *)snode->id)->nodetree;
+ snode->nodetree = ((Tex *)snode->id)->nodetree;
}
}
else {
snode->nodetree= restore_pointer_by_name(newmain, &snode->nodetree->id, 1);
}
}
- else if (sl->spacetype==SPACE_CLIP) {
- SpaceClip *sclip= (SpaceClip *)sl;
+ else if (sl->spacetype == SPACE_CLIP) {
+ SpaceClip *sclip = (SpaceClip *)sl;
- sclip->clip= restore_pointer_by_name(newmain, (ID *)sclip->clip, 1);
- sclip->mask= restore_pointer_by_name(newmain, (ID *)sclip->mask, 1);
+ sclip->clip = restore_pointer_by_name(newmain, (ID *)sclip->clip, 1);
+ sclip->mask = restore_pointer_by_name(newmain, (ID *)sclip->mask, 1);
sclip->scopes.ok = 0;
}
}
- sa= sa->next;
}
}
@@ -5716,41 +5644,41 @@ static void direct_link_region(FileData *fd, ARegion *ar, int spacetype)
{
Panel *pa;
- link_list(fd, &(ar->panels));
+ link_list(fd, &ar->panels);
- for (pa= ar->panels.first; pa; pa=pa->next) {
- pa->paneltab= newdataadr(fd, pa->paneltab);
- pa->runtime_flag= 0;
- pa->activedata= NULL;
- pa->type= NULL;
+ for (pa = ar->panels.first; pa; pa = pa->next) {
+ pa->paneltab = newdataadr(fd, pa->paneltab);
+ pa->runtime_flag = 0;
+ pa->activedata = NULL;
+ pa->type = NULL;
}
- ar->regiondata= newdataadr(fd, ar->regiondata);
+ ar->regiondata = newdataadr(fd, ar->regiondata);
if (ar->regiondata) {
- if (spacetype==SPACE_VIEW3D) {
- RegionView3D *rv3d= ar->regiondata;
-
- rv3d->localvd= newdataadr(fd, rv3d->localvd);
- rv3d->clipbb= newdataadr(fd, rv3d->clipbb);
-
- rv3d->depths= NULL;
- rv3d->ri= NULL;
- rv3d->render_engine= NULL;
- rv3d->sms= NULL;
- rv3d->smooth_timer= NULL;
- }
- }
-
- ar->v2d.tab_offset= NULL;
- ar->v2d.tab_num= 0;
- ar->v2d.tab_cur= 0;
- ar->handlers.first= ar->handlers.last= NULL;
- ar->uiblocks.first= ar->uiblocks.last= NULL;
- ar->headerstr= NULL;
- ar->swinid= 0;
- ar->type= NULL;
- ar->swap= 0;
- ar->do_draw= 0;
+ if (spacetype == SPACE_VIEW3D) {
+ RegionView3D *rv3d = ar->regiondata;
+
+ rv3d->localvd = newdataadr(fd, rv3d->localvd);
+ rv3d->clipbb = newdataadr(fd, rv3d->clipbb);
+
+ rv3d->depths = NULL;
+ rv3d->ri = NULL;
+ rv3d->render_engine = NULL;
+ rv3d->sms = NULL;
+ rv3d->smooth_timer = NULL;
+ }
+ }
+
+ ar->v2d.tab_offset = NULL;
+ ar->v2d.tab_num = 0;
+ ar->v2d.tab_cur = 0;
+ ar->handlers.first = ar->handlers.last = NULL;
+ ar->uiblocks.first = ar->uiblocks.last = NULL;
+ ar->headerstr = NULL;
+ ar->swinid = 0;
+ ar->type = NULL;
+ ar->swap = 0;
+ ar->do_draw = FALSE;
memset(&ar->drawrct, 0, sizeof(ar->drawrct));
}
@@ -5760,22 +5688,22 @@ void blo_do_versions_view3d_split_250(View3D *v3d, ListBase *regions)
{
ARegion *ar;
- for (ar= regions->first; ar; ar= ar->next) {
+ for (ar = regions->first; ar; ar = ar->next) {
if (ar->regiontype==RGN_TYPE_WINDOW && ar->regiondata==NULL) {
RegionView3D *rv3d;
- rv3d= ar->regiondata= MEM_callocN(sizeof(RegionView3D), "region v3d patch");
- rv3d->persp= (char)v3d->persp;
- rv3d->view= (char)v3d->view;
- rv3d->dist= v3d->dist;
+ rv3d = ar->regiondata = MEM_callocN(sizeof(RegionView3D), "region v3d patch");
+ rv3d->persp = (char)v3d->persp;
+ rv3d->view = (char)v3d->view;
+ rv3d->dist = v3d->dist;
copy_v3_v3(rv3d->ofs, v3d->ofs);
copy_qt_qt(rv3d->viewquat, v3d->viewquat);
}
}
-
+
/* this was not initialized correct always */
if (v3d->twtype == 0)
- v3d->twtype= V3D_MANIP_TRANSLATE;
+ v3d->twtype = V3D_MANIP_TRANSLATE;
}
static void direct_link_screen(FileData *fd, bScreen *sc)
@@ -5788,49 +5716,49 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
link_list(fd, &(sc->vertbase));
link_list(fd, &(sc->edgebase));
link_list(fd, &(sc->areabase));
- sc->regionbase.first= sc->regionbase.last= NULL;
- sc->context= NULL;
-
- sc->mainwin= sc->subwinactive= 0; /* indices */
- sc->swap= 0;
+ sc->regionbase.first = sc->regionbase.last= NULL;
+ sc->context = NULL;
+
+ sc->mainwin = sc->subwinactive= 0; /* indices */
+ sc->swap = 0;
/* hacky patch... but people have been saving files with the verse-blender,
* causing the handler to keep running for ever, with no means to disable it */
- for (a=0; a<SCREEN_MAXHANDLER; a+=2) {
- if ( sc->handler[a]==SCREEN_HANDLER_VERSE) {
- sc->handler[a]= 0;
+ for (a = 0; a < SCREEN_MAXHANDLER; a+=2) {
+ if (sc->handler[a] == SCREEN_HANDLER_VERSE) {
+ sc->handler[a] = 0;
break;
}
}
/* edges */
- for (se= sc->edgebase.first; se; se= se->next) {
- se->v1= newdataadr(fd, se->v1);
- se->v2= newdataadr(fd, se->v2);
- if ( (intptr_t)se->v1 > (intptr_t)se->v2) {
- sv= se->v1;
- se->v1= se->v2;
- se->v2= sv;
+ for (se = sc->edgebase.first; se; se = se->next) {
+ se->v1 = newdataadr(fd, se->v1);
+ se->v2 = newdataadr(fd, se->v2);
+ if ((intptr_t)se->v1 > (intptr_t)se->v2) {
+ sv = se->v1;
+ se->v1 = se->v2;
+ se->v2 = sv;
}
-
- if (se->v1==NULL) {
+
+ if (se->v1 == NULL) {
printf("error reading screen... file corrupt\n");
- se->v1= se->v2;
+ se->v1 = se->v2;
}
}
-
+
/* areas */
- for (sa= sc->areabase.first; sa; sa= sa->next) {
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
SpaceLink *sl;
ARegion *ar;
-
+
link_list(fd, &(sa->spacedata));
link_list(fd, &(sa->regionbase));
-
- sa->handlers.first= sa->handlers.last= NULL;
- sa->type= NULL; /* spacetype callbacks */
- for (ar= sa->regionbase.first; ar; ar= ar->next)
+ sa->handlers.first = sa->handlers.last = NULL;
+ sa->type = NULL; /* spacetype callbacks */
+
+ for (ar = sa->regionbase.first; ar; ar = ar->next)
direct_link_region(fd, ar, sa->spacetype);
/* accident can happen when read/save new file with older version */
@@ -5841,80 +5769,80 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
BLI_addtail(&sa->spacedata, sinfo);
}
/* add local view3d too */
- else if (sa->spacetype==SPACE_VIEW3D)
+ else if (sa->spacetype == SPACE_VIEW3D)
blo_do_versions_view3d_split_250(sa->spacedata.first, &sa->regionbase);
- for (sl= sa->spacedata.first; sl; sl= sl->next) {
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
link_list(fd, &(sl->regionbase));
-
- for (ar= sl->regionbase.first; ar; ar= ar->next)
+
+ for (ar = sl->regionbase.first; ar; ar = ar->next)
direct_link_region(fd, ar, sl->spacetype);
-
- if (sl->spacetype==SPACE_VIEW3D) {
+
+ if (sl->spacetype == SPACE_VIEW3D) {
View3D *v3d= (View3D*) sl;
BGpic *bgpic;
-
+
v3d->flag |= V3D_INVALID_BACKBUF;
-
- link_list(fd, &(v3d->bgpicbase));
-
+
+ link_list(fd, &v3d->bgpicbase);
+
/* should be do_versions except this doesnt fit well there */
if (v3d->bgpic) {
- bgpic= newdataadr(fd, v3d->bgpic);
+ bgpic = newdataadr(fd, v3d->bgpic);
BLI_addtail(&v3d->bgpicbase, bgpic);
- v3d->bgpic= NULL;
+ v3d->bgpic = NULL;
}
-
- for (bgpic= v3d->bgpicbase.first; bgpic; bgpic= bgpic->next)
- bgpic->iuser.ok= 1;
-
+
+ for (bgpic = v3d->bgpicbase.first; bgpic; bgpic = bgpic->next)
+ bgpic->iuser.ok = 1;
+
if (v3d->gpd) {
- v3d->gpd= newdataadr(fd, v3d->gpd);
+ v3d->gpd = newdataadr(fd, v3d->gpd);
direct_link_gpencil(fd, v3d->gpd);
}
- v3d->localvd= newdataadr(fd, v3d->localvd);
- v3d->afterdraw_transp.first= v3d->afterdraw_transp.last= NULL;
- v3d->afterdraw_xray.first= v3d->afterdraw_xray.last= NULL;
- v3d->afterdraw_xraytransp.first= v3d->afterdraw_xraytransp.last= NULL;
- v3d->properties_storage= NULL;
-
+ v3d->localvd = newdataadr(fd, v3d->localvd);
+ v3d->afterdraw_transp.first = v3d->afterdraw_transp.last = NULL;
+ v3d->afterdraw_xray.first = v3d->afterdraw_xray.last = NULL;
+ v3d->afterdraw_xraytransp.first = v3d->afterdraw_xraytransp.last = NULL;
+ v3d->properties_storage = NULL;
+
/* render can be quite heavy, set to wire on load */
if (v3d->drawtype == OB_RENDER)
v3d->drawtype = OB_WIRE;
blo_do_versions_view3d_split_250(v3d, &sl->regionbase);
}
- else if (sl->spacetype==SPACE_IPO) {
- SpaceIpo *sipo= (SpaceIpo*)sl;
+ else if (sl->spacetype == SPACE_IPO) {
+ SpaceIpo *sipo = (SpaceIpo *)sl;
- sipo->ads= newdataadr(fd, sipo->ads);
- sipo->ghostCurves.first= sipo->ghostCurves.last= NULL;
+ sipo->ads = newdataadr(fd, sipo->ads);
+ sipo->ghostCurves.first = sipo->ghostCurves.last = NULL;
}
- else if (sl->spacetype==SPACE_NLA) {
- SpaceNla *snla= (SpaceNla*)sl;
+ else if (sl->spacetype == SPACE_NLA) {
+ SpaceNla *snla = (SpaceNla *)sl;
- snla->ads= newdataadr(fd, snla->ads);
+ snla->ads = newdataadr(fd, snla->ads);
}
- else if (sl->spacetype==SPACE_OUTLINER) {
- SpaceOops *soops= (SpaceOops*) sl;
+ else if (sl->spacetype == SPACE_OUTLINER) {
+ SpaceOops *soops = (SpaceOops *) sl;
- soops->treestore= newdataadr(fd, soops->treestore);
+ soops->treestore = newdataadr(fd, soops->treestore);
if (soops->treestore) {
- soops->treestore->data= newdataadr(fd, soops->treestore->data);
+ soops->treestore->data = newdataadr(fd, soops->treestore->data);
/* we only saved what was used */
- soops->treestore->totelem= soops->treestore->usedelem;
+ soops->treestore->totelem = soops->treestore->usedelem;
soops->storeflag |= SO_TREESTORE_CLEANUP; // at first draw
}
}
- else if (sl->spacetype==SPACE_IMAGE) {
- SpaceImage *sima= (SpaceImage *)sl;
+ else if (sl->spacetype == SPACE_IMAGE) {
+ SpaceImage *sima = (SpaceImage *)sl;
- sima->cumap= newdataadr(fd, sima->cumap);
+ sima->cumap = newdataadr(fd, sima->cumap);
if (sima->cumap)
direct_link_curvemapping(fd, sima->cumap);
- sima->iuser.scene= NULL;
- sima->iuser.ok= 1;
+ sima->iuser.scene = NULL;
+ sima->iuser.ok = 1;
sima->scopes.waveform_1 = NULL;
sima->scopes.waveform_2 = NULL;
sima->scopes.waveform_3 = NULL;
@@ -5925,45 +5853,45 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
* so sacrifice a few old files for now to avoid crashes with new files!
* committed: r28002 */
#if 0
- sima->gpd= newdataadr(fd, sima->gpd);
+ sima->gpd = newdataadr(fd, sima->gpd);
if (sima->gpd)
direct_link_gpencil(fd, sima->gpd);
#endif
}
- else if (sl->spacetype==SPACE_NODE) {
- SpaceNode *snode= (SpaceNode *)sl;
+ else if (sl->spacetype == SPACE_NODE) {
+ SpaceNode *snode = (SpaceNode *)sl;
if (snode->gpd) {
- snode->gpd= newdataadr(fd, snode->gpd);
+ snode->gpd = newdataadr(fd, snode->gpd);
direct_link_gpencil(fd, snode->gpd);
}
}
- else if (sl->spacetype==SPACE_TIME) {
- SpaceTime *stime= (SpaceTime *)sl;
- stime->caches.first= stime->caches.last= NULL;
+ else if (sl->spacetype == SPACE_TIME) {
+ SpaceTime *stime = (SpaceTime *)sl;
+ stime->caches.first = stime->caches.last = NULL;
}
- else if (sl->spacetype==SPACE_LOGIC) {
- SpaceLogic *slogic= (SpaceLogic *)sl;
+ else if (sl->spacetype == SPACE_LOGIC) {
+ SpaceLogic *slogic = (SpaceLogic *)sl;
if (slogic->gpd) {
- slogic->gpd= newdataadr(fd, slogic->gpd);
+ slogic->gpd = newdataadr(fd, slogic->gpd);
direct_link_gpencil(fd, slogic->gpd);
}
}
- else if (sl->spacetype==SPACE_SEQ) {
- SpaceSeq *sseq= (SpaceSeq *)sl;
+ else if (sl->spacetype == SPACE_SEQ) {
+ SpaceSeq *sseq = (SpaceSeq *)sl;
if (sseq->gpd) {
- sseq->gpd= newdataadr(fd, sseq->gpd);
+ sseq->gpd = newdataadr(fd, sseq->gpd);
direct_link_gpencil(fd, sseq->gpd);
}
}
- else if (sl->spacetype==SPACE_BUTS) {
- SpaceButs *sbuts= (SpaceButs *)sl;
+ else if (sl->spacetype == SPACE_BUTS) {
+ SpaceButs *sbuts = (SpaceButs *)sl;
sbuts->path= NULL;
sbuts->texuser= NULL;
}
- else if (sl->spacetype==SPACE_CONSOLE) {
- SpaceConsole *sconsole= (SpaceConsole *)sl;
+ else if (sl->spacetype == SPACE_CONSOLE) {
+ SpaceConsole *sconsole = (SpaceConsole *)sl;
ConsoleLine *cl, *cl_next;
link_list(fd, &sconsole->scrollback);
@@ -5975,12 +5903,12 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
/* comma expressions, (e.g. expr1, expr2, expr3) evalutate each expression,
* from left to right. the right-most expression sets the result of the comma
* expression as a whole*/
- for (cl= sconsole->history.first; cl; cl= cl_next) {
- cl_next= cl->next;
- cl->line= newdataadr(fd, cl->line);
+ for (cl = sconsole->history.first; cl; cl = cl_next) {
+ cl_next = cl->next;
+ cl->line = newdataadr(fd, cl->line);
if (cl->line) {
/* the allocted length is not written, so reset here */
- cl->len_alloc= cl->len + 1;
+ cl->len_alloc = cl->len + 1;
}
else {
BLI_remlink(&sconsole->history, cl);
@@ -5988,26 +5916,26 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
}
}
}
- else if (sl->spacetype==SPACE_FILE) {
- SpaceFile *sfile= (SpaceFile *)sl;
+ else if (sl->spacetype == SPACE_FILE) {
+ SpaceFile *sfile = (SpaceFile *)sl;
/* this sort of info is probably irrelevant for reloading...
* plus, it isn't saved to files yet!
*/
- sfile->folders_prev= sfile->folders_next= NULL;
- sfile->files= NULL;
- sfile->layout= NULL;
- sfile->op= NULL;
- sfile->params= newdataadr(fd, sfile->params);
+ sfile->folders_prev = sfile->folders_next = NULL;
+ sfile->files = NULL;
+ sfile->layout = NULL;
+ sfile->op = NULL;
+ sfile->params = newdataadr(fd, sfile->params);
}
}
- sa->actionzones.first= sa->actionzones.last= NULL;
-
- sa->v1= newdataadr(fd, sa->v1);
- sa->v2= newdataadr(fd, sa->v2);
- sa->v3= newdataadr(fd, sa->v3);
- sa->v4= newdataadr(fd, sa->v4);
+ sa->actionzones.first = sa->actionzones.last = NULL;
+
+ sa->v1 = newdataadr(fd, sa->v1);
+ sa->v2 = newdataadr(fd, sa->v2);
+ sa->v3 = newdataadr(fd, sa->v3);
+ sa->v4 = newdataadr(fd, sa->v4);
}
}
@@ -6018,20 +5946,20 @@ static void direct_link_library(FileData *fd, Library *lib, Main *main)
{
Main *newmain;
- for (newmain= fd->mainlist.first; newmain; newmain= newmain->next) {
+ for (newmain = fd->mainlist.first; newmain; newmain = newmain->next) {
if (newmain->curlib) {
if (BLI_path_cmp(newmain->curlib->filepath, lib->filepath) == 0) {
BKE_reportf_wrap(fd->reports, RPT_WARNING,
"Library '%s', '%s' had multiple instances, save and reload!",
lib->name, lib->filepath);
-
+
change_idid_adr(&fd->mainlist, fd, lib, newmain->curlib);
// change_idid_adr_fd(fd, lib, newmain->curlib);
BLI_remlink(&main->library, lib);
MEM_freeN(lib);
-
-
+
+
return;
}
}
@@ -6046,16 +5974,16 @@ static void direct_link_library(FileData *fd, Library *lib, Main *main)
/* new main */
newmain= MEM_callocN(sizeof(Main), "directlink");
BLI_addtail(&fd->mainlist, newmain);
- newmain->curlib= lib;
-
- lib->parent= NULL;
+ newmain->curlib = lib;
+
+ lib->parent = NULL;
}
static void lib_link_library(FileData *UNUSED(fd), Main *main)
{
Library *lib;
- for (lib= main->library.first; lib; lib= lib->id.next) {
- lib->id.us= 1;
+ for (lib = main->library.first; lib; lib = lib->id.next) {
+ lib->id.us = 1;
}
}
@@ -6064,23 +5992,23 @@ static void fix_relpaths_library(const char *basepath, Main *main)
{
Library *lib;
/* BLO_read_from_memory uses a blank filename */
- if (basepath==NULL || basepath[0] == '\0') {
- for (lib= main->library.first; lib; lib= lib->id.next) {
+ if (basepath == NULL || basepath[0] == '\0') {
+ for (lib = main->library.first; lib; lib= lib->id.next) {
/* when loading a linked lib into a file which has not been saved,
* there is nothing we can be relative to, so instead we need to make
* it absolute. This can happen when appending an object with a relative
* link into an unsaved blend file. See [#27405].
* The remap relative option will make it relative again on save - campbell */
- if (strncmp(lib->name, "//", 2)==0) {
+ if (strncmp(lib->name, "//", 2) == 0) {
BLI_strncpy(lib->name, lib->filepath, sizeof(lib->name));
}
}
}
else {
- for (lib= main->library.first; lib; lib= lib->id.next) {
+ for (lib = main->library.first; lib; lib = lib->id.next) {
/* Libraries store both relative and abs paths, recreate relative paths,
* relative to the blend file since indirectly linked libs will be relative to their direct linked library */
- if (strncmp(lib->name, "//", 2)==0) { /* if this is relative to begin with? */
+ if (strncmp(lib->name, "//", 2) == 0) { /* if this is relative to begin with? */
BLI_strncpy(lib->name, lib->filepath, sizeof(lib->name));
BLI_path_rel(lib->name, basepath);
}
@@ -6093,30 +6021,28 @@ static void fix_relpaths_library(const char *basepath, Main *main)
static void lib_link_speaker(FileData *fd, Main *main)
{
Speaker *spk;
-
- spk= main->speaker.first;
- while (spk) {
+
+ for (spk = main->speaker.first; spk; spk = spk->id.next) {
if (spk->id.flag & LIB_NEEDLINK) {
if (spk->adt) lib_link_animdata(fd, &spk->id, spk->adt);
-
+
spk->sound= newlibadr(fd, spk->id.lib, spk->sound);
if (spk->sound) {
spk->sound->id.us++;
}
-
+
spk->id.flag -= LIB_NEEDLINK;
}
- spk= spk->id.next;
}
}
static void direct_link_speaker(FileData *fd, Speaker *spk)
{
- spk->adt= newdataadr(fd, spk->adt);
+ spk->adt = newdataadr(fd, spk->adt);
direct_link_animdata(fd, spk->adt);
#if 0
- spk->sound= newdataadr(fd, spk->sound);
+ spk->sound = newdataadr(fd, spk->sound);
direct_link_sound(fd, spk->sound);
#endif
}
@@ -6142,16 +6068,14 @@ static void direct_link_sound(FileData *fd, bSound *sound)
static void lib_link_sound(FileData *fd, Main *main)
{
bSound *sound;
-
- sound= main->sound.first;
- while (sound) {
+
+ for (sound = main->sound.first; sound; sound = sound->id.next) {
if (sound->id.flag & LIB_NEEDLINK) {
sound->id.flag -= LIB_NEEDLINK;
- sound->ipo= newlibadr_us(fd, sound->id.lib, sound->ipo); // XXX depreceated - old animation system
+ sound->ipo = newlibadr_us(fd, sound->id.lib, sound->ipo); // XXX depreceated - old animation system
sound_load(main, sound);
}
- sound= sound->id.next;
}
}
/* ***************** READ GROUP *************** */
@@ -6163,32 +6087,29 @@ static void direct_link_group(FileData *fd, Group *group)
static void lib_link_group(FileData *fd, Main *main)
{
- Group *group= main->group.first;
+ Group *group;
GroupObject *go;
int add_us;
- while (group) {
+ for (group = main->group.first; group; group = group->id.next) {
if (group->id.flag & LIB_NEEDLINK) {
group->id.flag -= LIB_NEEDLINK;
- add_us= 0;
+ add_us = 0;
- go= group->gobject.first;
- while (go) {
+ for (go = group->gobject.first; go; go = go->next) {
go->ob= newlibadr(fd, group->id.lib, go->ob);
if (go->ob) {
go->ob->flag |= OB_FROMGROUP;
/* if group has an object, it increments user... */
- add_us= 1;
- if (go->ob->id.us==0)
- go->ob->id.us= 1;
+ add_us = 1;
+ if (go->ob->id.us == 0)
+ go->ob->id.us = 1;
}
- go= go->next;
}
if (add_us) group->id.us++;
rem_from_group(group, NULL, NULL, NULL); /* removes NULL entries */
}
- group= group->id.next;
}
}
@@ -6196,79 +6117,71 @@ static void lib_link_group(FileData *fd, Main *main)
static void direct_link_movieReconstruction(FileData *fd, MovieTrackingReconstruction *reconstruction)
{
- reconstruction->cameras= newdataadr(fd, reconstruction->cameras);
+ reconstruction->cameras = newdataadr(fd, reconstruction->cameras);
}
static void direct_link_movieTracks(FileData *fd, MovieClip *clip, ListBase *tracksbase)
{
MovieTrackingTrack *track;
-
+
link_list(fd, tracksbase);
- track= tracksbase->first;
- while (track) {
- track->markers= newdataadr(fd, track->markers);
- track->gpd= newlibadr_us(fd, clip->id.lib, track->gpd);
-
- track= track->next;
+ for (track = tracksbase->first; track; track = track->next) {
+ track->markers = newdataadr(fd, track->markers);
+ track->gpd = newlibadr_us(fd, clip->id.lib, track->gpd);
}
}
static void direct_link_movieclip(FileData *fd, MovieClip *clip)
{
- MovieTracking *tracking= &clip->tracking;
+ MovieTracking *tracking = &clip->tracking;
MovieTrackingObject *object;
clip->adt= newdataadr(fd, clip->adt);
- if (fd->movieclipmap) clip->cache= newmclipadr(fd, clip->cache);
- else clip->cache= NULL;
+ if (fd->movieclipmap) clip->cache = newmclipadr(fd, clip->cache);
+ else clip->cache = NULL;
- if (fd->movieclipmap) clip->tracking.camera.intrinsics= newmclipadr(fd, clip->tracking.camera.intrinsics);
- else clip->tracking.camera.intrinsics= NULL;
+ if (fd->movieclipmap) clip->tracking.camera.intrinsics = newmclipadr(fd, clip->tracking.camera.intrinsics);
+ else clip->tracking.camera.intrinsics = NULL;
direct_link_movieTracks(fd, clip, &tracking->tracks);
direct_link_movieReconstruction(fd, &tracking->reconstruction);
- clip->tracking.act_track= newdataadr(fd, clip->tracking.act_track);
+ clip->tracking.act_track = newdataadr(fd, clip->tracking.act_track);
- clip->anim= NULL;
- clip->tracking_context= NULL;
- clip->tracking.stats= NULL;
+ clip->anim = NULL;
+ clip->tracking_context = NULL;
+ clip->tracking.stats = NULL;
- clip->tracking.stabilization.ok= 0;
- clip->tracking.stabilization.scaleibuf= NULL;
- clip->tracking.stabilization.rot_track= newdataadr(fd, clip->tracking.stabilization.rot_track);
+ clip->tracking.stabilization.ok = 0;
+ clip->tracking.stabilization.scaleibuf = NULL;
+ clip->tracking.stabilization.rot_track = newdataadr(fd, clip->tracking.stabilization.rot_track);
clip->tracking.dopesheet.ok = 0;
clip->tracking.dopesheet.channels.first = clip->tracking.dopesheet.channels.last = NULL;
link_list(fd, &tracking->objects);
-
- object= tracking->objects.first;
- while (object) {
+
+ for (object = tracking->objects.first; object; object = object->next) {
direct_link_movieTracks(fd, clip, &object->tracks);
direct_link_movieReconstruction(fd, &object->reconstruction);
-
- object= object->next;
}
}
static void lib_link_movieclip(FileData *fd, Main *main)
{
MovieClip *clip;
-
- clip= main->movieclip.first;
- while (clip) {
+
+ for (clip = main->movieclip.first; clip; clip = clip->id.next) {
if (clip->id.flag & LIB_NEEDLINK) {
if (clip->adt)
lib_link_animdata(fd, &clip->id, clip->adt);
-
- clip->gpd= newlibadr_us(fd, clip->id.lib, clip->gpd);
-
+
+ clip->gpd = newlibadr_us(fd, clip->id.lib, clip->gpd);
+
clip->id.flag -= LIB_NEEDLINK;
}
- clip= clip->id.next;
}
}
@@ -6355,7 +6268,7 @@ static void lib_link_mask(FileData *fd, Main *main)
static const char *dataname(short id_code)
{
- switch ( id_code ) {
+ switch (id_code) {
case ID_OB: return "Data from OB";
case ID_ME: return "Data from ME";
case ID_IP: return "Data from IP";
@@ -6392,27 +6305,27 @@ static const char *dataname(short id_code)
static BHead *read_data_into_oldnewmap(FileData *fd, BHead *bhead, const char *allocname)
{
bhead = blo_nextbhead(fd, bhead);
-
+
while (bhead && bhead->code==DATA) {
void *data;
#if 0
/* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc errors */
- short *sp= fd->filesdna->structs[bhead->SDNAnr];
- char *tmp= malloc(100);
+ short *sp = fd->filesdna->structs[bhead->SDNAnr];
+ char *tmp = malloc(100);
allocname = fd->filesdna->types[ sp[0] ];
strcpy(tmp, allocname);
- data= read_struct(fd, bhead, tmp);
+ data = read_struct(fd, bhead, tmp);
#else
- data= read_struct(fd, bhead, allocname);
+ data = read_struct(fd, bhead, allocname);
#endif
if (data) {
oldnewmap_insert(fd->datamap, bhead->old, data, 0);
}
-
+
bhead = blo_nextbhead(fd, bhead);
}
-
+
return bhead;
}
@@ -6421,7 +6334,6 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
/* this routine reads a libblock and its direct data. Use link functions
* to connect it all
*/
-
ID *id;
ListBase *lb;
const char *allocname;
@@ -6429,41 +6341,41 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
/* read libblock */
id = read_struct(fd, bhead, "lib block");
if (id_r)
- *id_r= id;
+ *id_r = id;
if (!id)
return blo_nextbhead(fd, bhead);
oldnewmap_insert(fd->libmap, bhead->old, id, bhead->code); /* for ID_ID check */
/* do after read_struct, for dna reconstruct */
- if (bhead->code==ID_ID) {
- lb= which_libbase(main, GS(id->name));
+ if (bhead->code == ID_ID) {
+ lb = which_libbase(main, GS(id->name));
}
else {
- lb= which_libbase(main, bhead->code);
+ lb = which_libbase(main, bhead->code);
}
BLI_addtail(lb, id);
-
+
/* clear first 8 bits */
- id->flag= (id->flag & 0xFF00) | flag | LIB_NEEDLINK;
- id->lib= main->curlib;
+ id->flag = (id->flag & 0xFF00) | flag | LIB_NEEDLINK;
+ id->lib = main->curlib;
if (id->flag & LIB_FAKEUSER) id->us= 1;
- else id->us= 0;
+ else id->us = 0;
id->icon_id = 0;
id->flag &= ~(LIB_ID_RECALC|LIB_ID_RECALC_DATA);
-
+
/* this case cannot be direct_linked: it's just the ID part */
- if (bhead->code==ID_ID) {
+ if (bhead->code == ID_ID) {
return blo_nextbhead(fd, bhead);
}
-
+
/* need a name for the mallocN, just for debugging and sane prints on leaks */
- allocname= dataname(GS(id->name));
+ allocname = dataname(GS(id->name));
/* read all data into fd->datamap */
- bhead= read_data_into_oldnewmap(fd, bhead, allocname);
-
+ bhead = read_data_into_oldnewmap(fd, bhead, allocname);
+
/* init pointers direct data */
switch (GS(id->name)) {
case ID_WM:
@@ -6568,10 +6480,10 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
IDP_DirectLinkProperty(id->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
}
}
-
+
oldnewmap_free_unused(fd->datamap);
oldnewmap_clear(fd->datamap);
-
+
return (bhead);
}
@@ -6579,30 +6491,30 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
/* also version info is written here */
static BHead *read_global(BlendFileData *bfd, FileData *fd, BHead *bhead)
{
- FileGlobal *fg= read_struct(fd, bhead, "Global");
+ FileGlobal *fg = read_struct(fd, bhead, "Global");
/* copy to bfd handle */
- bfd->main->subversionfile= fg->subversion;
- bfd->main->minversionfile= fg->minversion;
- bfd->main->minsubversionfile= fg->minsubversion;
- bfd->main->revision= fg->revision;
-
- bfd->winpos= fg->winpos;
- bfd->fileflags= fg->fileflags;
- bfd->displaymode= fg->displaymode;
- bfd->globalf= fg->globalf;
+ bfd->main->subversionfile = fg->subversion;
+ bfd->main->minversionfile = fg->minversion;
+ bfd->main->minsubversionfile = fg->minsubversion;
+ bfd->main->revision = fg->revision;
+
+ bfd->winpos = fg->winpos;
+ bfd->fileflags = fg->fileflags;
+ bfd->displaymode = fg->displaymode;
+ bfd->globalf = fg->globalf;
BLI_strncpy(bfd->filename, fg->filename, sizeof(bfd->filename));
if (G.fileflags & G_FILE_RECOVER)
BLI_strncpy(fd->relabase, fg->filename, sizeof(fd->relabase));
- bfd->curscreen= fg->curscreen;
- bfd->curscene= fg->curscene;
+ bfd->curscreen = fg->curscreen;
+ bfd->curscene = fg->curscene;
MEM_freeN(fg);
-
- fd->globalf= bfd->globalf;
- fd->fileflags= bfd->fileflags;
+
+ fd->globalf = bfd->globalf;
+ fd->fileflags = bfd->fileflags;
return blo_nextbhead(fd, bhead);
}
@@ -6610,12 +6522,11 @@ static BHead *read_global(BlendFileData *bfd, FileData *fd, BHead *bhead)
/* note, this has to be kept for reading older files... */
static void link_global(FileData *fd, BlendFileData *bfd)
{
-
- bfd->curscreen= newlibadr(fd, NULL, bfd->curscreen);
- bfd->curscene= newlibadr(fd, NULL, bfd->curscene);
+ bfd->curscreen = newlibadr(fd, NULL, bfd->curscreen);
+ bfd->curscene = newlibadr(fd, NULL, bfd->curscene);
// this happens in files older than 2.35
- if (bfd->curscene==NULL) {
- if (bfd->curscreen) bfd->curscene= bfd->curscreen->scene;
+ if (bfd->curscene == NULL) {
+ if (bfd->curscreen) bfd->curscene = bfd->curscreen->scene;
}
}
@@ -6623,19 +6534,18 @@ static void link_global(FileData *fd, BlendFileData *bfd)
void convert_tface_mt(FileData *fd, Main *main)
{
Main *gmain;
-
+
/* this is a delayed do_version (so it can create new materials) */
if (main->versionfile < 259 || (main->versionfile == 259 && main->subversionfile < 3)) {
-
//XXX hack, material.c uses G.main all over the place, instead of main
// temporarily set G.main to the current main
gmain = G.main;
G.main = main;
-
+
if (!(do_version_tface(main, 1))) {
BKE_report(fd->reports, RPT_WARNING, "Texface conversion problem. Error in console");
}
-
+
//XXX hack, material.c uses G.main allover the place, instead of main
G.main = gmain;
}
@@ -6645,11 +6555,12 @@ static void do_versions_nodetree_image_default_alpha_output(bNodeTree *ntree)
{
bNode *node;
bNodeSocket *sock;
- for (node=ntree->nodes.first; node; node=node->next) {
+
+ for (node = ntree->nodes.first; node; node = node->next) {
if (ELEM(node->type, CMP_NODE_IMAGE, CMP_NODE_R_LAYERS)) {
/* default Image output value should have 0 alpha */
sock = node->outputs.first;
- ((bNodeSocketValueRGBA*)sock->default_value)->value[3] = 0.0f;
+ ((bNodeSocketValueRGBA *)(sock->default_value))->value[3] = 0.0f;
}
}
}
@@ -6658,10 +6569,10 @@ static void do_version_ntree_tex_mapping_260(void *UNUSED(data), ID *UNUSED(id),
{
bNode *node;
- for (node=ntree->nodes.first; node; node=node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
if (node->type == SH_NODE_MAPPING) {
TexMapping *tex_mapping;
-
+
tex_mapping= node->storage;
tex_mapping->projx= PROJ_X;
tex_mapping->projy= PROJ_Y;
@@ -6699,7 +6610,7 @@ static void do_versions_nodetree_convert_angle(bNodeTree *ntree)
}
else if (node->type == CMP_NODE_GLARE) {
/* Convert degrees to radians. */
- NodeGlare* ndg = node->storage;
+ NodeGlare *ndg = node->storage;
/* XXX DNA char to float conversion seems to map the char value into the [0.0f, 1.0f] range... */
ndg->angle_ofs = DEG2RADF(ndg->angle_ofs*255.0f);
}
@@ -6708,7 +6619,7 @@ static void do_versions_nodetree_convert_angle(bNodeTree *ntree)
*/
else if (node->type == SH_NODE_MAPPING) {
/* Convert degrees to radians. */
- TexMapping* tmap = node->storage;
+ TexMapping *tmap = node->storage;
tmap->rot[0] = DEG2RADF(tmap->rot[0]);
tmap->rot[1] = DEG2RADF(tmap->rot[1]);
tmap->rot[2] = DEG2RADF(tmap->rot[2]);
@@ -6720,24 +6631,24 @@ void do_versions_image_settings_2_60(Scene *sce)
{
/* note: rd->subimtype is moved into individual settings now and no longer
* exists */
- RenderData *rd= &sce->r;
- ImageFormatData *imf= &sce->r.im_format;
+ RenderData *rd = &sce->r;
+ ImageFormatData *imf = &sce->r.im_format;
/* we know no data loss happens here, the old values were in char range */
- imf->imtype= (char)rd->imtype;
- imf->planes= (char)rd->planes;
- imf->compress= (char)rd->quality;
- imf->quality= (char)rd->quality;
+ imf->imtype = (char)rd->imtype;
+ imf->planes = (char)rd->planes;
+ imf->compress = (char)rd->quality;
+ imf->quality = (char)rd->quality;
/* default, was stored in multiple places, may override later */
- imf->depth= R_IMF_CHAN_DEPTH_8;
+ imf->depth = R_IMF_CHAN_DEPTH_8;
/* openexr */
imf->exr_codec = rd->quality & 7; /* strange but true! 0-4 are valid values, OPENEXR_COMPRESS */
switch (imf->imtype) {
case R_IMF_IMTYPE_OPENEXR:
- imf->depth= (rd->subimtype & R_OPENEXR_HALF) ? R_IMF_CHAN_DEPTH_16 : R_IMF_CHAN_DEPTH_32;
+ imf->depth = (rd->subimtype & R_OPENEXR_HALF) ? R_IMF_CHAN_DEPTH_16 : R_IMF_CHAN_DEPTH_32;
if (rd->subimtype & R_PREVIEW_JPG) {
imf->flag |= R_IMF_FLAG_PREVIEW_JPG;
}
@@ -6785,18 +6696,18 @@ static void do_versions_nodetree_socket_use_flags_2_62(bNodeTree *ntree)
bNodeSocket *sock;
bNodeLink *link;
- for (node=ntree->nodes.first; node; node=node->next) {
- for (sock=node->inputs.first; sock; sock=sock->next)
+ for (node = ntree->nodes.first; node; node = node->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next)
sock->flag &= ~SOCK_IN_USE;
- for (sock=node->outputs.first; sock; sock=sock->next)
+ for (sock = node->outputs.first; sock; sock = sock->next)
sock->flag &= ~SOCK_IN_USE;
}
- for (sock=ntree->inputs.first; sock; sock=sock->next)
+ for (sock = ntree->inputs.first; sock; sock = sock->next)
sock->flag &= ~SOCK_IN_USE;
- for (sock=ntree->outputs.first; sock; sock=sock->next)
+ for (sock = ntree->outputs.first; sock; sock = sock->next)
sock->flag &= ~SOCK_IN_USE;
- for (link=ntree->links.first; link; link=link->next) {
+ for (link = ntree->links.first; link; link = link->next) {
link->fromsock->flag |= SOCK_IN_USE;
link->tosock->flag |= SOCK_IN_USE;
}
@@ -6807,8 +6718,8 @@ static void do_versions_nodetree_multi_file_output_format_2_62_1(Scene *sce, bNo
bNode *node;
bNodeSocket *sock;
- for (node=ntree->nodes.first; node; node=node->next) {
- if (node->type==CMP_NODE_OUTPUT_FILE) {
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == CMP_NODE_OUTPUT_FILE) {
/* previous CMP_NODE_OUTPUT_FILE nodes get converted to multi-file outputs */
NodeImageFile *old_data = node->storage;
NodeImageMultiFile *nimf= MEM_callocN(sizeof(NodeImageMultiFile), "node image multi file");
@@ -6818,7 +6729,7 @@ static void do_versions_nodetree_multi_file_output_format_2_62_1(Scene *sce, bNo
char basepath[FILE_MAXDIR];
char filename[FILE_MAXFILE];
- node->storage= nimf;
+ node->storage = nimf;
/* split off filename from the old path, to be used as socket sub-path */
BLI_split_dirfile(old_data->name, basepath, filename, sizeof(basepath), sizeof(filename));
@@ -6896,10 +6807,10 @@ static void do_versions_mesh_mloopcol_swap_2_62_1(Mesh *me)
MLoopCol *mloopcol;
int a;
int i;
-
+
for (a = 0; a < me->ldata.totlayer; a++) {
layer = &me->ldata.layers[a];
-
+
if (layer->type == CD_MLOOPCOL) {
mloopcol = (MLoopCol *)layer->data;
for (i = 0; i < me->totloop; i++, mloopcol++) {
@@ -6914,9 +6825,9 @@ static void do_versions_nodetree_multi_file_output_path_2_64_0(bNodeTree *ntree)
bNode *node;
for (node=ntree->nodes.first; node; node=node->next) {
- if (node->type==CMP_NODE_OUTPUT_FILE) {
+ if (node->type == CMP_NODE_OUTPUT_FILE) {
bNodeSocket *sock;
- for (sock=node->inputs.first; sock; sock=sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
NodeImageMultiFileSocket *input = sock->storage;
/* input file path is stored in dedicated struct now instead socket name */
BLI_strncpy(input->path, sock->name, sizeof(input->path));
@@ -6931,7 +6842,7 @@ static void do_versions_nodetree_file_output_layers_2_64_5(bNodeTree *ntree)
bNode *node;
for (node=ntree->nodes.first; node; node=node->next) {
- if (node->type==CMP_NODE_OUTPUT_FILE) {
+ if (node->type == CMP_NODE_OUTPUT_FILE) {
bNodeSocket *sock;
for (sock=node->inputs.first; sock; sock=sock->next) {
NodeImageMultiFileSocket *input = sock->storage;
@@ -6953,15 +6864,12 @@ static void do_versions_nodetree_image_layer_2_64_5(bNodeTree *ntree)
{
bNode *node;
- for (node=ntree->nodes.first; node; node=node->next) {
- if (node->type==CMP_NODE_IMAGE) {
- ImageUser *iuser= (ImageUser *)node->storage;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == CMP_NODE_IMAGE) {
bNodeSocket *sock;
- for (sock=node->outputs.first; sock; sock=sock->next) {
+ for (sock = node->outputs.first; sock; sock = sock->next) {
NodeImageLayer *output = MEM_callocN(sizeof(NodeImageLayer), "node image layer");
- /* take layer index from image user (this is ignored from now on) */
- output->layer_index = iuser->layer;
/* take pass index both from current storage ptr (actually an int) */
output->pass_index = GET_INT_FROM_POINTER(sock->storage);
@@ -6972,73 +6880,96 @@ static void do_versions_nodetree_image_layer_2_64_5(bNodeTree *ntree)
}
}
+static void do_versions_nodetree_frame_2_64_6(bNodeTree *ntree)
+{
+ bNode *node;
+
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (node->type==NODE_FRAME) {
+ /* initialize frame node storage data */
+ if (node->storage == NULL) {
+ NodeFrame *data = (NodeFrame *)MEM_callocN(sizeof(NodeFrame), "frame node storage");
+ node->storage = data;
+
+ /* copy current flags */
+ data->flag = node->custom1;
+
+ data->label_size = 20;
+ }
+ }
+
+ /* initialize custom node color */
+ node->color[0] = node->color[1] = node->color[2] = 0.608; /* default theme color */
+ }
+}
+
static void do_versions(FileData *fd, Library *lib, Main *main)
{
/* WATCH IT!!!: pointers from libdata have not been converted */
-
+
if (G.debug & G_DEBUG)
printf("read file %s\n Version %d sub %d svn r%d\n", fd->relabase, main->versionfile, main->subversionfile, main->revision);
-
+
blo_do_versions_pre250(fd, lib, main);
blo_do_versions_250(fd, lib, main);
-
+
if (main->versionfile < 260) {
{
/* set default alpha value of Image outputs in image and render layer nodes to 0 */
Scene *sce;
bNodeTree *ntree;
- for (sce=main->scene.first; sce; sce=sce->id.next) {
+ for (sce = main->scene.first; sce; sce = sce->id.next) {
/* there are files with invalid audio_channels value, the real cause
* is unknown, but we fix it here anyway to avoid crashes */
if (sce->r.ffcodecdata.audio_channels == 0)
sce->r.ffcodecdata.audio_channels = 2;
-
+
if (sce->nodetree)
do_versions_nodetree_image_default_alpha_output(sce->nodetree);
}
- for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next)
do_versions_nodetree_image_default_alpha_output(ntree);
}
-
+
{
/* support old particle dupliobject rotation settings */
ParticleSettings *part;
-
+
for (part=main->particle.first; part; part=part->id.next) {
if (ELEM(part->ren_as, PART_DRAW_OB, PART_DRAW_GR)) {
part->draw |= PART_DRAW_ROTATE_OB;
-
+
if (part->rotmode == 0)
part->rotmode = PART_ROT_VEL;
}
}
}
}
-
+
if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 1)) {
Object *ob;
-
- for (ob= main->object.first; ob; ob= ob->id.next) {
+
+ for (ob = main->object.first; ob; ob = ob->id.next) {
ob->collision_boundtype= ob->boundtype;
}
-
+
{
Camera *cam;
- for (cam= main->camera.first; cam; cam= cam->id.next) {
+ for (cam = main->camera.first; cam; cam = cam->id.next) {
if (cam->sensor_x < 0.01f)
cam->sensor_x = DEFAULT_SENSOR_WIDTH;
-
+
if (cam->sensor_y < 0.01f)
cam->sensor_y = DEFAULT_SENSOR_HEIGHT;
}
}
}
-
+
if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 2)) {
- bNodeTreeType *ntreetype= ntreeGetType(NTREE_SHADER);
-
+ bNodeTreeType *ntreetype = ntreeGetType(NTREE_SHADER);
+
if (ntreetype && ntreetype->foreach_nodetree)
ntreetype->foreach_nodetree(main, NULL, do_version_ntree_tex_mapping_260);
}
@@ -7049,118 +6980,118 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
Scene *sce;
Material *mat;
bNodeTree *ntree;
-
- for (sce=main->scene.first; sce; sce=sce->id.next) {
+
+ for (sce = main->scene.first; sce; sce = sce->id.next) {
if (sce->nodetree)
do_versions_nodetree_convert_angle(sce->nodetree);
}
-
- for (mat=main->mat.first; mat; mat=mat->id.next) {
+
+ for (mat = main->mat.first; mat; mat = mat->id.next) {
if (mat->nodetree)
do_versions_nodetree_convert_angle(mat->nodetree);
}
-
- for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next)
do_versions_nodetree_convert_angle(ntree);
}
-
+
{
/* Tomato compatibility code. */
bScreen *sc;
MovieClip *clip;
-
- for (sc= main->screen.first; sc; sc= sc->id.next) {
+
+ for (sc = main->screen.first; sc; sc = sc->id.next) {
ScrArea *sa;
- for (sa= sc->areabase.first; sa; sa= sa->next) {
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
SpaceLink *sl;
- for (sl= sa->spacedata.first; sl; sl= sl->next) {
- if (sl->spacetype==SPACE_VIEW3D) {
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_VIEW3D) {
View3D *v3d= (View3D *)sl;
- if (v3d->bundle_size==0.0f) {
- v3d->bundle_size= 0.2f;
+ if (v3d->bundle_size == 0.0f) {
+ v3d->bundle_size = 0.2f;
v3d->flag2 |= V3D_SHOW_RECONSTRUCTION;
}
-
- if (v3d->bundle_drawtype==0)
- v3d->bundle_drawtype= OB_PLAINAXES;
+
+ if (v3d->bundle_drawtype == 0)
+ v3d->bundle_drawtype = OB_PLAINAXES;
}
- else if (sl->spacetype==SPACE_CLIP) {
- SpaceClip *sc= (SpaceClip *)sl;
- if (sc->scopes.track_preview_height==0)
- sc->scopes.track_preview_height= 120;
+ else if (sl->spacetype == SPACE_CLIP) {
+ SpaceClip *sc = (SpaceClip *)sl;
+ if (sc->scopes.track_preview_height == 0)
+ sc->scopes.track_preview_height = 120;
}
}
}
}
-
- for (clip= main->movieclip.first; clip; clip= clip->id.next) {
+
+ for (clip = main->movieclip.first; clip; clip = clip->id.next) {
MovieTrackingTrack *track;
-
- if (clip->aspx<1.0f) {
- clip->aspx= 1.0f;
- clip->aspy= 1.0f;
+
+ if (clip->aspx < 1.0f) {
+ clip->aspx = 1.0f;
+ clip->aspy = 1.0f;
}
-
- clip->proxy.build_tc_flag= IMB_TC_RECORD_RUN |
- IMB_TC_FREE_RUN |
- IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN;
-
- if (clip->proxy.build_size_flag==0)
- clip->proxy.build_size_flag= IMB_PROXY_25;
-
- if (clip->proxy.quality==0)
- clip->proxy.quality= 90;
-
- if (clip->tracking.camera.pixel_aspect<0.01f)
- clip->tracking.camera.pixel_aspect= 1.f;
-
- track= clip->tracking.tracks.first;
+
+ clip->proxy.build_tc_flag = IMB_TC_RECORD_RUN |
+ IMB_TC_FREE_RUN |
+ IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN;
+
+ if (clip->proxy.build_size_flag == 0)
+ clip->proxy.build_size_flag = IMB_PROXY_25;
+
+ if (clip->proxy.quality == 0)
+ clip->proxy.quality = 90;
+
+ if (clip->tracking.camera.pixel_aspect < 0.01f)
+ clip->tracking.camera.pixel_aspect = 1.0f;
+
+ track = clip->tracking.tracks.first;
while (track) {
- if (track->minimum_correlation==0.0f)
- track->minimum_correlation= 0.75f;
+ if (track->minimum_correlation == 0.0f)
+ track->minimum_correlation = 0.75f;
- track= track->next;
+ track = track->next;
}
}
}
}
-
+
if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 6)) {
Scene *sce;
MovieClip *clip;
bScreen *sc;
-
+
for (sce = main->scene.first; sce; sce = sce->id.next) {
do_versions_image_settings_2_60(sce);
}
-
+
for (clip= main->movieclip.first; clip; clip= clip->id.next) {
MovieTrackingSettings *settings= &clip->tracking.settings;
if (settings->default_pattern_size == 0.0f) {
- settings->default_motion_model= TRACK_MOTION_MODEL_TRANSLATION;
- settings->default_minimum_correlation= 0.75;
- settings->default_pattern_size= 11;
- settings->default_search_size= 51;
+ settings->default_motion_model = TRACK_MOTION_MODEL_TRANSLATION;
+ settings->default_minimum_correlation = 0.75;
+ settings->default_pattern_size = 11;
+ settings->default_search_size = 51;
}
}
-
- for (sc= main->screen.first; sc; sc= sc->id.next) {
+
+ for (sc = main->screen.first; sc; sc = sc->id.next) {
ScrArea *sa;
- for (sa= sc->areabase.first; sa; sa= sa->next) {
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
SpaceLink *sl;
- for (sl= sa->spacedata.first; sl; sl= sl->next) {
- if (sl->spacetype==SPACE_VIEW3D) {
- View3D *v3d= (View3D *)sl;
- v3d->flag2&= ~V3D_RENDER_SHADOW;
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_VIEW3D) {
+ View3D *v3d = (View3D *)sl;
+ v3d->flag2 &= ~V3D_RENDER_SHADOW;
}
}
}
}
-
+
{
Object *ob;
- for (ob= main->object.first; ob; ob= ob->id.next) {
+ for (ob = main->object.first; ob; ob = ob->id.next) {
/* convert delta addition into delta scale */
int i;
for (i= 0; i < 3; i++) {
@@ -7181,17 +7112,17 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
* at some point this could be removed. */
else if (main->versionfile == 260 && main->subversionfile == 6) {
Object *ob;
- for (ob = main->object.first; ob; ob= ob->id.next) {
+ for (ob = main->object.first; ob; ob = ob->id.next) {
if (is_zero_v3(ob->dscale)) {
fill_vn_fl(ob->dscale, 3, 1.0f);
}
}
}
-
+
if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 8)) {
Brush *brush;
-
- for (brush= main->brush.first; brush; brush= brush->id.next) {
+
+ for (brush = main->brush.first; brush; brush = brush->id.next) {
if (brush->sculpt_tool == SCULPT_TOOL_ROTATE)
brush->alpha= 1.0f;
}
@@ -7206,34 +7137,40 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
Lamp *lamp;
World *world;
bNodeTree *ntree;
-
- for (sce=main->scene.first; sce; sce=sce->id.next)
+
+ for (sce = main->scene.first; sce; sce = sce->id.next) {
if (sce->nodetree)
do_versions_nodetree_socket_use_flags_2_62(sce->nodetree);
-
- for (mat=main->mat.first; mat; mat=mat->id.next)
+ }
+
+ for (mat = main->mat.first; mat; mat = mat->id.next) {
if (mat->nodetree)
do_versions_nodetree_socket_use_flags_2_62(mat->nodetree);
-
- for (tex=main->tex.first; tex; tex=tex->id.next)
+ }
+
+ for (tex = main->tex.first; tex; tex = tex->id.next) {
if (tex->nodetree)
do_versions_nodetree_socket_use_flags_2_62(tex->nodetree);
-
- for (lamp=main->lamp.first; lamp; lamp=lamp->id.next)
+ }
+
+ for (lamp = main->lamp.first; lamp; lamp = lamp->id.next) {
if (lamp->nodetree)
do_versions_nodetree_socket_use_flags_2_62(lamp->nodetree);
-
- for (world=main->world.first; world; world=world->id.next)
+ }
+
+ for (world = main->world.first; world; world = world->id.next) {
if (world->nodetree)
do_versions_nodetree_socket_use_flags_2_62(world->nodetree);
-
- for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+ }
+
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next) {
do_versions_nodetree_socket_use_flags_2_62(ntree);
+ }
}
{
/* Initialize BGE exit key to esc key */
Scene *scene;
- for (scene= main->scene.first; scene; scene= scene->id.next) {
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
if (!scene->gm.exitkey)
scene->gm.exitkey = 218; // Blender key code for ESC
}
@@ -7241,39 +7178,39 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
{
MovieClip *clip;
Object *ob;
-
- for (clip= main->movieclip.first; clip; clip= clip->id.next) {
- MovieTracking *tracking= &clip->tracking;
- MovieTrackingObject *tracking_object= tracking->objects.first;
-
- clip->proxy.build_tc_flag|= IMB_TC_RECORD_RUN_NO_GAPS;
-
+
+ for (clip = main->movieclip.first; clip; clip = clip->id.next) {
+ MovieTracking *tracking = &clip->tracking;
+ MovieTrackingObject *tracking_object = tracking->objects.first;
+
+ clip->proxy.build_tc_flag |= IMB_TC_RECORD_RUN_NO_GAPS;
+
if (!tracking->settings.object_distance)
- tracking->settings.object_distance= 1.0f;
-
+ tracking->settings.object_distance = 1.0f;
+
if (tracking->objects.first == NULL)
BKE_tracking_new_object(tracking, "Camera");
-
+
while (tracking_object) {
if (!tracking_object->scale)
- tracking_object->scale= 1.0f;
-
- tracking_object= tracking_object->next;
+ tracking_object->scale = 1.0f;
+
+ tracking_object = tracking_object->next;
}
}
-
- for (ob= main->object.first; ob; ob= ob->id.next) {
+
+ for (ob = main->object.first; ob; ob = ob->id.next) {
bConstraint *con;
- for (con= ob->constraints.first; con; con=con->next) {
- bConstraintTypeInfo *cti= constraint_get_typeinfo(con);
-
+ for (con = ob->constraints.first; con; con = con->next) {
+ bConstraintTypeInfo *cti = constraint_get_typeinfo(con);
+
if (!cti)
continue;
-
- if (cti->type==CONSTRAINT_TYPE_OBJECTSOLVER) {
- bObjectSolverConstraint *data= (bObjectSolverConstraint *)con->data;
-
- if (data->invmat[3][3]==0.0f)
+
+ if (cti->type == CONSTRAINT_TYPE_OBJECTSOLVER) {
+ bObjectSolverConstraint *data = (bObjectSolverConstraint *)con->data;
+
+ if (data->invmat[3][3] == 0.0f)
unit_m4(data->invmat);
}
}
@@ -7283,7 +7220,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* Warn the user if he is using ["Text"] properties for Font objects */
Object *ob;
bProperty *prop;
-
+
for (ob= main->object.first; ob; ob= ob->id.next) {
if (ob->type == OB_FONT) {
prop = get_ob_property(ob, "Text");
@@ -7297,7 +7234,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
}
-
+
if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 2)) {
{
/* convert Camera Actuator values to defines */
@@ -7307,7 +7244,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
for (act= ob->actuators.first; act; act= act->next) {
if (act->type == ACT_CAMERA) {
bCameraActuator *ba= act->data;
-
+
if (ba->axis==(float) 'x') ba->axis=OB_POSX;
else if (ba->axis==(float)'y') ba->axis=OB_POSY;
/* don't do an if/else to avoid imediate subversion bump*/
@@ -7316,7 +7253,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
}
-
+
{
/* convert deprecated sculpt_paint_unified_* fields to
* UnifiedPaintSettings */
@@ -7377,7 +7314,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
Object *ob;
for (ob=main->object.first; ob; ob= ob->id.next) {
ModifierData *md;
-
+
for (md=ob->modifiers.first; md; md=md->next) {
if (md->type==eModifierType_Cloth) {
ClothModifierData *clmd = (ClothModifierData*) md;
@@ -7392,7 +7329,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* set fluidsim rate. the version patch for this in 2.62 was wrong, so
* try to correct it, if rate is 0.0 that's likely not intentional */
Object *ob;
-
+
for (ob = main->object.first; ob; ob = ob->id.next) {
ModifierData *md;
for (md = ob->modifiers.first; md; md = md->next) {
@@ -7410,9 +7347,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
Scene *sce;
bNodeTree *ntree;
- for (sce=main->scene.first; sce; sce=sce->id.next)
+ for (sce=main->scene.first; sce; sce=sce->id.next) {
if (sce->nodetree)
do_versions_nodetree_multi_file_output_format_2_62_1(sce, sce->nodetree);
+ }
/* XXX can't associate with scene for group nodes, image format will stay uninitialized */
for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
@@ -7427,19 +7365,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
do_versions_mesh_mloopcol_swap_2_62_1(me);
}
}
-
}
if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 2)) {
- {
- /* Set new idname of keyingsets from their now "label-only" name. */
- Scene *scene;
- for (scene = main->scene.first; scene; scene = scene->id.next) {
- KeyingSet *ks;
- for (ks = scene->keyingsets.first; ks; ks = ks->next) {
- if (!ks->idname[0])
- BLI_strncpy(ks->idname, ks->name, sizeof(ks->idname));
- }
+ /* Set new idname of keyingsets from their now "label-only" name. */
+ Scene *scene;
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
+ KeyingSet *ks;
+ for (ks = scene->keyingsets.first; ks; ks = ks->next) {
+ if (!ks->idname[0])
+ BLI_strncpy(ks->idname, ks->name, sizeof(ks->idname));
}
}
}
@@ -7447,9 +7382,9 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 3)) {
Object *ob;
ModifierData *md;
-
+
for (ob = main->object.first; ob; ob = ob->id.next) {
- for (md=ob->modifiers.first; md; md=md->next) {
+ for (md = ob->modifiers.first; md; md = md->next) {
if (md->type == eModifierType_Lattice) {
LatticeModifierData *lmd = (LatticeModifierData *)md;
lmd->strength = 1.0f;
@@ -7483,6 +7418,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
if (main->versionfile < 263) {
+ /* Default for old files is to save particle rotations to pointcache */
+ ParticleSettings *part;
+ for (part = main->particle.first; part; part = part->id.next)
+ part->flag |= PART_ROTATIONS;
{
/* Default for old files is to save particle rotations to pointcache */
ParticleSettings *part;
@@ -7500,12 +7439,15 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
for (ntree = main->nodetree.first; ntree; ntree=ntree->id.next)
do_versions_nodetree_multi_file_output_path_2_64_0(ntree);
}
+
+
+
}
if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 3)) {
Scene *scene;
Brush *brush;
-
+
/* For weight paint, each brush now gets its own weight;
* unified paint settings also have weight. Update unified
* paint settings and brushes with a default weight value. */
@@ -7517,38 +7459,38 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
ts->unified_paint_settings.flag |= UNIFIED_PAINT_WEIGHT;
}
}
-
+
for (brush = main->brush.first; brush; brush = brush->id.next) {
brush->weight = 0.5;
}
}
-
+
if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 2)) {
bScreen *sc;
-
+
for (sc = main->screen.first; sc; sc = sc->id.next) {
ScrArea *sa;
for (sa = sc->areabase.first; sa; sa = sa->next) {
SpaceLink *sl;
-
+
for (sl = sa->spacedata.first; sl; sl = sl->next) {
if (sl->spacetype == SPACE_CLIP) {
SpaceClip *sclip = (SpaceClip *)sl;
ARegion *ar;
int hide = FALSE;
-
+
for (ar = sa->regionbase.first; ar; ar = ar->next) {
if (ar->regiontype == RGN_TYPE_PREVIEW) {
if (ar->alignment != RGN_ALIGN_NONE) {
ar->flag |= RGN_FLAG_HIDDEN;
ar->v2d.flag &= ~V2D_IS_INITIALISED;
ar->alignment = RGN_ALIGN_NONE;
-
+
hide = TRUE;
}
}
}
-
+
if (hide) {
sclip->view = SC_VIEW_CLIP;
}
@@ -7563,27 +7505,27 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
Lamp *la;
Camera *cam;
Curve *cu;
-
- for (la= main->lamp.first; la; la= la->id.next) {
+
+ for (la = main->lamp.first; la; la = la->id.next) {
if (la->shadow_frustum_size == 0.0f)
la->shadow_frustum_size= 10.0f;
}
-
+
for (cam = main->camera.first; cam; cam = cam->id.next) {
if (cam->flag & CAM_PANORAMA) {
cam->type = CAM_PANO;
cam->flag &= ~CAM_PANORAMA;
}
}
-
- for(cu= main->curve.first; cu; cu= cu->id.next) {
- if(cu->bevfac2 == 0.0f) {
+
+ for (cu = main->curve.first; cu; cu = cu->id.next) {
+ if (cu->bevfac2 == 0.0f) {
cu->bevfac1 = 0.0f;
cu->bevfac2 = 1.0f;
}
}
}
-
+
if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 5))
{
{
@@ -7604,6 +7546,40 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 6))
+ {
+ /* update use flags for node sockets (was only temporary before) */
+ Scene *sce;
+ Material *mat;
+ Tex *tex;
+ Lamp *lamp;
+ World *world;
+ bNodeTree *ntree;
+
+ for (sce=main->scene.first; sce; sce=sce->id.next)
+ if (sce->nodetree)
+ do_versions_nodetree_frame_2_64_6(sce->nodetree);
+
+ for (mat=main->mat.first; mat; mat=mat->id.next)
+ if (mat->nodetree)
+ do_versions_nodetree_frame_2_64_6(mat->nodetree);
+
+ for (tex=main->tex.first; tex; tex=tex->id.next)
+ if (tex->nodetree)
+ do_versions_nodetree_frame_2_64_6(tex->nodetree);
+
+ for (lamp=main->lamp.first; lamp; lamp=lamp->id.next)
+ if (lamp->nodetree)
+ do_versions_nodetree_frame_2_64_6(lamp->nodetree);
+
+ for (world=main->world.first; world; world=world->id.next)
+ if (world->nodetree)
+ do_versions_nodetree_frame_2_64_6(world->nodetree);
+
+ for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+ do_versions_nodetree_frame_2_64_6(ntree);
+ }
+
{
MovieClip *clip;
bScreen *sc;
@@ -7665,7 +7641,18 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
-
+ {
+ Scene *scene;
+ // composite redesign
+ for (scene=main->scene.first; scene; scene=scene->id.next) {
+ if (scene->nodetree) {
+ if (scene->nodetree->chunksize == 0) {
+ scene->nodetree->chunksize = 256;
+ }
+ }
+ }
+ }
+
/* don't forget to set version number in blender.c! */
}
@@ -7711,16 +7698,16 @@ static void lib_link_all(FileData *fd, Main *main)
lib_link_mask(fd, main);
lib_link_mesh(fd, main); /* as last: tpage images with users at zero */
-
+
lib_link_library(fd, main); /* only init users */
}
static void direct_link_keymapitem(FileData *fd, wmKeyMapItem *kmi)
{
- kmi->properties= newdataadr(fd, kmi->properties);
+ kmi->properties = newdataadr(fd, kmi->properties);
if (kmi->properties)
IDP_DirectLinkProperty(kmi->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
- kmi->ptr= NULL;
+ kmi->ptr = NULL;
kmi->flag &= ~KMI_UPDATE;
}
@@ -7730,68 +7717,68 @@ static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead)
wmKeyMap *keymap;
wmKeyMapItem *kmi;
wmKeyMapDiffItem *kmdi;
-
- bfd->user= user= read_struct(fd, bhead, "user def");
-
+
+ bfd->user = user= read_struct(fd, bhead, "user def");
+
/* read all data into fd->datamap */
- bhead= read_data_into_oldnewmap(fd, bhead, "user def");
-
+ bhead = read_data_into_oldnewmap(fd, bhead, "user def");
+
if (user->keymaps.first) {
/* backwards compatibility */
user->user_keymaps= user->keymaps;
user->keymaps.first= user->keymaps.last= NULL;
}
-
+
link_list(fd, &user->themes);
link_list(fd, &user->user_keymaps);
link_list(fd, &user->addons);
-
+
for (keymap=user->user_keymaps.first; keymap; keymap=keymap->next) {
keymap->modal_items= NULL;
keymap->poll = NULL;
keymap->flag &= ~KEYMAP_UPDATE;
-
+
link_list(fd, &keymap->diff_items);
link_list(fd, &keymap->items);
for (kmdi=keymap->diff_items.first; kmdi; kmdi=kmdi->next) {
kmdi->remove_item= newdataadr(fd, kmdi->remove_item);
kmdi->add_item= newdataadr(fd, kmdi->add_item);
-
+
if (kmdi->remove_item)
direct_link_keymapitem(fd, kmdi->remove_item);
if (kmdi->add_item)
direct_link_keymapitem(fd, kmdi->add_item);
}
-
+
for (kmi=keymap->items.first; kmi; kmi=kmi->next)
direct_link_keymapitem(fd, kmi);
}
-
+
// XXX
- user->uifonts.first= user->uifonts.last= NULL;
+ user->uifonts.first = user->uifonts.last= NULL;
link_list(fd, &user->uistyles);
-
+
/* free fd->datamap again */
oldnewmap_free_unused(fd->datamap);
oldnewmap_clear(fd->datamap);
-
+
return bhead;
}
BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
{
- BHead *bhead= blo_firstbhead(fd);
+ BHead *bhead = blo_firstbhead(fd);
BlendFileData *bfd;
-
- bfd= MEM_callocN(sizeof(BlendFileData), "blendfiledata");
- bfd->main= MEM_callocN(sizeof(Main), "readfile_Main");
+
+ bfd = MEM_callocN(sizeof(BlendFileData), "blendfiledata");
+ bfd->main = MEM_callocN(sizeof(Main), "readfile_Main");
BLI_addtail(&fd->mainlist, bfd->main);
-
- bfd->main->versionfile= fd->fileversion;
- bfd->type= BLENFILETYPE_BLEND;
+ bfd->main->versionfile = fd->fileversion;
+
+ bfd->type = BLENFILETYPE_BLEND;
BLI_strncpy(bfd->main->name, filepath, sizeof(bfd->main->name));
while (bhead) {
@@ -7803,15 +7790,15 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
bhead = blo_nextbhead(fd, bhead);
break;
case GLOB:
- bhead= read_global(bfd, fd, bhead);
+ bhead = read_global(bfd, fd, bhead);
break;
case USER:
- bhead= read_userdef(bfd, fd, bhead);
+ bhead = read_userdef(bfd, fd, bhead);
break;
case ENDB:
bhead = NULL;
break;
-
+
case ID_LI:
/* skip library datablocks in undo, this works together with
* BLO_read_from_memfile, where the old main->library is restored
@@ -7819,14 +7806,14 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
* it did not save ID_LI/ID_ID blocks in this case, but they are
* needed to make quit.blend recover them correctly. */
if (fd->memfile)
- bhead= blo_nextbhead(fd, bhead);
+ bhead = blo_nextbhead(fd, bhead);
else
- bhead= read_libblock(fd, bfd->main, bhead, LIB_LOCAL, NULL);
+ bhead = read_libblock(fd, bfd->main, bhead, LIB_LOCAL, NULL);
break;
case ID_ID:
/* same as above */
if (fd->memfile)
- bhead= blo_nextbhead(fd, bhead);
+ bhead = blo_nextbhead(fd, bhead);
else
/* always adds to the most recently loaded
* ID_LI block, see direct_link_library.
@@ -7836,21 +7823,21 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
/* in 2.50+ files, the file identifier for screens is patched, forward compatibility */
case ID_SCRN:
- bhead->code= ID_SCR;
+ bhead->code = ID_SCR;
/* deliberate pass on to default */
default:
bhead = read_libblock(fd, bfd->main, bhead, LIB_LOCAL, NULL);
}
}
-
+
/* do before read_libraries, but skip undo case */
// if (fd->memfile==NULL) (the mesh shuffle hacks don't work yet? ton)
do_versions(fd, NULL, bfd->main);
-
+
read_libraries(fd, &fd->mainlist);
blo_join_main(&fd->mainlist);
-
+
lib_link_all(fd, bfd->main);
//do_versions_after_linking(fd, NULL, bfd->main); // XXX: not here (or even in this function at all)! this causes crashes on many files - Aligorith (July 04, 2010)
lib_verify_nodetree(bfd->main, TRUE);
@@ -7872,8 +7859,8 @@ static int verg_bheadsort(const void *v1, const void *v2)
{
const struct bheadsort *x1=v1, *x2=v2;
- if ( x1->old > x2->old) return 1;
- else if ( x1->old < x2->old) return -1;
+ if (x1->old > x2->old) return 1;
+ else if (x1->old < x2->old) return -1;
return 0;
}
@@ -7881,23 +7868,22 @@ static void sort_bhead_old_map(FileData *fd)
{
BHead *bhead;
struct bheadsort *bhs;
- int tot= 0;
+ int tot = 0;
- for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead))
+ for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead))
tot++;
- fd->tot_bheadmap= tot;
- if (tot==0) return;
+ fd->tot_bheadmap = tot;
+ if (tot == 0) return;
- bhs= fd->bheadmap= MEM_mallocN(tot*sizeof(struct bheadsort), "bheadsort");
+ bhs = fd->bheadmap = MEM_mallocN(tot*sizeof(struct bheadsort), "bheadsort");
- for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead), bhs++) {
- bhs->bhead= bhead;
- bhs->old= bhead->old;
+ for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead), bhs++) {
+ bhs->bhead = bhead;
+ bhs->old = bhead->old;
}
qsort(fd->bheadmap, tot, sizeof(struct bheadsort), verg_bheadsort);
-
}
static BHead *find_previous_lib(FileData *fd, BHead *bhead)
@@ -7906,9 +7892,10 @@ static BHead *find_previous_lib(FileData *fd, BHead *bhead)
if (fd->memfile)
return NULL;
- for (; bhead; bhead= blo_prevbhead(fd, bhead))
- if (bhead->code==ID_LI)
+ for (; bhead; bhead = blo_prevbhead(fd, bhead)) {
+ if (bhead->code == ID_LI)
break;
+ }
return bhead;
}
@@ -7923,19 +7910,20 @@ static BHead *find_bhead(FileData *fd, void *old)
if (!old)
return NULL;
- if (fd->bheadmap==NULL)
+ if (fd->bheadmap == NULL)
sort_bhead_old_map(fd);
- bhs_s.old= old;
- bhs= bsearch(&bhs_s, fd->bheadmap, fd->tot_bheadmap, sizeof(struct bheadsort), verg_bheadsort);
+ bhs_s.old = old;
+ bhs = bsearch(&bhs_s, fd->bheadmap, fd->tot_bheadmap, sizeof(struct bheadsort), verg_bheadsort);
if (bhs)
return bhs->bhead;
#if 0
- for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead))
- if (bhead->old==old)
+ for (bhead = blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
+ if (bhead->old == old)
return bhead;
+ }
#endif
return NULL;
@@ -7957,26 +7945,26 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
{
BHead *bhead;
ID *id;
-
- bhead= find_bhead(fd, old);
+
+ bhead = find_bhead(fd, old);
if (bhead) {
- /* from another library? */
- if (bhead->code==ID_ID) {
+ /* from another library? */
+ if (bhead->code == ID_ID) {
BHead *bheadlib= find_previous_lib(fd, bhead);
-
+
if (bheadlib) {
- Library *lib= read_struct(fd, bheadlib, "Library");
- Main *ptr= blo_find_main(fd, &fd->mainlist, lib->name, fd->relabase);
-
- id= is_yet_read(fd, ptr, bhead);
-
- if (id==NULL) {
+ Library *lib = read_struct(fd, bheadlib, "Library");
+ Main *ptr = blo_find_main(fd, &fd->mainlist, lib->name, fd->relabase);
+
+ id = is_yet_read(fd, ptr, bhead);
+
+ if (id == NULL) {
read_libblock(fd, ptr, bhead, LIB_READ+LIB_INDIRECT, NULL);
// commented because this can print way too much
// if (G.debug & G_DEBUG) printf("expand_doit: other lib %s\n", lib->name);
/* for outliner dependency only */
- ptr->curlib->parent= mainvar->curlib;
+ ptr->curlib->parent = mainvar->curlib;
}
else {
/* The line below was commented by Ton (I assume), when Hos did the merge from the orange branch. rev 6568
@@ -8000,8 +7988,8 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
}
}
else {
- id= is_yet_read(fd, mainvar, bhead);
- if (id==NULL) {
+ id = is_yet_read(fd, mainvar, bhead);
+ if (id == NULL) {
read_libblock(fd, mainvar, bhead, LIB_TESTIND, NULL);
}
else {
@@ -8021,7 +8009,7 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
static void expand_ipo(FileData *fd, Main *mainvar, Ipo *ipo)
{
IpoCurve *icu;
- for (icu= ipo->curve.first; icu; icu= icu->next) {
+ for (icu = ipo->curve.first; icu; icu = icu->next) {
if (icu->driver)
expand_doit(fd, mainvar, icu->driver->ob);
}
@@ -8031,7 +8019,7 @@ static void expand_ipo(FileData *fd, Main *mainvar, Ipo *ipo)
static void expand_constraint_channels(FileData *fd, Main *mainvar, ListBase *chanbase)
{
bConstraintChannel *chan;
- for (chan=chanbase->first; chan; chan=chan->next) {
+ for (chan = chanbase->first; chan; chan = chan->next) {
expand_doit(fd, mainvar, chan->ipo);
}
}
@@ -8040,12 +8028,12 @@ static void expand_fmodifiers(FileData *fd, Main *mainvar, ListBase *list)
{
FModifier *fcm;
- for (fcm= list->first; fcm; fcm= fcm->next) {
+ for (fcm = list->first; fcm; fcm = fcm->next) {
/* library data for specific F-Modifier types */
switch (fcm->type) {
case FMODIFIER_TYPE_PYTHON:
{
- FMod_Python *data= (FMod_Python *)fcm->data;
+ FMod_Python *data = (FMod_Python *)fcm->data;
expand_doit(fd, mainvar, data->script);
}
@@ -8058,13 +8046,13 @@ static void expand_fcurves(FileData *fd, Main *mainvar, ListBase *list)
{
FCurve *fcu;
- for (fcu= list->first; fcu; fcu= fcu->next) {
+ for (fcu = list->first; fcu; fcu = fcu->next) {
/* Driver targets if there is a driver */
if (fcu->driver) {
- ChannelDriver *driver= fcu->driver;
+ ChannelDriver *driver = fcu->driver;
DriverVar *dvar;
- for (dvar= driver->variables.first; dvar; dvar= dvar->next) {
+ for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
DRIVER_TARGETS_LOOPER(dvar)
{
// TODO: only expand those that are going to get used?
@@ -8100,8 +8088,8 @@ static void expand_keyingsets(FileData *fd, Main *mainvar, ListBase *list)
KS_Path *ksp;
/* expand the ID-pointers in KeyingSets's paths */
- for (ks= list->first; ks; ks= ks->next) {
- for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
+ for (ks = list->first; ks; ks = ks->next) {
+ for (ksp = ks->paths.first; ksp; ksp = ksp->next) {
expand_doit(fd, mainvar, ksp->id);
}
}
@@ -8138,14 +8126,14 @@ static void expand_animdata(FileData *fd, Main *mainvar, AnimData *adt)
expand_fcurves(fd, mainvar, &adt->drivers);
/* nla-data - referenced actions */
- for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next)
+ for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next)
expand_animdata_nlastrips(fd, mainvar, &nlt->strips);
}
static void expand_particlesettings(FileData *fd, Main *mainvar, ParticleSettings *part)
{
int a;
-
+
expand_doit(fd, mainvar, part->dup_ob);
expand_doit(fd, mainvar, part->dup_group);
expand_doit(fd, mainvar, part->eff_group);
@@ -8153,8 +8141,8 @@ static void expand_particlesettings(FileData *fd, Main *mainvar, ParticleSetting
if (part->adt)
expand_animdata(fd, mainvar, part->adt);
-
- for (a=0; a<MAX_MTEX; a++) {
+
+ for (a = 0; a < MAX_MTEX; a++) {
if (part->mtex[a]) {
expand_doit(fd, mainvar, part->mtex[a]->tex);
expand_doit(fd, mainvar, part->mtex[a]->object);
@@ -8166,7 +8154,7 @@ static void expand_group(FileData *fd, Main *mainvar, Group *group)
{
GroupObject *go;
- for (go= group->gobject.first; go; go= go->next) {
+ for (go = group->gobject.first; go; go = go->next) {
expand_doit(fd, mainvar, go->ob);
}
}
@@ -8189,9 +8177,10 @@ static void expand_nodetree(FileData *fd, Main *mainvar, bNodeTree *ntree)
if (ntree->gpd)
expand_doit(fd, mainvar, ntree->gpd);
- for (node= ntree->nodes.first; node; node= node->next)
- if (node->id && node->type!=CMP_NODE_R_LAYERS)
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->id && node->type != CMP_NODE_R_LAYERS)
expand_doit(fd, mainvar, node->id);
+ }
}
@@ -8216,8 +8205,8 @@ static void expand_brush(FileData *fd, Main *mainvar, Brush *brush)
static void expand_material(FileData *fd, Main *mainvar, Material *ma)
{
int a;
-
- for (a=0; a<MAX_MTEX; a++) {
+
+ for (a = 0; a < MAX_MTEX; a++) {
if (ma->mtex[a]) {
expand_doit(fd, mainvar, ma->mtex[a]->tex);
expand_doit(fd, mainvar, ma->mtex[a]->object);
@@ -8239,8 +8228,8 @@ static void expand_material(FileData *fd, Main *mainvar, Material *ma)
static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la)
{
int a;
-
- for (a=0; a<MAX_MTEX; a++) {
+
+ for (a = 0; a < MAX_MTEX; a++) {
if (la->mtex[a]) {
expand_doit(fd, mainvar, la->mtex[a]->tex);
expand_doit(fd, mainvar, la->mtex[a]->object);
@@ -8251,7 +8240,7 @@ static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la)
if (la->adt)
expand_animdata(fd, mainvar, la->adt);
-
+
if (la->nodetree)
expand_nodetree(fd, mainvar, la->nodetree);
}
@@ -8269,8 +8258,8 @@ static void expand_lattice(FileData *fd, Main *mainvar, Lattice *lt)
static void expand_world(FileData *fd, Main *mainvar, World *wrld)
{
int a;
-
- for (a=0; a<MAX_MTEX; a++) {
+
+ for (a = 0; a < MAX_MTEX; a++) {
if (wrld->mtex[a]) {
expand_doit(fd, mainvar, wrld->mtex[a]->tex);
expand_doit(fd, mainvar, wrld->mtex[a]->object);
@@ -8281,7 +8270,7 @@ static void expand_world(FileData *fd, Main *mainvar, World *wrld)
if (wrld->adt)
expand_animdata(fd, mainvar, wrld->adt);
-
+
if (wrld->nodetree)
expand_nodetree(fd, mainvar, wrld->nodetree);
}
@@ -8290,8 +8279,8 @@ static void expand_world(FileData *fd, Main *mainvar, World *wrld)
static void expand_mball(FileData *fd, Main *mainvar, MetaBall *mb)
{
int a;
-
- for (a=0; a<mb->totcol; a++) {
+
+ for (a = 0; a < mb->totcol; a++) {
expand_doit(fd, mainvar, mb->mat[a]);
}
@@ -8302,8 +8291,8 @@ static void expand_mball(FileData *fd, Main *mainvar, MetaBall *mb)
static void expand_curve(FileData *fd, Main *mainvar, Curve *cu)
{
int a;
-
- for (a=0; a<cu->totcol; a++) {
+
+ for (a = 0; a < cu->totcol; a++) {
expand_doit(fd, mainvar, cu->mat[a]);
}
@@ -8331,28 +8320,30 @@ static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
if (me->adt)
expand_animdata(fd, mainvar, me->adt);
- for (a=0; a<me->totcol; a++) {
+ for (a = 0; a < me->totcol; a++) {
expand_doit(fd, mainvar, me->mat[a]);
}
-
+
expand_doit(fd, mainvar, me->key);
expand_doit(fd, mainvar, me->texcomesh);
-
+
if (me->tface) {
- tf= me->tface;
- for (i=0; i<me->totface; i++, tf++)
+ tf = me->tface;
+ for (i=0; i<me->totface; i++, tf++) {
if (tf->tpage)
expand_doit(fd, mainvar, tf->tpage);
+ }
}
- for (a=0; a<me->fdata.totlayer; a++) {
- layer= &me->fdata.layers[a];
-
+ for (a = 0; a < me->fdata.totlayer; a++) {
+ layer = &me->fdata.layers[a];
+
if (layer->type == CD_MTFACE) {
- mtf= (MTFace*)layer->data;
- for (i=0; i<me->totface; i++, mtf++)
+ mtf = (MTFace*)layer->data;
+ for (i = 0; i < me->totface; i++, mtf++) {
if (mtf->tpage)
expand_doit(fd, mainvar, mtf->tpage);
+ }
}
}
}
@@ -8365,7 +8356,7 @@ typedef struct tConstraintExpandData {
/* callback function used to expand constraint ID-links */
static void expand_constraint_cb(bConstraint *UNUSED(con), ID **idpoin, short UNUSED(isReference), void *userdata)
{
- tConstraintExpandData *ced= (tConstraintExpandData *)userdata;
+ tConstraintExpandData *ced = (tConstraintExpandData *)userdata;
expand_doit(ced->fd, ced->mainvar, *idpoin);
}
@@ -8375,13 +8366,13 @@ static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb)
bConstraint *curcon;
/* relink all ID-blocks used by the constraints */
- ced.fd= fd;
- ced.mainvar= mainvar;
+ ced.fd = fd;
+ ced.mainvar = mainvar;
id_loop_constraints(lb, expand_constraint_cb, &ced);
/* depreceated manual expansion stuff */
- for (curcon=lb->first; curcon; curcon=curcon->next) {
+ for (curcon = lb->first; curcon; curcon = curcon->next) {
if (curcon->ipo)
expand_doit(fd, mainvar, curcon->ipo); // XXX depreceated - old animation system
}
@@ -8390,21 +8381,20 @@ static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb)
static void expand_bones(FileData *fd, Main *mainvar, Bone *bone)
{
Bone *curBone;
-
+
for (curBone = bone->childbase.first; curBone; curBone=curBone->next) {
expand_bones(fd, mainvar, curBone);
}
-
}
static void expand_pose(FileData *fd, Main *mainvar, bPose *pose)
{
bPoseChannel *chan;
-
+
if (!pose)
return;
-
- for (chan = pose->chanbase.first; chan; chan=chan->next) {
+
+ for (chan = pose->chanbase.first; chan; chan = chan->next) {
expand_constraints(fd, mainvar, &chan->constraints);
expand_doit(fd, mainvar, chan->custom);
}
@@ -8413,10 +8403,10 @@ static void expand_pose(FileData *fd, Main *mainvar, bPose *pose)
static void expand_armature(FileData *fd, Main *mainvar, bArmature *arm)
{
Bone *curBone;
-
+
if (arm->adt)
expand_animdata(fd, mainvar, arm->adt);
-
+
for (curBone = arm->bonebase.first; curBone; curBone=curBone->next) {
expand_bones(fd, mainvar, curBone);
}
@@ -8426,10 +8416,10 @@ static void expand_object_expandModifiers(void *userData, Object *UNUSED(ob),
ID **idpoin)
{
struct { FileData *fd; Main *mainvar; } *data= userData;
-
- FileData *fd= data->fd;
- Main *mainvar= data->mainvar;
-
+
+ FileData *fd = data->fd;
+ Main *mainvar = data->mainvar;
+
expand_doit(fd, mainvar, *idpoin);
}
@@ -8442,18 +8432,18 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
bActionStrip *strip;
PartEff *paf;
int a;
-
+
expand_doit(fd, mainvar, ob->data);
-
+
/* expand_object_expandModifier() */
if (ob->modifiers.first) {
struct { FileData *fd; Main *mainvar; } data;
- data.fd= fd;
- data.mainvar= mainvar;
-
+ data.fd = fd;
+ data.mainvar = mainvar;
+
modifiers_foreachIDLink(ob, expand_object_expandModifiers, (void *)&data);
}
-
+
expand_pose(fd, mainvar, ob->pose);
expand_doit(fd, mainvar, ob->poselib);
expand_constraints(fd, mainvar, &ob->constraints);
@@ -8465,7 +8455,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
expand_doit(fd, mainvar, ob->action);
expand_constraint_channels(fd, mainvar, &ob->constraintChannels);
-
+
for (strip=ob->nlastrips.first; strip; strip=strip->next) {
expand_doit(fd, mainvar, strip->object);
expand_doit(fd, mainvar, strip->act);
@@ -8476,14 +8466,14 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
if (ob->adt)
expand_animdata(fd, mainvar, ob->adt);
- for (a=0; a<ob->totcol; a++) {
+ for (a = 0; a < ob->totcol; a++) {
expand_doit(fd, mainvar, ob->mat[a]);
}
paf = blo_do_version_give_parteff_245(ob);
if (paf && paf->group)
expand_doit(fd, mainvar, paf->group);
-
+
if (ob->dup_group)
expand_doit(fd, mainvar, ob->dup_group);
@@ -8491,98 +8481,92 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
expand_doit(fd, mainvar, ob->proxy);
if (ob->proxy_group)
expand_doit(fd, mainvar, ob->proxy_group);
-
- for (psys=ob->particlesystem.first; psys; psys=psys->next)
+
+ for (psys = ob->particlesystem.first; psys; psys = psys->next)
expand_doit(fd, mainvar, psys->part);
-
- sens= ob->sensors.first;
- while (sens) {
- if (sens->type==SENS_TOUCH) {
- bTouchSensor *ts= sens->data;
+
+ for (sens = ob->sensors.first; sens; sens = sens->next) {
+ if (sens->type == SENS_TOUCH) {
+ bTouchSensor *ts = sens->data;
expand_doit(fd, mainvar, ts->ma);
}
- else if (sens->type==SENS_MESSAGE) {
- bMessageSensor *ms= sens->data;
+ else if (sens->type == SENS_MESSAGE) {
+ bMessageSensor *ms = sens->data;
expand_doit(fd, mainvar, ms->fromObject);
}
- sens= sens->next;
}
-
- cont= ob->controllers.first;
- while (cont) {
- if (cont->type==CONT_PYTHON) {
- bPythonCont *pc= cont->data;
+
+ for (cont = ob->controllers.first; cont; cont = cont->next) {
+ if (cont->type == CONT_PYTHON) {
+ bPythonCont *pc = cont->data;
expand_doit(fd, mainvar, pc->text);
}
- cont= cont->next;
}
-
- act= ob->actuators.first;
- while (act) {
- if (act->type==ACT_SOUND) {
- bSoundActuator *sa= act->data;
+
+ for (act = ob->actuators.first; act; act = act->next) {
+ if (act->type == ACT_SOUND) {
+ bSoundActuator *sa = act->data;
expand_doit(fd, mainvar, sa->sound);
}
- else if (act->type==ACT_CAMERA) {
- bCameraActuator *ca= act->data;
+ else if (act->type == ACT_CAMERA) {
+ bCameraActuator *ca = act->data;
expand_doit(fd, mainvar, ca->ob);
}
- else if (act->type==ACT_EDIT_OBJECT) {
- bEditObjectActuator *eoa= act->data;
+ else if (act->type == ACT_EDIT_OBJECT) {
+ bEditObjectActuator *eoa = act->data;
if (eoa) {
expand_doit(fd, mainvar, eoa->ob);
expand_doit(fd, mainvar, eoa->me);
}
}
- else if (act->type==ACT_OBJECT) {
- bObjectActuator *oa= act->data;
+ else if (act->type == ACT_OBJECT) {
+ bObjectActuator *oa = act->data;
expand_doit(fd, mainvar, oa->reference);
}
- else if (act->type==ACT_ADD_OBJECT) {
- bAddObjectActuator *aoa= act->data;
+ else if (act->type == ACT_ADD_OBJECT) {
+ bAddObjectActuator *aoa = act->data;
expand_doit(fd, mainvar, aoa->ob);
}
- else if (act->type==ACT_SCENE) {
- bSceneActuator *sa= act->data;
+ else if (act->type == ACT_SCENE) {
+ bSceneActuator *sa = act->data;
expand_doit(fd, mainvar, sa->camera);
expand_doit(fd, mainvar, sa->scene);
}
- else if (act->type==ACT_2DFILTER) {
- bTwoDFilterActuator *tdfa= act->data;
+ else if (act->type == ACT_2DFILTER) {
+ bTwoDFilterActuator *tdfa = act->data;
expand_doit(fd, mainvar, tdfa->text);
}
- else if (act->type==ACT_ACTION) {
- bActionActuator *aa= act->data;
+ else if (act->type == ACT_ACTION) {
+ bActionActuator *aa = act->data;
expand_doit(fd, mainvar, aa->act);
}
- else if (act->type==ACT_SHAPEACTION) {
- bActionActuator *aa= act->data;
+ else if (act->type == ACT_SHAPEACTION) {
+ bActionActuator *aa = act->data;
expand_doit(fd, mainvar, aa->act);
}
- else if (act->type==ACT_PROPERTY) {
- bPropertyActuator *pa= act->data;
+ else if (act->type == ACT_PROPERTY) {
+ bPropertyActuator *pa = act->data;
expand_doit(fd, mainvar, pa->ob);
}
- else if (act->type==ACT_MESSAGE) {
- bMessageActuator *ma= act->data;
+ else if (act->type == ACT_MESSAGE) {
+ bMessageActuator *ma = act->data;
expand_doit(fd, mainvar, ma->toObject);
}
else if (act->type==ACT_PARENT) {
- bParentActuator *pa= act->data;
+ bParentActuator *pa = act->data;
expand_doit(fd, mainvar, pa->ob);
}
- else if (act->type==ACT_ARMATURE) {
- bArmatureActuator *arma= act->data;
+ else if (act->type == ACT_ARMATURE) {
+ bArmatureActuator *arma = act->data;
expand_doit(fd, mainvar, arma->target);
}
- else if (act->type==ACT_STEERING) {
- bSteeringActuator *sta= act->data;
+ else if (act->type == ACT_STEERING) {
+ bSteeringActuator *sta = act->data;
expand_doit(fd, mainvar, sta->target);
expand_doit(fd, mainvar, sta->navmesh);
}
- act= act->next;
}
-
+
if (ob->pd && ob->pd->tex)
expand_doit(fd, mainvar, ob->pd->tex);
@@ -8592,8 +8576,8 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
{
Base *base;
SceneRenderLayer *srl;
-
- for (base= sce->base.first; base; base= base->next) {
+
+ for (base = sce->base.first; base; base = base->next) {
expand_doit(fd, mainvar, base->object);
}
expand_doit(fd, mainvar, sce->camera);
@@ -8609,20 +8593,20 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
if (sce->nodetree)
expand_nodetree(fd, mainvar, sce->nodetree);
- for (srl= sce->r.layers.first; srl; srl= srl->next) {
+ for (srl = sce->r.layers.first; srl; srl = srl->next) {
expand_doit(fd, mainvar, srl->mat_override);
expand_doit(fd, mainvar, srl->light_override);
}
-
+
if (sce->r.dometext)
expand_doit(fd, mainvar, sce->gm.dome.warptext);
-
+
if (sce->gpd)
expand_doit(fd, mainvar, sce->gpd);
-
+
if (sce->ed) {
Sequence *seq;
-
+
SEQ_BEGIN (sce->ed, seq)
{
if (seq->scene) expand_doit(fd, mainvar, seq->scene);
@@ -8636,7 +8620,7 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
{
TimeMarker *marker;
- for (marker= sce->markers.first; marker; marker= marker->next) {
+ for (marker = sce->markers.first; marker; marker = marker->next) {
if (marker->camera) {
expand_doit(fd, mainvar, marker->camera);
}
@@ -8678,22 +8662,19 @@ static void expand_main(FileData *fd, Main *mainvar)
{
ListBase *lbarray[MAX_LIBARRAY];
ID *id;
- int a, doit= 1;
-
- if (fd==NULL) return;
-
- while (doit) {
- doit= 0;
-
- a= set_listbasepointers(mainvar, lbarray);
+ int a, do_it = TRUE;
+
+ if (fd == NULL) return;
+
+ while (do_it) {
+ do_it = FALSE;
+
+ a = set_listbasepointers(mainvar, lbarray);
while (a--) {
id= lbarray[a]->first;
-
while (id) {
if (id->flag & LIB_TEST) {
-
switch (GS(id->name)) {
-
case ID_OB:
expand_object(fd, mainvar, (Object *)id);
break;
@@ -8761,12 +8742,12 @@ static void expand_main(FileData *fd, Main *mainvar)
expand_movieclip(fd, mainvar, (MovieClip *)id);
break;
}
-
- doit= 1;
+
+ do_it = TRUE;
id->flag -= LIB_TEST;
-
+
}
- id= id->next;
+ id = id->next;
}
}
}
@@ -8776,9 +8757,11 @@ static int object_in_any_scene(Main *mainvar, Object *ob)
{
Scene *sce;
- for (sce= mainvar->scene.first; sce; sce= sce->id.next)
+ for (sce= mainvar->scene.first; sce; sce= sce->id.next) {
if (BKE_scene_base_find(sce, ob))
return 1;
+ }
+
return 0;
}
@@ -8786,29 +8769,26 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const
{
Object *ob;
Base *base;
- const short is_group_append= (is_link==FALSE && idcode==ID_GR);
+ const short is_group_append = (is_link==FALSE && idcode==ID_GR);
/* give all objects which are LIB_INDIRECT a base, or for a group when *lib has been set */
- for (ob= mainvar->object.first; ob; ob= ob->id.next) {
-
- if ( ob->id.flag & LIB_INDIRECT ) {
-
+ for (ob = mainvar->object.first; ob; ob = ob->id.next) {
+ if (ob->id.flag & LIB_INDIRECT) {
/* IF below is quite confusing!
* if we are appending, but this object wasnt just added along with a group,
* then this is already used indirectly in the scene somewhere else and we didnt just append it.
*
* (ob->id.flag & LIB_PRE_EXISTING)==0 means that this is a newly appended object - Campbell */
if (is_group_append==0 || (ob->id.flag & LIB_PRE_EXISTING)==0) {
+ int do_it = FALSE;
- int do_it= 0;
-
- if (ob->id.us==0) {
- do_it= 1;
+ if (ob->id.us == 0) {
+ do_it = TRUE;
}
else if (idcode==ID_GR) {
if (ob->id.us==1 && is_link==FALSE && ob->id.lib==lib) {
if ((ob->flag & OB_FROMGROUP) && object_in_any_scene(mainvar, ob)==0) {
- do_it= 1;
+ do_it = TRUE;
}
}
}
@@ -8816,25 +8796,23 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const
/* when appending, make sure any indirectly loaded objects
* get a base else they cant be accessed at all [#27437] */
if (ob->id.us==1 && is_link==FALSE && ob->id.lib==lib) {
-
/* we may be appending from a scene where we already
* have a linked object which is not in any scene [#27616] */
if ((ob->id.flag & LIB_PRE_EXISTING)==0) {
-
if (object_in_any_scene(mainvar, ob)==0) {
- do_it= 1;
+ do_it = TRUE;
}
}
}
}
-
+
if (do_it) {
- base= MEM_callocN(sizeof(Base), "add_ext_base");
+ base = MEM_callocN(sizeof(Base), "add_ext_base");
BLI_addtail(&(sce->base), base);
- base->lay= ob->lay;
- base->object= ob;
- base->flag= ob->flag;
- ob->id.us= 1;
+ base->lay = ob->lay;
+ base->object = ob;
+ base->flag = ob->flag;
+ ob->id.us = 1;
ob->id.flag -= LIB_INDIRECT;
ob->id.flag |= LIB_EXTERN;
@@ -8847,26 +8825,26 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const
static void give_base_to_groups(Main *mainvar, Scene *scene)
{
Group *group;
-
+
/* give all objects which are LIB_INDIRECT a base, or for a group when *lib has been set */
- for (group= mainvar->group.first; group; group= group->id.next) {
+ for (group = mainvar->group.first; group; group = group->id.next) {
if (((group->id.flag & LIB_INDIRECT)==0 && (group->id.flag & LIB_PRE_EXISTING)==0)) {
Base *base;
-
+
/* BKE_object_add(...) messes with the selection */
- Object *ob= BKE_object_add_only_object(OB_EMPTY, group->id.name+2);
- ob->type= OB_EMPTY;
- ob->lay= scene->lay;
-
+ Object *ob = BKE_object_add_only_object(OB_EMPTY, group->id.name+2);
+ ob->type = OB_EMPTY;
+ ob->lay = scene->lay;
+
/* assign the base */
- base= BKE_scene_base_add(scene, ob);
+ base = BKE_scene_base_add(scene, ob);
base->flag |= SELECT;
base->object->flag= base->flag;
ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
- scene->basact= base;
-
+ scene->basact = base;
+
/* assign the group */
- ob->dup_group= group;
+ ob->dup_group = group;
ob->transflag |= OB_DUPLIGROUP;
rename_id(&ob->id, group->id.name+2);
copy_v3_v3(ob->loc, scene->cursor);
@@ -8879,23 +8857,23 @@ static void give_base_to_groups(Main *mainvar, Scene *scene)
static ID *append_named_part(Main *mainl, FileData *fd, const char *idname, const short idcode)
{
BHead *bhead;
- ID *id= NULL;
- int found=0;
+ ID *id = NULL;
+ int found = 0;
- for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
- if (bhead->code==idcode) {
+ for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead)) {
+ if (bhead->code == idcode) {
const char *idname_test= bhead_id_name(fd, bhead);
-
- if (strcmp(idname_test + 2, idname)==0) {
- found= 1;
- id= is_yet_read(fd, mainl, bhead);
- if (id==NULL) {
+
+ if (strcmp(idname_test + 2, idname) == 0) {
+ found = 1;
+ id = is_yet_read(fd, mainl, bhead);
+ if (id == NULL) {
/* not read yet */
read_libblock(fd, mainl, bhead, LIB_TESTEXT, &id);
-
+
if (id) {
/* sort by name in list */
- ListBase *lb= which_libbase(mainl, idcode);
+ ListBase *lb = which_libbase(mainl, idcode);
id_sort_by_name(lb, id);
}
}
@@ -8908,19 +8886,19 @@ static ID *append_named_part(Main *mainl, FileData *fd, const char *idname, cons
id->flag |= LIB_EXTERN;
}
}
-
+
break;
}
}
- else if (bhead->code==ENDB) {
+ else if (bhead->code == ENDB) {
break;
}
}
-
+
/* if we found the id but the id is NULL, this is really bad */
BLI_assert((found != 0) == (id != NULL));
-
- return found ? id : NULL;
+
+ return (found) ? id : NULL;
}
static ID *append_named_part_ex(const bContext *C, Main *mainl, FileData *fd, const char *idname, const int idcode, const int flag)
@@ -8928,27 +8906,27 @@ static ID *append_named_part_ex(const bContext *C, Main *mainl, FileData *fd, co
ID *id= append_named_part(mainl, fd, idname, idcode);
if (id && (GS(id->name) == ID_OB)) { /* loose object: give a base */
- Scene *scene= CTX_data_scene(C); /* can be NULL */
+ Scene *scene = CTX_data_scene(C); /* can be NULL */
if (scene) {
Base *base;
Object *ob;
-
+
base= MEM_callocN(sizeof(Base), "app_nam_part");
BLI_addtail(&scene->base, base);
-
- ob= (Object *)id;
-
+
+ ob = (Object *)id;
+
/* link at active layer (view3d->lay if in context, else scene->lay */
if ((flag & FILE_ACTIVELAY)) {
View3D *v3d = CTX_wm_view3d(C);
ob->lay = v3d ? v3d->layact : scene->lay;
}
-
- ob->mode= 0;
- base->lay= ob->lay;
- base->object= ob;
+
+ ob->mode = 0;
+ base->lay = ob->lay;
+ base->object = ob;
ob->id.us++;
-
+
if (flag & FILE_AUTOSELECT) {
base->flag |= SELECT;
base->object->flag = base->flag;
@@ -8956,35 +8934,35 @@ static ID *append_named_part_ex(const bContext *C, Main *mainl, FileData *fd, co
}
}
}
-
+
return id;
}
ID *BLO_library_append_named_part(Main *mainl, BlendHandle** bh, const char *idname, const int idcode)
{
- FileData *fd= (FileData*)(*bh);
+ FileData *fd = (FileData*)(*bh);
return append_named_part(mainl, fd, idname, idcode);
}
ID *BLO_library_append_named_part_ex(const bContext *C, Main *mainl, BlendHandle** bh, const char *idname, const int idcode, const short flag)
{
- FileData *fd= (FileData*)(*bh);
+ FileData *fd = (FileData*)(*bh);
return append_named_part_ex(C, mainl, fd, idname, idcode, flag);
}
static void append_id_part(FileData *fd, Main *mainvar, ID *id, ID **id_r)
{
BHead *bhead;
-
- for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
+
+ for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead)) {
if (bhead->code == GS(id->name)) {
-
+
if (strcmp(id->name, bhead_id_name(fd, bhead))==0) {
id->flag &= ~LIB_READ;
id->flag |= LIB_TEST;
// printf("read lib block %s\n", id->name);
read_libblock(fd, mainvar, bhead, id->flag, id_r);
-
+
break;
}
}
@@ -8995,26 +8973,26 @@ static void append_id_part(FileData *fd, Main *mainvar, ID *id, ID **id_r)
/* common routine to append/link something from a library */
-static Main* library_append_begin(Main *mainvar, FileData **fd, const char *filepath)
+static Main *library_append_begin(Main *mainvar, FileData **fd, const char *filepath)
{
Main *mainl;
-
+
/* make mains */
blo_split_main(&(*fd)->mainlist, mainvar);
-
+
/* which one do we need? */
mainl = blo_find_main(*fd, &(*fd)->mainlist, filepath, G.main->name);
/* needed for do_version */
- mainl->versionfile= (*fd)->fileversion;
+ mainl->versionfile = (*fd)->fileversion;
read_file_version(*fd, mainl);
return mainl;
}
-Main* BLO_library_append_begin(Main *mainvar, BlendHandle** bh, const char *filepath)
+Main *BLO_library_append_begin(Main *mainvar, BlendHandle** bh, const char *filepath)
{
- FileData *fd= (FileData*)(*bh);
+ FileData *fd = (FileData*)(*bh);
return library_append_begin(mainvar, &fd, filepath);
}
@@ -9024,45 +9002,44 @@ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, in
{
Main *mainvar;
Library *curlib;
-
+
/* make main consistent */
expand_main(*fd, mainl);
-
+
/* do this when expand found other libs */
read_libraries(*fd, &(*fd)->mainlist);
- curlib= mainl->curlib;
-
+ curlib = mainl->curlib;
+
/* make the lib path relative if required */
if (flag & FILE_RELPATH) {
-
/* use the full path, this could have been read by other library even */
BLI_strncpy(curlib->name, curlib->filepath, sizeof(curlib->name));
/* uses current .blend file as reference */
BLI_path_rel(curlib->name, G.main->name);
}
-
+
blo_join_main(&(*fd)->mainlist);
- mainvar= (*fd)->mainlist.first;
- mainl= NULL; /* blo_join_main free's mainl, cant use anymore */
-
+ mainvar = (*fd)->mainlist.first;
+ mainl = NULL; /* blo_join_main free's mainl, cant use anymore */
+
lib_link_all(*fd, mainvar);
lib_verify_nodetree(mainvar, FALSE);
fix_relpaths_library(G.main->name, mainvar); /* make all relative paths, relative to the open blend file */
-
+
if (C) {
- Scene *scene= CTX_data_scene(C);
-
+ Scene *scene = CTX_data_scene(C);
+
/* give a base to loose objects. If group append, do it for objects too */
if (scene) {
- const short is_link= (flag & FILE_LINK) != 0;
- if (idcode==ID_SCE) {
+ const short is_link = (flag & FILE_LINK) != 0;
+ if (idcode == ID_SCE) {
/* don't instance anything when linking in scenes, assume the scene its self instances the data */
}
else {
give_base_to_objects(mainvar, scene, curlib, idcode, is_link);
-
+
if (flag & FILE_GROUP_INSTANCE) {
give_base_to_groups(mainvar, scene);
}
@@ -9085,9 +9062,9 @@ static void library_append_end(const bContext *C, Main *mainl, FileData **fd, in
void BLO_library_append_end(const bContext *C, struct Main *mainl, BlendHandle** bh, int idcode, short flag)
{
- FileData *fd= (FileData*)(*bh);
+ FileData *fd = (FileData*)(*bh);
library_append_end(C, mainl, &fd, idcode, flag);
- *bh= (BlendHandle*)fd;
+ *bh = (BlendHandle*)fd;
}
void *BLO_library_read_struct(FileData *fd, BHead *bh, const char *blockname)
@@ -9100,105 +9077,105 @@ void *BLO_library_read_struct(FileData *fd, BHead *bh, const char *blockname)
static int mainvar_count_libread_blocks(Main *mainvar)
{
ListBase *lbarray[MAX_LIBARRAY];
- int a, tot= 0;
-
- a= set_listbasepointers(mainvar, lbarray);
+ int a, tot = 0;
+
+ a = set_listbasepointers(mainvar, lbarray);
while (a--) {
ID *id;
-
- for (id= lbarray[a]->first; id; id= id->next)
+
+ for (id = lbarray[a]->first; id; id = id->next) {
if (id->flag & LIB_READ)
tot++;
+ }
}
return tot;
}
static void read_libraries(FileData *basefd, ListBase *mainlist)
{
- Main *mainl= mainlist->first;
+ Main *mainl = mainlist->first;
Main *mainptr;
ListBase *lbarray[MAX_LIBARRAY];
- int a, doit= 1;
-
- while (doit) {
- doit= 0;
-
+ int a, do_it = TRUE;
+
+ while (do_it) {
+ do_it = FALSE;
+
/* test 1: read libdata */
mainptr= mainl->next;
while (mainptr) {
- int tot= mainvar_count_libread_blocks(mainptr);
+ int tot = mainvar_count_libread_blocks(mainptr);
// printf("found LIB_READ %s\n", mainptr->curlib->name);
if (tot) {
- FileData *fd= mainptr->curlib->filedata;
-
- if (fd==NULL) {
-
+ FileData *fd = mainptr->curlib->filedata;
+
+ if (fd == NULL) {
/* printf and reports for now... its important users know this */
BKE_reportf_wrap(basefd->reports, RPT_INFO,
"read library: '%s', '%s'",
mainptr->curlib->filepath, mainptr->curlib->name);
-
- fd= blo_openblenderfile(mainptr->curlib->filepath, basefd->reports);
+
+ fd = blo_openblenderfile(mainptr->curlib->filepath, basefd->reports);
/* allow typing in a new lib path */
- if (G.rt==-666) {
- while (fd==NULL) {
- char newlib_path[FILE_MAX] = { 0 };
+ if (G.rt == -666) {
+ while (fd == NULL) {
+ char newlib_path[FILE_MAX] = {0};
printf("Missing library...'\n");
printf(" current file: %s\n", G.main->name);
printf(" absolute lib: %s\n", mainptr->curlib->filepath);
printf(" relative lib: %s\n", mainptr->curlib->name);
printf(" enter a new path:\n");
-
+
if (scanf("%s", newlib_path) > 0) {
BLI_strncpy(mainptr->curlib->name, newlib_path, sizeof(mainptr->curlib->name));
BLI_strncpy(mainptr->curlib->filepath, newlib_path, sizeof(mainptr->curlib->filepath));
cleanup_path(G.main->name, mainptr->curlib->filepath);
- fd= blo_openblenderfile(mainptr->curlib->filepath, basefd->reports);
-
+ fd = blo_openblenderfile(mainptr->curlib->filepath, basefd->reports);
+
if (fd) {
printf("found: '%s', party on macuno!\n", mainptr->curlib->filepath);
}
}
}
}
-
+
if (fd) {
- fd->reports= basefd->reports;
+ fd->reports = basefd->reports;
if (fd->libmap)
oldnewmap_free(fd->libmap);
-
+
fd->libmap = oldnewmap_new();
- mainptr->curlib->filedata= fd;
- mainptr->versionfile= fd->fileversion;
+ mainptr->curlib->filedata = fd;
+ mainptr->versionfile= fd->fileversion;
/* subversion */
read_file_version(fd, mainptr);
}
- else mainptr->curlib->filedata= NULL;
-
- if (fd==NULL) {
+ else mainptr->curlib->filedata = NULL;
+
+ if (fd == NULL) {
BKE_reportf_wrap(basefd->reports, RPT_ERROR,
"Can't find lib '%s'",
mainptr->curlib->filepath);
}
}
if (fd) {
- doit= 1;
- a= set_listbasepointers(mainptr, lbarray);
+ do_it = TRUE;
+ a = set_listbasepointers(mainptr, lbarray);
while (a--) {
- ID *id= lbarray[a]->first;
-
+ ID *id = lbarray[a]->first;
+
while (id) {
- ID *idn= id->next;
+ ID *idn = id->next;
if (id->flag & LIB_READ) {
- ID *realid= NULL;
+ ID *realid = NULL;
BLI_remlink(lbarray[a], id);
-
+
append_id_part(fd, mainptr, id, &realid);
if (!realid) {
BKE_reportf_wrap(fd->reports, RPT_ERROR,
@@ -9208,52 +9185,52 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
}
change_idid_adr(mainlist, basefd, id, realid);
-
+
MEM_freeN(id);
}
- id= idn;
+ id = idn;
}
}
-
+
expand_main(fd, mainptr);
/* dang FileData... now new libraries need to be appended to original filedata,
* it is not a good replacement for the old global (ton) */
- while ( fd->mainlist.first ) {
- Main *mp= fd->mainlist.first;
+ while (fd->mainlist.first) {
+ Main *mp = fd->mainlist.first;
BLI_remlink(&fd->mainlist, mp);
BLI_addtail(&basefd->mainlist, mp);
}
}
}
-
- mainptr= mainptr->next;
+
+ mainptr = mainptr->next;
}
}
/* test if there are unread libblocks */
- for (mainptr= mainl->next; mainptr; mainptr= mainptr->next) {
- a= set_listbasepointers(mainptr, lbarray);
+ for (mainptr = mainl->next; mainptr; mainptr = mainptr->next) {
+ a = set_listbasepointers(mainptr, lbarray);
while (a--) {
- ID *id= lbarray[a]->first;
- while (id) {
- ID *idn= id->next;
+ ID *id, *idn = NULL;
+
+ for (id = lbarray[a]->first; id; id = idn) {
+ idn = id->next;
if (id->flag & LIB_READ) {
BLI_remlink(lbarray[a], id);
BKE_reportf_wrap(basefd->reports, RPT_ERROR,
"LIB ERROR: %s:'%s' unread libblock missing from '%s'",
BKE_idcode_to_name(GS(id->name)), id->name + 2, mainptr->curlib->filepath);
change_idid_adr(mainlist, basefd, id, NULL);
-
+
MEM_freeN(id);
}
- id= idn;
}
}
}
/* do versions, link, and free */
- for (mainptr= mainl->next; mainptr; mainptr= mainptr->next) {
+ for (mainptr = mainl->next; mainptr; mainptr = mainptr->next) {
/* some mains still have to be read, then
* versionfile is still zero! */
if (mainptr->versionfile) {
@@ -9267,7 +9244,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
lib_link_all(mainptr->curlib->filedata, mainptr);
if (mainptr->curlib->filedata) blo_freefiledata(mainptr->curlib->filedata);
- mainptr->curlib->filedata= NULL;
+ mainptr->curlib->filedata = NULL;
}
}
@@ -9281,17 +9258,17 @@ BlendFileData *blo_read_blendafterruntime(int file, const char *name, int actual
fd->filedes = file;
fd->buffersize = actualsize;
fd->read = fd_read_from_file;
-
+
/* needed for library_append and read_libraries */
BLI_strncpy(fd->relabase, name, sizeof(fd->relabase));
-
+
fd = blo_decode_and_check(fd, reports);
if (!fd)
return NULL;
-
- fd->reports= reports;
- bfd= blo_read_file_internal(fd, "");
+
+ fd->reports = reports;
+ bfd = blo_read_file_internal(fd, "");
blo_freefiledata(fd);
-
+
return bfd;
}
diff --git a/source/blender/blenloader/intern/versioning_250.c b/source/blender/blenloader/intern/versioning_250.c
index 8a8705532cb..c028c374cce 100644
--- a/source/blender/blenloader/intern/versioning_250.c
+++ b/source/blender/blenloader/intern/versioning_250.c
@@ -1084,7 +1084,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
World *wo;
Tex *tex;
ParticleSettings *part;
- int do_gravity = 0;
+ int do_gravity = FALSE;
for (sce = main->scene.first; sce; sce = sce->id.next)
if (sce->unit.scale_length == 0.0f)
@@ -1140,7 +1140,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
sce->physics_settings.gravity[0] = sce->physics_settings.gravity[1] = 0.0f;
sce->physics_settings.gravity[2] = -9.81f;
sce->physics_settings.flag = PHYS_GLOBAL_GRAVITY;
- do_gravity = 1;
+ do_gravity = TRUE;
}
}
@@ -2331,7 +2331,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
}
/* redraws flag in SpaceTime has been moved to Screen level */
- for (sc = main->screen.first; sc; sc = sc->id.next) {
+ for (sc = main->screen.first; sc; sc = sc->id.next) {
if (sc->redraws_flag == 0) {
/* just initialize to default? */
// XXX: we could also have iterated through areas, and taken them from the first timeline available...
diff --git a/source/blender/blenloader/intern/versioning_legacy.c b/source/blender/blenloader/intern/versioning_legacy.c
index 2f7ff055b91..7b314c31488 100644
--- a/source/blender/blenloader/intern/versioning_legacy.c
+++ b/source/blender/blenloader/intern/versioning_legacy.c
@@ -884,9 +884,9 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
/* let faces have default add factor of 0.0 */
while (ma) {
- if (!(ma->mode & MA_HALO))
- ma->add = 0.0;
- ma = ma->id.next;
+ if (!(ma->mode & MA_HALO))
+ ma->add = 0.0;
+ ma = ma->id.next;
}
while (ob) {
@@ -3559,7 +3559,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
{
SpaceNla *snla = (SpaceNla *)sl;
snla->autosnap = SACTSNAP_FRAME;
- }
+ }
break;
}
}
@@ -3606,7 +3606,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
/* check if top parent has compound shape set and if yes, set this object
* to compound shaper as well (was the behavior before, now it's optional) */
Object *parent = blo_do_versions_newlibadr(fd, lib, ob->parent);
- while (parent && parent != ob && parent->parent != NULL) {
+ while (parent && parent != ob && parent->parent != NULL) {
parent = blo_do_versions_newlibadr(fd, lib, parent->parent);
}
if (parent) {
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 7a924238c77..29cfd7f7f5c 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -780,7 +780,7 @@ static void write_renderinfo(WriteData *wd, Main *mainvar) /* for renderdeamon
current_screen_compat(mainvar, &curscreen);
for (sce= mainvar->scene.first; sce; sce= sce->id.next) {
- if (sce->id.lib==NULL && ( sce==curscreen->scene || (sce->r.scemode & R_BG_RENDER)) ) {
+ if (sce->id.lib == NULL && (sce == curscreen->scene || (sce->r.scemode & R_BG_RENDER))) {
data.sfra = sce->r.sfra;
data.efra = sce->r.efra;
memset(data.scene_name, 0, sizeof(data.scene_name));
@@ -1663,17 +1663,17 @@ static void write_mdisps(WriteData *wd, int count, MDisps *mdlist, int external)
static void write_grid_paint_mask(WriteData *wd, int count, GridPaintMask *grid_paint_mask)
{
- if(grid_paint_mask) {
+ if (grid_paint_mask) {
int i;
writestruct(wd, DATA, "GridPaintMask", count, grid_paint_mask);
- for(i = 0; i < count; ++i) {
+ for (i = 0; i < count; ++i) {
GridPaintMask *gpm = &grid_paint_mask[i];
- if(gpm->data) {
+ if (gpm->data) {
const int gridsize = ccg_gridsize(gpm->level);
writedata(wd, DATA,
- sizeof(*gpm->data) * gridsize * gridsize,
- gpm->data);
+ sizeof(*gpm->data) * gridsize * gridsize,
+ gpm->data);
}
}
}
@@ -2142,7 +2142,7 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
SEQ_BEGIN (ed, seq)
{
- if (seq->strip) seq->strip->done= 0;
+ if (seq->strip) seq->strip->done = FALSE;
writestruct(wd, DATA, "Sequence", 1, seq);
}
SEQ_END
@@ -2192,7 +2192,7 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
else if (seq->type==SEQ_MOVIE || seq->type==SEQ_RAM_SOUND || seq->type == SEQ_HD_SOUND)
writestruct(wd, DATA, "StripElem", 1, strip->stripdata);
- strip->done= 1;
+ strip->done = TRUE;
}
}
SEQ_END
@@ -2468,11 +2468,11 @@ static void write_libraries(WriteData *wd, Main *main)
a=tot= set_listbasepointers(main, lbarray);
/* test: is lib being used */
- foundone= 0;
+ foundone = FALSE;
while (tot--) {
for (id= lbarray[tot]->first; id; id= id->next) {
if (id->us>0 && (id->flag & LIB_EXTERN)) {
- foundone= 1;
+ foundone = TRUE;
break;
}
}
diff --git a/source/blender/bmesh/bmesh.h b/source/blender/bmesh/bmesh.h
index 13926c42192..ac002070484 100644
--- a/source/blender/bmesh/bmesh.h
+++ b/source/blender/bmesh/bmesh.h
@@ -225,7 +225,7 @@
*
* - face inset interpolate loop data from face (currently copies - but this stretches UV's in an ugly way)
* - vert slide UV correction (like we have for edge slide)
- * - fill-face edge net - produce consistant normals, currently it won't, fix should be to fill in edge-net node
+ * - fill-face edge net - produce consistent normals, currently it won't, fix should be to fill in edge-net node
* connected with previous one - since they already check for normals of adjacent edge-faces before creating.
*/
diff --git a/source/blender/bmesh/bmesh_class.h b/source/blender/bmesh/bmesh_class.h
index c536a22cf53..737efde8391 100644
--- a/source/blender/bmesh/bmesh_class.h
+++ b/source/blender/bmesh/bmesh_class.h
@@ -225,9 +225,10 @@ enum {
* when temp tagging is handy.
* always assume dirty & clear before use. */
- /* we have 2 spare flags which is awesome but since we're limited to 8
+ BM_ELEM_DRAW = (1 << 5), /* edge display */
+
+ /* we have 1 spare flag which is awesome but since we're limited to 8
* only add new flags with care! - campbell */
- /* BM_ELEM_SPARE = (1 << 5), */
/* BM_ELEM_SPARE = (1 << 6), */
BM_ELEM_INTERNAL_TAG = (1 << 7) /* for low level internal API tagging,
diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c
index 684237b79c5..589a5fbaa66 100644
--- a/source/blender/bmesh/intern/bmesh_construct.c
+++ b/source/blender/bmesh/intern/bmesh_construct.c
@@ -973,6 +973,7 @@ char BM_edge_flag_from_mflag(const short meflag)
{
return ( ((meflag & SELECT) ? BM_ELEM_SELECT : 0) |
((meflag & ME_SEAM) ? BM_ELEM_SEAM : 0) |
+ ((meflag & ME_EDGEDRAW) ? BM_ELEM_DRAW : 0) |
((meflag & ME_SHARP) == 0 ? BM_ELEM_SMOOTH : 0) | /* invert */
((meflag & ME_HIDE) ? BM_ELEM_HIDDEN : 0)
);
@@ -994,16 +995,18 @@ char BM_vert_flag_to_mflag(BMVert *eve)
((hflag & BM_ELEM_HIDDEN) ? ME_HIDE : 0)
);
}
+
short BM_edge_flag_to_mflag(BMEdge *eed)
{
const char hflag = eed->head.hflag;
- return ( ((hflag & BM_ELEM_SELECT) ? SELECT : 0) |
- ((hflag & BM_ELEM_SEAM) ? ME_SEAM : 0) |
- ((hflag & BM_ELEM_SMOOTH) == 0 ? ME_SHARP : 0) |
- ((hflag & BM_ELEM_HIDDEN) ? ME_HIDE : 0) |
- ((BM_edge_is_wire(eed)) ? ME_LOOSEEDGE : 0) | /* not typical */
- (ME_EDGEDRAW | ME_EDGERENDER)
+ return ( ((hflag & BM_ELEM_SELECT) ? SELECT : 0) |
+ ((hflag & BM_ELEM_SEAM) ? ME_SEAM : 0) |
+ ((hflag & BM_ELEM_DRAW) ? ME_EDGEDRAW : 0) |
+ ((hflag & BM_ELEM_SMOOTH) == 0 ? ME_SHARP : 0) |
+ ((hflag & BM_ELEM_HIDDEN) ? ME_HIDE : 0) |
+ ((BM_edge_is_wire(eed)) ? ME_LOOSEEDGE : 0) | /* not typical */
+ ME_EDGERENDER
);
}
char BM_face_flag_to_mflag(BMFace *efa)
diff --git a/source/blender/bmesh/intern/bmesh_interp.c b/source/blender/bmesh/intern/bmesh_interp.c
index f64b55193c5..c39096d0800 100644
--- a/source/blender/bmesh/intern/bmesh_interp.c
+++ b/source/blender/bmesh/intern/bmesh_interp.c
@@ -852,24 +852,24 @@ void BM_data_layer_copy(BMesh *bm, CustomData *data, int type, int src_n, int ds
BMVert *eve;
BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
- void *ptr = CustomData_bmesh_get_n(data, eve->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, eve->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, eve->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, eve->head.data, type, dst_n, ptr);
}
}
else if (&bm->edata == data) {
BMEdge *eed;
BM_ITER_MESH (eed, &iter, bm, BM_EDGES_OF_MESH) {
- void *ptr = CustomData_bmesh_get_n(data, eed->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, eed->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, eed->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, eed->head.data, type, dst_n, ptr);
}
}
else if (&bm->pdata == data) {
BMFace *efa;
BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
- void *ptr = CustomData_bmesh_get_n(data, efa->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, efa->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, efa->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, efa->head.data, type, dst_n, ptr);
}
}
else if (&bm->ldata == data) {
@@ -879,8 +879,8 @@ void BM_data_layer_copy(BMesh *bm, CustomData *data, int type, int src_n, int ds
BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
- void *ptr = CustomData_bmesh_get_n(data, l->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, l->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, l->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, l->head.data, type, dst_n, ptr);
}
}
}
diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c
index a69558eeeca..1720ee4f55a 100644
--- a/source/blender/bmesh/intern/bmesh_marking.c
+++ b/source/blender/bmesh/intern/bmesh_marking.c
@@ -612,8 +612,6 @@ void BM_editselection_normal(BMEditSelection *ese, float r_normal[3])
}
}
-/* ref - editmesh_lib.cL:EM_editselection_plane() */
-
/* Calculate a plane that is rightangles to the edge/vert/faces normal
* also make the plane run along an axis that is related to the geometry,
* because this is used for the manipulators Y axis. */
@@ -691,21 +689,9 @@ void BM_editselection_plane(BMEditSelection *ese, float r_plane[3])
}
}
else {
- /* BMESH_TODO (not urgent, use longest ngon edge for alignment) */
-
- /* start with v1-2 */
- sub_v3_v3v3(r_plane, verts[0]->co, verts[1]->co);
-
- /* test the edge between v2-3, use if longer */
- sub_v3_v3v3(vec, verts[1]->co, verts[2]->co);
- if (dot_v3v3(r_plane, r_plane) < dot_v3v3(vec, vec))
- copy_v3_v3(r_plane, vec);
+ BMLoop *l_long = BM_face_find_longest_loop(efa);
- /* test the edge between v1-3, use if longer */
- sub_v3_v3v3(vec, verts[2]->co, verts[0]->co);
- if (dot_v3v3(r_plane, r_plane) < dot_v3v3(vec, vec)) {
- copy_v3_v3(r_plane, vec);
- }
+ sub_v3_v3v3(r_plane, l_long->v->co, l_long->next->v->co);
}
}
diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c
index 351fb8e941b..a8c27e0a761 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_conv.c
+++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c
@@ -495,6 +495,9 @@ BLI_INLINE void bmesh_quick_edgedraw_flag(MEdge *med, BMEdge *e)
{
med->flag &= ~ME_EDGEDRAW;
}
+ else {
+ med->flag |= ME_EDGEDRAW;
+ }
}
void BM_mesh_bm_to_me(BMesh *bm, Mesh *me, int dotess)
diff --git a/source/blender/bmesh/intern/bmesh_mods.c b/source/blender/bmesh/intern/bmesh_mods.c
index c4cbb19eef7..2c7007d1961 100644
--- a/source/blender/bmesh/intern/bmesh_mods.c
+++ b/source/blender/bmesh/intern/bmesh_mods.c
@@ -161,10 +161,10 @@ int BM_disk_dissolve(BMesh *bm, BMVert *v)
}
if (keepedge) {
- int done = 0;
+ int done = FALSE;
while (!done) {
- done = 1;
+ done = TRUE;
e = v->e;
do {
f = NULL;
@@ -180,7 +180,7 @@ int BM_disk_dissolve(BMesh *bm, BMVert *v)
}
if (f) {
- done = 0;
+ done = FALSE;
break;
}
e = bmesh_disk_edge_next(e, v);
diff --git a/source/blender/bmesh/intern/bmesh_operators.c b/source/blender/bmesh/intern/bmesh_operators.c
index b2d9590dc54..82ad5c1805b 100644
--- a/source/blender/bmesh/intern/bmesh_operators.c
+++ b/source/blender/bmesh/intern/bmesh_operators.c
@@ -254,7 +254,7 @@ void BMO_slot_copy(BMOperator *source_op, BMOperator *dest_op, const char *src,
return;
}
- if (dest_slot->slottype == BMO_OP_SLOT_ELEMENT_BUF) {
+ if (dest_slot->slottype == BMO_OP_SLOT_ELEMENT_BUF) {
/* do buffer copy */
dest_slot->data.buf = NULL;
dest_slot->len = source_slot->len;
@@ -264,7 +264,7 @@ void BMO_slot_copy(BMOperator *source_op, BMOperator *dest_op, const char *src,
memcpy(dest_slot->data.buf, source_slot->data.buf, slot_alloc_size);
}
}
- else if (dest_slot->slottype == BMO_OP_SLOT_MAPPING) {
+ else if (dest_slot->slottype == BMO_OP_SLOT_MAPPING) {
GHashIterator it;
BMOElemMapping *srcmap, *dstmap;
diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c
index 6f6db3ce239..72eb4cb89e9 100644
--- a/source/blender/bmesh/intern/bmesh_polygon.c
+++ b/source/blender/bmesh/intern/bmesh_polygon.c
@@ -776,12 +776,12 @@ void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3],
projectverts[i][2] = 0.0f;
}
- done = 0;
+ done = FALSE;
while (!done && f->len > 3) {
- done = 1;
+ done = TRUE;
l_iter = find_ear(f, projectverts, nvert, use_beauty);
if (l_iter) {
- done = 0;
+ done = FALSE;
/* v = l->v; */ /* UNUSED */
f = BM_face_split(bm, l_iter->f, l_iter->prev->v,
l_iter->next->v,
diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c
index 8628ed7f9a1..94b221797b4 100644
--- a/source/blender/bmesh/intern/bmesh_queries.c
+++ b/source/blender/bmesh/intern/bmesh_queries.c
@@ -369,6 +369,7 @@ int BM_edge_face_pair(BMEdge *e, BMFace **r_fa, BMFace **r_fb)
if ((la = e->l) &&
(lb = la->radial_next) &&
+ (la != lb) &&
(lb->radial_next == la))
{
*r_fa = la->f;
@@ -394,6 +395,7 @@ int BM_edge_loop_pair(BMEdge *e, BMLoop **r_la, BMLoop **r_lb)
if ((la = e->l) &&
(lb = la->radial_next) &&
+ (la != lb) &&
(lb->radial_next == la))
{
*r_la = la;
@@ -745,7 +747,7 @@ BMLoop *BM_face_edge_share_loop(BMFace *f, BMEdge *e)
* BM_face_create_ngon() on an arbitrary array of verts,
* though be sure to pick an edge which has a face.
*
- * \note This is infact quite a simple check, mainly include this function so the intent is more obvious.
+ * \note This is in fact quite a simple check, mainly include this function so the intent is more obvious.
* We know these 2 verts will _always_ make up the loops edge
*/
void BM_edge_ordered_verts_ex(BMEdge *edge, BMVert **r_v1, BMVert **r_v2,
@@ -950,6 +952,64 @@ float BM_vert_calc_mean_tagged_edge_length(BMVert *v)
/**
+ * Returns the shortest edge in f.
+ */
+BMLoop *BM_face_find_shortest_loop(BMFace *f)
+{
+ BMLoop *shortest_loop = NULL;
+ float shortest_len = FLT_MAX;
+
+ BMLoop *l_iter;
+ BMLoop *l_first;
+
+ l_iter = l_first = BM_FACE_FIRST_LOOP(f);
+
+ do {
+ const float len = len_squared_v3v3(l_iter->v->co, l_iter->next->v->co);
+ if (len <= shortest_len) {
+ shortest_loop = l_iter;
+ shortest_len = len;
+ }
+ } while ((l_iter = l_iter->next) != l_first);
+
+ return shortest_loop;
+}
+
+/**
+ * Returns the longest edge in f.
+ */
+BMLoop *BM_face_find_longest_loop(BMFace *f)
+{
+ BMLoop *longest_loop = NULL;
+ float longest_len = 0.0f;
+
+ BMLoop *l_iter;
+ BMLoop *l_first;
+
+ l_iter = l_first = BM_FACE_FIRST_LOOP(f);
+
+ do {
+ const float len = len_squared_v3v3(l_iter->v->co, l_iter->next->v->co);
+ if (len >= longest_len) {
+ longest_loop = l_iter;
+ longest_len = len;
+ }
+ } while ((l_iter = l_iter->next) != l_first);
+
+ return longest_loop;
+}
+
+BMEdge *BM_face_find_shortest_edge(BMFace *f)
+{
+ return BM_face_find_shortest_loop(f)->e;
+}
+
+BMEdge *BM_face_find_longest_edge(BMFace *f)
+{
+ return BM_face_find_longest_loop(f)->e;
+}
+
+/**
* Returns the edge existing between v1 and v2, or NULL if there isn't one.
*
* \note multiple edges may exist between any two vertices, and therefore
diff --git a/source/blender/bmesh/intern/bmesh_queries.h b/source/blender/bmesh/intern/bmesh_queries.h
index 08e15884b3f..697990046be 100644
--- a/source/blender/bmesh/intern/bmesh_queries.h
+++ b/source/blender/bmesh/intern/bmesh_queries.h
@@ -67,6 +67,12 @@ float BM_vert_calc_edge_angle(BMVert *v);
float BM_vert_calc_shell_factor(BMVert *v);
float BM_vert_calc_mean_tagged_edge_length(BMVert *v);
+BMEdge *BM_face_find_shortest_edge(BMFace *f);
+BMEdge *BM_face_find_longest_edge(BMFace *f);
+
+BMLoop *BM_face_find_shortest_loop(BMFace *f);
+BMLoop *BM_face_find_longest_loop(BMFace *f);
+
BMEdge *BM_edge_exists(BMVert *v1, BMVert *v2);
int BM_face_exists_overlap(BMesh *bm, BMVert **varr, int len, BMFace **r_existface);
diff --git a/source/blender/bmesh/operators/bmo_connect.c b/source/blender/bmesh/operators/bmo_connect.c
index b8abe112c4d..2d4c15dbaa5 100644
--- a/source/blender/bmesh/operators/bmo_connect.c
+++ b/source/blender/bmesh/operators/bmo_connect.c
@@ -444,7 +444,7 @@ void bmo_bridge_loops_exec(BMesh *bm, BMOperator *op)
i2 = i;
i2next = clamp_index(i + 1, lenv2);
- if (vv1[i1] == vv1[i1next]) {
+ if (vv1[i1] == vv1[i1next]) {
continue;
}
diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c
index 7ef6068247d..ebdff8bf7aa 100644
--- a/source/blender/bmesh/operators/bmo_create.c
+++ b/source/blender/bmesh/operators/bmo_create.c
@@ -83,8 +83,8 @@ static int count_edge_faces(BMesh *bm, BMEdge *e);
BLI_INLINE BMDiskLink *rs_edge_link_get(BMEdge *e, BMVert *v, EdgeData *e_data)
{
- return v == ((BMEdge *)e)->v1 ? &(((EdgeData *)e_data)->v1_disk_link) :
- &(((EdgeData *)e_data)->v2_disk_link) ;
+ return v == ((BMEdge *)e)->v1 ? &(((EdgeData *)e_data)->v1_disk_link) :
+ &(((EdgeData *)e_data)->v2_disk_link) ;
}
static int rotsys_append_edge(BMEdge *e, BMVert *v,
diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c
index 4bac54794bf..09b79376ff6 100644
--- a/source/blender/bmesh/operators/bmo_extrude.c
+++ b/source/blender/bmesh/operators/bmo_extrude.c
@@ -26,9 +26,13 @@
#include "MEM_guardedalloc.h"
+#include "DNA_meshdata_types.h"
+
#include "BLI_math.h"
#include "BLI_array.h"
+#include "BKE_customdata.h"
+
#include "bmesh.h"
#include "intern/bmesh_operators_private.h" /* own include */
@@ -167,6 +171,16 @@ static void bm_extrude_copy_face_loop_attributes(BMesh *bm, BMFace *f, BMEdge *e
BM_elem_attrs_copy(bm, bm, l_src_1, l_dst_b);
}
+/* Disable the skin root flag on the input vert, assumes that the vert
+ data includes an CD_MVERT_SKIN layer */
+static void bm_extrude_disable_skin_root(BMesh *bm, BMVert *v)
+{
+ MVertSkin *vs;
+
+ vs = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_MVERT_SKIN);
+ vs->flag &= ~MVERT_SKIN_ROOT;
+}
+
void bmo_extrude_edge_only_exec(BMesh *bm, BMOperator *op)
{
BMOIter siter;
@@ -184,6 +198,13 @@ void bmo_extrude_edge_only_exec(BMesh *bm, BMOperator *op)
BMO_op_initf(bm, &dupeop, "dupe geom=%fve", EXT_INPUT);
BMO_op_exec(bm, &dupeop);
+ /* disable root flag on all new skin nodes */
+ if (CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ BMO_ITER(v1, &siter, bm, &dupeop, "newout", BM_VERT) {
+ bm_extrude_disable_skin_root(bm, v1);
+ }
+ }
+
for (e = BMO_iter_new(&siter, bm, &dupeop, "boundarymap", 0); e; e = BMO_iter_step(&siter)) {
e2 = BMO_iter_map_value(&siter);
e2 = *(BMEdge **)e2;
@@ -224,9 +245,12 @@ void bmo_extrude_vert_indiv_exec(BMesh *bm, BMOperator *op)
BMOIter siter;
BMVert *v, *dupev;
BMEdge *e;
+ const int has_vskin = CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN);
for (v = BMO_iter_new(&siter, bm, op, "verts", BM_VERT); v; v = BMO_iter_step(&siter)) {
dupev = BM_vert_create(bm, v->co, v);
+ if (has_vskin)
+ bm_extrude_disable_skin_root(bm, v);
e = BM_edge_create(bm, v, dupev, NULL, FALSE);
@@ -324,6 +348,13 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
BMO_slot_copy(op, &dupeop, "edgefacein", "geom");
BMO_op_exec(bm, &dupeop);
+ /* disable root flag on all new skin nodes */
+ if (CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ BMO_ITER(v, &siter, bm, &dupeop, "newout", BM_VERT) {
+ bm_extrude_disable_skin_root(bm, v);
+ }
+ }
+
if (bm->act_face && BMO_elem_flag_test(bm, bm->act_face, EXT_INPUT))
bm->act_face = BMO_slot_map_ptr_get(bm, &dupeop, "facemap", bm->act_face);
diff --git a/source/blender/bmesh/operators/bmo_slide.c b/source/blender/bmesh/operators/bmo_slide.c
index 5a91fdee533..238cc5ac66f 100644
--- a/source/blender/bmesh/operators/bmo_slide.c
+++ b/source/blender/bmesh/operators/bmo_slide.c
@@ -88,6 +88,7 @@ void bmo_vertex_slide_exec(BMesh *bm, BMOperator *op)
}
/* Make sure we get the correct edge. */
+ slide_edge = NULL;
BM_ITER_ELEM (edge, &iter, vertex, BM_EDGES_OF_VERT) {
if (BMO_elem_flag_test(bm, edge, EDGE_MARK) && BM_vert_in_edge(edge, vertex)) {
slide_edge = edge;
diff --git a/source/blender/bmesh/operators/bmo_utils.c b/source/blender/bmesh/operators/bmo_utils.c
index 7f2951354ce..4377eb3e883 100644
--- a/source/blender/bmesh/operators/bmo_utils.c
+++ b/source/blender/bmesh/operators/bmo_utils.c
@@ -597,7 +597,7 @@ void bmo_similarfaces_exec(BMesh *bm, BMOperator *op)
/* now select the rest (if any) */
for (i = 0; i < num_total; i++) {
fm = f_ext[i].f;
- if (!BMO_elem_flag_test(bm, fm, FACE_MARK) && !BM_elem_flag_test(fm, BM_ELEM_HIDDEN)) {
+ if (!BMO_elem_flag_test(bm, fm, FACE_MARK) && !BM_elem_flag_test(fm, BM_ELEM_HIDDEN)) {
int cont = TRUE;
for (idx = 0; idx < num_sels && cont == TRUE; idx++) {
fs = f_ext[indices[idx]].f;
diff --git a/source/blender/bmesh/tools/BME_bevel.c b/source/blender/bmesh/tools/BME_bevel.c
index 101614d609c..07e413985bf 100644
--- a/source/blender/bmesh/tools/BME_bevel.c
+++ b/source/blender/bmesh/tools/BME_bevel.c
@@ -155,9 +155,9 @@ static void BME_Bevel_Dissolve_Disk(BMesh *bm, BMVert *v)
int done;
if (v->e) {
- done = 0;
+ done = FALSE;
while (!done) {
- done = 1;
+ done = TRUE;
e = v->e; /*loop the edge looking for a edge to dissolve*/
do {
f = NULL;
@@ -165,7 +165,7 @@ static void BME_Bevel_Dissolve_Disk(BMesh *bm, BMVert *v)
f = bmesh_jfke(bm, e->l->f, e->l->radial_next->f, e);
}
if (f) {
- done = 0;
+ done = FALSE;
break;
}
e = bmesh_disk_edge_next(e, v);
diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp
index 97de7590d07..f23b2bf4b02 100644
--- a/source/blender/collada/ArmatureImporter.cpp
+++ b/source/blender/collada/ArmatureImporter.cpp
@@ -289,8 +289,10 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW:
float vec[3] = {x, y, z};
copy_v3_v3(leaf.bone->tail, leaf.bone->head);
add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec);
- }else
+ }
+ else {
leaf_bones.push_back(leaf);
+ }
}
void ArmatureImporter::fix_leaf_bones( )
diff --git a/source/blender/compositor/CMakeLists.txt b/source/blender/compositor/CMakeLists.txt
new file mode 100644
index 00000000000..3230c0ec33d
--- /dev/null
+++ b/source/blender/compositor/CMakeLists.txt
@@ -0,0 +1,608 @@
+# $Id: CMakeLists.txt 14444 2008-04-16 22:40:48Z hos $
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The Original Code is Copyright (C) 2011, Blender Foundation
+# All rights reserved.
+#
+# The Original Code is: all of this file.
+#
+# Contributor(s): Jeroen Bakker, Monique Dewanchand, Blender Developers Fund.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+ .
+ ../blenkernel
+ ../blenlib
+ ../makesdna
+ ../render/extern/include
+ ../render/intern/include
+ ../makesrna
+ ../blenloader
+ ../blenlib
+ ../windowmanager
+ ../imbuf
+ ../../../intern/guardedalloc
+ nodes
+ ../nodes/
+ ../nodes/composite
+ ../nodes/intern
+ intern
+ operations
+ ../opencl
+)
+
+set(SRC
+ COM_compositor.h
+ COM_defines.h
+
+ intern/COM_compositor.cpp
+ intern/COM_ExecutionSystem.cpp
+ intern/COM_ExecutionSystem.h
+ intern/COM_ExecutionSystemHelper.cpp
+ intern/COM_ExecutionSystemHelper.h
+ intern/COM_Converter.cpp
+ intern/COM_Converter.h
+ intern/COM_ExecutionGroup.cpp
+ intern/COM_ExecutionGroup.h
+ intern/COM_Node.cpp
+ intern/COM_Node.h
+ intern/COM_NodeBase.cpp
+ intern/COM_NodeBase.h
+ intern/COM_NodeOperation.cpp
+ intern/COM_NodeOperation.h
+ intern/COM_NodeProgram.h
+ intern/COM_Socket.cpp
+ intern/COM_Socket.h
+ intern/COM_SocketReader.cpp
+ intern/COM_SocketReader.h
+ intern/COM_InputSocket.cpp
+ intern/COM_InputSocket.h
+ intern/COM_OutputSocket.cpp
+ intern/COM_OutputSocket.h
+ intern/COM_SocketConnection.cpp
+ intern/COM_SocketConnection.h
+ intern/COM_MemoryProxy.cpp
+ intern/COM_MemoryProxy.h
+ intern/COM_MemoryBuffer.cpp
+ intern/COM_MemoryBuffer.h
+ intern/COM_MemoryManager.cpp
+ intern/COM_MemoryManager.h
+ intern/COM_MemoryManagerState.cpp
+ intern/COM_MemoryManagerState.h
+ intern/COM_WorkScheduler.cpp
+ intern/COM_WorkScheduler.h
+ intern/COM_WorkPackage.cpp
+ intern/COM_WorkPackage.h
+ intern/COM_ChunkOrder.cpp
+ intern/COM_ChunkOrder.h
+ intern/COM_ChunkOrderHotspot.cpp
+ intern/COM_ChunkOrderHotspot.h
+ intern/COM_Device.cpp
+ intern/COM_Device.h
+ intern/COM_CPUDevice.cpp
+ intern/COM_CPUDevice.h
+ intern/COM_OpenCLDevice.cpp
+ intern/COM_OpenCLDevice.h
+ intern/COM_CompositorContext.cpp
+ intern/COM_CompositorContext.h
+ intern/COM_ChannelInfo.cpp
+ intern/COM_ChannelInfo.h
+ operations/COM_QualityStepHelper.h
+ operations/COM_QualityStepHelper.cpp
+
+# Internal nodes
+ nodes/COM_MuteNode.cpp
+ nodes/COM_MuteNode.h
+ nodes/COM_GroupNode.cpp
+ nodes/COM_GroupNode.h
+ nodes/COM_SocketProxyNode.cpp
+ nodes/COM_SocketProxyNode.h
+
+# input nodes
+ nodes/COM_RenderLayersNode.cpp
+ nodes/COM_RenderLayersNode.h
+ nodes/COM_ImageNode.cpp
+ nodes/COM_ImageNode.h
+ nodes/COM_TextureNode.cpp
+ nodes/COM_TextureNode.h
+ nodes/COM_BokehImageNode.cpp
+ nodes/COM_BokehImageNode.h
+ nodes/COM_ColorNode.cpp
+ nodes/COM_ColorNode.h
+ nodes/COM_ValueNode.cpp
+ nodes/COM_ValueNode.h
+ nodes/COM_TimeNode.cpp
+ nodes/COM_TimeNode.h
+ nodes/COM_SwitchNode.cpp
+ nodes/COM_SwitchNode.h
+ nodes/COM_MovieClipNode.cpp
+ nodes/COM_MovieClipNode.h
+ nodes/COM_OutputFileNode.cpp
+ nodes/COM_OutputFileNode.h
+
+# output nodes
+ nodes/COM_CompositorNode.cpp
+ nodes/COM_CompositorNode.h
+ nodes/COM_ViewerNode.cpp
+ nodes/COM_ViewerNode.h
+ nodes/COM_SplitViewerNode.cpp
+ nodes/COM_SplitViewerNode.h
+ nodes/COM_ViewLevelsNode.cpp
+ nodes/COM_ViewLevelsNode.h
+ operations/COM_CalculateStandardDeviationOperation.cpp
+ operations/COM_CalculateStandardDeviationOperation.h
+ operations/COM_CalculateMeanOperation.cpp
+ operations/COM_CalculateMeanOperation.h
+
+# distort nodes
+ nodes/COM_TranslateNode.cpp
+ nodes/COM_TranslateNode.h
+ nodes/COM_ScaleNode.cpp
+ nodes/COM_ScaleNode.h
+ nodes/COM_RotateNode.cpp
+ nodes/COM_RotateNode.h
+ nodes/COM_FlipNode.cpp
+ nodes/COM_FlipNode.h
+
+ nodes/COM_MapUVNode.cpp
+ nodes/COM_MapUVNode.h
+ nodes/COM_DisplaceNode.cpp
+ nodes/COM_DisplaceNode.h
+
+ nodes/COM_DifferenceMatteNode.cpp
+ nodes/COM_DifferenceMatteNode.h
+ nodes/COM_LuminanceMatteNode.cpp
+ nodes/COM_LuminanceMatteNode.h
+ nodes/COM_DistanceMatteNode.cpp
+ nodes/COM_DistanceMatteNode.h
+ nodes/COM_ChromaMatteNode.cpp
+ nodes/COM_ChromaMatteNode.h
+ nodes/COM_ColorMatteNode.cpp
+ nodes/COM_ColorMatteNode.h
+ nodes/COM_ChannelMatteNode.cpp
+ nodes/COM_ChannelMatteNode.h
+ nodes/COM_LensDistortionNode.cpp
+ nodes/COM_LensDistortionNode.h
+
+ nodes/COM_GlareNode.cpp
+ nodes/COM_GlareNode.h
+
+ nodes/COM_CropNode.cpp
+ nodes/COM_CropNode.h
+ operations/COM_CropOperation.cpp
+ operations/COM_CropOperation.h
+
+ operations/COM_LensGlowOperation.cpp
+ operations/COM_LensGlowOperation.h
+ operations/COM_LensGhostOperation.cpp
+ operations/COM_LensGhostOperation.h
+ nodes/COM_TransformNode.cpp
+ nodes/COM_TransformNode.h
+ nodes/COM_Stabilize2dNode.cpp
+ nodes/COM_Stabilize2dNode.h
+ nodes/COM_MovieDistortionNode.cpp
+ nodes/COM_MovieDistortionNode.h
+ nodes/COM_DefocusNode.cpp
+ nodes/COM_DefocusNode.h
+
+# color nodes
+ nodes/COM_VectorCurveNode.cpp
+ nodes/COM_VectorCurveNode.h
+ nodes/COM_ColorCurveNode.cpp
+ nodes/COM_ColorCurveNode.h
+ nodes/COM_ColorToBWNode.cpp
+ nodes/COM_ColorToBWNode.h
+ nodes/COM_ColorRampNode.cpp
+ nodes/COM_ColorRampNode.h
+ nodes/COM_MixNode.cpp
+ nodes/COM_MixNode.h
+ nodes/COM_AlphaOverNode.cpp
+ nodes/COM_AlphaOverNode.h
+ nodes/COM_ZCombineNode.cpp
+ nodes/COM_ZCombineNode.h
+ nodes/COM_BrightnessNode.cpp
+ nodes/COM_BrightnessNode.h
+ nodes/COM_ColorBalanceNode.cpp
+ nodes/COM_ColorBalanceNode.h
+ nodes/COM_InvertNode.cpp
+ nodes/COM_InvertNode.h
+ nodes/COM_GammaNode.cpp
+ nodes/COM_GammaNode.h
+ nodes/COM_SetAlphaNode.cpp
+ nodes/COM_SetAlphaNode.h
+ nodes/COM_ConvertAlphaNode.cpp
+ nodes/COM_ConvertAlphaNode.h
+ nodes/COM_AlphaOverNode.cpp
+ nodes/COM_AlphaOverNode.h
+ nodes/COM_HueSaturationValueNode.cpp
+ nodes/COM_HueSaturationValueNode.h
+ nodes/COM_HueSaturationValueCorrectNode.cpp
+ nodes/COM_HueSaturationValueCorrectNode.h
+ nodes/COM_ColorCorrectionNode.cpp
+ nodes/COM_ColorCorrectionNode.h
+ nodes/COM_TonemapNode.cpp
+ nodes/COM_TonemapNode.h
+ operations/COM_TonemapOperation.cpp
+ operations/COM_TonemapOperation.h
+
+# converter nodes
+ nodes/COM_IDMaskNode.cpp
+ nodes/COM_IDMaskNode.h
+ nodes/COM_SeparateRGBANode.cpp
+ nodes/COM_SeparateRGBANode.h
+ nodes/COM_CombineRGBANode.cpp
+ nodes/COM_CombineRGBANode.h
+ nodes/COM_SeparateHSVANode.cpp
+ nodes/COM_SeparateHSVANode.h
+ nodes/COM_CombineHSVANode.cpp
+ nodes/COM_CombineHSVANode.h
+ nodes/COM_SeparateYUVANode.cpp
+ nodes/COM_SeparateYUVANode.h
+ nodes/COM_CombineYUVANode.cpp
+ nodes/COM_CombineYUVANode.h
+ nodes/COM_SeparateYCCANode.cpp
+ nodes/COM_SeparateYCCANode.h
+ nodes/COM_CombineYCCANode.cpp
+ nodes/COM_CombineYCCANode.h
+
+ nodes/COM_NormalNode.cpp
+ nodes/COM_NormalNode.h
+ nodes/COM_NormalizeNode.cpp
+ nodes/COM_NormalizeNode.h
+ nodes/COM_MathNode.cpp
+ nodes/COM_MathNode.h
+ nodes/COM_MapValueNode.cpp
+ nodes/COM_MapValueNode.h
+
+ operations/COM_NormalizeOperation.cpp
+ operations/COM_NormalizeOperation.h
+
+# Filter nodes
+ nodes/COM_BilateralBlurNode.cpp
+ nodes/COM_BilateralBlurNode.h
+ operations/COM_BilateralBlurOperation.cpp
+ operations/COM_BilateralBlurOperation.h
+ nodes/COM_VectorBlurNode.cpp
+ nodes/COM_VectorBlurNode.h
+ operations/COM_VectorBlurOperation.cpp
+ operations/COM_VectorBlurOperation.h
+
+
+
+ nodes/COM_FilterNode.cpp
+ nodes/COM_FilterNode.h
+ nodes/COM_DilateErodeNode.cpp
+ nodes/COM_DilateErodeNode.h
+ nodes/COM_BlurNode.cpp
+ nodes/COM_BlurNode.h
+ nodes/COM_BokehBlurNode.cpp
+ nodes/COM_BokehBlurNode.h
+ nodes/COM_DirectionalBlurNode.cpp
+ nodes/COM_DirectionalBlurNode.h
+ operations/COM_GaussianXBlurOperation.cpp
+ operations/COM_GaussianXBlurOperation.h
+ operations/COM_GaussianYBlurOperation.cpp
+ operations/COM_GaussianYBlurOperation.h
+ operations/COM_GaussianBokehBlurOperation.cpp
+ operations/COM_GaussianBokehBlurOperation.h
+ operations/COM_BokehBlurOperation.cpp
+ operations/COM_BokehBlurOperation.h
+ operations/COM_VariableSizeBokehBlurOperation.cpp
+ operations/COM_VariableSizeBokehBlurOperation.h
+ operations/COM_FastGaussianBlurOperation.cpp
+ operations/COM_FastGaussianBlurOperation.h
+ operations/COM_BlurBaseOperation.cpp
+ operations/COM_BlurBaseOperation.h
+ operations/COM_DirectionalBlurOperation.cpp
+ operations/COM_DirectionalBlurOperation.h
+ operations/COM_MovieClipAttributeOperation.cpp
+ operations/COM_MovieClipAttributeOperation.h
+ operations/COM_MovieDistortionOperation.cpp
+ operations/COM_MovieDistortionOperation.h
+ operations/COM_GammaCorrectOperation.h
+ operations/COM_GammaCorrectOperation.cpp
+
+# Matte nodes
+ nodes/COM_BoxMaskNode.cpp
+ nodes/COM_BoxMaskNode.h
+ nodes/COM_EllipseMaskNode.cpp
+ nodes/COM_EllipseMaskNode.h
+ nodes/COM_ColorSpillNode.cpp
+ nodes/COM_ColorSpillNode.h
+ nodes/COM_DoubleEdgeMaskNode.cpp
+ nodes/COM_DoubleEdgeMaskNode.h
+
+ operations/COM_DoubleEdgeMaskOperation.cpp
+ operations/COM_DoubleEdgeMaskOperation.h
+operations/COM_ColorSpillOperation.cpp
+operations/COM_ColorSpillOperation.h
+ operations/COM_RenderLayersBaseProg.cpp
+ operations/COM_RenderLayersBaseProg.h
+ operations/COM_RenderLayersImageProg.cpp
+ operations/COM_RenderLayersImageProg.h
+ operations/COM_RenderLayersAlphaProg.cpp
+ operations/COM_RenderLayersAlphaProg.h
+ operations/COM_RenderLayersDepthProg.cpp
+ operations/COM_RenderLayersDepthProg.h
+ operations/COM_RenderLayersNormalOperation.cpp
+ operations/COM_RenderLayersNormalOperation.h
+ operations/COM_RenderLayersSpeedOperation.cpp
+ operations/COM_RenderLayersSpeedOperation.h
+ operations/COM_RenderLayersColorOperation.cpp
+ operations/COM_RenderLayersColorOperation.h
+ operations/COM_RenderLayersUVOperation.cpp
+ operations/COM_RenderLayersUVOperation.h
+ operations/COM_RenderLayersMistOperation.cpp
+ operations/COM_RenderLayersMistOperation.h
+ operations/COM_RenderLayersObjectIndexOperation.cpp
+ operations/COM_RenderLayersObjectIndexOperation.h
+ operations/COM_RenderLayersMaterialIndexOperation.cpp
+ operations/COM_RenderLayersMaterialIndexOperation.h
+ operations/COM_RenderLayersDiffuseOperation.cpp
+ operations/COM_RenderLayersDiffuseOperation.h
+ operations/COM_RenderLayersSpecularOperation.cpp
+ operations/COM_RenderLayersSpecularOperation.h
+ operations/COM_RenderLayersShadowOperation.cpp
+ operations/COM_RenderLayersShadowOperation.h
+ operations/COM_RenderLayersAOOperation.cpp
+ operations/COM_RenderLayersAOOperation.h
+ operations/COM_RenderLayersEmitOperation.cpp
+ operations/COM_RenderLayersEmitOperation.h
+ operations/COM_RenderLayersReflectionOperation.cpp
+ operations/COM_RenderLayersReflectionOperation.h
+ operations/COM_RenderLayersRefractionOperation.cpp
+ operations/COM_RenderLayersRefractionOperation.h
+ operations/COM_RenderLayersEnvironmentOperation.cpp
+ operations/COM_RenderLayersEnvironmentOperation.h
+ operations/COM_RenderLayersIndirectOperation.cpp
+ operations/COM_RenderLayersIndirectOperation.h
+ operations/COM_RenderLayersCyclesOperation.cpp
+ operations/COM_RenderLayersCyclesOperation.h
+
+operations/COM_ImageOperation.cpp
+operations/COM_ImageOperation.h
+operations/COM_MultilayerImageOperation.cpp
+operations/COM_MultilayerImageOperation.h
+operations/COM_TextureOperation.cpp
+operations/COM_TextureOperation.h
+operations/COM_BokehImageOperation.cpp
+operations/COM_BokehImageOperation.h
+operations/COM_LensGlowImageOperation.cpp
+operations/COM_LensGlowImageOperation.h
+
+
+ operations/COM_SocketProxyOperation.h
+ operations/COM_SocketProxyOperation.cpp
+
+ operations/COM_CompositorOperation.h
+ operations/COM_CompositorOperation.cpp
+ operations/COM_OutputFileOperation.h
+ operations/COM_OutputFileOperation.cpp
+ operations/COM_ViewerBaseOperation.h
+ operations/COM_ViewerBaseOperation.cpp
+ operations/COM_ViewerOperation.h
+ operations/COM_ViewerOperation.cpp
+ operations/COM_PreviewOperation.h
+ operations/COM_PreviewOperation.cpp
+ operations/COM_SplitViewerOperation.h
+ operations/COM_SplitViewerOperation.cpp
+ operations/COM_ConvertValueToColourProg.h
+ operations/COM_ConvertValueToColourProg.cpp
+ operations/COM_ConvertColourToValueProg.h
+ operations/COM_ConvertColourToValueProg.cpp
+ operations/COM_ConvertColorToBWOperation.h
+ operations/COM_ConvertColorToBWOperation.cpp
+ operations/COM_ConvertColorToVectorOperation.h
+ operations/COM_ConvertColorToVectorOperation.cpp
+ operations/COM_ConvertValueToVectorOperation.h
+ operations/COM_ConvertValueToVectorOperation.cpp
+ operations/COM_ConvertVectorToColorOperation.h
+ operations/COM_ConvertVectorToColorOperation.cpp
+ operations/COM_ConvertVectorToValueOperation.h
+ operations/COM_ConvertVectorToValueOperation.cpp
+operations/COM_ConvertDepthToRadiusOperation.h
+operations/COM_ConvertDepthToRadiusOperation.cpp
+ operations/COM_ZCombineOperation.cpp
+ operations/COM_ZCombineOperation.h
+
+ operations/COM_ConvertRGBToYCCOperation.h
+ operations/COM_ConvertRGBToYCCOperation.cpp
+ operations/COM_ConvertYCCToRGBOperation.h
+ operations/COM_ConvertYCCToRGBOperation.cpp
+ operations/COM_ConvertRGBToYUVOperation.h
+ operations/COM_ConvertRGBToYUVOperation.cpp
+ operations/COM_ConvertYUVToRGBOperation.h
+ operations/COM_ConvertYUVToRGBOperation.cpp
+ operations/COM_ConvertRGBToHSVOperation.h
+ operations/COM_ConvertRGBToHSVOperation.cpp
+ operations/COM_ConvertHSVToRGBOperation.h
+ operations/COM_ConvertHSVToRGBOperation.cpp
+ operations/COM_ChangeHSVOperation.h
+ operations/COM_ChangeHSVOperation.cpp
+ operations/COM_ColorCurveOperation.h
+ operations/COM_ColorCurveOperation.cpp
+ operations/COM_ColorRampOperation.h
+ operations/COM_ColorRampOperation.cpp
+ operations/COM_VectorCurveOperation.h
+ operations/COM_VectorCurveOperation.cpp
+ operations/COM_CurveBaseOperation.h
+ operations/COM_CurveBaseOperation.cpp
+ operations/COM_HueSaturationValueCorrectOperation.cpp
+ operations/COM_HueSaturationValueCorrectOperation.h
+ operations/COM_DifferenceMatteOperation.cpp
+ operations/COM_DifferenceMatteOperation.h
+ operations/COM_LuminanceMatteOperation.cpp
+ operations/COM_LuminanceMatteOperation.h
+ operations/COM_DistanceMatteOperation.cpp
+ operations/COM_DistanceMatteOperation.h
+ operations/COM_ChromaMatteOperation.cpp
+ operations/COM_ChromaMatteOperation.h
+ operations/COM_ColorMatteOperation.cpp
+ operations/COM_ColorMatteOperation.h
+ operations/COM_ChannelMatteOperation.cpp
+ operations/COM_ChannelMatteOperation.h
+ operations/COM_ConvertPremulToKeyOperation.cpp
+ operations/COM_ConvertPremulToKeyOperation.h
+ operations/COM_ConvertKeyToPremulOperation.cpp
+ operations/COM_ConvertKeyToPremulOperation.h
+
+ operations/COM_ReadBufferOperation.cpp
+ operations/COM_ReadBufferOperation.h
+ operations/COM_WriteBufferOperation.cpp
+ operations/COM_WriteBufferOperation.h
+ operations/COM_MixBaseOperation.h
+ operations/COM_MixBaseOperation.cpp
+ operations/COM_MixBlendOperation.cpp
+ operations/COM_MixBlendOperation.h
+ operations/COM_MixAddOperation.h
+ operations/COM_MixAddOperation.cpp
+ operations/COM_MixMultiplyOperation.h
+ operations/COM_MixMultiplyOperation.cpp
+ operations/COM_BrightnessOperation.cpp
+ operations/COM_BrightnessOperation.h
+ operations/COM_GammaOperation.cpp
+ operations/COM_GammaOperation.h
+ operations/COM_ColorCorrectionOperation.cpp
+ operations/COM_ColorCorrectionOperation.h
+ operations/COM_SetValueOperation.h
+ operations/COM_SetValueOperation.cpp
+ operations/COM_SetColorOperation.h
+ operations/COM_SetColorOperation.cpp
+ operations/COM_SetVectorOperation.h
+ operations/COM_SetVectorOperation.cpp
+
+ operations/COM_MixBurnOperation.h
+ operations/COM_MixBurnOperation.cpp
+ operations/COM_MixColorOperation.h
+ operations/COM_MixColorOperation.cpp
+ operations/COM_MixDarkenOperation.h
+ operations/COM_MixDarkenOperation.cpp
+ operations/COM_MixDodgeOperation.h
+ operations/COM_MixDodgeOperation.cpp
+ operations/COM_MixDifferenceOperation.h
+ operations/COM_MixDifferenceOperation.cpp
+ operations/COM_MixDivideOperation.h
+ operations/COM_MixDivideOperation.cpp
+ operations/COM_MixHueOperation.h
+ operations/COM_MixHueOperation.cpp
+ operations/COM_MixLightenOperation.h
+ operations/COM_MixLightenOperation.cpp
+ operations/COM_MixLinearLightOperation.h
+ operations/COM_MixLinearLightOperation.cpp
+ operations/COM_MixOverlayOperation.h
+ operations/COM_MixOverlayOperation.cpp
+ operations/COM_MixSaturationOperation.h
+ operations/COM_MixSaturationOperation.cpp
+ operations/COM_MixScreenOperation.h
+ operations/COM_MixScreenOperation.cpp
+ operations/COM_MixSoftLightOperation.h
+ operations/COM_MixSoftLightOperation.cpp
+ operations/COM_MixValueOperation.h
+ operations/COM_MixValueOperation.cpp
+ operations/COM_MixSubtractOperation.h
+ operations/COM_MixSubtractOperation.cpp
+
+ operations/COM_MathBaseOperation.h
+ operations/COM_MathBaseOperation.cpp
+
+ operations/COM_AlphaOverMixedOperation.h
+ operations/COM_AlphaOverMixedOperation.cpp
+ operations/COM_AlphaOverPremultiplyOperation.h
+ operations/COM_AlphaOverPremultiplyOperation.cpp
+ operations/COM_AlphaOverKeyOperation.h
+ operations/COM_AlphaOverKeyOperation.cpp
+
+ operations/COM_ColorBalanceLGGOperation.h
+ operations/COM_ColorBalanceLGGOperation.cpp
+ operations/COM_ColorBalanceASCCDLOperation.h
+ operations/COM_ColorBalanceASCCDLOperation.cpp
+ operations/COM_InvertOperation.cpp
+ operations/COM_InvertOperation.h
+ operations/COM_SetAlphaOperation.cpp
+ operations/COM_SetAlphaOperation.h
+ operations/COM_MapValueOperation.cpp
+ operations/COM_MapValueOperation.h
+
+# Distort operation
+ operations/COM_TranslateOperation.h
+ operations/COM_TranslateOperation.cpp
+ operations/COM_RotateOperation.h
+ operations/COM_RotateOperation.cpp
+ operations/COM_ScaleOperation.h
+ operations/COM_ScaleOperation.cpp
+ operations/COM_MapUVOperation.h
+ operations/COM_MapUVOperation.cpp
+ operations/COM_DisplaceOperation.h
+ operations/COM_DisplaceOperation.cpp
+ operations/COM_DisplaceSimpleOperation.h
+ operations/COM_DisplaceSimpleOperation.cpp
+ operations/COM_FlipOperation.h
+ operations/COM_FlipOperation.cpp
+ operations/COM_ProjectorLensDistortionOperation.cpp
+ operations/COM_ProjectorLensDistortionOperation.h
+ operations/COM_ScreenLensDistortionOperation.cpp
+ operations/COM_ScreenLensDistortionOperation.h
+
+#Filter operations
+ operations/COM_ConvolutionFilterOperation.h
+ operations/COM_ConvolutionFilterOperation.cpp
+ operations/COM_ConvolutionEdgeFilterOperation.h
+ operations/COM_ConvolutionEdgeFilterOperation.cpp
+ operations/COM_DilateErodeOperation.cpp
+ operations/COM_DilateErodeOperation.h
+ operations/COM_FogGlowImageOperation.cpp
+ operations/COM_FogGlowImageOperation.h
+ operations/COM_GlareThresholdOperation.cpp
+ operations/COM_GlareThresholdOperation.h
+ operations/COM_GlareBaseOperation.cpp
+ operations/COM_GlareBaseOperation.h
+ operations/COM_GlareSimpleStarOperation.cpp
+ operations/COM_GlareSimpleStarOperation.h
+ operations/COM_GlareStreaksOperation.cpp
+ operations/COM_GlareStreaksOperation.h
+ operations/COM_SetSamplerOperation.cpp
+ operations/COM_SetSamplerOperation.h
+
+
+#Convert operations
+ operations/COM_IDMaskOperation.cpp
+ operations/COM_IDMaskOperation.h
+
+ operations/COM_SeparateChannelOperation.cpp
+ operations/COM_SeparateChannelOperation.h
+ operations/COM_CombineChannelsOperation.cpp
+ operations/COM_CombineChannelsOperation.h
+
+ operations/COM_DotproductOperation.cpp
+ operations/COM_DotproductOperation.h
+# Matte operation
+ operations/COM_BoxMaskOperation.h
+ operations/COM_BoxMaskOperation.cpp
+ operations/COM_EllipseMaskOperation.h
+ operations/COM_EllipseMaskOperation.cpp
+
+ operations/COM_MovieClipOperation.cpp
+ operations/COM_MovieClipOperation.h
+ operations/COM_ConvertColorProfileOperation.cpp
+ operations/COM_ConvertColorProfileOperation.h
+
+ operations/COM_AntiAliasOperation.cpp
+ operations/COM_AntiAliasOperation.h
+)
+
+blender_add_lib(bf_compositor "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/compositor/COM_compositor.h b/source/blender/compositor/COM_compositor.h
new file mode 100644
index 00000000000..b33a48464e1
--- /dev/null
+++ b/source/blender/compositor/COM_compositor.h
@@ -0,0 +1,304 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+#include "DNA_node_types.h"
+
+/**
+ * @defgroup Model The data model of the compositor
+ * @defgroup Memory The memory management stuff
+ * @defgroup Execution The execution logic
+ * @defgroup Conversion Conversion logic
+ * @defgroup Node All nodes of the compositor
+ * @defgroup Operation All operations of the compositor
+ *
+ * @mainpage Introduction of the Blender Compositor
+ *
+ * @section bcomp Blender compositor
+ * This project redesigns the interals of Blender's compositor. The project has been executed in 2011 by At Mind.
+ * At Mind is a technology company located in Amsterdam, The Netherlands.
+ * The project has been crowdfunded. This code has been released under GPL2 to be used in Blender.
+ *
+ * @section goals The goals of the project
+ * the new compositor has 2 goals.
+ * - Make a faster compositor (speed of calculation)
+ * - Make the compositor work faster for you (workflow)
+ *
+ * @section speed Faster compositor
+ * The speedup has been done by making better use of the hardware Blenders is working on. The previous compositor only
+ * used a single threaded model to calculate a node. The only exception to this is the Defocus node.
+ * Only when it is possible to calculate two full nodes in parallel a second thread was used.
+ * Current workstations have 8-16 threads available, and most of the time these are idle.
+ *
+ * In the new compositor we want to use as much of threads as possible. Even new OpenCL capable GPU-hardware can be
+ * used for calculation.
+ *
+ * @section workflow Work faster
+ * The previous compositor only showed the final image. The compositor could wait a long time before seeing the result
+ * of his work. The new compositor will work in a way that it will focus on getting information back to the user.
+ * It will prioritise its work to get earlier user feedback.
+ *
+ * @page memory Memory model
+ * The main issue is the type of memory model to use. Blender is used by consumers and professionals.
+ * Ranging from low-end machines to very high-end machines.
+ * The system should work on high-end machines and on low-end machines.
+ *
+ *
+ * @page executing Executing
+ * @section prepare Prepare execution
+ *
+ * during the preparation of the execution All ReadBufferOperation will receive an offset.
+ * This offset is used during execution as an optimization trick
+ * Next all operations will be initialized for execution @see NodeOperation.initExecution
+ * Next all ExecutionGroup's will be initialized for execution @see ExecutionGroup.initExecution
+ * this all is controlled from @see ExecutionSystem.execute
+ *
+ * @section priority Render priority
+ * Render priority is an priority of an output node. A user has a different need of Render priorities of output nodes
+ * than during editing.
+ * for example. the Active ViewerNode has top priority during editing, but during rendering a CompositeNode has.
+ * All NodeOperation has a setting for their renderpriority, but only for output NodeOperation these have effect.
+ * In ExecutionSystem.execute all priorities are checked. For every priority the ExecutionGroup's are check if the
+ * priority do match.
+ * When match the ExecutionGroup will be executed (this happens in serial)
+ *
+ * @see ExecutionSystem.execute control of the Render priority
+ * @see NodeOperation.getRenderPriority receive the render priority
+ * @see ExecutionGroup.execute the main loop to execute a whole ExecutionGroup
+ *
+ * @section order Chunk order
+ *
+ * When a ExecutionGroup is executed, first the order of chunks are determined.
+ * The settings are stored in the ViewerNode inside the ExecutionGroup. ExecutionGroups that have no viewernode,
+ * will use a default one.
+ * There are several possible chunk orders
+ * - [@ref OrderOfChunks.COM_TO_CENTER_OUT]: Start calculating from a configurable point and order by nearest chunk
+ * - [@ref OrderOfChunks.COM_TO_RANDOM]: Randomize all chunks.
+ * - [@ref OrderOfChunks.COM_TO_TOP_DOWN]: Start calculation from the bottom to the top of the image
+ * - [@ref OrderOfChunks.COM_TO_RULE_OF_THIRDS]: Experimental order based on 9 hotspots in the image
+ *
+ * When the chunkorder is determined, the first few chunks will be checked if they can be scheduled.
+ * Chunks can have three states:
+ * - [@ref ChunkExecutionState.COM_ES_NOT_SCHEDULED]: Chunk is not yet scheduled, or dependacies are not met
+ * - [@ref ChunkExecutionState.COM_ES_SCHEDULED]: All dependacies are met, chunk is scheduled, but not finished
+ * - [@ref ChunkExecutionState.COM_ES_EXECUTED]: Chunk is finished
+ *
+ * @see ExecutionGroup.execute
+ * @see ViewerBaseOperation.getChunkOrder
+ * @see OrderOfChunks
+ *
+ * @section interest Area of interest
+ * An ExecutionGroup can have dependancies to other ExecutionGroup's. Data passing from one ExecutionGroup to another
+ * one are stored in 'chunks'.
+ * If not all input chunks are available the chunk execution will not be scheduled.
+ * <pre>
+ * +-------------------------------------+ +--------------------------------------+
+ * | ExecutionGroup A | | ExecutionGroup B |
+ * | +----------------+ +-------------+ | | +------------+ +-----------------+ |
+ * | | NodeOperation a| | WriteBuffer | | | | ReadBuffer | | ViewerOperation | |
+ * | | *==* Operation | | | | Operation *===* | |
+ * | | | | | | | | | | | |
+ * | +----------------+ +-------------+ | | +------------+ +-----------------+ |
+ * | | | | | |
+ * +--------------------------------|----+ +---|----------------------------------+
+ * | |
+ * | |
+ * +---------------------------+
+ * | MemoryProxy |
+ * | +----------+ +---------+ |
+ * | | Chunk a | | Chunk b | |
+ * | | | | | |
+ * | +----------+ +---------+ |
+ * | |
+ * +---------------------------+
+ * </pre>
+ *
+ * In the above example ExecutionGroup B has an outputoperation (ViewerOperation) and is being executed.
+ * The first chunk is evaluated [@ref ExecutionGroup.scheduleChunkWhenPossible],
+ * but not all input chunks are available. The relevant ExecutionGroup (that can calculate the missing chunks;
+ * ExecutionGroup A) is asked to calculate the area ExecutionGroup B is missing.
+ * [@ref ExecutionGroup.scheduleAreaWhenPossible]
+ * ExecutionGroup B checks what chunks the area spans, and tries to schedule these chunks.
+ * If all input data is available these chunks are scheduled [@ref ExecutionGroup.scheduleChunk]
+ *
+ * <pre>
+ *
+ * +-------------------------+ +----------------+ +----------------+
+ * | ExecutionSystem.execute | | ExecutionGroup | | ExecutionGroup |
+ * +-------------------------+ | (B) | | (A) |
+ * O +----------------+ +----------------+
+ * O | |
+ * O ExecutionGroup.execute | |
+ * O------------------------------->O |
+ * . O |
+ * . O-------\ |
+ * . . | ExecutionGroup.scheduleChunkWhenPossible
+ * . . O----/ (*) |
+ * . . O |
+ * . . O |
+ * . . O ExecutionGroup.scheduleAreaWhenPossible|
+ * . . O---------------------------------------->O
+ * . . . O----------\ ExecutionGroup.scheduleChunkWhenPossible
+ * . . . . | (*)
+ * . . . . O-------/
+ * . . . . O
+ * . . . . O
+ * . . . . O-------\ ExecutionGroup.scheduleChunk
+ * . . . . . |
+ * . . . . . O----/
+ * . . . . O<=O
+ * . . . O<=O
+ * . . . O
+ * . . O<========================================O
+ * . . O |
+ * . O<=O |
+ * . O |
+ * . O |
+ * </pre>
+ *
+ * This happens until all chunks of (ExecutionGroup B) are finished executing or the user break's the process.
+ *
+ * NodeOperation like the ScaleOperation can influence the area of interest by reimplementing the
+ * [@ref NodeOperation.determineAreaOfInterest] method
+ *
+ * <pre>
+ *
+ * +--------------------------+ +---------------------------------+
+ * | ExecutionGroup A | | ExecutionGroup B |
+ * | | | |
+ * +--------------------------+ +---------------------------------+
+ * Needed chunks from ExecutionGroup A | Chunk of ExecutionGroup B (to be evaluated)
+ * +-------+ +-------+ | +--------+
+ * |Chunk 1| |Chunk 2| +----------------+ |Chunk 1 |
+ * | | | | | ScaleOperation | | |
+ * +-------+ +-------+ +----------------+ +--------+
+ *
+ * +-------+ +-------+
+ * |Chunk 3| |Chunk 4|
+ * | | | |
+ * +-------+ +-------+
+ *
+ * </pre>
+ *
+ * @see ExecutionGroup.execute Execute a complete ExecutionGroup. Halts until finished or breaked by user
+ * @see ExecutionGroup.scheduleChunkWhenPossible Tries to schedule a single chunk,
+ * checks if all input data is available. Can trigger dependant chunks to be calculated
+ * @see ExecutionGroup.scheduleAreaWhenPossible Tries to schedule an area. This can be multiple chunks
+ * (is called from [@ref ExecutionGroup.scheduleChunkWhenPossible])
+ * @see ExecutionGroup.scheduleChunk Schedule a chunk on the WorkScheduler
+ * @see NodeOperation.determineDependingAreaOfInterest Influence the area of interest of a chunk.
+ * @see WriteBufferOperation NodeOperation to write to a MemoryProxy/MemoryBuffer
+ * @see ReadBufferOperation NodeOperation to read from a MemoryProxy/MemoryBuffer
+ * @see MemoryProxy proxy for information about memory image (a image consist out of multiple chunks)
+ * @see MemoryBuffer Allocated memory for a single chunk
+ *
+ * @section workscheduler WorkScheduler
+ * the WorkScheduler is implemented as a static class. the responsibility of the WorkScheduler is to balance
+ * WorkPackages to the available and free devices.
+ * the workscheduler can work in 2 states. For witching these between the state you need to recompile blender
+ *
+ * @subsection multithread Multi threaded
+ * Default the workscheduler will place all work as WorkPackage in a queue.
+ * For every CPUcore a working thread is created. These working threads will ask the WorkScheduler if there is work
+ * for a specific Device.
+ * the workscheduler will find work for the device and the device will be asked to execute the WorkPackage
+
+ * @subsection singlethread Single threaded
+ * For debugging reasons the multi-threading can be disabled. This is done by changing the COM_CURRENT_THREADING_MODEL
+ * to COM_TM_NOTHREAD. When compiling the workscheduler
+ * will be changes to support no threading and run everything on the CPU.
+ *
+ * @section devices Devices
+ * A Device within the compositor context is a Hardware component that can used to calculate chunks.
+ * This chunk is encapseled in a WorkPackage.
+ * the WorkScheduler controls the devices and selects the device where a WorkPackage will be calculated.
+ *
+ * @subsection WS_Devices Workscheduler
+ * The WorkScheduler controls all Devices. When initializing the compositor the WorkScheduler selects
+ * all devices that will be used during compositor.
+ * There are two types of Devices, CPUDevice and OpenCLDevice.
+ * When an ExecutionGroup schedules a Chunk the schedule method of the WorkScheduler
+ * The Workscheduler determines if the chunk can be run on an OpenCLDevice
+ * (and that there are available OpenCLDevice). If this is the case the chunk will be added to the worklist for
+ * OpenCLDevice's
+ * otherwise the chunk will be added to the worklist of CPUDevices.
+ *
+ * A thread will read the work-list and sends a workpackage to its device.
+ *
+ * @see WorkScheduler.schedule method that is called to schedule a chunk
+ * @see Device.execute method called to execute a chunk
+ *
+ * @subsection CPUDevice CPUDevice
+ * When a CPUDevice gets a WorkPackage the Device will get the inputbuffer that is needed to calculate the chunk.
+ * Allocation is already done by the ExecutionGroup.
+ * The outputbuffer of the chunk is being created.
+ * The OutputOperation of the ExecutionGroup is called to execute the area of the outputbuffer.
+ *
+ * @see ExecutionGroup
+ * @see NodeOperation.executeRegion executes a single chunk of a NodeOperation
+ * @see CPUDevice.execute
+ *
+ * @subsection GPUDevice OpenCLDevice
+ *
+ * To be completed!
+ * @see NodeOperation.executeOpenCLRegion
+ * @see OpenCLDevice.execute
+ *
+ * @section executePixel executing a pixel
+ * Finally the last step, the node functionality :)
+
+ * @page newnode Creating new nodes
+ */
+
+/**
+ * @brief The main method that is used to execute the compositor tree.
+ * It can be executed during editing (blenkernel/node.c) or rendering
+ * (renderer/pipeline.c)
+ *
+ * @param editingtree [struct bNodeTree]
+ * reference to the compositor editing tree
+ *
+ * @param rendering [true false]
+ * This parameter determines whether the function is called from rendering (true) or editing (false).
+ * based on this setting the system will work differently:
+ * - during rendering only Composite & the File output node will be calculated
+ * @see NodeOperation.isOutputProgram(int rendering) of the specific operations
+ *
+ * - during editing all output nodes will be calculated
+ * @see NodeOperation.isOutputProgram(int rendering) of the specific operations
+ *
+ * - another quality setting can be used bNodeTree. The quality is determined by the bNodeTree fields.
+ * quality can be modified by the user from within the node panels.
+ * @see bNodeTree.edit_quality
+ * @see bNodeTree.render_quality
+ *
+ * - output nodes can have different priorities in the WorkScheduler.
+ * This is implemented in the COM_execute function.
+ */
+void COM_execute(bNodeTree *editingtree, int rendering);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/compositor/COM_defines.h b/source/blender/compositor/COM_defines.h
new file mode 100644
index 00000000000..df807091cb8
--- /dev/null
+++ b/source/blender/compositor/COM_defines.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_defines_h_
+#define _COM_defines_h_
+
+/**
+ * @brief possible data types for SocketConnection
+ * @ingroup Model
+ */
+typedef enum DataType {
+ /** @brief Unknown data type (or not yet known) */
+ COM_DT_UNKNOWN = 0,
+ /** @brief Value data type */
+ COM_DT_VALUE = 1,
+ /** @brief Vector data type */
+ COM_DT_VECTOR = 2,
+ /** @brief Color data type */
+ COM_DT_COLOR = 4
+} DataType;
+
+/**
+ * @brief Possible quality settings
+ * @see CompositorContext.quality
+ * @ingroup Execution
+ */
+typedef enum CompositorQuality {
+ /** @brief High quality setting */
+ COM_QUALITY_HIGH = 0 ,
+ /** @brief Medium quality setting */
+ COM_QUALITY_MEDIUM = 1,
+ /** @brief Low quality setting */
+ COM_QUALITY_LOW = 2
+} CompositorQuality;
+
+// configurable items
+
+// chunk size determination
+#define COM_PREVIEW_SIZE 140.0f
+#define COM_OPENCL_ENABLED
+#define COM_PREVIEW_ENABLED
+// workscheduler threading models
+/**
+ * COM_TM_QUEUE is a multithreaded model, which uses the BLI_thread_queue pattern. This is the default option.
+ */
+#define COM_TM_QUEUE 1
+
+/**
+ * COM_TM_NOTHREAD is a single threading model, everything is executed in the caller thread. easy for debugging
+ */
+#define COM_TM_NOTHREAD 0
+
+/**
+ * COM_CURRENT_THREADING_MODEL can be one of the above, COM_TM_QUEUE is currently default.
+ */
+#define COM_CURRENT_THREADING_MODEL COM_TM_QUEUE
+// chunk order
+/**
+ * @brief The order of chunks to be scheduled
+ * @ingroup Execution
+ */
+typedef enum OrderOfChunks {
+ /** @brief order from a distance to centerX/centerY */
+ COM_TO_CENTER_OUT = 0,
+ /** @brief order randomly */
+ COM_TO_RANDOM = 1,
+ /** @brief no ordering */
+ COM_TO_TOP_DOWN = 2,
+ /** @brief experimental ordering with 9 hotspots */
+ COM_TO_RULE_OF_THIRDS = 3
+} OrderOfChunks;
+
+#define COM_RULE_OF_THIRDS_DIVIDER 100.0f
+
+#define COM_NUMBER_OF_CHANNELS 4
+
+#define COM_DEFAULT_RESOLUTION_WIDTH 640
+#define COM_DEFAULT_RESOLUTION_HEIGHT 480
+
+#endif
diff --git a/source/blender/compositor/SConscript b/source/blender/compositor/SConscript
new file mode 100644
index 00000000000..af0d4109acc
--- /dev/null
+++ b/source/blender/compositor/SConscript
@@ -0,0 +1,14 @@
+#!/usr/bin/python
+Import ('env')
+defs = ['GLEW_STATIC']
+
+sources = env.Glob('intern/*.cpp') + env.Glob('nodes/*.cpp') + env.Glob('operations/*.cpp')
+
+incs = '. nodes intern operations ../blenlib ../blenkernel ../makesdna ../render/extern/include ../render/intern/include'
+incs += ' ../makesrna ../blenloader ../../../intern/guardedalloc ../imbuf ../windowmanager '
+incs += '../opencl ../nodes ../nodes/intern ../nodes/composite '
+
+if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
+ incs += ' ' + env['BF_PTHREADS_INC']
+
+env.BlenderLib ( 'bf_composite', sources, Split(incs), defines=defs, libtype=['core'], priority = [191] )
diff --git a/source/blender/compositor/intern/COM_CPUDevice.cpp b/source/blender/compositor/intern/COM_CPUDevice.cpp
new file mode 100644
index 00000000000..43ec892985a
--- /dev/null
+++ b/source/blender/compositor/intern/COM_CPUDevice.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CPUDevice.h"
+
+void CPUDevice::execute(WorkPackage *work)
+{
+ const unsigned int chunkNumber = work->getChunkNumber();
+ ExecutionGroup * executionGroup = work->getExecutionGroup();
+ rcti rect;
+
+ executionGroup->determineChunkRect(&rect, chunkNumber);
+ MemoryBuffer ** inputBuffers = executionGroup->getInputBuffers(chunkNumber);
+ MemoryBuffer * outputBuffer = executionGroup->allocateOutputBuffer(chunkNumber, &rect);
+
+ executionGroup->getOutputNodeOperation()->executeRegion(&rect, chunkNumber, inputBuffers);
+
+ executionGroup->finalizeChunkExecution(chunkNumber, inputBuffers);
+ if (outputBuffer != NULL) {
+ outputBuffer->setCreatedState();
+ }
+}
+
diff --git a/source/blender/compositor/intern/COM_CPUDevice.h b/source/blender/compositor/intern/COM_CPUDevice.h
new file mode 100644
index 00000000000..f577e2b8926
--- /dev/null
+++ b/source/blender/compositor/intern/COM_CPUDevice.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CPUDevice_h
+#define _COM_CPUDevice_h
+
+#include "COM_Device.h"
+
+/**
+ * @brief class representing a CPU device.
+ * @note for every hardware thread in the system a CPUDevice instance will exist in the workscheduler
+ */
+class CPUDevice: public Device {
+public:
+ /**
+ * @brief execute a WorkPackage
+ * @param work the WorkPackage to execute
+ */
+ void execute(WorkPackage *work);
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_ChannelInfo.cpp b/source/blender/compositor/intern/COM_ChannelInfo.cpp
new file mode 100644
index 00000000000..7dafee5f955
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ChannelInfo.cpp
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ChannelInfo.h"
+#include "COM_defines.h"
+#include <stdio.h>
+
+/**
+ * @brief create new ChannelInfo instance and sets the defaults.
+ */
+ChannelInfo::ChannelInfo()
+{
+ this->number = 0;
+ this->premultiplied = true;
+ this->type = COM_CT_UNUSED;
+}
diff --git a/source/blender/compositor/intern/COM_ChannelInfo.h b/source/blender/compositor/intern/COM_ChannelInfo.h
new file mode 100644
index 00000000000..40933bce6f5
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ChannelInfo.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ChannelInfo_h
+#define _COM_ChannelInfo_h
+
+#include <vector>
+#include "BKE_text.h"
+#include <string>
+#include "DNA_node_types.h"
+#include "BLI_rect.h"
+
+using namespace std;
+
+/**
+ * @brief List of possible channel types
+ * @ingroup Model
+ */
+typedef enum ChannelType {
+ COM_CT_ColorComponent /** @brief this channel is contains color information. Specific used is determined by channelnumber, and in the future color space */,
+ COM_CT_Alpha /** @brief this channel is contains transparency value */,
+ COM_CT_Value /** @brief this channel is contains a value */,
+ COM_CT_X /** @brief this channel is contains a X value */,
+ COM_CT_Y /** @brief this channel is contains a Y value */,
+ COM_CT_Z /** @brief this channel is contains a Z value */,
+ COM_CT_W /** @brief this channel is contains a W value */,
+ COM_CT_UNUSED /** @brief this channel is unused */
+} ChannelType;
+
+/**
+ * @brief ChannelInfo holds information about a channel.
+ *
+ * Channels are transported from node to node via a SocketConnection.
+ * ChannelInfo holds specific setting of these channels in order that the to-node of the connection
+ * Can handle specific logic per channel setting.
+ *
+ * @note currently this is not used, but a future place to implement color spacing and other things.
+ * @ingroup Model
+ */
+class ChannelInfo {
+private:
+ /**
+ * @brief the channel number, in the connection. [0-3]
+ */
+ int number;
+
+ /**
+ * @brief type of channel
+ */
+ ChannelType type;
+
+ /**
+ * @brieg Is this value in this channel premultiplied with its alpha
+ * @note only valid if type = ColorComponent;
+ */
+ bool premultiplied;
+
+// /**
+// * Color space of this value.
+// * only valid when type = ColorComponent;
+// */
+// string colorspacename;
+
+public:
+ /**
+ * @brief creates a new ChannelInfo and set default values
+ */
+ ChannelInfo();
+
+ /**
+ * @brief set the index of this channel in the SocketConnection
+ */
+ void setNumber(const int number) { this->number = number; }
+
+ /**
+ * @brief get the index of this channel in the SocketConnection
+ */
+ const int getNumber() const {return this->number; }
+
+ /**
+ * @brief set the type of channel
+ */
+ void setType(const ChannelType type) { this->type = type; }
+
+ /**
+ * @brief get the type of channel
+ */
+ const ChannelType getType() const {return this->type; }
+
+ /**
+ * @brief set the premultiplicatioin of this channel
+ */
+ void setPremultiplied(const bool premultiplied) { this->premultiplied = premultiplied; }
+
+ /**
+ * @brief is this channel premultiplied
+ */
+ const bool isPremultiplied() const {return this->premultiplied;}
+};
+
+
+#endif
diff --git a/source/blender/compositor/intern/COM_ChunkOrder.cpp b/source/blender/compositor/intern/COM_ChunkOrder.cpp
new file mode 100644
index 00000000000..387e4a6ba70
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ChunkOrder.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ChunkOrder.h"
+#include "BLI_math.h"
+
+ChunkOrder::ChunkOrder()
+{
+ this->distance = 0.0;
+ this->number = 0;
+ this->x = 0;
+ this->y = 0;
+}
+
+void ChunkOrder::determineDistance(ChunkOrderHotspot **hotspots, unsigned int numberOfHotspots)
+{
+ unsigned int index;
+ double distance = MAXFLOAT;
+ for (index = 0 ; index < numberOfHotspots ; index ++) {
+ ChunkOrderHotspot *hotspot = hotspots[index];
+ double ndistance = hotspot->determineDistance(this->x, this->y);
+ if (ndistance < distance) {
+ distance = ndistance;
+ }
+ }
+ this->distance = distance;
+}
+
+bool operator<(const ChunkOrder& a, const ChunkOrder& b)
+{
+ return a.distance < b.distance;
+}
diff --git a/source/blender/compositor/intern/COM_ChunkOrder.h b/source/blender/compositor/intern/COM_ChunkOrder.h
new file mode 100644
index 00000000000..3dbb4ae8080
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ChunkOrder.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ChunkOrder_h_
+#define _COM_ChunkOrder_h_
+
+#include "COM_ChunkOrderHotspot.h"
+class ChunkOrder {
+private:
+ unsigned int number;
+ int x;
+ int y;
+ double distance;
+public:
+ ChunkOrder();
+ void determineDistance(ChunkOrderHotspot **hotspots, unsigned int numberOfHotspots);
+ friend bool operator<(const ChunkOrder& a, const ChunkOrder& b);
+
+ void setChunkNumber(unsigned int chunknumber) {this->number = chunknumber;}
+ void setX(int x) {this->x = x;}
+ void setY(int y) {this->y = y;}
+ unsigned int getChunkNumber() {return this->number;}
+ double getDistance() {return this->distance;}
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_ChunkOrderHotspot.cpp b/source/blender/compositor/intern/COM_ChunkOrderHotspot.cpp
new file mode 100644
index 00000000000..94110f0bcfe
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ChunkOrderHotspot.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ChunkOrderHotspot.h"
+#include <math.h>
+
+ChunkOrderHotspot::ChunkOrderHotspot(int x, int y, float addition)
+{
+ this->x = x;
+ this->y = y;
+ this->addition = addition;
+}
+
+double ChunkOrderHotspot::determineDistance(int x, int y)
+{
+ int dx = x-this->x;
+ int dy = y-this->y;
+ double result = sqrt((double)(dx*dx+dy*dy));
+ result += this->addition;
+ return result;
+}
diff --git a/source/blender/compositor/intern/COM_ChunkOrderHotspot.h b/source/blender/compositor/intern/COM_ChunkOrderHotspot.h
new file mode 100644
index 00000000000..ceb5934a7df
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ChunkOrderHotspot.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ChunkOrderHotSpot_h_
+#define _COM_ChunkOrderHotSpot_h_
+
+class ChunkOrderHotspot {
+private:
+ int x;
+ int y;
+ float addition;
+
+public:
+ ChunkOrderHotspot(int x, int y, float addition);
+ double determineDistance(int x, int y);
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_CompositorContext.cpp b/source/blender/compositor/intern/COM_CompositorContext.cpp
new file mode 100644
index 00000000000..911de822f80
--- /dev/null
+++ b/source/blender/compositor/intern/COM_CompositorContext.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CompositorContext.h"
+#include "COM_defines.h"
+#include <stdio.h>
+
+CompositorContext::CompositorContext()
+{
+ this->scene = NULL;
+ this->quality = COM_QUALITY_HIGH;
+ this->hasActiveOpenCLDevices = false;
+}
+
+const int CompositorContext::getFramenumber() const
+{
+ if (this->scene) {
+ return this->scene->r.cfra;
+ }
+ else {
+ return -1; /* this should never happen */
+ }
+}
+
+const int CompositorContext::isColorManaged() const
+{
+ if (this->scene) {
+ return this->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+ }
+ else {
+ return 0; /* this should never happen */
+ }
+}
diff --git a/source/blender/compositor/intern/COM_CompositorContext.h b/source/blender/compositor/intern/COM_CompositorContext.h
new file mode 100644
index 00000000000..2889f43290e
--- /dev/null
+++ b/source/blender/compositor/intern/COM_CompositorContext.h
@@ -0,0 +1,147 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CompositorContext_h
+#define _COM_CompositorContext_h
+
+#include <vector>
+#include "BKE_text.h"
+#include <string>
+#include "DNA_node_types.h"
+#include "BLI_rect.h"
+#include "DNA_scene_types.h"
+#include "COM_defines.h"
+
+/**
+ * @brief Overall context of the compositor
+ */
+class CompositorContext {
+private:
+ /**
+ * @brief The rendering field describes if we are rendering (F12) or if we are editing (Node editor)
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * @see ExecutionSystem
+ */
+ bool rendering;
+
+ /**
+ * @brief The quality of the composite.
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * @see ExecutionSystem
+ */
+ CompositorQuality quality;
+
+ /**
+ * @brief Reference to the scene that is being composited.
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * @see ExecutionSystem
+ */
+ Scene *scene;
+
+ /**
+ * @brief reference to the bNodeTree
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * @see ExecutionSystem
+ */
+ bNodeTree *bnodetree;
+
+ /**
+ * @brief does this system have active opencl devices?
+ */
+ bool hasActiveOpenCLDevices;
+
+public:
+ /**
+ * @brief constructor initializes the context with default values.
+ */
+ CompositorContext();
+
+ /**
+ * @brief set the rendering field of the context
+ */
+ void setRendering(bool rendering) { this->rendering = rendering; }
+
+ /**
+ * @brief get the rendering field of the context
+ */
+ bool isRendering() const {return this->rendering;}
+
+ /**
+ * @brief set the scene of the context
+ */
+ void setScene(Scene *scene) {this->scene = scene;}
+
+ /**
+ * @brief set the bnodetree of the context
+ */
+ void setbNodeTree(bNodeTree *bnodetree) {this->bnodetree = bnodetree;}
+
+ /**
+ * @brief get the bnodetree of the context
+ */
+ const bNodeTree * getbNodeTree() const {return this->bnodetree;}
+
+ /**
+ * @brief get the scene of the context
+ */
+ const Scene *getScene() const {return this->scene;}
+
+ /**
+ * @brief set the quality
+ */
+ void setQuality(CompositorQuality quality) {
+ this->quality = quality;
+ }
+
+ /**
+ * @brief get the quality
+ */
+ const CompositorQuality getQuality() const {
+ return quality;
+ }
+
+ /**
+ * @brief get the current framenumber of the scene in this context
+ */
+ const int getFramenumber() const;
+
+ /**
+ * @brief has this system active openclDevices?
+ */
+ const bool getHasActiveOpenCLDevices() const {
+ return this->hasActiveOpenCLDevices;
+ }
+
+ /**
+ * @brief set has this system active openclDevices?
+ */
+ void setHasActiveOpenCLDevices(bool hasAvtiveOpenCLDevices) {
+ this->hasActiveOpenCLDevices = hasAvtiveOpenCLDevices;
+ }
+
+ int getChunksize() {return this->getbNodeTree()->chunksize;}
+
+ const int isColorManaged() const;
+};
+
+
+#endif
diff --git a/source/blender/compositor/intern/COM_Converter.cpp b/source/blender/compositor/intern/COM_Converter.cpp
new file mode 100644
index 00000000000..3cb297801ca
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Converter.cpp
@@ -0,0 +1,501 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Converter.h"
+#include "BKE_node.h"
+#include "COM_CompositorNode.h"
+#include "COM_RenderLayersNode.h"
+#include "COM_ColorToBWNode.h"
+#include "string.h"
+#include "COM_SocketConnection.h"
+#include "COM_ConvertColourToValueProg.h"
+#include "COM_ConvertValueToColourProg.h"
+#include "COM_ConvertColorToVectorOperation.h"
+#include "COM_ConvertValueToVectorOperation.h"
+#include "COM_ConvertVectorToColorOperation.h"
+#include "COM_ConvertVectorToValueOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_MixNode.h"
+#include "COM_MuteNode.h"
+#include "COM_TranslateNode.h"
+#include "COM_RotateNode.h"
+#include "COM_ScaleNode.h"
+#include "COM_FlipNode.h"
+#include "COM_IDMaskNode.h"
+#include "COM_FilterNode.h"
+#include "COM_BrightnessNode.h"
+#include "COM_SeparateRGBANode.h"
+#include "COM_CombineRGBANode.h"
+#include "COM_SeparateHSVANode.h"
+#include "COM_CombineHSVANode.h"
+#include "COM_SeparateYUVANode.h"
+#include "COM_CombineYUVANode.h"
+#include "COM_SeparateYCCANode.h"
+#include "COM_CombineYCCANode.h"
+#include "COM_AlphaOverNode.h"
+#include "COM_ColorBalanceNode.h"
+#include "COM_ViewerNode.h"
+#include "COM_SplitViewerNode.h"
+#include "COM_InvertNode.h"
+#include "COM_GroupNode.h"
+#include "COM_NormalNode.h"
+#include "COM_NormalizeNode.h"
+#include "COM_ImageNode.h"
+#include "COM_BokehImageNode.h"
+#include "COM_ColorCurveNode.h"
+#include "COM_VectorCurveNode.h"
+#include "COM_SetAlphaNode.h"
+#include "COM_ConvertAlphaNode.h"
+#include "COM_MapUVNode.h"
+#include "COM_DisplaceNode.h"
+#include "COM_MathNode.h"
+#include "COM_HueSaturationValueNode.h"
+#include "COM_HueSaturationValueCorrectNode.h"
+#include "COM_ColorCorrectionNode.h"
+#include "COM_BoxMaskNode.h"
+#include "COM_EllipseMaskNode.h"
+#include "COM_GammaNode.h"
+#include "COM_ColorRampNode.h"
+#include "COM_DifferenceMatteNode.h"
+#include "COM_LuminanceMatteNode.h"
+#include "COM_DistanceMatteNode.h"
+#include "COM_ChromaMatteNode.h"
+#include "COM_ColorMatteNode.h"
+#include "COM_ChannelMatteNode.h"
+#include "COM_BlurNode.h"
+#include "COM_BokehBlurNode.h"
+#include "COM_DilateErodeNode.h"
+#include "COM_TranslateOperation.h"
+#include "COM_LensDistortionNode.h"
+#include "COM_TextureNode.h"
+#include "COM_ColorNode.h"
+#include "COM_ValueNode.h"
+#include "COM_TimeNode.h"
+#include "COM_DirectionalBlurNode.h"
+#include "COM_ZCombineNode.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ScaleOperation.h"
+#include "COM_ExecutionSystemHelper.h"
+#include "COM_TonemapNode.h"
+#include "COM_SwitchNode.h"
+#include "COM_GlareNode.h"
+#include "COM_MovieClipNode.h"
+#include "COM_ColorSpillNode.h"
+#include "COM_OutputFileNode.h"
+#include "COM_MapValueNode.h"
+#include "COM_TransformNode.h"
+#include "COM_Stabilize2dNode.h"
+#include "COM_BilateralBlurNode.h"
+#include "COM_VectorBlurNode.h"
+#include "COM_MovieDistortionNode.h"
+#include "COM_ViewLevelsNode.h"
+#include "COM_DefocusNode.h"
+#include "COM_DoubleEdgeMaskNode.h"
+#include "COM_CropNode.h"
+
+Node *Converter::convert(bNode *bNode)
+{
+ Node * node;
+
+ if (bNode->flag & NODE_MUTED) {
+ node = new MuteNode(bNode);
+ return node;
+ }
+
+ switch (bNode->type) {
+ case CMP_NODE_COMPOSITE:
+ node = new CompositorNode(bNode);
+ break;
+ case CMP_NODE_R_LAYERS:
+ node = new RenderLayersNode(bNode);
+ break;
+ case CMP_NODE_TEXTURE:
+ node = new TextureNode(bNode);
+ break;
+ case CMP_NODE_RGBTOBW:
+ node = new ColourToBWNode(bNode);
+ break;
+ case CMP_NODE_MIX_RGB:
+ node = new MixNode(bNode);
+ break;
+ case CMP_NODE_TRANSLATE:
+ node = new TranslateNode(bNode);
+ break;
+ case CMP_NODE_SCALE:
+ node = new ScaleNode(bNode);
+ break;
+ case CMP_NODE_ROTATE:
+ node = new RotateNode(bNode);
+ break;
+ case CMP_NODE_FLIP:
+ node = new FlipNode(bNode);
+ break;
+ case CMP_NODE_FILTER:
+ node = new FilterNode(bNode);
+ break;
+ case CMP_NODE_ID_MASK:
+ node = new IDMaskNode(bNode);
+ break;
+ case CMP_NODE_BRIGHTCONTRAST:
+ node = new BrightnessNode(bNode);
+ break;
+ case CMP_NODE_SEPRGBA:
+ node = new SeparateRGBANode(bNode);
+ break;
+ case CMP_NODE_COMBRGBA:
+ node = new CombineRGBANode(bNode);
+ break;
+ case CMP_NODE_SEPHSVA:
+ node = new SeparateHSVANode(bNode);
+ break;
+ case CMP_NODE_COMBHSVA:
+ node = new CombineHSVANode(bNode);
+ break;
+ case CMP_NODE_SEPYUVA:
+ node = new SeparateYUVANode(bNode);
+ break;
+ case CMP_NODE_COMBYUVA:
+ node = new CombineYUVANode(bNode);
+ break;
+ case CMP_NODE_SEPYCCA:
+ node = new SeparateYCCANode(bNode);
+ break;
+ case CMP_NODE_COMBYCCA:
+ node = new CombineYCCANode(bNode);
+ break;
+ case CMP_NODE_ALPHAOVER:
+ node = new AlphaOverNode(bNode);
+ break;
+ case CMP_NODE_COLORBALANCE:
+ node = new ColorBalanceNode(bNode);
+ break;
+ case CMP_NODE_VIEWER:
+ node = new ViewerNode(bNode);
+ break;
+ case CMP_NODE_SPLITVIEWER:
+ node = new SplitViewerNode(bNode);
+ break;
+ case CMP_NODE_INVERT:
+ node = new InvertNode(bNode);
+ break;
+ case NODE_GROUP:
+ node = new GroupNode(bNode);
+ break;
+ case CMP_NODE_NORMAL:
+ node = new NormalNode(bNode);
+ break;
+ case CMP_NODE_NORMALIZE:
+ node = new NormalizeNode(bNode);
+ break;
+ case CMP_NODE_IMAGE:
+ node = new ImageNode(bNode);
+ break;
+ case CMP_NODE_SETALPHA:
+ node = new SetAlphaNode(bNode);
+ break;
+ case CMP_NODE_PREMULKEY:
+ node = new ConvertAlphaNode(bNode);
+ break;
+ case CMP_NODE_MATH:
+ node = new MathNode(bNode);
+ break;
+ case CMP_NODE_HUE_SAT:
+ node = new HueSaturationValueNode(bNode);
+ break;
+ case CMP_NODE_COLORCORRECTION:
+ node = new ColorCorrectionNode(bNode);
+ break;
+ case CMP_NODE_MASK_BOX:
+ node = new BoxMaskNode(bNode);
+ break;
+ case CMP_NODE_MASK_ELLIPSE:
+ node = new EllipseMaskNode(bNode);
+ break;
+ case CMP_NODE_GAMMA:
+ node = new GammaNode(bNode);
+ break;
+ case CMP_NODE_CURVE_RGB:
+ node = new ColorCurveNode(bNode);
+ break;
+ case CMP_NODE_CURVE_VEC:
+ node = new VectorCurveNode(bNode);
+ break;
+ case CMP_NODE_HUECORRECT:
+ node = new HueSaturationValueCorrectNode(bNode);
+ break;
+ case CMP_NODE_MAP_UV:
+ node = new MapUVNode(bNode);
+ break;
+ case CMP_NODE_DISPLACE:
+ node = new DisplaceNode(bNode);
+ break;
+ case CMP_NODE_VALTORGB:
+ node = new ColorRampNode(bNode);
+ break;
+ case CMP_NODE_DIFF_MATTE:
+ node = new DifferenceMatteNode(bNode);
+ break;
+ case CMP_NODE_LUMA_MATTE:
+ node = new LuminanceMatteNode(bNode);
+ break;
+ case CMP_NODE_DIST_MATTE:
+ node = new DistanceMatteNode(bNode);
+ break;
+ case CMP_NODE_CHROMA_MATTE:
+ node = new ChromaMatteNode(bNode);
+ break;
+ case CMP_NODE_COLOR_MATTE:
+ node = new ColorMatteNode(bNode);
+ break;
+ case CMP_NODE_CHANNEL_MATTE:
+ node = new ChannelMatteNode(bNode);
+ break;
+ case CMP_NODE_BLUR:
+ node = new BlurNode(bNode);
+ break;
+ case CMP_NODE_BOKEHIMAGE:
+ node = new BokehImageNode(bNode);
+ break;
+ case CMP_NODE_BOKEHBLUR:
+ node = new BokehBlurNode(bNode);
+ break;
+ case CMP_NODE_DILATEERODE:
+ node = new DilateErodeNode(bNode);
+ break;
+ case CMP_NODE_LENSDIST:
+ node = new LensDistortionNode(bNode);
+ break;
+ case CMP_NODE_RGB:
+ node = new ColorNode(bNode);
+ break;
+ case CMP_NODE_VALUE:
+ node = new ValueNode(bNode);
+ break;
+ case CMP_NODE_TIME:
+ node = new TimeNode(bNode);
+ break;
+ case CMP_NODE_DBLUR:
+ node = new DirectionalBlurNode(bNode);
+ break;
+ case CMP_NODE_ZCOMBINE:
+ node = new ZCombineNode(bNode);
+ break;
+ case CMP_NODE_TONEMAP:
+ node = new TonemapNode(bNode);
+ break;
+ case CMP_NODE_SWITCH:
+ node = new SwitchNode(bNode);
+ break;
+ case CMP_NODE_GLARE:
+ node = new GlareNode(bNode);
+ break;
+ case CMP_NODE_MOVIECLIP:
+ node = new MovieClipNode(bNode);
+ break;
+ case CMP_NODE_COLOR_SPILL:
+ node = new ColorSpillNode(bNode);
+ break;
+case CMP_NODE_OUTPUT_FILE:
+ node = new OutputFileNode(bNode);
+ break;
+ case CMP_NODE_MAP_VALUE:
+ node = new MapValueNode(bNode);
+ break;
+ case CMP_NODE_TRANSFORM:
+ node = new TransformNode(bNode);
+ break;
+ case CMP_NODE_STABILIZE2D:
+ node = new Stabilize2dNode(bNode);
+ break;
+ case CMP_NODE_BILATERALBLUR:
+ node = new BilateralBlurNode(bNode);
+ break;
+ case CMP_NODE_VECBLUR:
+ node = new VectorBlurNode(bNode);
+ break;
+ case CMP_NODE_MOVIEDISTORTION:
+ node = new MovieDistortionNode(bNode);
+ break;
+ case CMP_NODE_VIEW_LEVELS:
+ node = new ViewLevelsNode(bNode);
+ break;
+ case CMP_NODE_DEFOCUS:
+ node = new DefocusNode(bNode);
+ break;
+ case CMP_NODE_DOUBLEEDGEMASK:
+ node = new DoubleEdgeMaskNode(bNode);
+ break;
+ case CMP_NODE_CROP:
+ node = new CropNode(bNode);
+ break;
+ /* not inplemented yet */
+ default:
+ node = new MuteNode(bNode);
+ break;
+ }
+ return node;
+}
+void Converter::convertDataType(SocketConnection *connection, ExecutionSystem *system)
+{
+ OutputSocket *outputSocket = connection->getFromSocket();
+ InputSocket *inputSocket = connection->getToSocket();
+ DataType fromDatatype = outputSocket->getActualDataType();
+ DataType toDatatype = inputSocket->getActualDataType();
+ NodeOperation * converter = NULL;
+ if (fromDatatype == COM_DT_VALUE && toDatatype == COM_DT_COLOR) {
+ converter = new ConvertValueToColourProg();
+ }
+ else if (fromDatatype == COM_DT_VALUE && toDatatype == COM_DT_VECTOR) {
+ converter = new ConvertValueToVectorOperation();
+ }
+ else if (fromDatatype == COM_DT_COLOR && toDatatype == COM_DT_VALUE) {
+ converter = new ConvertColourToValueProg();
+ }
+ else if (fromDatatype == COM_DT_COLOR && toDatatype == COM_DT_VECTOR) {
+ converter = new ConvertColorToVectorOperation();
+ }
+ else if (fromDatatype == COM_DT_VECTOR && toDatatype == COM_DT_VALUE) {
+ converter = new ConvertVectorToValueOperation();
+ }
+ else if (fromDatatype == COM_DT_VECTOR && toDatatype == COM_DT_COLOR) {
+ converter = new ConvertVectorToColorOperation();
+ }
+ if (converter != NULL) {
+ inputSocket->relinkConnections(converter->getInputSocket(0));
+ ExecutionSystemHelper::addLink(system->getConnections(), converter->getOutputSocket(), inputSocket);
+ system->addOperation(converter);
+ }
+}
+
+void Converter::convertResolution(SocketConnection *connection, ExecutionSystem *system)
+{
+ InputSocketResizeMode mode = connection->getToSocket()->getResizeMode();
+
+ NodeOperation * toOperation = (NodeOperation*)connection->getToNode();
+ const float toWidth = toOperation->getWidth();
+ const float toHeight = toOperation->getHeight();
+ NodeOperation * fromOperation = (NodeOperation*)connection->getFromNode();
+ const float fromWidth = fromOperation->getWidth();
+ const float fromHeight = fromOperation->getHeight();
+ bool doCenter = false;
+ bool doScale = false;
+ float addX= (toWidth-fromWidth)/2.0f;
+ float addY = (toHeight-fromHeight)/2.0f;
+ float scaleX=0;
+ float scaleY=0;
+
+ switch (mode) {
+ case COM_SC_NO_RESIZE:
+ break;
+ case COM_SC_CENTER:
+ doCenter = true;
+ break;
+ case COM_SC_FIT_WIDTH:
+ doCenter = true;
+ doScale = true;
+ scaleX = scaleY = toWidth/fromWidth;
+ break;
+ case COM_SC_FIT_HEIGHT:
+ doCenter = true;
+ doScale = true;
+ scaleX = scaleY = toHeight/fromHeight;
+ break;
+ case COM_SC_FIT:
+ doCenter = true;
+ doScale = true;
+ scaleX = toWidth/fromWidth;
+ scaleY = toHeight/fromHeight;
+ if (scaleX < scaleY) {
+ scaleX = scaleY;
+ }
+ else {
+ scaleY = scaleX;
+ }
+ break;
+ case COM_SC_STRETCH:
+ doCenter = true;
+ doScale = true;
+ scaleX = toWidth/fromWidth;
+ scaleY = toHeight/fromHeight;
+ break;
+
+ }
+
+ if (doCenter) {
+ NodeOperation *first = NULL;
+ SocketConnection *c;
+ ScaleOperation * scaleOperation = NULL;
+ if (doScale) {
+ scaleOperation = new ScaleOperation();
+ first = scaleOperation;
+ SetValueOperation * sxop = new SetValueOperation();
+ sxop->setValue(scaleX);
+ c = ExecutionSystemHelper::addLink(system->getConnections(), sxop->getOutputSocket(), scaleOperation->getInputSocket(1));
+ c->setIgnoreResizeCheck(true);
+ SetValueOperation * syop = new SetValueOperation();
+ syop->setValue(scaleY);
+ c = ExecutionSystemHelper::addLink(system->getConnections(), syop->getOutputSocket(), scaleOperation->getInputSocket(2));
+ c->setIgnoreResizeCheck(true);
+ system->addOperation(sxop);
+ system->addOperation(syop);
+
+ unsigned int resolution[2] = {fromWidth, fromHeight};
+ scaleOperation->setResolution(resolution);
+ sxop->setResolution(resolution);
+ syop->setResolution(resolution);
+ system->addOperation(scaleOperation);
+
+ c->setIgnoreResizeCheck(true);
+ }
+
+ TranslateOperation * translateOperation = new TranslateOperation();
+ if (!first) first = translateOperation;
+ SetValueOperation * xop = new SetValueOperation();
+ xop->setValue(addX);
+ c = ExecutionSystemHelper::addLink(system->getConnections(), xop->getOutputSocket(), translateOperation->getInputSocket(1));
+ c->setIgnoreResizeCheck(true);
+ SetValueOperation * yop = new SetValueOperation();
+ yop->setValue(addY);
+ c = ExecutionSystemHelper::addLink(system->getConnections(), yop->getOutputSocket(), translateOperation->getInputSocket(2));
+ c->setIgnoreResizeCheck(true);
+ system->addOperation(xop);
+ system->addOperation(yop);
+
+ unsigned int resolution[2] = {toWidth, toHeight};
+ translateOperation->setResolution(resolution);
+ xop->setResolution(resolution);
+ yop->setResolution(resolution);
+ system->addOperation(translateOperation);
+
+ if (doScale) {
+ c = ExecutionSystemHelper::addLink(system->getConnections(), scaleOperation->getOutputSocket(), translateOperation->getInputSocket(0));
+ c->setIgnoreResizeCheck(true);
+ }
+
+ InputSocket * inputSocket = connection->getToSocket();
+ inputSocket->relinkConnections(first->getInputSocket(0));
+ c = ExecutionSystemHelper::addLink(system->getConnections(), translateOperation->getOutputSocket(), inputSocket);
+ c->setIgnoreResizeCheck(true);
+ }
+
+ connection->setIgnoreResizeCheck(true);
+}
diff --git a/source/blender/compositor/intern/COM_Converter.h b/source/blender/compositor/intern/COM_Converter.h
new file mode 100644
index 00000000000..fa12be4e79a
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Converter.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_Converter_h
+#define _COM_Converter_h
+
+#include "DNA_node_types.h"
+#include "COM_Node.h"
+
+/**
+ * @brief Conversion methods for the compositor
+ */
+class Converter {
+public:
+ /**
+ * @brief Convert/wraps a bNode in its Node instance.
+ *
+ * For all nodetypes a wrapper class is created.
+ * Muted nodes are wrapped with MuteNode.
+ *
+ * @note When adding a new node to blender, this method needs to be changed to return the correct Node instance.
+ *
+ * @see Node
+ * @see MuteNode
+ */
+ static Node *convert(bNode *bNode);
+
+ /**
+ * @brief This method will add a datetype conversion rule when the to-socket does not support the from-socket actual data type.
+ *
+ * @note this method is called when conversion is needed.
+ *
+ * @param connection the SocketConnection what needs conversion
+ * @param system the ExecutionSystem to add the conversion to.
+ * @see SocketConnection - a link between two sockets
+ */
+ static void convertDataType(SocketConnection *connection, ExecutionSystem *system);
+
+ /**
+ * @brief This method will add a resolution rule based on the settings of the InputSocket.
+ *
+ * @note Conversion logic is implemented in this method
+ * @see InputSocketResizeMode for the possible conversions.
+
+ * @param connection the SocketConnection what needs conversion
+ * @param system the ExecutionSystem to add the conversion to.
+ * @see SocketConnection - a link between two sockets
+ */
+ static void convertResolution(SocketConnection *connection, ExecutionSystem *system);
+};
+#endif
diff --git a/source/blender/compositor/intern/COM_Device.cpp b/source/blender/compositor/intern/COM_Device.cpp
new file mode 100644
index 00000000000..64172cdd472
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Device.cpp
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Device.h"
+
diff --git a/source/blender/compositor/intern/COM_Device.h b/source/blender/compositor/intern/COM_Device.h
new file mode 100644
index 00000000000..74a9400f8f3
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Device.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_Device_h
+#define _COM_Device_h
+
+#include "COM_ExecutionSystem.h"
+#include "COM_WorkPackage.h"
+#include "COM_NodeOperation.h"
+#include "BLI_rect.h"
+#include "COM_MemoryBuffer.h"
+
+/**
+ * @brief Abstract class for device implementations to be used by the Compositor.
+ * devices are queried, initialized and used by the WorkScheduler.
+ * work are packaged as a WorkPackage instance.
+ */
+class Device {
+public:
+ /**
+ * @brief initialize the device
+ */
+ virtual bool initialize() {return true;}
+
+ /**
+ * @brief deinitialize the device
+ */
+ virtual void deinitialize() {}
+
+ /**
+ * @brief execute a WorkPackage
+ * @param work the WorkPackage to execute
+ */
+ virtual void execute(WorkPackage *work) = 0;
+
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_ExecutionGroup.cpp b/source/blender/compositor/intern/COM_ExecutionGroup.cpp
new file mode 100644
index 00000000000..e4fefa6a904
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ExecutionGroup.cpp
@@ -0,0 +1,596 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ExecutionGroup.h"
+#include "COM_InputSocket.h"
+#include "COM_SocketConnection.h"
+#include "COM_defines.h"
+#include "math.h"
+#include "COM_ExecutionSystem.h"
+#include <sstream>
+#include "COM_ReadBufferOperation.h"
+#include "COM_WriteBufferOperation.h"
+#include "COM_ReadBufferOperation.h"
+#include "COM_WorkScheduler.h"
+#include "COM_ViewerOperation.h"
+#include <stdlib.h>
+#include "BLI_math.h"
+#include "COM_MemoryManager.h"
+#include "PIL_time.h"
+#include "COM_ChunkOrder.h"
+#include <algorithm>
+#include "BLI_math.h"
+#include "COM_ExecutionSystemHelper.h"
+
+ExecutionGroup::ExecutionGroup()
+{
+ this->isOutput = false;
+ this->complex = false;
+ this->chunkExecutionStates = NULL;
+ this->bTree = NULL;
+ this->height = 0;
+ this->width = 0;
+ this->cachedMaxReadBufferOffset = 0;
+ this->numberOfXChunks = 0;
+ this->numberOfYChunks = 0;
+ this->numberOfChunks = 0;
+ this->initialized = false;
+ this->openCL = false;
+ this->chunksFinished = 0;
+}
+
+int ExecutionGroup::getRenderPriotrity()
+{
+ return this->getOutputNodeOperation()->getRenderPriority();
+}
+
+bool ExecutionGroup::containsOperation(NodeOperation *operation)
+{
+ for (vector<NodeOperation*>::const_iterator iterator = this->operations.begin() ; iterator != this->operations.end() ; ++iterator) {
+ NodeOperation *inListOperation = *iterator;
+ if (inListOperation == operation) {
+ return true;
+ }
+ }
+ return false;
+}
+
+const bool ExecutionGroup::isComplex() const
+{
+ return this->complex;
+}
+
+bool ExecutionGroup::canContainOperation(NodeOperation *operation)
+{
+ if (!this->initialized) {return true;}
+ if (operation->isReadBufferOperation()) {return true;}
+ if (operation->isWriteBufferOperation()) {return false;}
+ if (operation->isSetOperation()) {return true;}
+
+ if (!this->isComplex()) {
+ return (!operation->isComplex());
+ }
+ else {
+ return false;
+ }
+}
+
+void ExecutionGroup::addOperation(ExecutionSystem *system, NodeOperation *operation)
+{
+ if (containsOperation(operation)) return;
+ if (canContainOperation(operation)) {
+ if (!operation->isBufferOperation()) {
+ this->complex = operation->isComplex();
+ this->openCL = operation->isOpenCL();
+ this->initialized = true;
+ }
+ this->operations.push_back(operation);
+ if (operation->isReadBufferOperation()) {
+ ReadBufferOperation *readOperation = (ReadBufferOperation*)operation;
+ WriteBufferOperation *writeOperation = readOperation->getMemoryProxy()->getWriteBufferOperation();
+ this->addOperation(system, writeOperation);
+ }
+ else {
+ unsigned int index;
+ for (index = 0 ; index < operation->getNumberOfInputSockets(); index ++) {
+ InputSocket * inputSocket = operation->getInputSocket(index);
+ if (inputSocket->isConnected()) {
+ NodeOperation *node = (NodeOperation*)inputSocket->getConnection()->getFromNode();
+ this->addOperation(system, node);
+ }
+ }
+ }
+ }
+ else {
+ if (operation->isWriteBufferOperation()) {
+ WriteBufferOperation * writeoperation = (WriteBufferOperation*)operation;
+ if (writeoperation->getMemoryProxy()->getExecutor() == NULL) {
+ ExecutionGroup *newGroup = new ExecutionGroup();
+ writeoperation->getMemoryProxy()->setExecutor(newGroup);
+ newGroup->addOperation(system, operation);
+ ExecutionSystemHelper::addExecutionGroup(system->getExecutionGroups(), newGroup);
+ }
+ }
+ }
+}
+
+NodeOperation *ExecutionGroup::getOutputNodeOperation() const
+{
+ return this->operations[0]; // the first operation of the group is always the output operation.
+}
+
+void ExecutionGroup::initExecution()
+{
+ if (this->chunkExecutionStates != NULL) {
+ delete[] this->chunkExecutionStates;
+ }
+ unsigned int index;
+ determineNumberOfChunks();
+
+ this->chunkExecutionStates = NULL;
+ if (this->numberOfChunks != 0) {
+ this->chunkExecutionStates = new ChunkExecutionState[numberOfChunks];
+ for (index = 0 ; index < numberOfChunks ; index ++) {
+ this->chunkExecutionStates[index] = COM_ES_NOT_SCHEDULED;
+ }
+ }
+
+
+ unsigned int maxNumber = 0;
+
+ for (index = 0 ; index < this->operations.size(); index ++) {
+ NodeOperation *operation = this->operations[index];
+ if (operation->isReadBufferOperation()) {
+ ReadBufferOperation *readOperation = (ReadBufferOperation*)operation;
+ this->cachedReadOperations.push_back(readOperation);
+ maxNumber = max(maxNumber, readOperation->getOffset());
+ }
+ }
+ maxNumber++;
+ this->cachedMaxReadBufferOffset = maxNumber;
+
+}
+
+void ExecutionGroup::deinitExecution()
+{
+ if (this->chunkExecutionStates != NULL) {
+ delete[] this->chunkExecutionStates;
+ this->chunkExecutionStates = NULL;
+ }
+ this->numberOfChunks = 0;
+ this->numberOfXChunks = 0;
+ this->numberOfYChunks = 0;
+ this->cachedReadOperations.clear();
+ this->bTree = NULL;
+}
+void ExecutionGroup::determineResolution(unsigned int resolution[])
+{
+ NodeOperation *operation = this->getOutputNodeOperation();
+ unsigned int preferredResolution[2];
+ preferredResolution[0] = 0;
+ preferredResolution[1] = 0;
+ operation->determineResolution(resolution, preferredResolution);
+ operation->setResolution(resolution);
+ this->setResolution(resolution);
+}
+
+void ExecutionGroup::determineNumberOfChunks()
+{
+ const float chunkSizef = this->chunkSize;
+ this->numberOfXChunks = ceil(this->width / chunkSizef);
+ this->numberOfYChunks = ceil(this->height / chunkSizef);
+ this->numberOfChunks = this->numberOfXChunks * this->numberOfYChunks;
+}
+
+/**
+ * this method is called for the top execution groups. containing the compositor node or the preview node or the viewer node)
+ */
+void ExecutionGroup::execute(ExecutionSystem *graph)
+{
+ CompositorContext& context = graph->getContext();
+ const bNodeTree *bTree = context.getbNodeTree();
+ if (this->width == 0 || this->height == 0) {return;} /// @note: break out... no pixels to calculate.
+ if (bTree->test_break && bTree->test_break(bTree->tbh)) {return;} /// @note: early break out for blur and preview nodes
+ if (this->numberOfChunks == 0) {return;} /// @note: early break out
+ unsigned int chunkNumber;
+
+ this->chunksFinished = 0;
+ this->bTree = bTree;
+ unsigned int index;
+ unsigned int *chunkOrder = new unsigned int[this->numberOfChunks];
+
+ for (chunkNumber = 0 ; chunkNumber<this->numberOfChunks ; chunkNumber++) {
+ chunkOrder[chunkNumber] = chunkNumber;
+ }
+ NodeOperation *operation = this->getOutputNodeOperation();
+ float centerX = 0.5;
+ float centerY = 0.5;
+ int chunkorder = COM_TO_CENTER_OUT;
+
+ if (operation->isViewerOperation()) {
+ ViewerBaseOperation *viewer = (ViewerBaseOperation*)operation;
+ centerX = viewer->getCenterX();
+ centerY = viewer->getCenterY();
+ chunkorder = viewer->getChunkOrder();
+ }
+
+ switch (chunkorder) {
+ case COM_TO_RANDOM:
+ for (index = 0 ; index < 2 * numberOfChunks ; index ++) {
+ int index1 = rand()%numberOfChunks;
+ int index2 = rand()%numberOfChunks;
+ int s = chunkOrder[index1];
+ chunkOrder[index1] = chunkOrder[index2];
+ chunkOrder[index2] = s;
+ }
+ break;
+ case COM_TO_CENTER_OUT:
+ {
+ ChunkOrderHotspot **hotspots = new ChunkOrderHotspot*[1];
+ hotspots[0] = new ChunkOrderHotspot(this->width*centerX, this->height*centerY, 0.0f);
+ rcti rect;
+ ChunkOrder *chunkOrders = new ChunkOrder[this->numberOfChunks];
+ for (index = 0 ; index < this->numberOfChunks; index ++) {
+ determineChunkRect(&rect, index);
+ chunkOrders[index].setChunkNumber(index);
+ chunkOrders[index].setX(rect.xmin);
+ chunkOrders[index].setY(rect.ymin);
+ chunkOrders[index].determineDistance(hotspots, 1);
+ }
+
+ sort(&chunkOrders[0], &chunkOrders[numberOfChunks-1]);
+ for (index = 0 ; index < numberOfChunks; index ++) {
+ chunkOrder[index] = chunkOrders[index].getChunkNumber();
+ }
+
+ delete hotspots[0];
+ delete[] hotspots;
+ delete[] chunkOrders;
+ }
+ break;
+ case COM_TO_RULE_OF_THIRDS:
+ {
+ ChunkOrderHotspot **hotspots = new ChunkOrderHotspot*[9];
+ unsigned int tx = this->width/6;
+ unsigned int ty = this->height/6;
+ unsigned int mx = this->width/2;
+ unsigned int my = this->height/2;
+ unsigned int bx = mx+2*tx;
+ unsigned int by = my+2*ty;
+
+ float addition = numberOfChunks/COM_RULE_OF_THIRDS_DIVIDER;
+ hotspots[0] = new ChunkOrderHotspot(mx, my, addition*0);
+ hotspots[1] = new ChunkOrderHotspot(tx, my, addition*1);
+ hotspots[2] = new ChunkOrderHotspot(bx, my, addition*2);
+ hotspots[3] = new ChunkOrderHotspot(bx, by, addition*3);
+ hotspots[4] = new ChunkOrderHotspot(tx, ty, addition*4);
+ hotspots[5] = new ChunkOrderHotspot(bx, ty, addition*5);
+ hotspots[6] = new ChunkOrderHotspot(tx, by, addition*6);
+ hotspots[7] = new ChunkOrderHotspot(mx, ty, addition*7);
+ hotspots[8] = new ChunkOrderHotspot(mx, by, addition*8);
+ rcti rect;
+ ChunkOrder *chunkOrders = new ChunkOrder[this->numberOfChunks];
+ for (index = 0 ; index < this->numberOfChunks; index ++) {
+ determineChunkRect(&rect, index);
+ chunkOrders[index].setChunkNumber(index);
+ chunkOrders[index].setX(rect.xmin);
+ chunkOrders[index].setY(rect.ymin);
+ chunkOrders[index].determineDistance(hotspots, 9);
+ }
+
+ sort(&chunkOrders[0], &chunkOrders[numberOfChunks]);
+
+ for (index = 0 ; index < numberOfChunks; index ++) {
+ chunkOrder[index] = chunkOrders[index].getChunkNumber();
+ }
+
+ delete hotspots[0];
+ delete hotspots[1];
+ delete hotspots[2];
+ delete hotspots[3];
+ delete hotspots[4];
+ delete hotspots[5];
+ delete hotspots[6];
+ delete hotspots[7];
+ delete hotspots[8];
+ delete[] hotspots;
+ delete[] chunkOrders;
+ }
+ break;
+ case COM_TO_TOP_DOWN:
+ default:
+ break;
+ }
+
+ bool breaked = false;
+ bool finished = false;
+ unsigned int startIndex = 0;
+ const int maxNumberEvaluated = BLI_system_thread_count()*2;
+
+ while (!finished && !breaked) {
+ unsigned int index;
+ bool startEvaluated = false;
+ finished = true;
+ int numberEvaluated = 0;
+
+ for (index = startIndex ; index < numberOfChunks && numberEvaluated < maxNumberEvaluated; index ++) {
+ int chunkNumber = chunkOrder[index];
+ int yChunk = chunkNumber/this->numberOfXChunks;
+ int xChunk = chunkNumber - (yChunk*this->numberOfXChunks);
+ const ChunkExecutionState state = this->chunkExecutionStates[chunkNumber];
+ if (state == COM_ES_NOT_SCHEDULED) {
+ scheduleChunkWhenPossible(graph, xChunk, yChunk);
+ finished=false;
+ startEvaluated = true;
+ numberEvaluated++;
+ }
+ else if (state == COM_ES_SCHEDULED) {
+ finished=false;
+ startEvaluated = true;
+ numberEvaluated++;
+ }
+ else if (state == COM_ES_EXECUTED && !startEvaluated) {
+ startIndex = index+1;
+ }
+ }
+ PIL_sleep_ms(10);
+
+ if (bTree->test_break && bTree->test_break(bTree->tbh)) {
+ breaked = true;
+ }
+ }
+
+ delete[] chunkOrder;
+}
+
+MemoryBuffer** ExecutionGroup::getInputBuffers(int chunkNumber)
+{
+ rcti rect;
+ vector<MemoryProxy*> memoryproxies;
+ unsigned int index;
+ determineChunkRect(&rect, chunkNumber);
+
+ this->determineDependingMemoryProxies(&memoryproxies);
+ MemoryBuffer **memoryBuffers = new MemoryBuffer*[this->cachedMaxReadBufferOffset];
+ for (index = 0 ; index < this->cachedMaxReadBufferOffset ; index ++) {
+ memoryBuffers[index] = NULL;
+ }
+ rcti output;
+ for (index = 0 ; index < this->cachedReadOperations.size(); index ++) {
+ ReadBufferOperation *readOperation = (ReadBufferOperation*)this->cachedReadOperations[index];
+ MemoryProxy * memoryProxy = readOperation->getMemoryProxy();
+ this->determineDependingAreaOfInterest(&rect, readOperation, &output);
+ MemoryBuffer *memoryBuffer = memoryProxy->getExecutor()->constructConsolidatedMemoryBuffer(memoryProxy, &output);
+ memoryBuffers[readOperation->getOffset()] = memoryBuffer;
+ }
+ return memoryBuffers;
+}
+
+MemoryBuffer *ExecutionGroup::constructConsolidatedMemoryBuffer(MemoryProxy *memoryProxy, rcti *rect)
+{
+ // find all chunks inside the rect
+ // determine minxchunk, minychunk, maxxchunk, maxychunk where x and y are chunknumbers
+ float chunkSizef = this->chunkSize;
+
+ int indexx, indexy;
+
+ const int minxchunk = floor(rect->xmin/chunkSizef);
+ const int maxxchunk = ceil((rect->xmax-1)/chunkSizef);
+ const int minychunk = floor(rect->ymin/chunkSizef);
+ const int maxychunk = ceil((rect->ymax-1)/chunkSizef);
+
+ if (maxxchunk== minxchunk+1 && maxychunk == minychunk+1) {
+ const int chunkNumber = minxchunk+minychunk*numberOfXChunks;
+ MemoryBuffer *result = MemoryManager::getMemoryBuffer(memoryProxy, chunkNumber);
+ return result;
+ }
+
+ rcti chunkRect;
+ chunkRect.xmin = minxchunk*this->chunkSize;
+ chunkRect.xmax = maxxchunk*this->chunkSize;
+ chunkRect.ymin = minychunk*this->chunkSize;
+ chunkRect.ymax = maxychunk*this->chunkSize;
+
+ CLAMP(chunkRect.xmin, 0, (int)this->width);
+ CLAMP(chunkRect.xmax, 0, (int)this->width);
+ CLAMP(chunkRect.ymin, 0, (int)this->height);
+ CLAMP(chunkRect.ymax, 0, (int)this->height);
+
+ MemoryBuffer *result = new MemoryBuffer(memoryProxy, &chunkRect);
+
+ for (indexx = max(minxchunk, 0); indexx<min((int)this->numberOfXChunks, maxxchunk) ; indexx++) {
+ for (indexy = max(minychunk, 0); indexy<min((int)this->numberOfYChunks, maxychunk) ; indexy++) {
+ int chunkNumber = indexx+indexy*this->numberOfXChunks;
+ MemoryBuffer *chunkBuffer = MemoryManager::getMemoryBuffer(memoryProxy, chunkNumber);
+ result->copyContentFrom(chunkBuffer);
+ }
+ }
+
+ return result;
+}
+
+void ExecutionGroup::finalizeChunkExecution(int chunkNumber, MemoryBuffer** memoryBuffers)
+{
+ if (this->chunkExecutionStates[chunkNumber] == COM_ES_SCHEDULED)
+ this->chunkExecutionStates[chunkNumber] = COM_ES_EXECUTED;
+ else
+ throw "Threading inconsistency";
+
+ this->chunksFinished++;
+ if (memoryBuffers) {
+ for (unsigned int index = 0 ; index < this->cachedMaxReadBufferOffset; index ++) {
+ MemoryBuffer * buffer = memoryBuffers[index];
+ if (buffer) {
+ if (buffer->isTemporarily()) {
+ memoryBuffers[index] = NULL;
+ delete buffer;
+ }
+ }
+ }
+ delete[] memoryBuffers;
+ }
+ if (bTree) {
+ // status report is only performed for top level Execution Groups.
+ float progress = chunksFinished;
+ progress/=numberOfChunks;
+ bTree->progress(bTree->prh, progress);
+ }
+}
+
+inline void ExecutionGroup::determineChunkRect(rcti *rect, const unsigned int xChunk, const unsigned int yChunk ) const
+{
+ const unsigned int minx = xChunk * chunkSize;
+ const unsigned int miny = yChunk * chunkSize;
+ BLI_init_rcti(rect, minx, min(minx + this->chunkSize, this->width), miny, min(miny + this->chunkSize, this->height));
+}
+
+void ExecutionGroup::determineChunkRect(rcti *rect, const unsigned int chunkNumber) const
+{
+ const unsigned int yChunk = chunkNumber / numberOfXChunks;
+ const unsigned int xChunk = chunkNumber - (yChunk * numberOfXChunks);
+ determineChunkRect(rect, xChunk, yChunk);
+}
+
+MemoryBuffer *ExecutionGroup::allocateOutputBuffer(int chunkNumber, rcti *rect)
+{
+ MemoryBuffer *outputBuffer = NULL;
+ // output allocation is only valid when our outputoperation is a memorywriter
+ NodeOperation * operation = this->getOutputNodeOperation();
+ if (operation->isWriteBufferOperation()) {
+ WriteBufferOperation *writeOperation = (WriteBufferOperation*)operation;
+ outputBuffer = MemoryManager::allocateMemoryBuffer(writeOperation->getMemoryProxy(), chunkNumber, rect);
+ }
+ return outputBuffer;
+}
+
+
+bool ExecutionGroup::scheduleAreaWhenPossible(ExecutionSystem * graph, rcti *area)
+{
+ // find all chunks inside the rect
+ // determine minxchunk, minychunk, maxxchunk, maxychunk where x and y are chunknumbers
+
+ float chunkSizef = this->chunkSize;
+
+ int indexx, indexy;
+ const int minxchunk = floor(area->xmin/chunkSizef);
+ const int maxxchunk = ceil((area->xmax-1)/chunkSizef);
+ const int minychunk = floor(area->ymin/chunkSizef);
+ const int maxychunk = ceil((area->ymax-1)/chunkSizef);
+
+ bool result = true;
+ for (indexx = max(minxchunk, 0); indexx<maxxchunk ; indexx++) {
+ for (indexy = max(minychunk, 0); indexy<maxychunk ; indexy++) {
+ if (!scheduleChunkWhenPossible(graph, indexx, indexy)) {
+ result = false;
+ }
+ }
+ }
+
+ return result;
+}
+
+bool ExecutionGroup::scheduleChunk(unsigned int chunkNumber)
+{
+ if (this->chunkExecutionStates[chunkNumber] == COM_ES_NOT_SCHEDULED) {
+ this->chunkExecutionStates[chunkNumber] = COM_ES_SCHEDULED;
+ WorkScheduler::schedule(this, chunkNumber);
+ return true;
+ }
+ return false;
+}
+
+bool ExecutionGroup::scheduleChunkWhenPossible(ExecutionSystem * graph, int xChunk, int yChunk)
+{
+ if (xChunk < 0 || xChunk >= (int)this->numberOfXChunks) {
+ return true;
+ }
+ if (yChunk < 0 || yChunk >= (int)this->numberOfYChunks) {
+ return true;
+ }
+ int chunkNumber = yChunk*this->numberOfXChunks + xChunk;
+ // chunk is already executed
+ if (this->chunkExecutionStates[chunkNumber] == COM_ES_EXECUTED) {
+ return true;
+ }
+
+ // chunk is scheduled, but not executed
+ if (this->chunkExecutionStates[chunkNumber] == COM_ES_SCHEDULED) {
+ return false;
+ }
+
+ // chunk is nor executed nor scheduled.
+ vector<MemoryProxy*> memoryProxies;
+ this->determineDependingMemoryProxies(&memoryProxies);
+
+ rcti rect;
+ determineChunkRect(&rect, xChunk, yChunk);
+ unsigned int index;
+ bool canBeExecuted = true;
+ rcti area;
+
+ for (index = 0 ; index < cachedReadOperations.size() ; index ++) {
+ ReadBufferOperation * readOperation = (ReadBufferOperation*)cachedReadOperations[index];
+ BLI_init_rcti(&area, 0, 0, 0, 0);
+ MemoryProxy * memoryProxy = memoryProxies[index];
+ determineDependingAreaOfInterest(&rect, readOperation, &area);
+ ExecutionGroup *group = memoryProxy->getExecutor();
+
+ if (group != NULL) {
+ if (!group->scheduleAreaWhenPossible(graph, &area)) {
+ canBeExecuted = false;
+ }
+ }
+ else {
+ throw "ERROR";
+ }
+ }
+
+ if (canBeExecuted) {
+ scheduleChunk(chunkNumber);
+ }
+
+ return false;
+}
+
+void ExecutionGroup::determineDependingAreaOfInterest(rcti * input, ReadBufferOperation *readOperation, rcti *output)
+{
+ this->getOutputNodeOperation()->determineDependingAreaOfInterest(input, readOperation, output);
+}
+
+void ExecutionGroup::determineDependingMemoryProxies(vector<MemoryProxy*> *memoryProxies)
+{
+ unsigned int index;
+ for (index = 0 ; index < this->cachedReadOperations.size() ; index ++) {
+ ReadBufferOperation * readOperation = (ReadBufferOperation*) this->cachedReadOperations[index];
+ memoryProxies->push_back(readOperation->getMemoryProxy());
+ }
+}
+
+bool ExecutionGroup::operator ==(const ExecutionGroup & executionGroup) const
+{
+ return this->getOutputNodeOperation() == executionGroup.getOutputNodeOperation();
+}
+
+bool ExecutionGroup::isOpenCL()
+{
+ return this->openCL;
+}
diff --git a/source/blender/compositor/intern/COM_ExecutionGroup.h b/source/blender/compositor/intern/COM_ExecutionGroup.h
new file mode 100644
index 00000000000..adab7df4690
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ExecutionGroup.h
@@ -0,0 +1,404 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ExecutionGroup_h
+#define _COM_ExecutionGroup_h
+
+#include "COM_Node.h"
+#include "COM_NodeOperation.h"
+#include <vector>
+#include "BLI_rect.h"
+#include "COM_MemoryProxy.h"
+#include "COM_Device.h"
+#include "COM_CompositorContext.h"
+
+
+/**
+ * @brief the execution state of a chunk in an ExecutionGroup
+ * @ingroup Execution
+ */
+typedef enum ChunkExecutionState {
+ /**
+ * @brief chunk is not yet scheduled
+ */
+ COM_ES_NOT_SCHEDULED = 0,
+ /**
+ * @brief chunk is scheduled, but not yet executed
+ */
+ COM_ES_SCHEDULED = 1,
+ /**
+ * @brief chunk is executed.
+ */
+ COM_ES_EXECUTED = 2
+} ChunkExecutionState;
+
+class MemoryProxy;
+class ReadBufferOperation;
+class Device;
+
+/**
+ * @brief Class ExecutionGroup is a group of NodeOperations that are executed as one.
+ * This grouping is used to combine Operations that can be executed as one whole when multi-processing.
+ * @ingroup Execution
+ */
+class ExecutionGroup {
+private:
+ // fields
+ /**
+ * @brief unique identifier of this node.
+ */
+ string id;
+
+ /**
+ * @brief list of operations in this ExecutionGroup
+ */
+ vector<NodeOperation*> operations;
+
+ /**
+ * @brief is this ExecutionGroup an input ExecutionGroup
+ * an input execution group is a group that is at the end of the calculation (the output is important for the user)
+ */
+ int isOutput;
+
+ /**
+ * @brief Width of the output
+ */
+ unsigned int width;
+
+ /**
+ * @brief Height of the output
+ */
+ unsigned int height;
+
+ /**
+ * @brief size of a single chunk, being Width or of height
+ * a chunk is always a square, except at the edges of the MemoryBuffer
+ */
+ unsigned int chunkSize;
+
+ /**
+ * @brief number of chunks in the x-axis
+ */
+ unsigned int numberOfXChunks;
+
+ /**
+ * @brief number of chunks in the y-axis
+ */
+ unsigned int numberOfYChunks;
+
+ /**
+ * @brief total number of chunks
+ */
+ unsigned int numberOfChunks;
+
+ /**
+ * @brief contains this ExecutionGroup a complex NodeOperation.
+ */
+ bool complex;
+
+ /**
+ * @brief can this ExecutionGroup be scheduled on an OpenCLDevice
+ */
+ bool openCL;
+
+ /**
+ * @brief what is the maximum number field of all ReadBufferOperation in this ExecutionGroup.
+ * @note this is used to construct the MemoryBuffers that will be passed during execution.
+ */
+ unsigned int cachedMaxReadBufferOffset;
+
+ /**
+ * @brief a cached vector of all read operations in the execution group.
+ */
+ vector<NodeOperation*> cachedReadOperations;
+
+ /**
+ * @brief reference to the original bNodeTree, this field is only set for the 'top' execution group.
+ * @note can only be used to call the callbacks for progress, status and break
+ */
+ const bNodeTree * bTree;
+
+ /**
+ * @brief total number of chunks that have been calculated for this ExecutionGroup
+ */
+ unsigned int chunksFinished;
+
+ /**
+ * @brief the chunkExecutionStates holds per chunk the execution state. this state can be
+ * - COM_ES_NOT_SCHEDULED: not scheduled
+ * - COM_ES_SCHEDULED: scheduled
+ * - COM_ES_EXECUTED: executed
+ */
+ ChunkExecutionState *chunkExecutionStates;
+
+ /**
+ * @brief indicator when this ExecutionGroup has valid NodeOperations in its vector for Execution
+ * @note When building the ExecutionGroup NodeOperations are added via recursion. First a WriteBufferOperations is added, then the
+ * @note Operation containing the settings that is important for the ExecutiongGroup is added,
+ * @note When this occurs, these settings are copied over from the node to the ExecutionGroup
+ * @note and the Initialized flag is set to true.
+ * @see complex
+ * @see openCL
+ */
+ bool initialized;
+
+ // methods
+ /**
+ * @brief check whether parameter operation can be added to the execution group
+ * @param operation the operation to be added
+ */
+ bool canContainOperation(NodeOperation *operation);
+
+ /**
+ * @brief get the Render priority of this ExecutionGroup
+ * @see ExecutionSystem.execute
+ */
+ int getRenderPriotrity();
+
+ /**
+ * @brief calculate the actual chunk size of this execution group.
+ * @note A chunk size is an unsigned int that is both the height and width of a chunk.
+ * @note The chunk size will not be stored in the chunkSize field. This needs to be done
+ * @note by the calling method.
+ */
+ unsigned int determineChunkSize();
+
+
+ /**
+ * @brief Determine the rect (minx, maxx, miny, maxy) of a chunk at a position.
+ * @note Only gives usefull results ater the determination of the chunksize
+ * @see determineChunkSize()
+ */
+ void determineChunkRect(rcti *rect, const unsigned int xChunk, const unsigned int yChunk) const;
+
+ /**
+ * @brief determine the number of chunks, based on the chunkSize, width and height.
+ * @note The result are stored in the fields numberOfChunks, numberOfXChunks, numberOfYChunks
+ */
+ void determineNumberOfChunks();
+
+ /**
+ * @brief try to schedule a specific chunk.
+ * @note scheduling succeeds when all input requirements are met and the chunks hasen't been scheduled yet.
+ * @param graph
+ * @param xChunk
+ * @param yChunk
+ * @return [true:false]
+ * true: package(s) are scheduled
+ * false: scheduling is deferred (depending workpackages are scheduled)
+ */
+ bool scheduleChunkWhenPossible(ExecutionSystem * graph, int xChunk, int yChunk);
+
+ /**
+ * @brief try to schedule a specific area.
+ * @note Check if a certain area is available, when not available this are will be checked.
+ * @note This method is called from other ExecutionGroup's.
+ * @param graph
+ * @param rect
+ * @return [true:false]
+ * true: package(s) are scheduled
+ * false: scheduling is deferred (depending workpackages are scheduled)
+ */
+ bool scheduleAreaWhenPossible(ExecutionSystem * graph, rcti * rect);
+
+ /**
+ * @brief add a chunk to the WorkScheduler.
+ * @param chunknumber
+ */
+ bool scheduleChunk(unsigned int chunkNumber);
+
+ /**
+ * @brief determine the area of interest of a certain input area
+ * @note This method only evaluates a single ReadBufferOperation
+ * @param input the input area
+ * @param readOperation The ReadBufferOperation where the area needs to be evaluated
+ * @param output the area needed of the ReadBufferOperation. Result
+ */
+ void determineDependingAreaOfInterest(rcti * input, ReadBufferOperation *readOperation, rcti *output);
+
+
+public:
+ // constructors
+ ExecutionGroup();
+
+ /**
+ * @brief set the id of this ExecutionGroup
+ * @param id
+ */
+ void setId(string id) {this->id = id;}
+
+ /**
+ * @brief return the id of this ExecutionGroup
+ */
+ const string getId() const {return this->id;}
+
+ // methods
+ /**
+ * @brief check to see if a NodeOperation is already inside this execution group
+ * @param operation the NodeOperation to check
+ * @return [true,false]
+ */
+ bool containsOperation(NodeOperation *operation);
+
+ /**
+ * @brief add an operation to this ExecutionGroup
+ * @note this method will add input of the operations recursivly
+ * @note this method can create multiple ExecutionGroup's
+ * @param system
+ * @param operation
+ */
+ void addOperation(ExecutionSystem *system, NodeOperation *operation);
+
+ /**
+ * @brief is this ExecutionGroup an output ExecutionGroup
+ * @note An OutputExecution group are groups containing a
+ * @note ViewerOperation, CompositeOperation, PreviewOperation.
+ * @see NodeOperation.isOutputOperation
+ */
+ const int isOutputExecutionGroup() const {return this->isOutput;}
+
+ /**
+ * @brief set whether this ExecutionGroup is an output
+ * @param isOutput
+ */
+ void setOutputExecutionGroup(int isOutput) {this->isOutput = isOutput;}
+
+ /**
+ * @brief determine the resolution of this ExecutionGroup
+ * @param resolution
+ */
+ void determineResolution(unsigned int resolution[]);
+
+ /**
+ * @brief set the resolution of this executiongroup
+ * @param resolution
+ */
+ void setResolution(unsigned int resolution[]) {this->width = resolution[0];this->height = resolution[1];}
+
+ /**
+ * @brief get the width of this execution group
+ */
+ const unsigned int getWidth() {return this->width;}
+
+ /**
+ * @brief get the height of this execution group
+ */
+ const unsigned int getHeight() {return this->height;}
+
+ /**
+ * @brief does this ExecutionGroup contains a complex NodeOperation
+ */
+ const bool isComplex() const;
+
+
+ /**
+ * @brief get the output operation of this ExecutionGroup
+ * @return NodeOperation *output operation
+ */
+ NodeOperation *getOutputNodeOperation() const;
+
+ /**
+ * @brief compose multiple chunks into a single chunk
+ * @return Memorybuffer *consolidated chunk
+ */
+ MemoryBuffer *constructConsolidatedMemoryBuffer(MemoryProxy *memoryProxy, rcti *output);
+
+ /**
+ * @brief initExecution is called just before the execution of the whole graph will be done.
+ * @note The implementation will calculate the chunkSize of this execution group.
+ */
+ void initExecution();
+
+ /**
+ * @brief get all inputbuffers needed to calculate an chunk
+ * @note all inputbuffers must be executed
+ * @param chunkNumber the chunk to be calculated
+ * @return MemoryBuffer** the inputbuffers
+ */
+ MemoryBuffer** getInputBuffers(int chunkNumber);
+
+ /**
+ * @brief allocate the outputbuffer of a chunk
+ * @param chunkNumber the number of the chunk in the ExecutionGroup
+ * @param rect the rect of that chunk
+ * @see determineChunkRect
+ */
+ MemoryBuffer *allocateOutputBuffer(int chunkNumber, rcti *rect);
+
+ /**
+ * @brief after a chunk is executed the needed resources can be freed or unlocked.
+ * @param chunknumber
+ * @param memorybuffers
+ */
+ void finalizeChunkExecution(int chunkNumber, MemoryBuffer** memoryBuffers);
+
+ /**
+ * @brief deinitExecution is called just after execution the whole graph.
+ * @note It will release all needed resources
+ */
+ void deinitExecution();
+
+
+ /**
+ * @brief schedule an ExecutionGroup
+ * @note this method will return when all chunks have been calculated, or the execution has breaked (by user)
+ *
+ * first the order of the chunks will be determined. This is determined by finding the ViewerOperation and get the relevant information from it.
+ * - ChunkOrdering
+ * - CenterX
+ * - CenterY
+ *
+ * After determining the order of the chunks the chunks will be scheduled
+ *
+ * @see ViewerOperation
+ * @param system
+ */
+ void execute(ExecutionSystem *system);
+
+ /**
+ * @brief this method determines the MemoryProxy's where this execution group depends on.
+ * @note After this method determineDependingAreaOfInterest can be called to determine
+ * @note the area of the MemoryProxy.creator thas has to be executed.
+ * @param memoryProxies result
+ */
+ void determineDependingMemoryProxies(vector<MemoryProxy*> *memoryProxies);
+
+ /**
+ * @brief Determine the rect (minx, maxx, miny, maxy) of a chunk.
+ * @note Only gives usefull results ater the determination of the chunksize
+ * @see determineChunkSize()
+ */
+ void determineChunkRect(rcti *rect, const unsigned int chunkNumber) const;
+
+
+ bool operator ==(const ExecutionGroup &executionGroup) const;
+
+ /**
+ * @brief can this ExecutionGroup be scheduled on an OpenCLDevice
+ * @see WorkScheduler.schedule
+ */
+ bool isOpenCL();
+
+ void setChunksize(int chunksize) {this->chunkSize = chunksize;}
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_ExecutionSystem.cpp b/source/blender/compositor/intern/COM_ExecutionSystem.cpp
new file mode 100644
index 00000000000..0d4c7cde68f
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ExecutionSystem.cpp
@@ -0,0 +1,320 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ExecutionSystem.h"
+
+#include "PIL_time.h"
+#include "BKE_node.h"
+#include "COM_Converter.h"
+#include <sstream>
+#include "COM_NodeOperation.h"
+#include "COM_ExecutionGroup.h"
+#include "COM_NodeBase.h"
+#include "COM_WorkScheduler.h"
+#include "COM_ReadBufferOperation.h"
+#include "COM_MemoryManager.h"
+#include "stdio.h"
+#include "COM_GroupNode.h"
+#include "COM_WriteBufferOperation.h"
+#include "COM_ReadBufferOperation.h"
+#include "COM_ExecutionSystemHelper.h"
+
+#include "BKE_global.h"
+
+ExecutionSystem::ExecutionSystem(bNodeTree *editingtree, bool rendering)
+{
+ this->context.setbNodeTree(editingtree);
+
+ /* initialize the CompositorContext */
+ if (rendering) {
+ context.setQuality((CompositorQuality)editingtree->render_quality);
+ }
+ else {
+ context.setQuality((CompositorQuality)editingtree->edit_quality);
+ }
+ context.setRendering(rendering);
+ context.setHasActiveOpenCLDevices(WorkScheduler::hasGPUDevices() && (editingtree->flag & NTREE_COM_OPENCL));
+
+ Node *mainOutputNode=NULL;
+
+ mainOutputNode = ExecutionSystemHelper::addbNodeTree(*this, 0, editingtree);
+
+ if (mainOutputNode) {
+ context.setScene((Scene*)mainOutputNode->getbNode()->id);
+ this->convertToOperations();
+ this->groupOperations(); /* group operations in ExecutionGroups */
+ vector<ExecutionGroup*> executionGroups;
+ this->findOutputExecutionGroup(&executionGroups);
+ unsigned int index;
+ unsigned int resolution[2];
+ for (index = 0 ; index < executionGroups.size(); index ++) {
+ resolution[0]=0;
+ resolution[1]=0;
+ ExecutionGroup *executionGroup = executionGroups[index];
+ executionGroup->determineResolution(resolution);
+ }
+ }
+
+ if (G.f & G_DEBUG) ExecutionSystemHelper::debugDump(this);
+}
+
+ExecutionSystem::~ExecutionSystem()
+{
+ unsigned int index;
+ for (index = 0; index < this->connections.size(); index++) {
+ SocketConnection *connection = this->connections[index];
+ delete connection;
+ }
+ this->connections.clear();
+ for (index = 0; index < this->nodes.size(); index++) {
+ Node *node = this->nodes[index];
+ delete node;
+ }
+ this->nodes.clear();
+ for (index = 0; index < this->operations.size(); index++) {
+ NodeOperation *operation = this->operations[index];
+ delete operation;
+ }
+ this->operations.clear();
+ for (index = 0; index < this->groups.size(); index++) {
+ ExecutionGroup *group = this->groups[index];
+ delete group;
+ }
+ this->groups.clear();
+}
+
+void ExecutionSystem::execute()
+{
+ unsigned int order = 0;
+ for (vector<NodeOperation*>::iterator iter = this->operations.begin(); iter != operations.end(); ++iter) {
+ NodeBase *node = *iter;
+ NodeOperation *operation = (NodeOperation*) node;
+ if (operation->isReadBufferOperation()) {
+ ReadBufferOperation * readOperation = (ReadBufferOperation*)operation;
+ readOperation->setOffset(order);
+ order ++;
+ }
+ }
+
+ MemoryManager::initialize();
+ unsigned int index;
+
+ for (index = 0 ; index < this->operations.size() ; index ++) {
+ NodeOperation * operation = this->operations[index];
+ operation->initExecution();
+ }
+ for (index = 0 ; index < this->groups.size() ; index ++) {
+ ExecutionGroup * executionGroup = this->groups[index];
+ executionGroup->setChunksize(context.getChunksize());
+ executionGroup->initExecution();
+ }
+
+ WorkScheduler::start(this->context);
+
+
+ vector<ExecutionGroup*> executionGroups;
+ this->findOutputExecutionGroup(&executionGroups);
+
+ /* start execution of the ExecutionGroups based on priority of their output node */
+ for (int priority = 9 ; priority>=0 ; priority--) {
+ for (index = 0 ; index < executionGroups.size(); index ++) {
+ ExecutionGroup *group = executionGroups[index];
+ NodeOperation *output = group->getOutputNodeOperation();
+ if (output->getRenderPriority() == priority) {
+ group->execute(this);
+ }
+ }
+ }
+
+ WorkScheduler::finish();
+ WorkScheduler::stop();
+
+ for (index = 0 ; index < this->operations.size() ; index ++) {
+ NodeOperation * operation = this->operations[index];
+ operation->deinitExecution();
+ }
+ for (index = 0 ; index < this->groups.size() ; index ++) {
+ ExecutionGroup * executionGroup = this->groups[index];
+ executionGroup->deinitExecution();
+ }
+ MemoryManager::clear();
+}
+
+void ExecutionSystem::addOperation(NodeOperation *operation)
+{
+ ExecutionSystemHelper::addOperation(this->operations, operation);
+}
+
+void ExecutionSystem::addReadWriteBufferOperations(NodeOperation *operation)
+{
+ // for every input add write and read operation if input is not a read operation
+ // only add read operation to other links when they are attached to buffered operations.
+ unsigned int index;
+ for (index = 0 ; index < operation->getNumberOfInputSockets();index++) {
+ InputSocket *inputsocket = operation->getInputSocket(index);
+ if (inputsocket->isConnected()) {
+ SocketConnection *connection = inputsocket->getConnection();
+ NodeOperation *otherEnd = (NodeOperation*)connection->getFromNode();
+ if (!otherEnd->isReadBufferOperation()) {
+ // check of other end already has write operation
+ OutputSocket *fromsocket = connection->getFromSocket();
+ WriteBufferOperation * writeoperation = fromsocket->findAttachedWriteBufferOperation();
+ if (writeoperation == NULL) {
+ writeoperation = new WriteBufferOperation();
+ writeoperation->setbNodeTree(this->getContext().getbNodeTree());
+ this->addOperation(writeoperation);
+ ExecutionSystemHelper::addLink(this->getConnections(), fromsocket, writeoperation->getInputSocket(0));
+ }
+ ReadBufferOperation *readoperation = new ReadBufferOperation();
+ readoperation->setMemoryProxy(writeoperation->getMemoryProxy());
+ connection->setFromSocket(readoperation->getOutputSocket());
+ readoperation->getOutputSocket()->addConnection(connection);
+ this->addOperation(readoperation);
+ }
+ }
+ }
+ /*
+ link the outputsocket to a write operation
+ link the writeoperation to a read operation
+ link the read operation to the next node.
+ */
+ OutputSocket * outputsocket = operation->getOutputSocket();
+ if (outputsocket->isConnected()) {
+ int index;
+ WriteBufferOperation *writeOperation;
+ writeOperation = new WriteBufferOperation();
+ writeOperation->setbNodeTree(this->getContext().getbNodeTree());
+ this->addOperation(writeOperation);
+ for (index = 0 ; index < outputsocket->getNumberOfConnections();index ++) {
+ SocketConnection * connection = outputsocket->getConnection(index);
+ ReadBufferOperation *readoperation = new ReadBufferOperation();
+ readoperation->setMemoryProxy(writeOperation->getMemoryProxy());
+ connection->setFromSocket(readoperation->getOutputSocket());
+ readoperation->getOutputSocket()->addConnection(connection);
+ this->addOperation(readoperation);
+ }
+ ExecutionSystemHelper::addLink(this->getConnections(), outputsocket, writeOperation->getInputSocket(0));
+ }
+}
+
+void ExecutionSystem::convertToOperations()
+{
+ unsigned int index;
+ // first determine data types of the nodes, this can be used by the node to convert to a different operation system
+ this->determineActualSocketDataTypes((vector<NodeBase*>&)this->nodes);
+ for (index = 0; index < this->nodes.size(); index++) {
+ Node *node = (Node*)this->nodes[index];
+ node->convertToOperations(this, &this->context);
+ }
+
+ // update the socket types of the operations. this will be used to add conversion operations in the system
+ this->determineActualSocketDataTypes((vector<NodeBase*>&)this->operations);
+ for (index = 0 ; index < this->connections.size(); index ++) {
+ SocketConnection *connection = this->connections[index];
+ if (connection->isValid()) {
+ if (connection->getFromSocket()->getActualDataType() != connection->getToSocket()->getActualDataType()) {
+ Converter::convertDataType(connection, this);
+ }
+ }
+ }
+
+ // determine all resolutions of the operations (Width/Height)
+ for (index = 0 ; index < this->operations.size(); index ++) {
+ NodeOperation *operation = this->operations[index];
+ if (operation->isOutputOperation(context.isRendering())) {
+ unsigned int resolution[2] = {0,0};
+ unsigned int preferredResolution[2] = {0,0};
+ operation->determineResolution(resolution, preferredResolution);
+ operation->setResolution(resolution);
+ }
+ }
+
+ // add convert resolution operations when needed.
+ for (index = 0 ; index < this->connections.size(); index ++) {
+ SocketConnection *connection = this->connections[index];
+ if (connection->isValid()) {
+ if (connection->needsResolutionConversion()) {
+ Converter::convertResolution(connection, this);
+ }
+ }
+ }
+
+}
+
+void ExecutionSystem::groupOperations()
+{
+ vector<NodeOperation*> outputOperations;
+ NodeOperation * operation;
+ unsigned int index;
+ // surround complex operations with ReadBufferOperation and WriteBufferOperation
+ for (index = 0; index < this->operations.size(); index++) {
+ operation = this->operations[index];
+ if (operation->isComplex()) {
+ this->addReadWriteBufferOperations(operation);
+ }
+ }
+ ExecutionSystemHelper::findOutputNodeOperations(&outputOperations, this->getOperations(), this->context.isRendering());
+ for (vector<NodeOperation*>::iterator iter = outputOperations.begin(); iter != outputOperations.end(); ++iter) {
+ operation = *iter;
+ ExecutionGroup *group = new ExecutionGroup();
+ group->addOperation(this, operation);
+ group->setOutputExecutionGroup(true);
+ ExecutionSystemHelper::addExecutionGroup(this->getExecutionGroups(), group);
+ }
+}
+
+void ExecutionSystem::addSocketConnection(SocketConnection *connection)
+{
+ this->connections.push_back(connection);
+}
+
+
+void ExecutionSystem::determineActualSocketDataTypes(vector<NodeBase*> &nodes)
+{
+ unsigned int index;
+ /* first do all input nodes */
+ for (index = 0; index < nodes.size(); index++) {
+ NodeBase *node = nodes[index];
+ if (node->isInputNode()) {
+ node->determineActualSocketDataTypes();
+ }
+ }
+
+ /* then all other nodes */
+ for (index = 0; index < nodes.size(); index++) {
+ NodeBase *node = nodes[index];
+ if (!node->isInputNode()) {
+ node->determineActualSocketDataTypes();
+ }
+ }
+}
+
+void ExecutionSystem::findOutputExecutionGroup(vector<ExecutionGroup*> *result) const
+{
+ unsigned int index;
+ for (index = 0 ; index < this->groups.size() ; index ++) {
+ ExecutionGroup *group = this->groups[index];
+ if (group->isOutputExecutionGroup()) {
+ result->push_back(group);
+ }
+ }
+}
diff --git a/source/blender/compositor/intern/COM_ExecutionSystem.h b/source/blender/compositor/intern/COM_ExecutionSystem.h
new file mode 100644
index 00000000000..85fec8b6145
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ExecutionSystem.h
@@ -0,0 +1,229 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class ExecutionGroup;
+
+#ifndef _COM_ExecutionSystem_h
+#define _COM_ExecutionSystem_h
+
+#include "DNA_node_types.h"
+#include <vector>
+#include "COM_Node.h"
+#include "COM_SocketConnection.h"
+#include "BKE_text.h"
+#include "COM_ExecutionGroup.h"
+#include "COM_NodeOperation.h"
+
+using namespace std;
+
+/**
+ * @page execution Execution model
+ * In order to get to an efficient model for execution, serveral steps are being done. these steps are explained below.
+ *
+ * @section EM_Step1 Step 1: translating blender node system to the new compsitor system
+ * Blenders node structure is based on C structs (DNA). These structs are not efficient in the new architecture. We want to use classes in order to simplify the system.
+ * during this step the blender node_tree is evaluated and converted to a CPP node system.
+ *
+ * @see ExecutionSystem
+ * @see Converter.convert
+ * @see Node
+ *
+ * @section EM_Step2 Step2: translating nodes to operations
+ * Ungrouping the GroupNodes. Group nodes are node_tree's in node_tree's. The new system only supports a single level of node_tree. We will 'flatten' the system in a single level.
+ * @see GroupNode
+ * @see ExecutionSystemHelper.ungroup
+ *
+ * Every node has the ability to convert itself to operations. The node itself is responsible to create a correct NodeOperation setup based on its internal settings.
+ * Most Node only need to convert it to its NodeOperation. Like a ColorToBWNode doesn't check anything, but replaces itself with a ConvertColorToBWOperation.
+ * More complex nodes can use different NodeOperation based on settings; like MixNode. based on the selected Mixtype a different operation will be used.
+ * for more information see the page about creating new Nodes. [@subpage newnode]
+ *
+ * @see ExecutionSystem.convertToOperations
+ * @see Node.convertToOperations
+ * @see NodeOperation base class for all operations in the system
+ *
+ * @section EM_Step3 Step3: add additional conversions to the operation system
+ * - Data type conversions: the system has 3 data types COM_DT_VALUE, COM_DT_VECTOR, COM_DT_COLOR. The user can connect a Value socket to a color socket. As values are ordered differently than colors a conversion happens.
+ *
+ * - Image size conversions: the system can automatically convert when resolutions do not match. An InputSocket has a resize mode. This can be any of the folowing settings.
+ * - [@ref InputSocketResizeMode.COM_SC_CENTER]: The center of both images are aligned
+ * - [@ref InputSocketResizeMode.COM_SC_FIT_WIDTH]: The width of both images are aligned
+ * - [@ref InputSocketResizeMode.COM_SC_FIT_HEIGHT]: the height of both images are aligned
+ * - [@ref InputSocketResizeMode.COM_SC_FIT]: The width, or the height of both images are aligned to make sure that it fits.
+ * - [@ref InputSocketResizeMode.COM_SC_STRETCH]: The width and the height of both images are aligned
+ * - [@ref InputSocketResizeMode.COM_SC_NO_RESIZE]: bottom left of the images are aligned.
+ *
+ * @see Converter.convertDataType Datatype conversions
+ * @see Converter.convertResolution Image size conversions
+ *
+ * @section EM_Step4 Step4: group operations in executions groups
+ * ExecutionGroup are groups of operations that are calculated as being one bigger operation. All operations will be part of an ExecutionGroup.
+ * Complex nodes will be added to separate groups. Between ExecutionGroup's the data will be stored in MemoryBuffers. ReadBufferOperations and WriteBufferOperations are added where needed.
+ *
+ * <pre>
+ *
+ * +------------------------------+ +----------------+
+ * | ExecutionGroup A | |ExecutionGroup B| ExecutionGroup
+ * | +----------+ +----------+| |+----------+ |
+ * /----->| Operation|---->| Operation|-\ /--->| Operation|-\ | NodeOperation
+ * | | | A | | B ||| | || C | | |
+ * | | | cFFA | /->| cFFA ||| | || cFFA | | |
+ * | | +----------+ | +----------+|| | |+----------+ | |
+ * | +---------------|--------------+v | +-------------v--+
+ * +-*----+ +---*--+ +--*-*--+ +--*----+
+ * |inputA| |inputB| |outputA| |outputB| MemoryBuffer
+ * |cFAA | |cFAA | |cFAA | |cFAA |
+ * +------+ +------+ +-------+ +-------+
+ * </pre>
+ * @see ExecutionSystem.groupOperations method doing this step
+ * @see ExecutionSystem.addReadWriteBufferOperations
+ * @see NodeOperation.isComplex
+ * @see ExecutionGroup class representing the ExecutionGroup
+ */
+
+/**
+ * @brief the ExecutionSystem contains the whole compositor tree.
+ */
+class ExecutionSystem {
+private:
+ /**
+ * @brief the context used during execution
+ */
+ CompositorContext context;
+
+ /**
+ * @brief vector of nodes
+ */
+ vector<Node*> nodes;
+
+ /**
+ * @brief vector of operations
+ */
+ vector<NodeOperation*> operations;
+
+ /**
+ * @brief vector of groups
+ */
+ vector<ExecutionGroup*> groups
+
+ /**
+ * @brief vector of connections
+ */;
+ vector<SocketConnection*> connections;
+
+private: //methods
+ /**
+ * @brief add ReadBufferOperation and WriteBufferOperation around an operation
+ * @param operation the operation to add the bufferoperations around.
+ */
+ void addReadWriteBufferOperations(NodeOperation *operation);
+
+
+ /**
+ * find all execution group with output nodes
+ */
+ void findOutputExecutionGroup(vector<ExecutionGroup*> *result) const;
+
+public:
+ /**
+ * @brief Create a new ExecutionSystem and initialize it with the
+ * editingtree.
+ *
+ * @param editingtree [bNodeTree*]
+ * @param rendering [true false]
+ */
+ ExecutionSystem(bNodeTree *editingtree, bool rendering);
+
+ /**
+ * Destructor
+ */
+ ~ExecutionSystem();
+
+
+ /**
+ * @brief execute this system
+ * - initialize the NodeOperation's and ExecutionGroup's
+ * - schedule the output ExecutionGroup's based on their priority
+ * - deinitialize the ExecutionGroup's and NodeOperation's
+ */
+ void execute();
+
+ /**
+ * @brief Add an operation to the operation list
+ *
+ * @param operation the operation to add
+ */
+ void addOperation(NodeOperation *operation);
+
+ /**
+ * Add an editor link to the system. convert it to an socketconnection (CPP-representative)
+ * this converted socket is returned.
+ */
+ SocketConnection *addNodeLink(bNodeLink *bNodeLink);
+ void addSocketConnection(SocketConnection *connection);
+
+ /**
+ * @brief Convert all nodes to operations
+ */
+ void convertToOperations();
+
+ /**
+ * @brief group operations in ExecutionGroup's
+ * @see ExecutionGroup
+ */
+ void groupOperations();
+
+ /**
+ * @brief get the reference to the compositor context
+ */
+ CompositorContext& getContext() {return this->context;}
+
+ /**
+ * @brief get the reference to the compositor nodes
+ */
+ vector<Node*>& getNodes() {return this->nodes;}
+
+ /**
+ * @brief get the reference to the compositor connections
+ */
+ vector<SocketConnection*>& getConnections() {return this->connections;}
+
+ /**
+ * @brief get the reference to the list of execution groups
+ */
+ vector<ExecutionGroup*>& getExecutionGroups() {return this->groups;}
+
+ /**
+ * @brief get the reference to the list of operations
+ */
+ vector<NodeOperation*>& getOperations() {return this->operations;}
+
+private:
+
+ /**
+ * @brief determine the actual data types of all sockets
+ * @param nodes list of nodes or operations to do the data type determination
+ */
+ void determineActualSocketDataTypes(vector<NodeBase*> &nodes);
+
+};
+#endif
diff --git a/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp b/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
new file mode 100644
index 00000000000..94376f73de9
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
@@ -0,0 +1,329 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ExecutionSystemHelper.h"
+
+#include "PIL_time.h"
+#include "BKE_node.h"
+#include "COM_Converter.h"
+#include <sstream>
+#include "COM_NodeOperation.h"
+#include "COM_ExecutionGroup.h"
+#include "COM_NodeBase.h"
+#include "COM_WorkScheduler.h"
+#include "COM_ReadBufferOperation.h"
+#include "COM_MemoryManager.h"
+#include "stdio.h"
+#include "COM_GroupNode.h"
+#include "COM_WriteBufferOperation.h"
+#include "COM_ReadBufferOperation.h"
+
+Node *ExecutionSystemHelper::addbNodeTree(ExecutionSystem &system, int nodes_start, bNodeTree *tree)
+{
+ vector<Node*>& nodes = system.getNodes();
+ vector<SocketConnection*>& links = system.getConnections();
+ Node *mainnode = NULL;
+ /* add all nodes of the tree to the node list */
+ bNode *node = (bNode*)tree->nodes.first;
+ while (node != NULL) {
+ Node *execnode = addNode(nodes, node);
+ if (node->type == CMP_NODE_COMPOSITE) {
+ mainnode = execnode;
+ }
+ node = (bNode*)node->next;
+ }
+
+ NodeRange node_range(nodes.begin()+nodes_start, nodes.end());
+
+ /* add all nodelinks of the tree to the link list */
+ bNodeLink *nodelink = (bNodeLink*)tree->links.first;
+ while (nodelink != NULL) {
+ addNodeLink(node_range, links, nodelink);
+ nodelink = (bNodeLink*)nodelink->next;
+ }
+
+ /* Expand group nodes */
+ for (int i=nodes_start; i < nodes.size(); ++i) {
+ Node *execnode = nodes[i];
+ if (execnode->isGroupNode()) {
+ GroupNode * groupNode = (GroupNode*)execnode;
+ groupNode->ungroup(system);
+ }
+ }
+
+ return mainnode;
+}
+
+void ExecutionSystemHelper::addNode(vector<Node*>& nodes, Node *node)
+{
+ nodes.push_back(node);
+}
+
+Node *ExecutionSystemHelper::addNode(vector<Node*>& nodes, bNode *bNode)
+{
+ Converter converter;
+ Node * node;
+ node = converter.convert(bNode);
+ if (node != NULL) {
+ addNode(nodes, node);
+ return node;
+ }
+ return NULL;
+}
+void ExecutionSystemHelper::addOperation(vector<NodeOperation*>& operations, NodeOperation *operation)
+{
+ operations.push_back(operation);
+}
+
+void ExecutionSystemHelper::addExecutionGroup(vector<ExecutionGroup*>& executionGroups, ExecutionGroup *executionGroup)
+{
+ executionGroups.push_back(executionGroup);
+}
+
+void ExecutionSystemHelper::findOutputNodeOperations(vector<NodeOperation*>* result, vector<NodeOperation*>& operations, bool rendering)
+{
+ unsigned int index;
+
+ for (index = 0 ; index < operations.size() ; index ++) {
+ NodeOperation *operation = operations[index];
+ if (operation->isOutputOperation(rendering)) {
+ result->push_back(operation);
+ }
+ }
+}
+
+static InputSocket *find_input(NodeRange &node_range, bNode *bnode, bNodeSocket *bsocket)
+{
+ if (bnode != NULL) {
+ for (NodeIterator it=node_range.first; it!=node_range.second; ++it) {
+ Node *node = *it;
+ if (node->getbNode() == bnode)
+ return node->findInputSocketBybNodeSocket(bsocket);
+ }
+ }
+ else {
+ for (NodeIterator it=node_range.first; it!=node_range.second; ++it) {
+ Node *node = *it;
+ if (node->isProxyNode()) {
+ InputSocket *proxySocket = node->getInputSocket(0);
+ if (proxySocket->getbNodeSocket()==bsocket)
+ return proxySocket;
+ }
+ }
+ }
+ return NULL;
+}
+static OutputSocket *find_output(NodeRange &node_range, bNode *bnode, bNodeSocket *bsocket)
+{
+ if (bnode != NULL) {
+ for (NodeIterator it=node_range.first; it!=node_range.second; ++it) {
+ Node *node = *it;
+ if (node->getbNode() == bnode)
+ return node->findOutputSocketBybNodeSocket(bsocket);
+ }
+ }
+ else {
+ for (NodeIterator it=node_range.first; it!=node_range.second; ++it) {
+ Node *node = *it;
+ if (node->isProxyNode()) {
+ OutputSocket *proxySocket = node->getOutputSocket(0);
+ if (proxySocket->getbNodeSocket()==bsocket)
+ return proxySocket;
+ }
+ }
+ }
+ return NULL;
+}
+SocketConnection *ExecutionSystemHelper::addNodeLink(NodeRange &node_range, vector<SocketConnection*>& links, bNodeLink *bNodeLink)
+{
+ /// @note: cyclic lines will be ignored. This has been copied from node.c
+ if (bNodeLink->tonode != 0 && bNodeLink->fromnode != 0) {
+ if (!(bNodeLink->fromnode->level >= bNodeLink->tonode->level && bNodeLink->tonode->level!=0xFFF)) { // only add non cyclic lines! so execution will procede
+ return NULL;
+ }
+ }
+
+ InputSocket *inputSocket = find_input(node_range, bNodeLink->tonode, bNodeLink->tosock);
+ OutputSocket *outputSocket = find_output(node_range, bNodeLink->fromnode, bNodeLink->fromsock);
+ if (inputSocket == NULL || outputSocket == NULL) {
+ return NULL;
+ }
+ if (inputSocket->isConnected()) {
+ return NULL;
+ }
+ SocketConnection *connection = addLink(links, outputSocket, inputSocket);
+ return connection;
+}
+
+SocketConnection *ExecutionSystemHelper::addLink(vector<SocketConnection*>& links, OutputSocket *fromSocket, InputSocket *toSocket)
+{
+ SocketConnection * newconnection = new SocketConnection();
+ newconnection->setFromSocket(fromSocket);
+ newconnection->setToSocket(toSocket);
+ fromSocket->addConnection(newconnection);
+ toSocket->setConnection(newconnection);
+ links.push_back(newconnection);
+ return newconnection;
+}
+
+void ExecutionSystemHelper::debugDump(ExecutionSystem *system)
+{
+ Node *node;
+ NodeOperation *operation;
+ ExecutionGroup *group;
+ SocketConnection *connection;
+ int tot, tot2;
+ printf("-- BEGIN COMPOSITOR DUMP --\r\n");
+ printf("digraph compositorexecution {\r\n");
+ tot = system->getNodes().size();
+ for (int i = 0 ; i < tot ; i ++) {
+ node = system->getNodes()[i];
+ printf("// NODE: %s\r\n", node->getbNode()->typeinfo->name);
+ }
+ tot = system->getOperations().size();
+ for (int i = 0 ; i < tot ; i ++) {
+ operation = system->getOperations()[i];
+ printf("// OPERATION: %p\r\n", operation);
+ printf("\t\"O_%p\"", operation);
+ printf(" [shape=record,label=\"{");
+ tot2 = operation->getNumberOfInputSockets();
+ if (tot2 != 0) {
+ printf("{");
+ for (int j = 0 ; j < tot2 ; j ++) {
+ InputSocket *socket = operation->getInputSocket(j);
+ if (j != 0) {
+ printf("|");
+ }
+ printf("<IN_%p>", socket);
+ switch (socket->getActualDataType()) {
+ case COM_DT_VALUE:
+ printf("Value");
+ break;
+ case COM_DT_VECTOR:
+ printf("Vector");
+ break;
+ case COM_DT_COLOR:
+ printf("Color");
+ break;
+ case COM_DT_UNKNOWN:
+ printf("Unknown");
+ break;
+ }
+ }
+ printf("}");
+ printf("|");
+ }
+ if (operation->isViewerOperation()) {
+ printf("Viewer");
+ }
+ else if (operation->isOutputOperation(system->getContext().isRendering())) {
+ printf("Output");
+ }
+ else if (operation->isSetOperation()) {
+ printf("Set");
+ }
+ else if (operation->isReadBufferOperation()) {
+ printf("ReadBuffer");
+ }
+ else if (operation->isWriteBufferOperation()) {
+ printf("WriteBuffer");
+ }
+ else {
+ printf("O_%p", operation);
+ }
+ tot2 = operation->getNumberOfOutputSockets();
+ if (tot2 != 0) {
+ printf("|");
+ printf("{");
+ for (int j = 0 ; j < tot2 ; j ++) {
+ OutputSocket *socket = operation->getOutputSocket(j);
+ if (j != 0) {
+ printf("|");
+ }
+ printf("<OUT_%p>", socket);
+ switch (socket->getActualDataType()) {
+ case COM_DT_VALUE:
+ printf("Value");
+ break;
+ case COM_DT_VECTOR:
+ printf("Vector");
+ break;
+ case COM_DT_COLOR:
+ printf("Color");
+ break;
+ case COM_DT_UNKNOWN:
+ printf("Unknown");
+ break;
+ }
+ }
+ printf("}");
+ }
+ printf("}\"]");
+ printf("\r\n");
+ }
+ tot = system->getExecutionGroups().size();
+ for (int i = 0 ; i < tot ; i ++) {
+ group = system->getExecutionGroups()[i];
+ printf("// GROUP: %d\r\n", i);
+ printf("subgraph {\r\n");
+ printf("// OUTPUTOPERATION: %p\r\n", group->getOutputNodeOperation());
+ printf(" O_%p\r\n", group->getOutputNodeOperation());
+ printf("}\r\n");
+ }
+ tot = system->getOperations().size();
+ for (int i = 0 ; i < tot ; i ++) {
+ operation = system->getOperations()[i];
+ if (operation->isReadBufferOperation()) {
+ ReadBufferOperation * read = (ReadBufferOperation*)operation;
+ WriteBufferOperation * write = read->getMemoryProxy()->getWriteBufferOperation();
+ printf("\t\"O_%p\" -> \"O_%p\" [style=dotted]\r\n", write, read);
+ }
+ }
+ tot = system->getConnections().size();
+ for (int i = 0 ; i < tot ; i ++) {
+ connection = system->getConnections()[i];
+ printf("// CONNECTION: %p.%p -> %p.%p\r\n", connection->getFromNode(), connection->getFromSocket(), connection->getToNode(), connection->getToSocket());
+ printf("\t\"O_%p\":\"OUT_%p\" -> \"O_%p\":\"IN_%p\"", connection->getFromNode(), connection->getFromSocket(), connection->getToNode(), connection->getToSocket());
+ if (!connection->isValid()) {
+ printf(" [color=red]");
+ }
+ else {
+ switch (connection->getFromSocket()->getActualDataType()) {
+ case COM_DT_VALUE:
+ printf(" [color=grey]");
+ break;
+ case COM_DT_VECTOR:
+ printf(" [color=blue]");
+ break;
+ case COM_DT_COLOR:
+ printf(" [color=orange]");
+ break;
+ case COM_DT_UNKNOWN:
+ printf(" [color=black]");
+ break;
+ }
+ }
+ printf("\r\n");
+ }
+ printf("}\r\n");
+ printf("-- END COMPOSITOR DUMP --\r\n");
+}
diff --git a/source/blender/compositor/intern/COM_ExecutionSystemHelper.h b/source/blender/compositor/intern/COM_ExecutionSystemHelper.h
new file mode 100644
index 00000000000..a72e269115e
--- /dev/null
+++ b/source/blender/compositor/intern/COM_ExecutionSystemHelper.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class ExecutionGroup;
+
+#ifndef _COM_ExecutionSystemHelper_h
+#define _COM_ExecutionSystemHelper_h
+
+#include "DNA_node_types.h"
+#include <vector>
+#include "COM_Node.h"
+#include "COM_SocketConnection.h"
+#include "BKE_text.h"
+#include "COM_ExecutionGroup.h"
+
+using namespace std;
+
+/**
+ *
+ */
+class ExecutionSystemHelper {
+
+public:
+
+ /**
+ * @brief add an bNodeTree to the nodes list and connections
+ * @param system Execution system
+ * @param nodes_start Starting index in the system's nodes list for nodes in this tree.
+ * @param tree bNodeTree to add
+ * @return Node representing the "Compositor node" of the maintree. or NULL when a subtree is added
+ */
+ static Node *addbNodeTree(ExecutionSystem &system, int nodes_start, bNodeTree * tree);
+
+ /**
+ * @brief add an editor node to the system.
+ * this node is converted to a Node instance.
+ * and the converted node is returned
+ *
+ * @param bNode node to add
+ * @return Node that represents the bNode or null when not able to convert.
+ */
+ static Node *addNode(vector<Node*>& nodes, bNode *bNode);
+
+ /**
+ * @brief Add a Node to a list
+ *
+ * @param nodes the list where the node needs to be added to
+ * @param node the node to be added
+ */
+ static void addNode(vector<Node*>& nodes, Node *node);
+
+ /**
+ * @brief Add an operation to the operation list
+ *
+ * The id of the operation is updated.
+ *
+ * @param operations the list where the operation need to be added to
+ * @param operation the operation to add
+ */
+ static void addOperation(vector<NodeOperation*> &operations, NodeOperation *operation);
+
+ /**
+ * @brief Add an ExecutionGroup to a list
+ *
+ * The id of the ExecutionGroup is updated.
+ *
+ * @param executionGroups the list where the executionGroup need to be added to
+ * @param executionGroup the ExecutionGroup to add
+ */
+ static void addExecutionGroup(vector<ExecutionGroup*>& executionGroups, ExecutionGroup *executionGroup);
+
+ /**
+ * Find all Node Operations that needs to be executed.
+ * @param rendering
+ * the rendering parameter will tell what type of execution we are doing
+ * FALSE is editing, TRUE is rendering
+ */
+ static void findOutputNodeOperations(vector<NodeOperation*>* result, vector<NodeOperation*>& operations , bool rendering);
+
+ /**
+ * @brief add a bNodeLink to the list of links
+ * the bNodeLink will be wrapped in a SocketConnection
+ *
+ * @note Cyclic links will be ignored
+ *
+ * @param node_range list of possible nodes for lookup.
+ * @param links list of links to add the bNodeLink to
+ * @param bNodeLink the link to be added
+ * @return the created SocketConnection or NULL
+ */
+ static SocketConnection *addNodeLink(NodeRange &node_range, vector<SocketConnection*>& links, bNodeLink *bNodeLink);
+
+ /**
+ * @brief create a new SocketConnection and add to a vector of links
+ * @param links the vector of links
+ * @param fromSocket the startpoint of the connection
+ * @param toSocket the endpoint of the connection
+ * @return the new created SocketConnection
+ */
+ static SocketConnection *addLink(vector<SocketConnection*>& links, OutputSocket *fromSocket, InputSocket *toSocket);
+
+ /**
+ * @brief dumps the content of the execution system to standard out
+ * @param system the execution system to dump
+ */
+ static void debugDump(ExecutionSystem *system);
+};
+#endif
diff --git a/source/blender/compositor/intern/COM_InputSocket.cpp b/source/blender/compositor/intern/COM_InputSocket.cpp
new file mode 100644
index 00000000000..4d96d077901
--- /dev/null
+++ b/source/blender/compositor/intern/COM_InputSocket.cpp
@@ -0,0 +1,243 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Socket.h"
+#include "COM_Node.h"
+#include "COM_SocketConnection.h"
+#include "COM_ExecutionSystem.h"
+
+InputSocket::InputSocket(DataType datatype) :Socket(datatype)
+{
+ this->connection = NULL;
+ this->resizeMode = COM_SC_CENTER;
+}
+InputSocket::InputSocket(DataType datatype, InputSocketResizeMode resizeMode) :Socket(datatype)
+{
+ this->connection = NULL;
+ this->resizeMode = resizeMode;
+}
+
+InputSocket::InputSocket(InputSocket *from) :Socket(from->getDataType())
+{
+ this->connection = NULL;
+ this->resizeMode = from->getResizeMode();
+}
+
+int InputSocket::isInputSocket() const { return true; }
+const int InputSocket::isConnected() const { return this->connection != NULL; }
+
+void InputSocket::setConnection(SocketConnection *connection)
+{
+ this->connection = connection;
+}
+SocketConnection *InputSocket::getConnection()
+{
+ return this->connection;
+}
+
+void InputSocket::determineResolution(unsigned int resolution[],unsigned int preferredResolution[])
+{
+ if (this->isConnected()) {
+ this->connection->getFromSocket()->determineResolution(resolution, preferredResolution);
+ }
+ else {
+ return;
+ }
+}
+
+DataType InputSocket::convertToSupportedDataType(DataType datatype)
+{
+ int supportedDataTypes = getDataType();
+ if (supportedDataTypes&datatype) {
+ return datatype;
+ }
+ bool candoValue = supportedDataTypes&COM_DT_VALUE;
+ bool candoVector = supportedDataTypes&COM_DT_VECTOR;
+ bool candoColor = supportedDataTypes&COM_DT_COLOR;
+
+ if (datatype == COM_DT_VALUE) {
+ if (candoColor) {
+ return COM_DT_COLOR;
+ }
+ else if (candoVector) {
+ return COM_DT_VECTOR;
+ }
+ }
+ else if (datatype == COM_DT_VECTOR) {
+ if (candoColor) {
+ return COM_DT_COLOR;
+ }
+ else if (candoValue) {
+ return COM_DT_VALUE;
+ }
+ }
+ else if (datatype == COM_DT_COLOR) {
+ if (candoVector) {
+ return COM_DT_VECTOR;
+ }
+ else if (candoValue) {
+ return COM_DT_VALUE;
+ }
+ }
+ return this->getDataType();
+}
+
+void InputSocket::determineActualDataType()
+{
+ /// @note: this method is only called for inputsocket that are not connected.
+ /// @note: passes COM_DT_COLOR, the convertToSupportedDataType converts this to a capable DataType
+ this->setActualDataType(this->convertToSupportedDataType(COM_DT_COLOR));
+ #if 0 // XXX TODO check for proxy node and use output data type?
+ if (this->getGroupOutputSocket()) {
+ if (!this->isInsideOfGroupNode()) {
+ this->getGroupOutputSocket()->determineActualDataType();
+ }
+ }
+ #endif
+}
+
+void InputSocket::notifyActualInputType(DataType datatype)
+{
+ DataType supportedDataType = convertToSupportedDataType(datatype);
+ this->setActualDataType(supportedDataType);
+ this->fireActualDataTypeSet();
+}
+
+void InputSocket::fireActualDataTypeSet()
+{
+ this->getNode()->notifyActualDataTypeSet(this, this->getActualDataType());
+}
+void InputSocket::relinkConnections(InputSocket *relinkToSocket)
+{
+ if (!isConnected()) {
+ return;
+ }
+ SocketConnection *connection = this->getConnection();
+ connection->setToSocket(relinkToSocket);
+ relinkToSocket->setConnection(connection);
+ this->setConnection(NULL);
+}
+
+void InputSocket::relinkConnectionsDuplicate(InputSocket *relinkToSocket, int editorNodeInputSocketIndex, ExecutionSystem *graph)
+{
+ if (!this->isConnected()) {
+ Node *node = (Node*)this->getNode();
+ switch (this->getActualDataType()) {
+ case COM_DT_UNKNOWN:
+ case COM_DT_COLOR:
+ node->addSetColorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VECTOR:
+ node->addSetVectorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VALUE:
+ node->addSetValueOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ }
+ return;
+ }
+ SocketConnection * newConnection = new SocketConnection();
+ OutputSocket * fromSocket = this->getConnection()->getFromSocket();
+ newConnection->setToSocket(relinkToSocket);
+ newConnection->setFromSocket(fromSocket);
+ relinkToSocket->setConnection(newConnection);
+ fromSocket->addConnection(newConnection);
+ graph->addSocketConnection(newConnection);
+}
+
+void InputSocket::relinkConnections(InputSocket *relinkToSocket, int editorNodeInputSocketIndex, ExecutionSystem *graph)
+{
+ if (isConnected()) {
+ relinkConnections(relinkToSocket);
+ }
+ else {
+ Node *node = (Node*)this->getNode();
+ switch (this->getActualDataType()) {
+ case COM_DT_UNKNOWN:
+ case COM_DT_COLOR:
+ node->addSetColorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VECTOR:
+ node->addSetVectorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VALUE:
+ node->addSetValueOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ }
+ }
+}
+
+const ChannelInfo *InputSocket::getChannelInfo(const int channelnumber)
+{
+ if (this->isConnected() && this->connection->getFromSocket()) {
+ return this->connection->getFromSocket()->getChannelInfo(channelnumber);
+ }
+ else {
+ return NULL;
+ }
+}
+
+bool InputSocket::isStatic()
+{
+ if (isConnected()) {
+ NodeBase *node = this->getConnection()->getFromNode();
+ if (node) {
+ return node->isStatic();
+ }
+ }
+ return true;
+}
+SocketReader *InputSocket::getReader()
+{
+ return this->getOperation();
+}
+
+NodeOperation *InputSocket::getOperation() const
+{
+ if (isConnected()) {
+ return (NodeOperation*)this->connection->getFromSocket()->getNode();
+ }
+ else {
+ return NULL;
+ }
+}
+
+float *InputSocket::getStaticValues()
+{
+ /* XXX only works for socket types with actual float input values.
+ * currently all compositor socket types (value, rgba, vector) support this.
+ */
+ bNodeSocket *b_socket = this->getbNodeSocket();
+ static float default_null = 0.0f;
+
+ switch (this->getDataType()) {
+ case COM_DT_VALUE:
+ return &((bNodeSocketValueFloat*)b_socket->default_value)->value;
+ case COM_DT_COLOR:
+ return ((bNodeSocketValueRGBA*)b_socket->default_value)->value;
+ case COM_DT_VECTOR:
+ return ((bNodeSocketValueVector*)b_socket->default_value)->value;
+ default:
+ /* XXX this should never happen, just added to please the compiler */
+ return &default_null;
+ }
+}
diff --git a/source/blender/compositor/intern/COM_InputSocket.h b/source/blender/compositor/intern/COM_InputSocket.h
new file mode 100644
index 00000000000..b1c75e34844
--- /dev/null
+++ b/source/blender/compositor/intern/COM_InputSocket.h
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_InputSocket_h
+#define _COM_InputSocket_h
+
+#include <vector>
+#include "COM_Socket.h"
+#include "COM_SocketReader.h"
+
+using namespace std;
+class SocketConnection;
+class Node;
+class ExecutionSystem;
+class OutputSocket;
+class ChannelInfo;
+class NodeOperation;
+
+/**
+ * @brief Resize modes of inputsockets
+ * How are the input and working resolutions matched
+ * @ingroup Model
+ */
+typedef enum InputSocketResizeMode {
+ /** @brief Center the input image to the center of the working area of the node, no resizing occurs */
+ COM_SC_CENTER = NS_CR_CENTER,
+ /** @brief The bottom left of the input image is the bottom left of the working area of the node, no resizing occurs */
+ COM_SC_NO_RESIZE = NS_CR_NONE,
+ /** @brief Fit the width of the input image to the width of the working area of the node */
+ COM_SC_FIT_WIDTH = NS_CR_FIT_WIDTH,
+ /** @brief Fit the height of the input image to the height of the working area of the node */
+ COM_SC_FIT_HEIGHT = NS_CR_FIT_HEIGHT,
+ /** @brief Fit the width or the height of the input image to the width or height of the working area of the node, image will be larger than the working area */
+ COM_SC_FIT = NS_CR_FIT,
+ /** @brief Fit the width and the height of the input image to the width and height of the working area of the node, image will be equally larger than the working area */
+ COM_SC_STRETCH = NS_CR_STRETCH
+} InputSocketResizeMode;
+
+/**
+ * @brief InputSocket are sockets that can receive data/input
+ * @ingroup Model
+ */
+class InputSocket : public Socket {
+private:
+ /**
+ * @brief connection connected to this InputSocket.
+ * An input socket can only have a single connection
+ */
+ SocketConnection *connection;
+
+ /**
+ * @brief resize mode of this socket
+ */
+ InputSocketResizeMode resizeMode;
+
+
+ /**
+ * @brief convert a data type to a by the socket supported data type.
+ *
+ * @param datatype the datatype that needs to be checked
+ * @section data-conversion
+ */
+ DataType convertToSupportedDataType(DataType datatype);
+
+ /**
+ * @brief called when the ActualDataType is set. notifies other parties
+ */
+ void fireActualDataTypeSet();
+
+public:
+ InputSocket(DataType datatype);
+ InputSocket(DataType datatype, InputSocketResizeMode resizeMode);
+ InputSocket(InputSocket *from);
+
+ void setConnection(SocketConnection *connection);
+ SocketConnection *getConnection();
+
+ const int isConnected() const;
+ int isInputSocket() const;
+
+ /**
+ * @brief determine the resolution of this data going through this socket
+ * @param resolution the result of this operation
+ * @param preferredResolution the preferrable resolution as no resolution could be determined
+ */
+ void determineResolution(unsigned int resolution[],unsigned int preferredResolution[]);
+
+ void determineActualDataType();
+
+ /**
+ * @brief Notifies the Input of the data type (via a SocketConnection)
+ * @param datatype the datatype to evaluate
+ */
+ void notifyActualInputType(DataType datatype);
+
+ /**
+ * @brief move all connections of this input socket to another socket
+ * only use this method when already checked the availability of a SocketConnection
+ * @param relinkToSocket the socket to move to connections to
+ */
+ void relinkConnections(InputSocket *relinkToSocket);
+
+ /**
+ * @brief move all connections of this input socket to another socket
+ * @param relinkToSocket the socket to move to connections to
+ * @param autoconnect will a set operation be added when no connections exist
+ * @param editorNodeInputSocketIndex index of the socket number of the bNode (used to retrieve the value for autoconnection)
+ * @param system ExecutionSystem to update to
+ */
+ void relinkConnections(InputSocket *relinkToSocket, int editorNodeInputSocketIndex, ExecutionSystem *system);
+
+ /**
+ * @brief move all connections of this input socket to another socket
+ * @param relinkToSocket the socket to move to connections to
+ * @param editorNodeInputSocketIndex index of the socket number of the bNode (used to retrieve the value for autoconnection)
+ * @param system ExecutionSystem to update to
+ */
+ void relinkConnectionsDuplicate(InputSocket *relinkToSocket, int editorNodeInputSocketIndex, ExecutionSystem *system);
+
+ /**
+ * @brief set the resize mode
+ * @param resizeMode the new resize mode.
+ */
+ void setResizeMode(InputSocketResizeMode resizeMode) {this->resizeMode = resizeMode;}
+
+ /**
+ * @brief get the resize mode of this socket
+ * @return InputSocketResizeMode
+ */
+ InputSocketResizeMode getResizeMode() const {return this->resizeMode;}
+
+ const ChannelInfo *getChannelInfo(const int channelnumber);
+
+ bool isStatic();
+
+ float *getStaticValues();
+ SocketReader *getReader();
+ NodeOperation *getOperation() const;
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_MemoryBuffer.cpp b/source/blender/compositor/intern/COM_MemoryBuffer.cpp
new file mode 100644
index 00000000000..19c2c96a8f2
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryBuffer.cpp
@@ -0,0 +1,353 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MemoryBuffer.h"
+#include "MEM_guardedalloc.h"
+#include "BLI_math.h"
+#include "BKE_global.h"
+
+unsigned int MemoryBuffer::determineBufferSize()
+{
+ return getWidth() * getHeight();
+}
+
+int MemoryBuffer::getWidth() const
+{
+ return this->rect.xmax-this->rect.xmin;
+}
+int MemoryBuffer::getHeight() const
+{
+ return this->rect.ymax-this->rect.ymin;
+}
+
+MemoryBuffer::MemoryBuffer(MemoryProxy * memoryProxy, unsigned int chunkNumber, rcti *rect)
+{
+ BLI_init_rcti(&this->rect, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
+ this->memoryProxy = memoryProxy;
+ this->chunkNumber = chunkNumber;
+ this->buffer = (float*)MEM_mallocN(sizeof(float)*determineBufferSize()*4, "COM_MemoryBuffer");
+ this->state = COM_MB_ALLOCATED;
+ this->datatype = COM_DT_COLOR;
+ this->chunkWidth = this->rect.xmax - this->rect.xmin;
+}
+
+MemoryBuffer::MemoryBuffer(MemoryProxy * memoryProxy, rcti *rect)
+{
+ BLI_init_rcti(&this->rect, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
+ this->memoryProxy = memoryProxy;
+ this->chunkNumber = -1;
+ this->buffer = (float*)MEM_mallocN(sizeof(float)*determineBufferSize()*4, "COM_MemoryBuffer");
+ this->state = COM_MB_TEMPORARILY;
+ this->datatype = COM_DT_COLOR;
+ this->chunkWidth = this->rect.xmax - this->rect.xmin;
+}
+MemoryBuffer *MemoryBuffer::duplicate()
+{
+ MemoryBuffer *result = new MemoryBuffer(this->memoryProxy, &this->rect);
+ memcpy(result->buffer, this->buffer, this->determineBufferSize()*4*sizeof(float));
+ return result;
+}
+void MemoryBuffer::clear()
+{
+ memset(this->buffer, 0, this->determineBufferSize()*4*sizeof(float));
+}
+
+float *MemoryBuffer::convertToValueBuffer()
+{
+ int size = this->determineBufferSize();
+ int i;
+ int offset4;
+ float *result = new float[size];
+ for (i = 0, offset4 = 0 ; i < size ; i ++, offset4 +=4) {
+ result[i] = this->buffer[offset4];
+ }
+
+ return result;
+}
+
+MemoryBuffer::~MemoryBuffer()
+{
+ if (this->buffer) {
+ MEM_freeN(this->buffer);
+ this->buffer = NULL;
+ }
+}
+
+void MemoryBuffer::copyContentFrom(MemoryBuffer *otherBuffer)
+{
+ if (!otherBuffer) {
+ return;
+ }
+ unsigned int otherY;
+ unsigned int minX = max(this->rect.xmin, otherBuffer->rect.xmin);
+ unsigned int maxX = min(this->rect.xmax, otherBuffer->rect.xmax);
+ unsigned int minY = max(this->rect.ymin, otherBuffer->rect.ymin);
+ unsigned int maxY = min(this->rect.ymax, otherBuffer->rect.ymax);
+ int offset;
+ int otherOffset;
+
+
+ for (otherY = minY ; otherY<maxY ; otherY ++) {
+ otherOffset = ((otherY-otherBuffer->rect.ymin) * otherBuffer->chunkWidth + minX-otherBuffer->rect.xmin)*4;
+ offset = ((otherY - this->rect.ymin) * this->chunkWidth + minX-this->rect.xmin)*4;
+ memcpy(&this->buffer[offset], &otherBuffer->buffer[otherOffset], (maxX-minX) * 4*sizeof(float));
+ }
+}
+
+void MemoryBuffer::read(float *result, int x, int y)
+{
+ if (x>=this->rect.xmin && x < this->rect.xmax &&
+ y>=this->rect.ymin && y < this->rect.ymax) {
+ int dx = x-this->rect.xmin;
+ int dy = y-this->rect.ymin;
+ int offset = (this->chunkWidth*dy+dx)*4;
+ result[0] = this->buffer[offset];
+ result[1] = this->buffer[offset+1];
+ result[2] = this->buffer[offset+2];
+ result[3] = this->buffer[offset+3];
+ }
+ else {
+ result[0] = 0.0f;
+ result[1] = 0.0f;
+ result[2] = 0.0f;
+ result[3] = 0.0f;
+ }
+}
+void MemoryBuffer::writePixel(int x, int y, float color[4])
+{
+ if (x>=this->rect.xmin && x < this->rect.xmax &&
+ y>=this->rect.ymin && y < this->rect.ymax) {
+ int offset = (this->chunkWidth*y+x)*4;
+ this->buffer[offset] = color[0];
+ this->buffer[offset+1] = color[1];
+ this->buffer[offset+2] = color[2];
+ this->buffer[offset+3] = color[3];
+ }
+}
+
+void MemoryBuffer::readCubic(float *result, float x, float y)
+{
+ int x1 = floor(x);
+ int x2 = x1 + 1;
+ int y1 = floor(y);
+ int y2 = y1 + 1;
+
+ float valuex = x - x1;
+ float valuey = y - y1;
+ float mvaluex = 1.0 - valuex;
+ float mvaluey = 1.0 - valuey;
+
+ float color1[4];
+ float color2[4];
+ float color3[4];
+ float color4[4];
+
+ read(color1, x1, y1);
+ read(color2, x1, y2);
+ read(color3, x2, y1);
+ read(color4, x2, y2);
+
+ color1[0] = color1[0]*mvaluey + color2[0]*valuey;
+ color1[1] = color1[1]*mvaluey + color2[1]*valuey;
+ color1[2] = color1[2]*mvaluey + color2[2]*valuey;
+ color1[3] = color1[3]*mvaluey + color2[3]*valuey;
+
+ color3[0] = color3[0]*mvaluey + color4[0]*valuey;
+ color3[1] = color3[1]*mvaluey + color4[1]*valuey;
+ color3[2] = color3[2]*mvaluey + color4[2]*valuey;
+ color3[3] = color3[3]*mvaluey + color4[3]*valuey;
+
+ result[0] = color1[0]*mvaluex + color3[0]*valuex;
+ result[1] = color1[1]*mvaluex + color3[1]*valuex;
+ result[2] = color1[2]*mvaluex + color3[2]*valuex;
+ result[3] = color1[3]*mvaluex + color3[3]*valuex;
+}
+
+
+// table of (exp(ar) - exp(a)) / (1 - exp(a)) for r in range [0, 1] and a = -2
+// used instead of actual gaussian, otherwise at high texture magnifications circular artifacts are visible
+#define EWA_MAXIDX 255
+static float EWA_WTS[EWA_MAXIDX + 1] =
+{ 1.f, 0.990965f, 0.982f, 0.973105f, 0.96428f, 0.955524f, 0.946836f, 0.938216f, 0.929664f,
+ 0.921178f, 0.912759f, 0.904405f, 0.896117f, 0.887893f, 0.879734f, 0.871638f, 0.863605f,
+ 0.855636f, 0.847728f, 0.839883f, 0.832098f, 0.824375f, 0.816712f, 0.809108f, 0.801564f,
+ 0.794079f, 0.786653f, 0.779284f, 0.771974f, 0.76472f, 0.757523f, 0.750382f, 0.743297f,
+ 0.736267f, 0.729292f, 0.722372f, 0.715505f, 0.708693f, 0.701933f, 0.695227f, 0.688572f,
+ 0.68197f, 0.67542f, 0.66892f, 0.662471f, 0.656073f, 0.649725f, 0.643426f, 0.637176f,
+ 0.630976f, 0.624824f, 0.618719f, 0.612663f, 0.606654f, 0.600691f, 0.594776f, 0.588906f,
+ 0.583083f, 0.577305f, 0.571572f, 0.565883f, 0.56024f, 0.55464f, 0.549084f, 0.543572f,
+ 0.538102f, 0.532676f, 0.527291f, 0.521949f, 0.516649f, 0.511389f, 0.506171f, 0.500994f,
+ 0.495857f, 0.490761f, 0.485704f, 0.480687f, 0.475709f, 0.470769f, 0.465869f, 0.461006f,
+ 0.456182f, 0.451395f, 0.446646f, 0.441934f, 0.437258f, 0.432619f, 0.428017f, 0.42345f,
+ 0.418919f, 0.414424f, 0.409963f, 0.405538f, 0.401147f, 0.39679f, 0.392467f, 0.388178f,
+ 0.383923f, 0.379701f, 0.375511f, 0.371355f, 0.367231f, 0.363139f, 0.359079f, 0.355051f,
+ 0.351055f, 0.347089f, 0.343155f, 0.339251f, 0.335378f, 0.331535f, 0.327722f, 0.323939f,
+ 0.320186f, 0.316461f, 0.312766f, 0.3091f, 0.305462f, 0.301853f, 0.298272f, 0.294719f,
+ 0.291194f, 0.287696f, 0.284226f, 0.280782f, 0.277366f, 0.273976f, 0.270613f, 0.267276f,
+ 0.263965f, 0.26068f, 0.257421f, 0.254187f, 0.250979f, 0.247795f, 0.244636f, 0.241502f,
+ 0.238393f, 0.235308f, 0.232246f, 0.229209f, 0.226196f, 0.223206f, 0.220239f, 0.217296f,
+ 0.214375f, 0.211478f, 0.208603f, 0.20575f, 0.20292f, 0.200112f, 0.197326f, 0.194562f,
+ 0.191819f, 0.189097f, 0.186397f, 0.183718f, 0.18106f, 0.178423f, 0.175806f, 0.17321f,
+ 0.170634f, 0.168078f, 0.165542f, 0.163026f, 0.16053f, 0.158053f, 0.155595f, 0.153157f,
+ 0.150738f, 0.148337f, 0.145955f, 0.143592f, 0.141248f, 0.138921f, 0.136613f, 0.134323f,
+ 0.132051f, 0.129797f, 0.12756f, 0.125341f, 0.123139f, 0.120954f, 0.118786f, 0.116635f,
+ 0.114501f, 0.112384f, 0.110283f, 0.108199f, 0.106131f, 0.104079f, 0.102043f, 0.100023f,
+ 0.0980186f, 0.09603f, 0.094057f, 0.0920994f, 0.0901571f, 0.08823f, 0.0863179f, 0.0844208f,
+ 0.0825384f, 0.0806708f, 0.0788178f, 0.0769792f, 0.0751551f, 0.0733451f, 0.0715493f, 0.0697676f,
+ 0.0679997f, 0.0662457f, 0.0645054f, 0.0627786f, 0.0610654f, 0.0593655f, 0.0576789f, 0.0560055f,
+ 0.0543452f, 0.0526979f, 0.0510634f, 0.0494416f, 0.0478326f, 0.0462361f, 0.0446521f, 0.0430805f,
+ 0.0415211f, 0.039974f, 0.0384389f, 0.0369158f, 0.0354046f, 0.0339052f, 0.0324175f, 0.0309415f,
+ 0.029477f, 0.0280239f, 0.0265822f, 0.0251517f, 0.0237324f, 0.0223242f, 0.020927f, 0.0195408f,
+ 0.0181653f, 0.0168006f, 0.0154466f, 0.0141031f, 0.0127701f, 0.0114476f, 0.0101354f, 0.00883339f,
+ 0.00754159f, 0.00625989f, 0.00498819f, 0.00372644f, 0.00247454f, 0.00123242f, 0.f
+};
+
+static void radangle2imp(float a2, float b2, float th, float *A, float *B, float *C, float *F)
+{
+ float ct2 = cosf(th);
+ const float st2 = 1.f - ct2*ct2; // <- sin(th)^2
+ ct2 *= ct2;
+ *A = a2*st2 + b2*ct2;
+ *B = (b2 - a2)*sinf(2.f*th);
+ *C = a2*ct2 + b2*st2;
+ *F = a2*b2;
+}
+
+// all tests here are done to make sure possible overflows are hopefully minimized
+static void imp2radangle(float A, float B, float C, float F, float *a, float *b, float *th, float *ecc)
+{
+ if (F <= 1e-5f) { // use arbitrary major radius, zero minor, infinite eccentricity
+ *a = sqrtf(A > C ? A : C);
+ *b = 0.f;
+ *ecc = 1e10f;
+ *th = 0.5f*(atan2f(B, A - C) + (float)M_PI);
+ }
+ else {
+ const float AmC = A - C, ApC = A + C, F2 = F*2.f;
+ const float r = sqrtf(AmC*AmC + B*B);
+ float d = ApC - r;
+ *a = (d <= 0.f) ? sqrtf(A > C ? A : C) : sqrtf(F2 / d);
+ d = ApC + r;
+ if (d <= 0.f) {
+ *b = 0.f;
+ *ecc = 1e10f;
+ }
+ else {
+ *b = sqrtf(F2 / d);
+ *ecc = *a / *b;
+ }
+ // incr theta by 0.5*pi (angle of major axis)
+ *th = 0.5f*(atan2f(B, AmC) + (float)M_PI);
+ }
+}
+
+float clipuv(float x, float limit)
+{
+ x = (x < 0) ? 0 : ((x >= limit) ? (limit - 1) : x);
+ return x;
+}
+
+void MemoryBuffer::readEWA(float *result, float fx, float fy, float dx, float dy)
+{
+ int width = this->getWidth(), height = this->getHeight();
+
+ // scaling dxt/dyt by full resolution can cause overflow because of huge A/B/C and esp. F values,
+ // scaling by aspect ratio alone does the opposite, so try something in between instead...
+ const float ff2 = width, ff = sqrtf(ff2), q = height / ff;
+ const float Ux = dx*ff, Vx = dx*q, Uy = dy*ff, Vy = dy*q;
+ float A = Vx*Vx + Vy*Vy;
+ float B = -2.f*(Ux*Vx + Uy*Vy);
+ float C = Ux*Ux + Uy*Uy;
+ float F = A*C - B*B*0.25f;
+ float a, b, th, ecc, a2, b2, ue, ve, U0, V0, DDQ, U, ac1, ac2, BU, d;
+ int u, v, u1, u2, v1, v2;
+ // The so-called 'high' quality ewa method simply adds a constant of 1 to both A & C,
+ // so the ellipse always covers at least some texels. But since the filter is now always larger,
+ // it also means that everywhere else it's also more blurry then ideally should be the case.
+ // So instead here the ellipse radii are modified instead whenever either is too low.
+ // Use a different radius based on interpolation switch, just enough to anti-alias when interpolation is off,
+ // and slightly larger to make result a bit smoother than bilinear interpolation when interpolation is on
+ // (minimum values: const float rmin = intpol ? 1.f : 0.5f;)
+ const float rmin = 1.5625f/ff2;
+ imp2radangle(A, B, C, F, &a, &b, &th, &ecc);
+ if ((b2 = b*b) < rmin) {
+ if ((a2 = a*a) < rmin) {
+ B = 0.f;
+ A = C = rmin;
+ F = A*C;
+ }
+ else {
+ b2 = rmin;
+ radangle2imp(a2, b2, th, &A, &B, &C, &F);
+ }
+ }
+
+ ue = ff*sqrtf(C);
+ ve = ff*sqrtf(A);
+ d = (float)(EWA_MAXIDX + 1) / (F*ff2);
+ A *= d;
+ B *= d;
+ C *= d;
+
+ U0 = fx;
+ V0 = fy;
+ u1 = (int)(floorf(U0 - ue));
+ u2 = (int)(ceilf(U0 + ue));
+ v1 = (int)(floorf(V0 - ve));
+ v2 = (int)(ceilf(V0 + ve));
+ U0 -= 0.5f;
+ V0 -= 0.5f;
+ DDQ = 2.f*A;
+ U = u1 - U0;
+ ac1 = A*(2.f*U + 1.f);
+ ac2 = A*U*U;
+ BU = B*U;
+
+ d = result[0] = result[1] = result[2] = result[3] = 0.f;
+ for (v=v1; v<=v2; ++v) {
+ const float V = v - V0;
+ float DQ = ac1 + B*V;
+ float Q = (C*V + BU)*V + ac2;
+ for (u=u1; u<=u2; ++u) {
+ if (Q < (float)(EWA_MAXIDX + 1)) {
+ float tc[4];
+ const float wt = EWA_WTS[(Q < 0.f) ? 0 : (unsigned int)Q];
+ read(tc, clipuv(u, width), clipuv(v, height));
+ result[0] += tc[0]*wt;
+ result[1] += tc[1]*wt;
+ result[2] += tc[2]*wt;
+ result[3] += result[3] ? tc[3]*wt : 0.f;
+ d += wt;
+ }
+ Q += DQ;
+ DQ += DDQ;
+ }
+ }
+
+ // d should hopefully never be zero anymore
+ d = 1.f/d;
+ result[0] *= d;
+ result[1] *= d;
+ result[2] *= d;
+ // clipping can be ignored if alpha used, texr->ta already includes filtered edge
+ result[3] = result[3] ? result[3] *d : 1.f;
+}
diff --git a/source/blender/compositor/intern/COM_MemoryBuffer.h b/source/blender/compositor/intern/COM_MemoryBuffer.h
new file mode 100644
index 00000000000..bfc18424570
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryBuffer.h
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class MemoryBuffer;
+
+#ifndef _COM_MemoryBuffer_h_
+#define _COM_MemoryBuffer_h_
+
+#include "COM_ExecutionGroup.h"
+#include "BLI_rect.h"
+#include "COM_MemoryProxy.h"
+extern "C" {
+ #include "BLI_threads.h"
+}
+#include <vector>
+
+/**
+ * @brief state of a memory buffer
+ * @ingroup Memory
+ */
+typedef enum MemoryBufferState {
+ /** @brief memory has been allocated on creator device and CPU machine, but kernel has not been executed */
+ COM_MB_ALLOCATED = 1,
+ /** @brief memory is available for use, content has been created */
+ COM_MB_AVAILABLE = 2,
+ /** @brief chunk is consolidated from other chunks. special state.*/
+ COM_MB_TEMPORARILY = 6
+} MemoryBufferState;
+
+class MemoryProxy;
+
+/**
+ * @brief a MemoryBuffer contains access to the data of a chunk
+ */
+class MemoryBuffer {
+private:
+ /**
+ * @brief proxy of the memory (same for all chunks in the same buffer)
+ */
+ MemoryProxy * memoryProxy;
+
+ /**
+ * @brief the type of buffer COM_DT_VALUE, COM_DT_VECTOR, COM_DT_COLOR
+ */
+ DataType datatype;
+
+
+ /**
+ * @brief region of this buffer inside reative to the MemoryProxy
+ */
+ rcti rect;
+
+ /**
+ * brief refers to the chunknumber within the executiongroup where related to the MemoryProxy
+ * @see memoryProxy
+ */
+ unsigned int chunkNumber;
+
+ /**
+ * @brief width of the chunk
+ */
+ unsigned int chunkWidth;
+
+ /**
+ * @brief state of the buffer
+ */
+ MemoryBufferState state;
+
+ /**
+ * @brief the actual float buffer/data
+ */
+ float *buffer;
+
+public:
+ /**
+ * @brief construct new MemoryBuffer for a chunk
+ */
+ MemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber, rcti *rect);
+
+ /**
+ * @brief construct new temporarily MemoryBuffer for an area
+ */
+ MemoryBuffer(MemoryProxy *memoryProxy, rcti *rect);
+
+ /**
+ * @brief destructor
+ */
+ ~MemoryBuffer();
+
+ /**
+ * @brief read the ChunkNumber of this MemoryBuffer
+ */
+ unsigned int getChunkNumber() {return this->chunkNumber;}
+
+ /**
+ * @brief get the data of this MemoryBuffer
+ * @note buffer should already be available in memory
+ */
+ float *getBuffer() {return this->buffer;}
+
+ /**
+ * @brief after execution the state will be set to available by calling this method
+ */
+ void setCreatedState() {
+ this->state = COM_MB_AVAILABLE;
+ }
+
+ void read(float *result, int x, int y);
+ void writePixel(int x, int y, float color[4]);
+ void readCubic(float *result, float x, float y);
+ void readEWA(float *result, float fx, float fy, float dx, float dy);
+
+ /**
+ * @brief is this MemoryBuffer a temporarily buffer (based on an area, not on a chunk)
+ */
+ inline const bool isTemporarily() const {return this->state == COM_MB_TEMPORARILY;}
+
+ /**
+ * @brief add the content from otherBuffer to this MemoryBuffer
+ * @param otherBuffer source buffer
+ */
+ void copyContentFrom(MemoryBuffer *otherBuffer);
+
+ /**
+ * @brief get the rect of this MemoryBuffer
+ */
+ rcti *getRect() {return &this->rect;}
+
+ /**
+ * @brief get the width of this MemoryBuffer
+ */
+ int getWidth() const;
+
+ /**
+ * @brief get the height of this MemoryBuffer
+ */
+ int getHeight() const;
+
+ /**
+ * @brief clear the buffer. Make all pixels black transparant.
+ */
+ void clear();
+
+ MemoryBuffer *duplicate();
+
+ float *convertToValueBuffer();
+private:
+ unsigned int determineBufferSize();
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_MemoryManager.cpp b/source/blender/compositor/intern/COM_MemoryManager.cpp
new file mode 100644
index 00000000000..4f97b0b1e80
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryManager.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MemoryManager.h"
+#include "BLI_threads.h"
+#include <stdio.h>
+#include "COM_defines.h"
+
+vector<MemoryBuffer*> buffers;
+
+ThreadMutex mutex;
+
+MemoryBuffer *MemoryManager::allocateMemoryBuffer(MemoryProxy *id, unsigned int chunkNumber, rcti *rect)
+{
+ MemoryBuffer *result = new MemoryBuffer(id, chunkNumber, rect);
+ MemoryManagerState * state = MemoryManager::getState(id);
+ state->addMemoryBuffer(result);
+ BLI_mutex_lock(&mutex);
+ buffers.push_back(result);
+ BLI_mutex_unlock(&mutex);
+ return result;
+}
+
+void MemoryManager::addMemoryProxy(MemoryProxy *memoryProxy)
+{
+ MemoryManagerState * state = MemoryManager::getState(memoryProxy);
+ if (!state) {
+ state = new MemoryManagerState(memoryProxy);
+ memoryProxy->setState(state);
+ }
+}
+MemoryBuffer *MemoryManager::getMemoryBuffer(MemoryProxy *id, unsigned int chunkNumber)
+{
+ MemoryManagerState * state = MemoryManager::getState(id);
+ if (!state) {
+ return NULL;
+ }
+ MemoryBuffer *buffer = state->getMemoryBuffer(chunkNumber);
+ if (!buffer) return NULL;
+ return buffer;
+}
+
+MemoryManagerState *MemoryManager::getState(MemoryProxy *memoryProxy)
+{
+ return memoryProxy->getState();
+}
+void MemoryManager::initialize()
+{
+ BLI_mutex_init(&mutex);
+}
+void MemoryManager::clear()
+{
+ buffers.clear();
+ BLI_mutex_end(&mutex);
+}
diff --git a/source/blender/compositor/intern/COM_MemoryManager.h b/source/blender/compositor/intern/COM_MemoryManager.h
new file mode 100644
index 00000000000..6194d40d9a5
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryManager.h
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MemoryManager_h_
+#define _COM_MemoryManager_h_
+
+#include "COM_MemoryBuffer.h"
+#include "COM_MemoryProxy.h"
+#include "COM_ExecutionGroup.h"
+#include "COM_MemoryManagerState.h"
+
+/**
+ * @page memorymanager The Memory Manager
+ * The compositor has its own MemoryManager. The goal of the MemoryManager is to manage the memory allocated by chunks.
+ * During execution new chunks will be created [MemoryManager.allocateMemoryBuffer] When calculation is finished the MemoryBuffer will get the state [MemoryBufferState.COM_MB_AVAILABLE].
+ * From now on other ExecutionGroup and NodeOperations may read from the MemoryBuffer.
+ * The MemoryManager also has the capability to save MemoryBuffer's to disk in order to free some memory.
+ *
+ * @section S_MEM Memory manager
+ * The memory manager synchronize and optimize data across devices.
+ * Only one NodeOperation running on a device is able to write to a MemoryBuffer. This MemoryBuffer is only allocated on the main-device memory (CPU).
+ * The MemoryBuffer.state will be [MemoryBufferState.COM_MB_ALLOCATED]. As soon as the chunk has been executed the state changes to [MemoryBufferState.COM_MB_AVAILABLE]. This MemoryBuffer can now be used as inputBuffer of ExecutionGroup's.
+ * When needed the MemoryBuffer will be stored to a file. This will save memory that can be used by other tiles.
+ * @subsection S_MEM_1 Step one
+ * When a chunk of an ExecutionGroup is being executed by a device, the MemoryBuffer is allocated on the CPU.
+ * <pre>
+ * Allocation of the output MemoryBuffer
+ * +----------------------------------------+
+ * | Main device (CPU) |
+ * | +----------------+ +--------------+ |
+ * | | ExecutionGroup | | MemoryBuffer | |
+ * | | | | Chunk a | |
+ * | +----------------+ +--------------+ |
+ * | |
+ * +----------------------------------------+
+ * </pre>
+ * @see MemoryManager.allocateMemoryBuffer
+ *
+ * @subsection S_MEM_2 Step two
+ * The Device will execute the ExecutionGroup. This differs per type of Device. CPUDevice will call the NodeOperation.executeRegion method of the outputnode of the ExecutionGroup.
+ * The [NodeOperation.executeRegion] writes the result to the allocated MemoryBuffer. When finished the state of the MemoryBuffer will be set to [MemoryBufferState.COM_MB_AVAILABLE].
+ * <pre>
+ * Execute a chunk and store result to the MemoryBuffer
+ * +----------------------------------------+
+ * | Main device (CPU) |
+ * | +----------------+ +--------------+ |
+ * | | ExecutionGroup | | MemoryBuffer | |
+ * | | | | Chunk a | |
+ * | +----------------+ +--------------+ |
+ * | | ^ |
+ * | +----------------+ | |
+ * | | NodeOperation |--------+ |
+ * | | | Write result |
+ * | +----------------+ |
+ * | |
+ * +----------------------------------------+
+ * </pre>
+ * @subsection S_MEM_3 Step 3
+ * Other Chunks that depend on the MemoryBuffer can now use it.
+ * When a MemoryBuffer is being used its number of users are increased. When a 'user' is finished the number of users are decreased, If a MemoryBuffer has no users, the system can decide to store the data to disk and free some memory.
+ * @see MemoryBuffer.numberOfUsers
+ * @see MemoryBuffer.saveToDisk
+ *
+ * @subsection S_MEM_CON Temporarily MemoryBuffers
+ * Nodes like blur nodes can depend on multiple MemoryBuffer of the same MemoryProxy. These multiple buffers will be consolidated temporarily to a new MemoryBuffer.
+ * When execution is finished this temporarily memory buffer is deallicated.
+ * <pre>
+ * Original MemoryBuffer's Temporarily
+ * +-------+ +-------+ MemoryBuffer
+ * | MB A | | MB B | +-------+-------+
+ * +-------+ +-------+ | MB A | MB B |
+ * ==> +-------+-------+
+ * +-------+ +-------+ | MB C | MB D |
+ * | MB C | | MB D | +-------+-------+
+ * +-------+ +-------+
+ * </pre>
+ * @see ExecutionGroup.constructConsolidatedMemoryBuffer constructs the temporarily MemoryBuffer
+ * @see MemoryBuffer.state state is MemoryManagerState.COM_MB_TEMPORARILY
+ * @see ExecutionGroup.finalizeChunkExecution deallocate the temporarily MemoryBuffer
+ * @note this MemoryBuffer is not managed by the MemoryManager
+ */
+
+/**
+ * @brief the memory manager for the compostor
+ * @ingroup Memory
+ */
+class MemoryManager {
+private:
+ /**
+ * @brief retrieve the state of a certain MemoryProxy;
+ * @param memoryProxy the MemoryProxy to retrieve the state from
+ */
+ static MemoryManagerState *getState(MemoryProxy *memoryProxy);
+public:
+ /**
+ * @brief allocate a memory buffer
+ * @param memoryProxy the MemoryProxy to get a chunk from
+ * @param chunkNumber number of the chunk to receive
+ * @param rect size + position of the chunk
+ */
+ static MemoryBuffer *allocateMemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber, rcti *rect);
+
+ /**
+ * @brief get a memory buffer
+ * @param memoryProxy the MemoryProxy to get a chunk from
+ * @param chunkNumber number of the chunk to receive
+ * @param addUser must we add a user to the chunk.
+ */
+ static MemoryBuffer *getMemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber);
+
+ /**
+ * @brief add a MemoryProxy to the scope of the memory manager
+ * @param memoryProxy the MemoryProxy to add
+ */
+ static void addMemoryProxy(MemoryProxy *memoryProxy);
+
+ /**
+ * @brief clear the memory manager
+ */
+ static void clear();
+
+ /**
+ * @brief initialize the memory manager.
+ */
+ static void initialize();
+};
+#endif
diff --git a/source/blender/compositor/intern/COM_MemoryManagerState.cpp b/source/blender/compositor/intern/COM_MemoryManagerState.cpp
new file mode 100644
index 00000000000..b40ae146f9e
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryManagerState.cpp
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MemoryManagerState.h"
+
+MemoryManagerState::MemoryManagerState(MemoryProxy *memoryProxy)
+{
+ this->memoryProxy = memoryProxy;
+ this->currentSize = 0;
+ this->chunkBuffers = NULL;
+ BLI_mutex_init(&this->mutex);
+}
+
+MemoryProxy * MemoryManagerState::getMemoryProxy()
+{
+ return this->memoryProxy;
+}
+
+MemoryManagerState::~MemoryManagerState()
+{
+ this->memoryProxy = NULL;
+ unsigned int index;
+ for (index = 0 ; index < this->currentSize; index ++) {
+ MemoryBuffer *buffer = this->chunkBuffers[index];
+ if (buffer) {
+ delete buffer;
+ }
+ }
+ delete this->chunkBuffers;
+ BLI_mutex_end(&this->mutex);
+}
+
+void MemoryManagerState::addMemoryBuffer(MemoryBuffer *buffer)
+{
+ BLI_mutex_lock(&this->mutex);
+ unsigned int chunkNumber = buffer->getChunkNumber();
+ unsigned int index;
+ while (this->currentSize <= chunkNumber) {
+ unsigned int newSize = this->currentSize + 1000;
+ MemoryBuffer** newbuffer = new MemoryBuffer*[newSize];
+ MemoryBuffer** oldbuffer = this->chunkBuffers;
+
+ for (index = 0 ; index < this->currentSize ; index++) {
+ newbuffer[index] = oldbuffer[index];
+ }
+ for (index = currentSize ; index < newSize; index++) {
+ newbuffer[index] = NULL;
+ }
+
+ this->chunkBuffers = newbuffer;
+ this->currentSize = newSize;
+ if (oldbuffer) delete oldbuffer;
+ }
+
+ if (this->chunkBuffers[chunkNumber] == NULL) {
+ this->chunkBuffers[chunkNumber] = buffer;
+ }
+ else {
+ throw "ALREADY ALLOCATED!";
+ }
+ BLI_mutex_unlock(&this->mutex);
+}
+
+MemoryBuffer *MemoryManagerState::getMemoryBuffer(unsigned int chunkNumber)
+{
+ MemoryBuffer *result = NULL;
+ if (chunkNumber< this->currentSize) {
+ result = this->chunkBuffers[chunkNumber];
+ if (result) {
+ return result;
+ }
+ }
+
+ BLI_mutex_lock(&this->mutex);
+ if (chunkNumber< this->currentSize) {
+ result = this->chunkBuffers[chunkNumber];
+ }
+
+ BLI_mutex_unlock(&this->mutex);
+ return result;
+}
diff --git a/source/blender/compositor/intern/COM_MemoryManagerState.h b/source/blender/compositor/intern/COM_MemoryManagerState.h
new file mode 100644
index 00000000000..8e8cb484d1a
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryManagerState.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class MemoryManagerState;
+
+#ifndef _COM_MemoryManagerState_h_
+#define _COM_MemoryManagerState_h_
+
+#include "COM_MemoryProxy.h"
+#include "COM_MemoryBuffer.h"
+#include <vector>
+extern "C" {
+ #include "BLI_threads.h"
+}
+
+/**
+ * @brief State of a MemoryProxy in the MemoryManager.
+ * @ingroup Memory
+ */
+class MemoryManagerState {
+private:
+ /**
+ * @brief reference to the MemoryProxy of this state
+ */
+ MemoryProxy *memoryProxy;
+
+ /**
+ * @brief list of all chunkbuffers
+ */
+ MemoryBuffer** chunkBuffers;
+
+ /**
+ * @brief size of the chunkBuffers
+ */
+ unsigned int currentSize;
+
+ /**
+ * @brief lock to this memory for multithreading
+ */
+ ThreadMutex mutex;
+public:
+ /**
+ * @brief creates a new MemoryManagerState for a certain MemoryProxy.
+ */
+ MemoryManagerState(MemoryProxy * memoryProxy);
+ /**
+ * @brief destructor
+ */
+ ~MemoryManagerState();
+
+ /**
+ * @brief get the reference to the MemoryProxy this state belongs to.
+ */
+ MemoryProxy *getMemoryProxy();
+
+ /**
+ * @brief add a new memorybuffer to the state
+ */
+ void addMemoryBuffer(MemoryBuffer *buffer);
+
+ /**
+ * @brief get the MemoryBuffer assiciated to a chunk.
+ * @param chunkNumber the chunknumber
+ */
+ MemoryBuffer *getMemoryBuffer(unsigned int chunkNumber);
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_MemoryProxy.cpp b/source/blender/compositor/intern/COM_MemoryProxy.cpp
new file mode 100644
index 00000000000..7ff4f4949f0
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryProxy.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MemoryProxy.h"
+
+
+MemoryProxy::MemoryProxy()
+{
+ this->state = NULL;
+ this->writeBufferOperation = NULL;
+ this->executor = NULL;
+}
+
+MemoryProxy::~MemoryProxy()
+{
+ if (this->state) {
+ delete this->state;
+ this->state = NULL;
+ }
+}
diff --git a/source/blender/compositor/intern/COM_MemoryProxy.h b/source/blender/compositor/intern/COM_MemoryProxy.h
new file mode 100644
index 00000000000..276ebeed1e2
--- /dev/null
+++ b/source/blender/compositor/intern/COM_MemoryProxy.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class MemoryProxy;
+
+
+#ifndef _COM_MemoryProxy_h
+#define _COM_MemoryProxy_h
+#include "COM_ExecutionGroup.h"
+#include "COM_MemoryManagerState.h"
+
+class ExecutionGroup;
+
+/**
+ * @brief A MemoryProxy is a unique identifier for a memory buffer.
+ * A single MemoryProxy is used among all chunks of the same buffer,
+ * the MemoryBuffer only stores the data of a single chunk.
+ * @ingroup Memory
+ */
+class MemoryProxy {
+private:
+ /**
+ * @brief reference to the ouput operation of the executiongroup
+ */
+ WriteBufferOperation *writeBufferOperation;
+
+ /**
+ * @brief reference to the executor. the Execution group that can fill a chunk
+ */
+ ExecutionGroup *executor;
+
+ /**
+ * @brief data of the different chunks.
+ * @note state is part of this class due to optimization in the MemoryManager
+ */
+ MemoryManagerState * state;
+
+ /**
+ * @brief datatype of this MemoryProxy
+ */
+ DataType datatype;
+
+ /**
+ * @brief channel information of this buffer
+ */
+ ChannelInfo channelInfo[COM_NUMBER_OF_CHANNELS];
+public:
+ MemoryProxy();
+ ~MemoryProxy();
+
+ /**
+ * @brief set the ExecutionGroup that can be scheduled to calculate a certain chunk.
+ * @param group the ExecutionGroup to set
+ */
+ void setExecutor(ExecutionGroup *executor) {this->executor = executor;}
+
+ /**
+ * @brief get the ExecutionGroup that can be scheduled to calculate a certain chunk.
+ */
+ ExecutionGroup *getExecutor() {return this->executor;}
+
+ /**
+ * @brief set the WriteBufferOperation that is responsible for writing to this MemoryProxy
+ * @param operation
+ */
+ void setWriteBufferOperation(WriteBufferOperation *operation) {this->writeBufferOperation = operation;}
+
+ /**
+ * @brief get the WriteBufferOperation that is responsible for writing to this MemoryProxy
+ * @return WriteBufferOperation
+ */
+ WriteBufferOperation *getWriteBufferOperation() {return this->writeBufferOperation;}
+
+ /**
+ * @brief set the memorymanager state of this MemoryProxy, this is set from the MemoryManager
+ * @param state the state to set
+ */
+ void setState(MemoryManagerState *state) {this->state = state;}
+
+ /**
+ * @brief get the state of this MemoryProxy
+ * @return MemoryManagerState reference to the state of this MemoryProxy.
+ */
+ MemoryManagerState *getState() {return this->state;}
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_Node.cpp b/source/blender/compositor/intern/COM_Node.cpp
new file mode 100644
index 00000000000..ba5e21d53ae
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Node.cpp
@@ -0,0 +1,196 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Node.h"
+#include "string.h"
+
+#include "COM_NodeOperation.h"
+#include "BKE_node.h"
+#include "COM_SetValueOperation.h"
+#include "COM_SetVectorOperation.h"
+#include "COM_SetColorOperation.h"
+#include "COM_SocketConnection.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_PreviewOperation.h"
+#include "COM_TranslateOperation.h"
+
+#include "COM_SocketProxyNode.h"
+
+//#include "stdio.h"
+#include "COM_defines.h"
+
+Node::Node(bNode *editorNode, bool create_sockets)
+{
+ this->editorNode = editorNode;
+
+ if (create_sockets) {
+ bNodeSocket * input = (bNodeSocket*)editorNode->inputs.first;
+ while (input != NULL) {
+ DataType dt = COM_DT_VALUE;
+ if (input->type == SOCK_RGBA) dt = COM_DT_COLOR;
+ if (input->type == SOCK_VECTOR) dt = COM_DT_VECTOR;
+
+ this->addInputSocket(dt, (InputSocketResizeMode)input->resizemode, input);
+ input = (bNodeSocket*)input->next;
+ }
+ bNodeSocket *output = (bNodeSocket*)editorNode->outputs.first;
+ while (output != NULL) {
+ DataType dt = COM_DT_VALUE;
+ if (output->type == SOCK_RGBA) dt = COM_DT_COLOR;
+ if (output->type == SOCK_VECTOR) dt = COM_DT_VECTOR;
+
+ this->addOutputSocket(dt, output);
+ output = (bNodeSocket*)output->next;
+ }
+ }
+}
+Node::Node()
+{
+ this->editorNode = NULL;
+}
+
+bNode *Node::getbNode()
+{
+ return this->editorNode;
+}
+
+void Node::addSetValueOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex)
+{
+ bNodeSocket *bSock = (bNodeSocket*)this->getEditorInputSocket(editorNodeInputSocketIndex);
+ SetValueOperation *operation = new SetValueOperation();
+ bNodeSocketValueFloat *val = (bNodeSocketValueFloat*)bSock->default_value;
+ operation->setValue(val->value);
+ this->addLink(graph, operation->getOutputSocket(), inputsocket);
+ graph->addOperation(operation);
+}
+
+void Node::addPreviewOperation(ExecutionSystem *system, OutputSocket *outputSocket, int priority)
+{
+#ifdef COM_PREVIEW_ENABLED
+ PreviewOperation *operation = new PreviewOperation();
+ system->addOperation(operation);
+ operation->setbNode(this->getbNode());
+ operation->setbNodeTree(system->getContext().getbNodeTree());
+ operation->setPriority(priority);
+ this->addLink(system, outputSocket, operation->getInputSocket(0));
+#endif
+}
+
+void Node::addPreviewOperation(ExecutionSystem *system, InputSocket *inputSocket, int priority)
+{
+ if (inputSocket->isConnected()) {
+ OutputSocket *outputsocket = inputSocket->getConnection()->getFromSocket();
+ this->addPreviewOperation(system, outputsocket, priority);
+ }
+}
+
+SocketConnection *Node::addLink(ExecutionSystem *graph, OutputSocket *outputSocket, InputSocket *inputsocket)
+{
+ if (inputsocket->isConnected()) {
+ return NULL;
+ }
+ SocketConnection *connection = new SocketConnection();
+ connection->setFromSocket(outputSocket);
+ outputSocket->addConnection(connection);
+ connection->setToSocket(inputsocket);
+ inputsocket->setConnection(connection);
+ graph->addSocketConnection(connection);
+ return connection;
+}
+
+void Node::addSetColorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex)
+{
+ bNodeSocket *bSock = (bNodeSocket*)this->getEditorInputSocket(editorNodeInputSocketIndex);
+ SetColorOperation *operation = new SetColorOperation();
+ bNodeSocketValueRGBA *val = (bNodeSocketValueRGBA*)bSock->default_value;
+ operation->setChannel1(val->value[0]);
+ operation->setChannel2(val->value[1]);
+ operation->setChannel3(val->value[2]);
+ operation->setChannel4(val->value[3]);
+ this->addLink(graph, operation->getOutputSocket(), inputsocket);
+ graph->addOperation(operation);
+}
+
+void Node::addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex)
+{
+ bNodeSocket *bSock = (bNodeSocket*)this->getEditorInputSocket(editorNodeInputSocketIndex);
+ bNodeSocketValueVector *val = (bNodeSocketValueVector*)bSock->default_value;
+ SetVectorOperation *operation = new SetVectorOperation();
+ operation->setX(val->value[0]);
+ operation->setY(val->value[1]);
+ operation->setZ(val->value[2]);
+ this->addLink(graph, operation->getOutputSocket(), inputsocket);
+ graph->addOperation(operation);
+}
+
+bNodeSocket *Node::getEditorInputSocket(int editorNodeInputSocketIndex)
+{
+ bNodeSocket *bSock = (bNodeSocket*)this->getbNode()->inputs.first;
+ int index = 0;
+ while (bSock != NULL) {
+ if (index == editorNodeInputSocketIndex) {
+ return bSock;
+ }
+ index++;
+ bSock = bSock->next;
+ }
+ return NULL;
+}
+bNodeSocket *Node::getEditorOutputSocket(int editorNodeInputSocketIndex)
+{
+ bNodeSocket *bSock = (bNodeSocket*)this->getbNode()->outputs.first;
+ int index = 0;
+ while (bSock != NULL) {
+ if (index == editorNodeInputSocketIndex) {
+ return bSock;
+ }
+ index++;
+ bSock = bSock->next;
+ }
+ return NULL;
+}
+
+InputSocket *Node::findInputSocketBybNodeSocket(bNodeSocket *socket)
+{
+ vector<InputSocket*> &inputsockets = this->getInputSockets();
+ unsigned int index;
+ for (index = 0 ; index < inputsockets.size(); index ++) {
+ InputSocket *input = inputsockets[index];
+ if (input->getbNodeSocket() == socket) {
+ return input;
+ }
+ }
+ return NULL;
+}
+
+OutputSocket *Node::findOutputSocketBybNodeSocket(bNodeSocket *socket)
+{
+ vector<OutputSocket*> &outputsockets = this->getOutputSockets();
+ unsigned int index;
+ for (index = 0 ; index < outputsockets.size(); index ++) {
+ OutputSocket *output = outputsockets[index];
+ if (output->getbNodeSocket() == socket) {
+ return output;
+ }
+ }
+ return NULL;
+}
diff --git a/source/blender/compositor/intern/COM_Node.h b/source/blender/compositor/intern/COM_Node.h
new file mode 100644
index 00000000000..2666d0a6980
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Node.h
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_Node_h
+#define _COM_Node_h
+
+#include "COM_NodeBase.h"
+#include "COM_InputSocket.h"
+#include "COM_OutputSocket.h"
+#include "COM_CompositorContext.h"
+#include "DNA_node_types.h"
+#include "BKE_text.h"
+#include <vector>
+#include <string>
+
+using namespace std;
+
+class Node;
+class NodeOperation;
+class ExecutionSystem;
+
+typedef vector<Node*> NodeList;
+typedef NodeList::iterator NodeIterator;
+typedef pair<NodeIterator, NodeIterator> NodeRange;
+
+/**
+ * My node documentation.
+ */
+class Node:public NodeBase {
+private:
+ /**
+ * @brief stores the reference to the SDNA bNode struct
+ */
+ bNode *editorNode;
+
+public:
+ Node(bNode *editorNode, bool create_sockets=true);
+
+ /**
+ * @brief get the reference to the SDNA bNode struct
+ */
+ bNode *getbNode();
+
+ /**
+ * @brief convert node to operation
+ *
+ * @todo this must be described furter
+ *
+ * @param system the ExecutionSystem where the operations need to be added
+ * @param context reference to the CompositorContext
+ */
+ virtual void convertToOperations(ExecutionSystem *system, CompositorContext * context) =0;
+
+ /**
+ * this method adds a SetValueOperation as input of the input socket.
+ * This can only be used from the convertToOperation method. all other usages are not allowed
+ */
+ void addSetValueOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex);
+
+ /**
+ * this method adds a SetColorOperation as input of the input socket.
+ * This can only be used from the convertToOperation method. all other usages are not allowed
+ */
+ void addSetColorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex);
+
+ /**
+ * this method adds a SetVectorOperation as input of the input socket.
+ * This can only be used from the convertToOperation method. all other usages are not allowed
+ */
+ void addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex);
+
+ /**
+ * Creates a new link between an outputSocket and inputSocket and registrates the link to the graph
+ * @return the new created link
+ */
+ SocketConnection *addLink(ExecutionSystem *graph, OutputSocket *outputSocket, InputSocket *inputsocket);
+
+ /**
+ * is this node a group node.
+ */
+ virtual bool isGroupNode() const { return false; }
+ /**
+ * is this node a proxy node.
+ */
+ virtual bool isProxyNode() const { return false; }
+
+ /**
+ * @brief find the InputSocket by bNodeSocket
+ *
+ * @param socket
+ */
+ InputSocket *findInputSocketBybNodeSocket(bNodeSocket *socket);
+
+ /**
+ * @brief find the OutputSocket by bNodeSocket
+ *
+ * @param socket
+ */
+ OutputSocket *findOutputSocketBybNodeSocket(bNodeSocket *socket);
+protected:
+
+ Node();
+
+ void addPreviewOperation(ExecutionSystem *system, InputSocket *inputSocket, int priority);
+ void addPreviewOperation(ExecutionSystem *system, OutputSocket *inputSocket, int priority);
+
+ bNodeSocket *getEditorInputSocket(int editorNodeInputSocketIndex);
+ bNodeSocket *getEditorOutputSocket(int editorNodeOutputSocketIndex);
+private:
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_NodeBase.cpp b/source/blender/compositor/intern/COM_NodeBase.cpp
new file mode 100644
index 00000000000..17a623c9c81
--- /dev/null
+++ b/source/blender/compositor/intern/COM_NodeBase.cpp
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_NodeBase.h"
+#include "string.h"
+#include "COM_NodeOperation.h"
+#include "BKE_node.h"
+#include "COM_SetValueOperation.h"
+#include "COM_SetColorOperation.h"
+#include "COM_SocketConnection.h"
+#include "COM_ExecutionSystem.h"
+
+NodeBase::NodeBase()
+{
+}
+
+
+NodeBase::~NodeBase()
+{
+ while (!this->outputsockets.empty()) {
+ delete (this->outputsockets.back());
+ this->outputsockets.pop_back();
+ }
+ while (!this->inputsockets.empty()) {
+ delete (this->inputsockets.back());
+ this->inputsockets.pop_back();
+ }
+}
+
+void NodeBase::addInputSocket(DataType datatype)
+{
+ this->addInputSocket(datatype, COM_SC_CENTER, NULL);
+}
+
+void NodeBase::addInputSocket(DataType datatype, InputSocketResizeMode resizeMode)
+{
+ this->addInputSocket(datatype, resizeMode, NULL);
+}
+void NodeBase::addInputSocket(DataType datatype, InputSocketResizeMode resizeMode, bNodeSocket *bSocket)
+{
+ InputSocket *socket = new InputSocket(datatype, resizeMode);
+ socket->setEditorSocket(bSocket);
+ socket->setNode(this);
+ this->inputsockets.push_back(socket);
+}
+
+void NodeBase::addOutputSocket(DataType datatype)
+{
+ this->addOutputSocket(datatype, NULL);
+
+}
+void NodeBase::addOutputSocket(DataType datatype, bNodeSocket *bSocket)
+{
+ OutputSocket *socket = new OutputSocket(datatype);
+ socket->setEditorSocket(bSocket);
+ socket->setNode(this);
+ this->outputsockets.push_back(socket);
+}
+const bool NodeBase::isInputNode() const
+{
+ return this->inputsockets.size() == 0;
+}
+
+OutputSocket *NodeBase::getOutputSocket(int index)
+{
+ return this->outputsockets[index];
+}
+
+InputSocket *NodeBase::getInputSocket(int index)
+{
+ return this->inputsockets[index];
+}
+
+
+void NodeBase::determineActualSocketDataTypes()
+{
+ unsigned int index;
+ for (index = 0 ; index < this->outputsockets.size() ; index ++) {
+ OutputSocket *socket = this->outputsockets[index];
+ if (socket->getActualDataType() ==COM_DT_UNKNOWN && socket->isConnected()) {
+ socket->determineActualDataType();
+ }
+ }
+ for (index = 0 ; index < this->inputsockets.size() ; index ++) {
+ InputSocket *socket = this->inputsockets[index];
+ if (socket->getActualDataType() ==COM_DT_UNKNOWN) {
+ socket->determineActualDataType();
+ }
+ }
+}
+
+DataType NodeBase::determineActualDataType(OutputSocket *outputsocket)
+{
+ const int inputIndex = outputsocket->getInputSocketDataTypeDeterminatorIndex();
+ if (inputIndex != -1) {
+ return this->getInputSocket(inputIndex)->getActualDataType();
+ }
+ else {
+ return outputsocket->getDataType();
+ }
+}
+
+void NodeBase::notifyActualDataTypeSet(InputSocket *socket, DataType actualType)
+{
+ unsigned int index;
+ int socketIndex = -1;
+ for (index = 0 ; index < this->inputsockets.size() ; index ++) {
+ if (this->inputsockets[index] == socket) {
+ socketIndex = (int)index;
+ break;
+ }
+ }
+ if (socketIndex == -1) return;
+
+ for (index = 0 ; index < this->outputsockets.size() ; index ++) {
+ OutputSocket *socket = this->outputsockets[index];
+ if (socket->isActualDataTypeDeterminedByInputSocket() &&
+ socket->getInputSocketDataTypeDeterminatorIndex() == socketIndex)
+ {
+ socket->setActualDataType(actualType);
+ socket->fireActualDataType();
+ }
+ }
+}
diff --git a/source/blender/compositor/intern/COM_NodeBase.h b/source/blender/compositor/intern/COM_NodeBase.h
new file mode 100644
index 00000000000..123797c780a
--- /dev/null
+++ b/source/blender/compositor/intern/COM_NodeBase.h
@@ -0,0 +1,174 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_NodeBase_h
+#define _COM_NodeBase_h
+
+#include "COM_InputSocket.h"
+#include "COM_OutputSocket.h"
+#include "DNA_node_types.h"
+#include "BKE_text.h"
+#include <vector>
+#include <string>
+
+using namespace std;
+
+
+class NodeOperation;
+class ExecutionSystem;
+
+/**
+ * @brief The NodeBase class is the super-class of all node related objects like @see Node @see NodeOperation
+ * the reason for the existence of this class is to support graph-nodes when using ExecutionSystem
+ * the NodeBase also contains the reference to InputSocket and OutputSocket.
+ * @ingroup Model
+ */
+class NodeBase {
+private:
+ /**
+ * @brief the list of actual inputsockets @see InputSocket
+ */
+ vector<InputSocket*> inputsockets;
+
+ /**
+ * @brief the list of actual outputsockets @see OutputSocket
+ */
+ vector<OutputSocket*> outputsockets;
+
+protected:
+ /**
+ * @brief get access to the vector of input sockets
+ */
+ inline vector<InputSocket*>& getInputSockets() {return this->inputsockets;}
+
+ /**
+ * @brief get access to the vector of input sockets
+ */
+ inline vector<OutputSocket*>& getOutputSockets() {return this->outputsockets;}
+
+
+public:
+ /**
+ * @brief destructor
+ * clean up memory related to this NodeBase.
+ */
+ virtual ~NodeBase();
+
+ /**
+ * @brief determine the actual socket data types that will go through the system
+ */
+ virtual void determineActualSocketDataTypes();
+
+ /**
+ * @brief determine the actual socket data types of a specific outputsocket
+ *
+ * @param outputsocket
+ * a reference to the actual outputsocket where the datatype must be determined from
+ *
+ * @return
+ * COM_DT_VALUE if it is a value (1 float buffer)
+ * COM_DT_COLOR if it is a value (4 float buffer)
+ * COM_DT_VECTOR if it is a value (3 float buffer)
+ */
+ virtual DataType determineActualDataType(OutputSocket *outputsocket);
+
+ /**
+ * @brief is this node an operation?
+ * This is true when the instance is of the subclass NodeOperation.
+ * @return [true:false]
+ * @see NodeOperation
+ */
+ virtual const int isOperation() const {return false;}
+
+ /**
+ * @brief check if this is an input node
+ * An input node is a node that only has output sockets and no input sockets
+ * @return [false..true]
+ */
+ const bool isInputNode() const;
+
+ /**
+ * @brief Return the number of input sockets of this node.
+ */
+ const unsigned int getNumberOfInputSockets() const {return this->inputsockets.size();}
+
+ /**
+ * @brief Return the number of output sockets of this node.
+ */
+ const unsigned int getNumberOfOutputSockets() const {return this->outputsockets.size();}
+
+ /**
+ * after the data has been determined of an outputsocket that has a connection with an inputsocket this method is called on the
+ * node that contains the inputsocket.
+ * @param socket
+ * the reference of the inputsocket where connected data type is found
+ * @param actualType [COM_DT_VALUE, COM_DT_VECTOR, COM_DT_COLOR]
+ * the actual data type that is coming from the connected output socket
+ */
+ virtual void notifyActualDataTypeSet(InputSocket *socket, const DataType actualType);
+
+ /**
+ * get the reference to a certain outputsocket
+ * @param index
+ * the index of the needed outputsocket
+ */
+ OutputSocket *getOutputSocket(const int index);
+
+ /**
+ * get the reference to the first outputsocket
+ * @param index
+ * the index of the needed outputsocket
+ */
+ inline OutputSocket *getOutputSocket() {return getOutputSocket(0);}
+
+ /**
+ * get the reference to a certain inputsocket
+ * @param index
+ * the index of the needed inputsocket
+ */
+ InputSocket *getInputSocket(const int index);
+
+
+ virtual bool isStatic() const {return false;}
+ void getStaticValues(float *result) const {}
+protected:
+ NodeBase();
+
+ /**
+ * @brief add an InputSocket to the collection of inputsockets
+ * @note may only be called in an constructor
+ * @param socket the InputSocket to add
+ */
+ void addInputSocket(DataType datatype);
+ void addInputSocket(DataType datatype, InputSocketResizeMode resizeMode);
+ void addInputSocket(DataType datatype, InputSocketResizeMode resizeMode, bNodeSocket *socket);
+
+ /**
+ * @brief add an OutputSocket to the collection of outputsockets
+ * @note may only be called in an constructor
+ * @param socket the OutputSocket to add
+ */
+ void addOutputSocket(DataType datatype);
+ void addOutputSocket(DataType datatype, bNodeSocket *socket);
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_NodeOperation.cpp b/source/blender/compositor/intern/COM_NodeOperation.cpp
new file mode 100644
index 00000000000..fae652e39d7
--- /dev/null
+++ b/source/blender/compositor/intern/COM_NodeOperation.cpp
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_NodeOperation.h"
+#include <typeinfo>
+#include "COM_InputSocket.h"
+#include "COM_SocketConnection.h"
+#include "COM_defines.h"
+#include "stdio.h"
+
+NodeOperation::NodeOperation()
+{
+ this->resolutionInputSocketIndex = 0;
+ this->complex = false;
+ this->width = 0;
+ this->height = 0;
+ this->openCL = false;
+}
+
+void NodeOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ unsigned int temp[2];
+ unsigned int temp2[2];
+ vector<InputSocket*> &inputsockets = this->getInputSockets();
+
+ for (unsigned int index = 0 ; index < inputsockets.size();index++) {
+ InputSocket *inputSocket = inputsockets[index];
+ if (inputSocket->isConnected()) {
+ if (index == this->resolutionInputSocketIndex) {
+ inputSocket->determineResolution(resolution, preferredResolution);
+ temp2[0] = resolution[0];
+ temp2[1] = resolution[1];
+ break;
+ }
+ }
+ }
+ for (unsigned int index = 0 ; index < inputsockets.size();index++) {
+ InputSocket *inputSocket = inputsockets[index];
+ if (inputSocket->isConnected()) {
+ if (index != resolutionInputSocketIndex) {
+ inputSocket->determineResolution(temp, temp2);
+ }
+ }
+ }
+}
+void NodeOperation::setResolutionInputSocketIndex(unsigned int index)
+{
+ this->resolutionInputSocketIndex = index;
+}
+void NodeOperation::initExecution()
+{
+}
+
+void NodeOperation::initMutex()
+{
+ BLI_mutex_init(&mutex);
+}
+void NodeOperation::deinitMutex()
+{
+ BLI_mutex_end(&mutex);
+}
+void NodeOperation::deinitExecution()
+{
+}
+SocketReader *NodeOperation::getInputSocketReader(unsigned int inputSocketIndex)
+{
+ return this->getInputSocket(inputSocketIndex)->getReader();
+}
+NodeOperation *NodeOperation::getInputOperation(unsigned int inputSocketIndex)
+{
+ return this->getInputSocket(inputSocketIndex)->getOperation();
+}
+
+void NodeOperation::getConnectedInputSockets(vector<InputSocket*> *sockets)
+{
+ vector<InputSocket*> &inputsockets = this->getInputSockets();
+ for (vector<InputSocket*>::iterator iterator = inputsockets.begin() ; iterator!= inputsockets.end() ; iterator++) {
+ InputSocket *socket = *iterator;
+ if (socket->isConnected()) {
+ sockets->push_back(socket);
+ }
+ }
+}
+
+bool NodeOperation::determineDependingAreaOfInterest(rcti * input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this->isInputNode()) {
+ BLI_init_rcti(output, input->xmin, input->xmax, input->ymin, input->ymax);
+ return false;
+ }
+ else {
+ unsigned int index;
+ vector<InputSocket*> &inputsockets = this->getInputSockets();
+
+ for (index = 0 ; index < inputsockets.size() ; index++) {
+ InputSocket *inputsocket = inputsockets[index];
+ if (inputsocket->isConnected()) {
+ NodeOperation *inputoperation = (NodeOperation*)inputsocket->getConnection()->getFromNode();
+ bool result = inputoperation->determineDependingAreaOfInterest(input, readOperation, output);
+ if (result) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/source/blender/compositor/intern/COM_NodeOperation.h b/source/blender/compositor/intern/COM_NodeOperation.h
new file mode 100644
index 00000000000..bba3de2ec98
--- /dev/null
+++ b/source/blender/compositor/intern/COM_NodeOperation.h
@@ -0,0 +1,247 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_NodeProgram_h
+#define _COM_NodeProgram_h
+
+class NodeOperation;
+
+#include "COM_Node.h"
+#include <string>
+#include <sstream>
+#include "COM_MemoryBuffer.h"
+#include "COM_MemoryProxy.h"
+#include "COM_SocketReader.h"
+#include "OCL_opencl.h"
+#include "list"
+
+class ReadBufferOperation;
+
+/**
+ * @brief NodeOperation are contains calculation logic
+ *
+ * Subclasses needs to implement the execution method (defined in SocketReader) to implement logic.
+ * @ingroup Model
+ */
+class NodeOperation : public NodeBase, public SocketReader {
+private:
+ /**
+ * @brief the index of the input socket that will be used to determine the resolution
+ */
+ unsigned int resolutionInputSocketIndex;
+
+ /**
+ * @brief is this operation a complex one.
+ *
+ * Complex operations are typically doing many reads to calculate the output of a single pixel.
+ * Mostly Filter types (Blurs, Convolution, Defocus etc) need this to be set to true.
+ */
+ bool complex;
+
+ /**
+ * @brief can this operation be scheduled on an OpenCL device.
+ * @note Only applicable if complex is True
+ */
+ bool openCL;
+
+ /**
+ * @brief mutex reference for very special node initializations
+ * @note only use when you really know what you are doing.
+ * this mutex is used to share data among chunks in the same operation
+ * @see TonemapOperation for an example of usage
+ * @see NodeOperation.initMutex initializes this mutex
+ * @see NodeOperation.deinitMutex deinitializes this mutex
+ * @see NodeOperation.getMutex retrieve a pointer to this mutex.
+ */
+ ThreadMutex mutex;
+
+public:
+ /**
+ * @brief is this node an operation?
+ * This is true when the instance is of the subclass NodeOperation.
+ * @return [true:false]
+ * @see NodeBase
+ */
+ const int isOperation() const {return true;}
+
+ /**
+ * @brief determine the resolution of this node
+ * @note this method will not set the resolution, this is the responsibility of the caller
+ * @param resolution the result of this operation
+ * @param preferredResolution the preferrable resolution as no resolution could be determined
+ */
+ virtual void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ /**
+ * @brief isOutputOperation determines whether this operation is an output of the ExecutionSystem during rendering or editing.
+ *
+ * Default behaviour if not overriden, this operation will not be evaluated as being an output of the ExecutionSystem.
+ *
+ * @see ExecutionSystem
+ * @group check
+ * @param rendering [true false]
+ * true: rendering
+ * false: editing
+ *
+ * @return bool the result of this method
+ */
+ virtual bool isOutputOperation(bool rendering) const {return false;}
+
+ /**
+ * isBufferOperation returns if this is an operation that work directly on buffers.
+ *
+ * there are only 2 implementation where this is true:
+ * @see ReadBufferOperation
+ * @see WriteBufferOperation
+ * for all other operations this will result in false.
+ */
+ virtual int isBufferOperation() {return false;}
+
+ virtual void initExecution();
+ void initMutex();
+
+ /**
+ * @brief when a chunk is executed by a CPUDevice, this method is called
+ * @ingroup execution
+ * @param rect the rectangle of the chunk (location and size)
+ * @param chunkNumber the chunkNumber to be calculated
+ * @param memoryBuffers all input MemoryBuffer's needed
+ */
+ virtual void executeRegion(rcti *rect, unsigned int chunkNumber, MemoryBuffer** memoryBuffers) {}
+
+ /**
+ * @brief when a chunk is executed by an OpenCLDevice, this method is called
+ * @ingroup execution
+ * @note this method is only implemented in WriteBufferOperation
+ * @param context the OpenCL context
+ * @param program the OpenCL program containing all compositor kernels
+ * @param queue the OpenCL command queue of the device the chunk is executed on
+ * @param rect the rectangle of the chunk (location and size)
+ * @param chunkNumber the chunkNumber to be calculated
+ * @param memoryBuffers all input MemoryBuffer's needed
+ */
+ virtual void executeOpenCLRegion(cl_context context, cl_program program, cl_command_queue queue, rcti *rect, unsigned int chunkNumber, MemoryBuffer** memoryBuffers) {}
+
+ /**
+ * @brief custom handle to add new tasks to the OpenCL command queue in order to execute a chunk on an GPUDevice
+ * @ingroup execution
+ * @param context the OpenCL context
+ * @param program the OpenCL program containing all compositor kernels
+ * @param queue the OpenCL command queue of the device the chunk is executed on
+ * @param outputMemoryBuffer the allocated memory buffer in main CPU memory
+ * @param clOutputBuffer the allocated memory buffer in OpenCLDevice memory
+ * @param inputMemoryBuffers all input MemoryBuffer's needed
+ * @param clMemToCleanUp all created cl_mem references must be added to this list. Framework will clean this after execution
+ * @param clKernelsToCleanUp all created cl_kernel references must be added to this list. Framework will clean this after execution
+ */
+ virtual void executeOpenCL(cl_context context,cl_program program, cl_command_queue queue, MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer, MemoryBuffer** inputMemoryBuffers, list<cl_mem> *clMemToCleanUp, list<cl_kernel> *clKernelsToCleanUp) {}
+ virtual void deinitExecution();
+ void deinitMutex();
+
+ /**
+ * @brief set the resolution
+ * @param resolution the resolution to set
+ */
+ void setResolution(unsigned int resolution[]) {this->width = resolution[0];this->height = resolution[1];}
+ void getConnectedInputSockets(vector<InputSocket*> *sockets);
+
+ /**
+ * @brief is this operation complex
+ *
+ * Complex operations are typically doing many reads to calculate the output of a single pixel.
+ * Mostly Filter types (Blurs, Convolution, Defocus etc) need this to be set to true.
+ */
+ const bool isComplex() const {return this->complex;}
+ virtual const bool isSetOperation() const {return false;}
+
+ /**
+ * @brief is this operation of type ReadBufferOperation
+ * @return [true:false]
+ * @see ReadBufferOperation
+ */
+ virtual const bool isReadBufferOperation() const {return false;}
+
+ /**
+ * @brief is this operation of type WriteBufferOperation
+ * @return [true:false]
+ * @see WriteBufferOperation
+ */
+ virtual const bool isWriteBufferOperation() const {return false;}
+
+ /**
+ * @brief is this operation the active viewer output
+ * user can select an ViewerNode to be active (the result of this node will be drawn on the backdrop)
+ * @return [true:false]
+ * @see BaseViewerOperation
+ */
+ virtual const bool isActiveViewerOutput() const {return false;}
+
+ virtual bool determineDependingAreaOfInterest(rcti * input, ReadBufferOperation *readOperation, rcti *output);
+
+ /**
+ * @brief set the index of the input socket that will determine the resolution of this operation
+ * @param index the index to set
+ */
+ void setResolutionInputSocketIndex(unsigned int index);
+
+ /**
+ * @brief get the render priority of this node.
+ * @note only applicable for output operations like ViewerOperation
+ * @return [0:9] 9 is highest priority
+ */
+ virtual const int getRenderPriority() const {return 0;}
+
+ /**
+ * @brief can this NodeOperation be scheduled on an OpenCLDevice
+ * @see WorkScheduler.schedule
+ * @see ExecutionGroup.addOperation
+ */
+ bool isOpenCL() { return this->openCL; }
+
+ virtual bool isViewerOperation() {return false;}
+protected:
+ NodeOperation();
+
+ void setWidth(unsigned int width) {this->width = width;}
+ void setHeight(unsigned int height) {this->height = height;}
+ SocketReader *getInputSocketReader(unsigned int inputSocketindex);
+ NodeOperation *getInputOperation(unsigned int inputSocketindex);
+
+ inline ThreadMutex *getMutex() {return &this->mutex;}
+
+ /**
+ * @brief set whether this operation is complex
+ *
+ * Complex operations are typically doing many reads to calculate the output of a single pixel.
+ * Mostly Filter types (Blurs, Convolution, Defocus etc) need this to be set to true.
+ */
+ void setComplex(bool complex) {this->complex = complex;}
+
+ /**
+ * @brief set if this NodeOperation can be scheduled on a OpenCLDevice
+ */
+ void setOpenCL(bool openCL) {this->openCL = openCL;}
+
+
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_NodeProgram.cpp b/source/blender/compositor/intern/COM_NodeProgram.cpp
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/source/blender/compositor/intern/COM_NodeProgram.cpp
diff --git a/source/blender/compositor/intern/COM_NodeProgram.h b/source/blender/compositor/intern/COM_NodeProgram.h
new file mode 100644
index 00000000000..a71fa2b676f
--- /dev/null
+++ b/source/blender/compositor/intern/COM_NodeProgram.h
@@ -0,0 +1,7 @@
+#ifndef _COM_NodeProgram_h
+#define _COM_NodeProgram_h
+
+class NodeProgram{
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_OpenCLDevice.cpp b/source/blender/compositor/intern/COM_OpenCLDevice.cpp
new file mode 100644
index 00000000000..0945b426a4e
--- /dev/null
+++ b/source/blender/compositor/intern/COM_OpenCLDevice.cpp
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_OpenCLDevice.h"
+#include "COM_WorkScheduler.h"
+
+
+OpenCLDevice::OpenCLDevice(cl_context context, cl_device_id device, cl_program program)
+{
+ this->device = device;
+ this->context = context;
+ this->program = program;
+ this->queue = NULL;
+}
+
+bool OpenCLDevice::initialize()
+{
+ cl_int error;
+ queue = clCreateCommandQueue(context, device, 0, &error);
+ return false;
+}
+
+void OpenCLDevice::deinitialize()
+{
+ if (queue) {
+ clReleaseCommandQueue(queue);
+ }
+}
+
+void OpenCLDevice::execute(WorkPackage *work)
+{
+ const unsigned int chunkNumber = work->getChunkNumber();
+ ExecutionGroup * executionGroup = work->getExecutionGroup();
+ rcti rect;
+
+ executionGroup->determineChunkRect(&rect, chunkNumber);
+ MemoryBuffer ** inputBuffers = executionGroup->getInputBuffers(chunkNumber);
+ MemoryBuffer * outputBuffer = executionGroup->allocateOutputBuffer(chunkNumber, &rect);
+
+ executionGroup->getOutputNodeOperation()->executeOpenCLRegion(this->context, this->program, this->queue, &rect, chunkNumber, inputBuffers);
+
+ executionGroup->finalizeChunkExecution(chunkNumber, inputBuffers);
+ if (outputBuffer != NULL) {
+ outputBuffer->setCreatedState();
+ }
+}
diff --git a/source/blender/compositor/intern/COM_OpenCLDevice.h b/source/blender/compositor/intern/COM_OpenCLDevice.h
new file mode 100644
index 00000000000..f61c555558d
--- /dev/null
+++ b/source/blender/compositor/intern/COM_OpenCLDevice.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class OpenCLDevice;
+
+#ifndef _COM_OpenCLDevice_h
+#define _COM_OpenCLDevice_h
+
+#include "COM_Device.h"
+#include "OCL_opencl.h"
+#include "COM_WorkScheduler.h"
+
+
+/**
+ * @brief device representing an GPU OpenCL device.
+ * an instance of this class represents a single cl_device
+ */
+class OpenCLDevice: public Device {
+private:
+ /**
+ *@brief opencl context
+ */
+ cl_context context;
+
+ /**
+ *@brief opencl device
+ */
+ cl_device_id device;
+
+ /**
+ *@brief opencl program
+ */
+ cl_program program;
+
+ /**
+ *@brief opencl command queue
+ */
+ cl_command_queue queue;
+public:
+ /**
+ *@brief constructor with opencl device
+ *@param context
+ *@param device
+ */
+ OpenCLDevice(cl_context context, cl_device_id device, cl_program program);
+
+
+ /**
+ * @brief initialize the device
+ * During initialization the OpenCL cl_command_queue is created
+ * the command queue is stored in the field queue.
+ * @see queue
+ */
+ bool initialize();
+
+ /**
+ * @brief deinitialize the device
+ * During deintiialization the command queue is cleared
+ */
+ void deinitialize();
+
+ /**
+ * @brief execute a WorkPackage
+ * @param work the WorkPackage to execute
+ */
+ void execute(WorkPackage *work);
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_OutputSocket.cpp b/source/blender/compositor/intern/COM_OutputSocket.cpp
new file mode 100644
index 00000000000..00d3518cd15
--- /dev/null
+++ b/source/blender/compositor/intern/COM_OutputSocket.cpp
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Socket.h"
+#include "COM_Node.h"
+#include "COM_SocketConnection.h"
+#include "COM_NodeOperation.h"
+
+OutputSocket::OutputSocket(DataType datatype) :Socket(datatype)
+{
+ this->inputSocketDataTypeDeterminatorIndex = -1;
+}
+OutputSocket::OutputSocket(DataType datatype, int inputSocketDataTypeDeterminatorIndex) :Socket(datatype)
+{
+ this->inputSocketDataTypeDeterminatorIndex = inputSocketDataTypeDeterminatorIndex;
+}
+
+OutputSocket::OutputSocket(OutputSocket *from): Socket(from->getDataType())
+{
+ this->inputSocketDataTypeDeterminatorIndex = from->getInputSocketDataTypeDeterminatorIndex();
+}
+
+int OutputSocket::isOutputSocket() const { return true; }
+const int OutputSocket::isConnected() const { return this->connections.size()!=0; }
+
+void OutputSocket::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ NodeBase *node = this->getNode();
+ if (node->isOperation()) {
+ NodeOperation *operation = (NodeOperation*)node;
+ operation->determineResolution(resolution, preferredResolution);
+ operation->setResolution(resolution);
+ }
+}
+
+void OutputSocket::determineActualDataType()
+{
+ DataType actualDatatype = this->getNode()->determineActualDataType(this);
+
+ /** @todo: set the channel info needs to be moved after integration with OCIO */
+ this->channelinfo[0].setNumber(0);
+ this->channelinfo[1].setNumber(1);
+ this->channelinfo[2].setNumber(2);
+ this->channelinfo[3].setNumber(3);
+ switch (actualDatatype) {
+ case COM_DT_VALUE:
+ this->channelinfo[0].setType(COM_CT_Value);
+ break;
+ case COM_DT_VECTOR:
+ this->channelinfo[0].setType(COM_CT_X);
+ this->channelinfo[1].setType(COM_CT_Y);
+ this->channelinfo[2].setType(COM_CT_Z);
+ break;
+ case COM_DT_COLOR:
+ this->channelinfo[0].setType(COM_CT_ColorComponent);
+ this->channelinfo[1].setType(COM_CT_ColorComponent);
+ this->channelinfo[2].setType(COM_CT_ColorComponent);
+ this->channelinfo[3].setType(COM_CT_Alpha);
+ break;
+ default:
+ break;
+ }
+
+ this->setActualDataType(actualDatatype);
+ this->fireActualDataType();
+}
+
+void OutputSocket::addConnection(SocketConnection *connection)
+{
+ this->connections.push_back(connection);
+}
+
+void OutputSocket::fireActualDataType()
+{
+ unsigned int index;
+ for (index = 0 ; index < this->connections.size();index ++) {
+ SocketConnection *connection = this->connections[index];
+ connection->getToSocket()->notifyActualInputType(this->getActualDataType());
+ }
+}
+void OutputSocket::relinkConnections(OutputSocket *relinkToSocket, bool single)
+{
+ if (isConnected()) {
+ if (single) {
+ SocketConnection *connection = this->connections[0];
+ connection->setFromSocket(relinkToSocket);
+ relinkToSocket->addConnection(connection);
+// relinkToSocket->setActualDataType(this->getActualDataType());
+ this->connections.erase(this->connections.begin());
+ }
+ else {
+ unsigned int index;
+ for (index = 0 ; index < this->connections.size();index ++) {
+ SocketConnection *connection = this->connections[index];
+ connection->setFromSocket(relinkToSocket);
+ relinkToSocket->addConnection(connection);
+ }
+// relinkToSocket->setActualDataType(this->getActualDataType());
+ this->connections.clear();
+ }
+ }
+}
+void OutputSocket::removeFirstConnection()
+{
+ SocketConnection *connection = this->connections[0];
+ InputSocket *inputSocket = connection->getToSocket();
+ if (inputSocket != NULL) {
+ inputSocket->setConnection(NULL);
+ }
+ this->connections.erase(this->connections.begin());
+}
+
+void OutputSocket::clearConnections()
+{
+ while (this->isConnected()) {
+ removeFirstConnection();
+ }
+}
+
+WriteBufferOperation *OutputSocket::findAttachedWriteBufferOperation() const
+{
+ unsigned int index;
+ for (index = 0 ; index < this->connections.size();index++) {
+ SocketConnection *connection = this->connections[index];
+ NodeBase *node = connection->getToNode();
+ if (node->isOperation()) {
+ NodeOperation *operation = (NodeOperation*)node;
+ if (operation->isWriteBufferOperation()) {
+ return (WriteBufferOperation*)operation;
+ }
+ }
+ }
+ return NULL;
+}
+
+ChannelInfo *OutputSocket::getChannelInfo(const int channelnumber)
+{
+ return &this->channelinfo[channelnumber];
+}
+
diff --git a/source/blender/compositor/intern/COM_OutputSocket.h b/source/blender/compositor/intern/COM_OutputSocket.h
new file mode 100644
index 00000000000..640588417b4
--- /dev/null
+++ b/source/blender/compositor/intern/COM_OutputSocket.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_OutputSocket_h
+#define _COM_OutputSocket_h
+
+#include <vector>
+#include "COM_Socket.h"
+#include "COM_ChannelInfo.h"
+
+using namespace std;
+class SocketConnection;
+class Node;
+class InputSocket;
+class WriteBufferOperation;
+
+//#define COM_ST_INPUT 0
+//#define COM_ST_OUTPUT 1
+
+/**
+ * @brief OutputSocket are sockets that can send data/input
+ * @ingroup Model
+ */
+class OutputSocket : public Socket {
+private:
+ vector<SocketConnection*> connections;
+
+ /**
+ * @brief index of the inputsocket that determines the datatype of this outputsocket
+ * -1 will not use any inputsocket to determine the datatype, but use the outputsocket
+ * default datatype.
+ */
+ int inputSocketDataTypeDeterminatorIndex;
+
+ ChannelInfo channelinfo[4];
+ void removeFirstConnection();
+public:
+ OutputSocket(DataType datatype);
+ OutputSocket(DataType datatype, int inputSocketDataTypeDeterminatorIndex);
+ OutputSocket(OutputSocket * from);
+ void addConnection(SocketConnection *connection);
+ SocketConnection *getConnection(unsigned int index) {return this->connections[index];}
+ const int isConnected() const;
+ int isOutputSocket() const;
+
+ /**
+ * @brief determine the resolution of this socket
+ * @param resolution the result of this operation
+ * @param preferredResolution the preferrable resolution as no resolution could be determined
+ */
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ /**
+ * @brief determine the actual data type and channel info.
+ */
+ void determineActualDataType();
+ void relinkConnections(OutputSocket *relinkToSocket) {this->relinkConnections(relinkToSocket, false);};
+ void relinkConnections(OutputSocket *relinkToSocket, bool single);
+ bool isActualDataTypeDeterminedByInputSocket() {
+ return this->inputSocketDataTypeDeterminatorIndex>-1;
+ }
+ const int getNumberOfConnections() {return connections.size();}
+
+ /**
+ * @brief get the index of the inputsocket that determines the datatype of this outputsocket
+ */
+ int getInputSocketDataTypeDeterminatorIndex() {return this->inputSocketDataTypeDeterminatorIndex;}
+ void clearConnections();
+
+ /**
+ * @brief find a connected write buffer operation to this OutputSocket
+ * @return WriteBufferOperation or NULL
+ */
+ WriteBufferOperation *findAttachedWriteBufferOperation() const;
+ ChannelInfo *getChannelInfo(const int channelnumber);
+
+ /**
+ * @brief trigger determine actual data type to all connected sockets
+ * @note will only be triggered just after the actual data type is set.
+ */
+ void fireActualDataType();
+
+private:
+
+};
+#endif
diff --git a/source/blender/compositor/intern/COM_Socket.cpp b/source/blender/compositor/intern/COM_Socket.cpp
new file mode 100644
index 00000000000..a5336ac1202
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Socket.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Socket.h"
+#include "COM_Node.h"
+#include "COM_SocketConnection.h"
+
+Socket::Socket(DataType datatype)
+{
+ this->datatype = datatype;
+ this->actualType = COM_DT_UNKNOWN;
+ this->editorSocket = NULL;
+ this->node = NULL;
+}
+
+DataType Socket::getDataType() const
+{
+ return this->datatype;
+}
+
+int Socket::isInputSocket() const { return false; }
+int Socket::isOutputSocket() const { return false; }
+const int Socket::isConnected() const {return false;}
+void Socket::setNode(NodeBase *node) {this->node = node;}
+NodeBase *Socket::getNode() const {return this->node;}
+
+DataType Socket::getActualDataType() const {return this->actualType;}
+void Socket::setActualDataType(DataType actualType)
+{
+ this->actualType = actualType;
+}
diff --git a/source/blender/compositor/intern/COM_Socket.h b/source/blender/compositor/intern/COM_Socket.h
new file mode 100644
index 00000000000..8ad7a5c7fde
--- /dev/null
+++ b/source/blender/compositor/intern/COM_Socket.h
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_Socket_h
+#define _COM_Socket_h
+
+#include <vector>
+#include "BKE_text.h"
+#include <string>
+#include "DNA_node_types.h"
+#include "COM_defines.h"
+
+using namespace std;
+class SocketConnection;
+class NodeBase;
+
+/**
+ * @brief Base class for InputSocket and OutputSocket.
+ *
+ * A socket are the points on an node where the user can make a connection between.
+ * Sockets are always part of a node or an operation.
+ *
+ * @see InputSocket
+ * @see OutputSocket
+ * @see SocketConnection - a connection between an InputSocket and an OutputSocket
+ * @ingroup Model
+ */
+class Socket {
+private:
+ /**
+ * Reference to the node where this Socket belongs to
+ */
+ NodeBase *node;
+
+ /**
+ * the datatype of this socket. Is used for automatically data transformation.
+ * @section data-conversion
+ */
+ DataType datatype;
+
+ /**
+ * the actual data type during execution. This can be different than the field datatype, based on the conversion rules of the node
+ * @section data-conversion
+ */
+ DataType actualType;
+
+ bNodeSocket *editorSocket;
+public:
+ Socket(DataType datatype);
+
+ DataType getDataType() const;
+ void setNode(NodeBase *node);
+ NodeBase *getNode() const;
+
+ /**
+ * @brief get the actual data type
+ *
+ * @note The actual data type can differ from the data type this socket expects.
+ * @return actual DataType
+ */
+ DataType getActualDataType() const;
+
+ /**
+ * @brief set the actual data type
+ * @param actualType the new actual type
+ */
+ void setActualDataType(DataType actualType);
+
+ const virtual int isConnected() const;
+ int isInputSocket() const;
+ int isOutputSocket() const;
+ virtual void determineResolution(int resolution[], unsigned int preferredResolution[]) {}
+ virtual void determineActualDataType() {}
+
+ void setEditorSocket(bNodeSocket *editorSocket) {this->editorSocket = editorSocket;}
+ bNodeSocket *getbNodeSocket() const {return this->editorSocket;}
+
+};
+
+
+#endif
diff --git a/source/blender/compositor/intern/COM_SocketConnection.cpp b/source/blender/compositor/intern/COM_SocketConnection.cpp
new file mode 100644
index 00000000000..9f0c736392a
--- /dev/null
+++ b/source/blender/compositor/intern/COM_SocketConnection.cpp
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SocketConnection.h"
+#include "COM_NodeOperation.h"
+
+SocketConnection::SocketConnection()
+{
+ this->fromSocket = NULL;
+ this->toSocket = NULL;
+ this->setIgnoreResizeCheck(false);
+}
+
+void SocketConnection::setFromSocket(OutputSocket *fromsocket)
+{
+ if (fromsocket == NULL) {
+ throw "ERROR";
+ }
+ this->fromSocket = fromsocket;
+}
+
+OutputSocket *SocketConnection::getFromSocket() const {return this->fromSocket;}
+void SocketConnection::setToSocket(InputSocket *tosocket)
+{
+ if (tosocket == NULL) {
+ throw "ERROR";
+ }
+ this->toSocket = tosocket;
+}
+
+InputSocket *SocketConnection::getToSocket() const {return this->toSocket;}
+
+NodeBase *SocketConnection::getFromNode() const
+{
+ if (this->getFromSocket() == NULL) {
+ return NULL;
+ }
+ else {
+ return this->getFromSocket()->getNode();
+ }
+}
+NodeBase *SocketConnection::getToNode() const
+{
+ if (this->getToSocket() == NULL) {
+ return NULL;
+ }
+ else {
+ return this->getToSocket()->getNode();
+ }
+}
+bool SocketConnection::isValid() const
+{
+ if ((this->getToSocket() != NULL && this->getFromSocket() != NULL)) {
+ if (this->getFromNode()->isOperation() && this->getToNode()->isOperation()) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool SocketConnection::needsResolutionConversion() const
+{
+ if (this->ignoreResizeCheck) {return false;}
+ NodeOperation *fromOperation = (NodeOperation*)this->getFromNode();
+ NodeOperation *toOperation = (NodeOperation*)this->getToNode();
+ if (this->toSocket->getResizeMode() == COM_SC_NO_RESIZE) {return false;}
+ const unsigned int fromWidth = fromOperation->getWidth();
+ const unsigned int fromHeight = fromOperation->getHeight();
+ const unsigned int toWidth = toOperation->getWidth();
+ const unsigned int toHeight = toOperation->getHeight();
+
+ if (fromWidth == toWidth && fromHeight == toHeight) {
+ return false;
+ }
+ return true;
+}
diff --git a/source/blender/compositor/intern/COM_SocketConnection.h b/source/blender/compositor/intern/COM_SocketConnection.h
new file mode 100644
index 00000000000..1c4dcebfe07
--- /dev/null
+++ b/source/blender/compositor/intern/COM_SocketConnection.h
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SocketConnection_h
+#define _COM_SocketConnection_h
+
+#include "DNA_node_types.h"
+#include "COM_Node.h"
+#include "COM_Socket.h"
+#include "COM_ChannelInfo.h"
+
+/**
+ * @brief An SocketConnection is an connection between an InputSocket and an OutputSocket.
+ *
+ * <pre>
+ * +----------+ To InputSocket +----------+
+ * | From | SocketConnection \| To Node |
+ * | Node *====================* |
+ * | |\ | |
+ * | | From OutputSocket +----------+
+ * +----------+
+ * </pre>
+ * @ingroup Model
+ * @see InputSocket
+ * @see OutputSocket
+ */
+class SocketConnection {
+private:
+ /**
+ * @brief Startpoint of the connection
+ */
+ OutputSocket *fromSocket;
+
+ /**
+ * @brief Endpoint of the connection
+ */
+ InputSocket *toSocket;
+
+ /**
+ * @brief has the resize already been done for this connection
+ */
+ bool ignoreResizeCheck;
+public:
+ SocketConnection();
+
+ /**
+ * @brief set the startpoint of the connection
+ * @param fromsocket
+ */
+ void setFromSocket(OutputSocket *fromsocket);
+
+ /**
+ * @brief get the startpoint of the connection
+ * @return from OutputSocket
+ */
+ OutputSocket *getFromSocket() const;
+
+ /**
+ * @brief set the endpoint of the connection
+ * @param tosocket
+ */
+ void setToSocket(InputSocket *tosocket);
+
+ /**
+ * @brief get the endpoint of the connection
+ * @return to InputSocket
+ */
+ InputSocket *getToSocket() const;
+
+ /**
+ * @brief check if this connection is valid
+ */
+ bool isValid() const;
+
+ /**
+ * @brief return the Node where this connection is connected from
+ */
+ NodeBase * getFromNode() const;
+
+ /**
+ * @brief return the Node where this connection is connected to
+ */
+ NodeBase * getToNode() const;
+
+ /**
+ * @brief set, whether the resize has already been done for this SocketConnection
+ */
+ void setIgnoreResizeCheck(bool check) {this->ignoreResizeCheck = check;}
+
+ /**
+ * @brief has the resize already been done for this SocketConnection
+ */
+ bool isIgnoreResizeCheck() const { return this->ignoreResizeCheck;}
+
+ /**
+ * @brief does this SocketConnection need resolution conversion
+ * @note PreviewOperation's will be ignored
+ * @note Already converted SocketConnection's will be ignored
+ * @return needs conversion [true:false]
+ */
+ bool needsResolutionConversion() const;
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_SocketReader.cpp b/source/blender/compositor/intern/COM_SocketReader.cpp
new file mode 100644
index 00000000000..45f3be5a66c
--- /dev/null
+++ b/source/blender/compositor/intern/COM_SocketReader.cpp
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SocketReader.h"
+
+
diff --git a/source/blender/compositor/intern/COM_SocketReader.h b/source/blender/compositor/intern/COM_SocketReader.h
new file mode 100644
index 00000000000..24322847517
--- /dev/null
+++ b/source/blender/compositor/intern/COM_SocketReader.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SocketReader_h
+#define _COM_SocketReader_h
+#include "BLI_rect.h"
+#include "COM_defines.h"
+
+typedef enum PixelSampler {
+ COM_PS_NEAREST,
+ COM_PS_BILINEAR,
+ COM_PS_BICUBIC
+} PixelSampler;
+
+class MemoryBuffer;
+/**
+ * @brief Helper class for reading socket data.
+ * Only use this class for dispatching (un-ary and n-ary) executions.
+ * @ingroup Execution
+ */
+class SocketReader {
+private:
+protected:
+ /**
+ * @brief Holds the width of the output of this operation.
+ */
+ unsigned int width;
+
+ /**
+ * @brief Holds the height of the output of this operation.
+ */
+ unsigned int height;
+
+
+ /**
+ * @brief calculate a single pixel
+ * @note this method is called for non-complex
+ * @param result is a float[4] array to store the result
+ * @param x the x-coordinate of the pixel to calculate in image space
+ * @param y the y-coordinate of the pixel to calculate in image space
+ * @param inputBuffers chunks that can be read by their ReadBufferOperation.
+ */
+ virtual void executePixel(float *result, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) {}
+
+ /**
+ * @brief calculate a single pixel
+ * @note this method is called for complex
+ * @param result is a float[4] array to store the result
+ * @param x the x-coordinate of the pixel to calculate in image space
+ * @param y the y-coordinate of the pixel to calculate in image space
+ * @param inputBuffers chunks that can be read by their ReadBufferOperation.
+ * @param chunkData chunk specific data a during execution time.
+ */
+ virtual void executePixel(float *result, int x, int y, MemoryBuffer *inputBuffers[], void *chunkData) {
+ executePixel(result, x, y, COM_PS_NEAREST, inputBuffers);
+ }
+
+ /**
+ * @brief calculate a single pixel using an EWA filter
+ * @note this method is called for complex
+ * @param result is a float[4] array to store the result
+ * @param x the x-coordinate of the pixel to calculate in image space
+ * @param y the y-coordinate of the pixel to calculate in image space
+ * @param dx
+ * @param dy
+ * @param inputBuffers chunks that can be read by their ReadBufferOperation.
+ */
+ virtual void executePixel(float *result, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[]) {}
+
+public:
+ inline void read(float *result, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) {
+ executePixel(result, x, y, sampler, inputBuffers);
+ }
+ inline void read(float *result, int x, int y, MemoryBuffer *inputBuffers[], void *chunkData) {
+ executePixel(result, x, y, inputBuffers, chunkData);
+ }
+ inline void read(float *result, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[]) {
+ executePixel(result, x, y, dx, dy, inputBuffers);
+ }
+
+ virtual void *initializeTileData(rcti *rect, MemoryBuffer** memoryBuffers) {
+ return 0;
+ }
+ virtual void deinitializeTileData(rcti *rect, MemoryBuffer** memoryBuffers, void *data) {
+ }
+
+ virtual MemoryBuffer *getInputMemoryBuffer(MemoryBuffer** memoryBuffers) {return 0;}
+
+
+ inline const unsigned int getWidth() const {return this->width;}
+ inline const unsigned int getHeight() const {return this->height;}
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_WorkPackage.cpp b/source/blender/compositor/intern/COM_WorkPackage.cpp
new file mode 100644
index 00000000000..07974b9aafc
--- /dev/null
+++ b/source/blender/compositor/intern/COM_WorkPackage.cpp
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_WorkPackage.h"
+
+WorkPackage::WorkPackage(ExecutionGroup *group, unsigned int chunkNumber)
+{
+ this->executionGroup = group;
+ this->chunkNumber = chunkNumber;
+}
diff --git a/source/blender/compositor/intern/COM_WorkPackage.h b/source/blender/compositor/intern/COM_WorkPackage.h
new file mode 100644
index 00000000000..8bdf21499cf
--- /dev/null
+++ b/source/blender/compositor/intern/COM_WorkPackage.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+class WorkPackage;
+
+#ifndef _COM_WorkPackage_h_
+#define _COM_WorkPackage_h_
+
+#include "COM_ExecutionGroup.h"
+
+/**
+ * @brief contains data about work that can be scheduled
+ * @see WorkScheduler
+ */
+class WorkPackage {
+private:
+ /**
+ * @brief executionGroup with the operations-setup to be evaluated
+ */
+ ExecutionGroup *executionGroup;
+
+ /**
+ * @brief number of the chunk to be executed
+ */
+ unsigned int chunkNumber;
+public:
+ /**
+ * @constructor
+ * @param group the ExecutionGroup
+ * @param chunkNumber the number of the chunk
+ */
+ WorkPackage(ExecutionGroup *group, unsigned int chunkNumber);
+
+ /**
+ * @brief get the ExecutionGroup
+ */
+ ExecutionGroup *getExecutionGroup() const {return this->executionGroup;}
+
+ /**
+ * @brief get the number of the chunk
+ */
+ unsigned int getChunkNumber() const {return this->chunkNumber;}
+};
+
+#endif
diff --git a/source/blender/compositor/intern/COM_WorkScheduler.cpp b/source/blender/compositor/intern/COM_WorkScheduler.cpp
new file mode 100644
index 00000000000..406f0acf724
--- /dev/null
+++ b/source/blender/compositor/intern/COM_WorkScheduler.cpp
@@ -0,0 +1,329 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include <list>
+#include "COM_WorkScheduler.h"
+#include "PIL_time.h"
+#include "BLI_threads.h"
+#include "COM_CPUDevice.h"
+#include "COM_OpenCLDevice.h"
+#include "OCL_opencl.h"
+#include "stdio.h"
+#include "COM_OpenCLKernels.cl.cpp"
+#include "BKE_global.h"
+
+#if COM_CURRENT_THREADING_MODEL == COM_TM_NOTHREAD
+#warning COM_CURRENT_THREADING_MODEL COM_TM_NOTHREAD is activated. Use only for debugging.
+#elif COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+#else
+#error COM_CURRENT_THREADING_MODEL No threading model selected
+#endif
+
+
+/// @brief global state of the WorkScheduler.
+static WorkSchedulerState state;
+/// @brief list of all CPUDevices. for every hardware thread an instance of CPUDevice is created
+static vector<CPUDevice*> cpudevices;
+
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+/// @brief list of all thread for every CPUDevice in cpudevices a thread exists
+static ListBase cputhreads;
+/// @brief all scheduled work for the cpu
+static ThreadQueue * cpuqueue;
+static ThreadQueue * gpuqueue;
+#ifdef COM_OPENCL_ENABLED
+static cl_context context;
+static cl_program program;
+/// @brief list of all OpenCLDevices. for every OpenCL GPU device an instance of OpenCLDevice is created
+static vector<OpenCLDevice*> gpudevices;
+/// @brief list of all thread for every GPUDevice in cpudevices a thread exists
+static ListBase gputhreads;
+/// @brief all scheduled work for the gpu
+#ifdef COM_OPENCL_ENABLED
+static bool openclActive = false;
+#endif
+#endif
+#endif
+
+
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+void *WorkScheduler::thread_execute_cpu(void *data)
+{
+ bool continueLoop = true;
+ Device *device = (Device*)data;
+ while (continueLoop) {
+ WorkPackage *work = (WorkPackage*)BLI_thread_queue_pop(cpuqueue);
+ if (work) {
+ device->execute(work);
+ delete work;
+ }
+ PIL_sleep_ms(10);
+
+ if (WorkScheduler::isStopping()) {
+ continueLoop = false;
+ }
+ }
+ return NULL;
+}
+
+void *WorkScheduler::thread_execute_gpu(void *data)
+{
+ bool continueLoop = true;
+ Device *device = (Device*)data;
+ while (continueLoop) {
+ WorkPackage *work = (WorkPackage*)BLI_thread_queue_pop(gpuqueue);
+ if (work) {
+ device->execute(work);
+ delete work;
+ }
+ PIL_sleep_ms(10);
+
+ if (WorkScheduler::isStopping()) {
+ continueLoop = false;
+ }
+ }
+ return NULL;
+}
+
+bool WorkScheduler::isStopping() {return state == COM_WSS_STOPPING;}
+#endif
+
+
+
+void WorkScheduler::schedule(ExecutionGroup *group, int chunkNumber)
+{
+ WorkPackage *package = new WorkPackage(group, chunkNumber);
+#if COM_CURRENT_THREADING_MODEL == COM_TM_NOTHREAD
+ CPUDevice device;
+ device.execute(package);
+ delete package;
+#elif COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+#ifdef COM_OPENCL_ENABLED
+ if (group->isOpenCL() && openclActive) {
+ BLI_thread_queue_push(gpuqueue, package);
+ }
+ else {
+ BLI_thread_queue_push(cpuqueue, package);
+ }
+#else
+ BLI_thread_queue_push(cpuqueue, package);
+#endif
+#endif
+}
+
+void WorkScheduler::start(CompositorContext &context)
+{
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+ unsigned int index;
+ cpuqueue = BLI_thread_queue_init();
+ BLI_thread_queue_nowait(cpuqueue);
+ BLI_init_threads(&cputhreads, thread_execute_cpu, cpudevices.size());
+ for (index = 0 ; index < cpudevices.size() ; index ++) {
+ Device *device = cpudevices[index];
+ BLI_insert_thread(&cputhreads, device);
+ }
+#ifdef COM_OPENCL_ENABLED
+ if (context.getHasActiveOpenCLDevices()) {
+ gpuqueue = BLI_thread_queue_init();
+ BLI_thread_queue_nowait(gpuqueue);
+ BLI_init_threads(&gputhreads, thread_execute_gpu, gpudevices.size());
+ for (index = 0 ; index < gpudevices.size() ; index ++) {
+ Device *device = gpudevices[index];
+ BLI_insert_thread(&gputhreads, device);
+ }
+ openclActive = true;
+ }
+ else {
+ openclActive = false;
+ }
+#endif
+#endif
+ state = COM_WSS_STARTED;
+}
+void WorkScheduler::finish()
+{
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+#ifdef COM_OPENCL_ENABLED
+ if (openclActive) {
+ while (BLI_thread_queue_size(gpuqueue) + BLI_thread_queue_size(cpuqueue) > 0) {
+ PIL_sleep_ms(10);
+ }
+ }
+ else {
+ while (BLI_thread_queue_size(cpuqueue) > 0) {
+ PIL_sleep_ms(10);
+ }
+ }
+#else
+ while (BLI_thread_queue_size(cpuqueue) > 0) {
+ PIL_sleep_ms(10);
+ }
+#endif
+#endif
+}
+void WorkScheduler::stop()
+{
+ state = COM_WSS_STOPPING;
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+ BLI_end_threads(&cputhreads);
+ BLI_thread_queue_free(cpuqueue);
+ cpuqueue = NULL;
+#ifdef COM_OPENCL_ENABLED
+ if (openclActive) {
+ BLI_end_threads(&gputhreads);
+ BLI_thread_queue_free(gpuqueue);
+ gpuqueue = NULL;
+ }
+#endif
+#endif
+ state = COM_WSS_STOPPED;
+}
+
+bool WorkScheduler::hasGPUDevices()
+{
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+#ifdef COM_OPENCL_ENABLED
+ return gpudevices.size()>0;
+#else
+ return 0;
+#endif
+#else
+ return 0;
+#endif
+}
+
+extern void clContextError(const char *errinfo, const void *private_info, size_t cb, void *user_data)
+{
+ printf("OPENCL error: %s\n", errinfo);
+}
+
+void WorkScheduler::initialize()
+{
+ state = COM_WSS_UNKNOWN;
+
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+ int numberOfCPUThreads = BLI_system_thread_count();
+
+ for (int index = 0 ; index < numberOfCPUThreads ; index ++) {
+ CPUDevice *device = new CPUDevice();
+ device->initialize();
+ cpudevices.push_back(device);
+ }
+#ifdef COM_OPENCL_ENABLED
+ context = NULL;
+ program = NULL;
+ if (clCreateContextFromType) {
+ cl_uint numberOfPlatforms;
+ cl_int error;
+ error = clGetPlatformIDs(0, 0, &numberOfPlatforms);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ if (G.f & G_DEBUG) printf("%d number of platforms\n", numberOfPlatforms);
+ cl_platform_id *platforms = new cl_platform_id[numberOfPlatforms];
+ error = clGetPlatformIDs(numberOfPlatforms, platforms, 0);
+ unsigned int indexPlatform;
+ cl_uint totalNumberOfDevices = 0;
+ for (indexPlatform = 0 ; indexPlatform < numberOfPlatforms ; indexPlatform ++) {
+ cl_platform_id platform = platforms[indexPlatform];
+ cl_uint numberOfDevices;
+ clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 0, 0, &numberOfDevices);
+ totalNumberOfDevices += numberOfDevices;
+ }
+
+ cl_device_id *cldevices = new cl_device_id[totalNumberOfDevices];
+ unsigned int numberOfDevicesReceived = 0;
+ for (indexPlatform = 0 ; indexPlatform < numberOfPlatforms ; indexPlatform ++) {
+ cl_platform_id platform = platforms[indexPlatform];
+ cl_uint numberOfDevices;
+ clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 0, 0, &numberOfDevices);
+ clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, numberOfDevices, cldevices+numberOfDevicesReceived*sizeof (cl_device_id), 0);
+ numberOfDevicesReceived += numberOfDevices;
+ }
+ context = clCreateContext(NULL, totalNumberOfDevices, cldevices, clContextError, NULL, &error);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ program = clCreateProgramWithSource(context, 1, &sourcecode, 0, &error);
+ error = clBuildProgram(program, totalNumberOfDevices, cldevices, 0, 0, 0);
+ if (error != CL_SUCCESS) {
+ cl_int error2;
+ size_t ret_val_size;
+ printf("CLERROR[%d]: %s\n", error, clewErrorString(error));
+ error2 = clGetProgramBuildInfo(program, cldevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
+ if (error2 != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ char *build_log = new char[ret_val_size+1];
+ error2 = clGetProgramBuildInfo(program, cldevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
+ if (error2 != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ build_log[ret_val_size] = '\0';
+ printf("%s", build_log);
+ delete build_log;
+
+ }
+ unsigned int indexDevices;
+ for (indexDevices = 0 ; indexDevices < totalNumberOfDevices ; indexDevices ++) {
+ cl_device_id device = cldevices[indexDevices];
+ OpenCLDevice *clDevice = new OpenCLDevice(context, device, program);
+ clDevice->initialize(),
+ gpudevices.push_back(clDevice);
+ if (G.f & G_DEBUG) {
+ char resultString[32];
+ error = clGetDeviceInfo(device, CL_DEVICE_NAME, 32, resultString, 0);
+ printf("OPENCL_DEVICE: %s, ", resultString);
+ error = clGetDeviceInfo(device, CL_DEVICE_VENDOR, 32, resultString, 0);
+ printf("%s\n", resultString);
+ }
+ }
+ delete cldevices;
+ delete platforms;
+ }
+#endif
+#endif
+
+ state = COM_WSS_INITIALIZED;
+}
+
+void WorkScheduler::deinitialize()
+{
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+ Device *device;
+ while (cpudevices.size()>0) {
+ device = cpudevices.back();
+ cpudevices.pop_back();
+ device->deinitialize();
+ delete device;
+ }
+#ifdef COM_OPENCL_ENABLED
+ while (gpudevices.size()>0) {
+ device = gpudevices.back();
+ gpudevices.pop_back();
+ device->deinitialize();
+ delete device;
+ }
+ if (program) {
+ clReleaseProgram(program);
+ program = NULL;
+ }
+ if (context) {
+ clReleaseContext(context);
+ context = NULL;
+ }
+#endif
+#endif
+ state = COM_WSS_DEINITIALIZED;
+}
diff --git a/source/blender/compositor/intern/COM_WorkScheduler.h b/source/blender/compositor/intern/COM_WorkScheduler.h
new file mode 100644
index 00000000000..0de1763749e
--- /dev/null
+++ b/source/blender/compositor/intern/COM_WorkScheduler.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_WorkScheduler_h_
+#define _COM_WorkScheduler_h_
+
+#include "COM_ExecutionGroup.h"
+extern "C" {
+ #include "BLI_threads.h"
+}
+#include "COM_WorkPackage.h"
+#include "COM_defines.h"
+#include "COM_Device.h"
+
+// STATES
+/** @brief states of the WorkScheduler
+ * @ingroup execution
+ */
+typedef enum WorkSchedulerState {
+ COM_WSS_UNKNOWN = -1,
+ COM_WSS_INITIALIZED = 0,
+ COM_WSS_STARTED = 1,
+ COM_WSS_STOPPING = 2,
+ COM_WSS_STOPPED = 3,
+ COM_WSS_DEINITIALIZED = 4
+} WorkSchedulerState;
+
+/** @brief the workscheduler
+ * @ingroup execution
+ */
+class WorkScheduler {
+
+#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+ /**
+ * @brief are we being stopped.
+ */
+ static bool isStopping();
+
+ /**
+ * @brief main thread loop for cpudevices
+ * inside this loop new work is queried and being executed
+ */
+ static void *thread_execute_cpu(void *data);
+
+ /**
+ * @brief main thread loop for gpudevices
+ * inside this loop new work is queried and being executed
+ */
+ static void *thread_execute_gpu(void *data);
+#endif
+public:
+ /**
+ * @brief schedule a chunk of a group to be calculated.
+ * An execution group schedules a chunk in the WorkScheduler
+ * when ExecutionGroup.isOpenCL is set the work will be handled by a OpenCLDevice
+ * otherwide the work is scheduled for an CPUDevice
+ * @see ExecutionGroup.execute
+ * @param group the execution group
+ * @param chunkNumber the number of the chunk in the group to be executed
+ */
+ static void schedule(ExecutionGroup *group, int chunkNumber);
+
+ /**
+ * @brief initialize the WorkScheduler
+ *
+ * during initialization the mutexes are initialized.
+ * there are two mutexes (for every device type one)
+ * After mutex initialization the system is queried in order to count the number of CPUDevices and GPUDevices to be created.
+ * For every hardware thread a CPUDevice and for every OpenCL GPU device a OpenCLDevice is created.
+ * these devices are stored in a separate list (cpudevices & gpudevices)
+ */
+ static void initialize();
+
+ /**
+ * @brief deinitialize the WorkScheduler
+ * free all allocated resources
+ */
+ static void deinitialize();
+
+ /**
+ * @brief Start the execution
+ * this methods will start the WorkScheduler. Inside this method all threads are initialized.
+ * for every device a thread is created.
+ * @see initialize Initialization and query of the number of devices
+ */
+ static void start(CompositorContext &context);
+
+ /**
+ * @brief stop the execution
+ * All created thread by the start method are destroyed.
+ * @see start
+ */
+ static void stop();
+
+ /**
+ * @brief wait for all work to be completed.
+ */
+ static void finish();
+
+ /**
+ * @brief Are there OpenCL capable GPU devices initialized?
+ * the result of this method is stored in the CompositorContext
+ * A node can generate a different operation tree when OpenCLDevices exists.
+ * @see CompositorContext.getHasActiveOpenCLDevices
+ */
+ static bool hasGPUDevices();
+};
+#endif
diff --git a/source/blender/compositor/intern/COM_compositor.cpp b/source/blender/compositor/intern/COM_compositor.cpp
new file mode 100644
index 00000000000..e27bff4401e
--- /dev/null
+++ b/source/blender/compositor/intern/COM_compositor.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+
+#include "BKE_node.h"
+extern "C" {
+ #include "BLI_threads.h"
+}
+
+#include "COM_compositor.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_WorkScheduler.h"
+#include "OCL_opencl.h"
+
+static ThreadMutex *compositorMutex;
+void COM_execute(bNodeTree *editingtree, int rendering)
+{
+ if (compositorMutex == NULL) { /// TODO: move to blender startup phase
+ compositorMutex = new ThreadMutex();
+ BLI_mutex_init(compositorMutex);
+ OCL_init();
+ WorkScheduler::initialize(); ///TODO: call workscheduler.deinitialize somewhere
+ }
+ BLI_mutex_lock(compositorMutex);
+ if (editingtree->test_break && editingtree->test_break(editingtree->tbh)) {
+ // during editing multiple calls to this method can be triggered.
+ // make sure one the last one will be doing the work.
+ BLI_mutex_unlock(compositorMutex);
+ return;
+
+ }
+
+ /* set progress bar to 0% and status to init compositing*/
+ editingtree->progress(editingtree->prh, 0.0);
+ editingtree->stats_draw(editingtree->sdh, (char*)"Compositing");
+
+ /* initialize execution system */
+ ExecutionSystem *system = new ExecutionSystem(editingtree, rendering);
+ system->execute();
+ delete system;
+
+ BLI_mutex_unlock(compositorMutex);
+}
diff --git a/source/blender/compositor/nodes/COM_AlphaOverNode.cpp b/source/blender/compositor/nodes/COM_AlphaOverNode.cpp
new file mode 100644
index 00000000000..eb3cd821172
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_AlphaOverNode.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_AlphaOverNode.h"
+
+#include "COM_MixBaseOperation.h"
+#include "COM_AlphaOverKeyOperation.h"
+#include "COM_AlphaOverMixedOperation.h"
+#include "COM_AlphaOverPremultiplyOperation.h"
+
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "DNA_material_types.h" // the ramp types
+
+void AlphaOverNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *valueSocket = this->getInputSocket(0);
+ InputSocket *color1Socket = this->getInputSocket(1);
+ InputSocket *color2Socket = this->getInputSocket(2);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ bNode *editorNode = this->getbNode();
+
+ MixBaseOperation *convertProg;
+ NodeTwoFloats *ntf = (NodeTwoFloats*)editorNode->storage;
+ if (ntf->x!= 0.0f) {
+ AlphaOverMixedOperation *mixOperation = new AlphaOverMixedOperation();
+ mixOperation->setX(ntf->x);
+ convertProg = mixOperation;
+
+ }
+ else if (editorNode->custom1) {
+ convertProg = new AlphaOverKeyOperation();
+ }
+ else {
+ convertProg = new AlphaOverPremultiplyOperation();
+ }
+
+ convertProg->setUseValueAlphaMultiply(false);
+ if (color1Socket->isConnected()) {
+ convertProg->setResolutionInputSocketIndex(1);
+ }
+ else if (color2Socket->isConnected()) {
+ convertProg->setResolutionInputSocketIndex(2);
+ }
+ else {
+ convertProg->setResolutionInputSocketIndex(0);
+ }
+ valueSocket->relinkConnections(convertProg->getInputSocket(0), 0, graph);
+ color1Socket->relinkConnections(convertProg->getInputSocket(1), 1, graph);
+ color2Socket->relinkConnections(convertProg->getInputSocket(2), 2, graph);
+ outputSocket->relinkConnections(convertProg->getOutputSocket(0));
+ graph->addOperation(convertProg);
+}
diff --git a/source/blender/compositor/nodes/COM_AlphaOverNode.h b/source/blender/compositor/nodes/COM_AlphaOverNode.h
new file mode 100644
index 00000000000..64f78e76837
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_AlphaOverNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_AlphaOverNode_h
+#define _COM_AlphaOverNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief AlphaOverNode
+ * @ingroup Node
+ */
+class AlphaOverNode: public Node {
+public:
+ AlphaOverNode(bNode *editorNode) :Node(editorNode) {}
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp b/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
new file mode 100644
index 00000000000..fa654d35785
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BilateralBlurNode.h"
+#include "DNA_scene_types.h"
+#include "DNA_node_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_BilateralBlurOperation.h"
+
+BilateralBlurNode::BilateralBlurNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void BilateralBlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ NodeBilateralBlurData *data = (NodeBilateralBlurData*)this->getbNode()->storage;
+ BilateralBlurOperation *operation = new BilateralBlurOperation();
+ operation->setQuality(context->getQuality());
+ operation->setData(data);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_BilateralBlurNode.h b/source/blender/compositor/nodes/COM_BilateralBlurNode.h
new file mode 100644
index 00000000000..a92de0eaa62
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BilateralBlurNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BilateralBlurNode_h_
+#define _COM_BilateralBlurNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief BilateralBlurNode
+ * @ingroup Node
+ */
+class BilateralBlurNode: public Node {
+public:
+ BilateralBlurNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_BlurNode.cpp b/source/blender/compositor/nodes/COM_BlurNode.cpp
new file mode 100644
index 00000000000..90b2481cc7d
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BlurNode.cpp
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BlurNode.h"
+#include "DNA_scene_types.h"
+#include "DNA_node_types.h"
+#include "COM_GaussianXBlurOperation.h"
+#include "COM_GaussianYBlurOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_GaussianBokehBlurOperation.h"
+#include "COM_FastGaussianBlurOperation.h"
+
+BlurNode::BlurNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void BlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ bNode *editorNode = this->getbNode();
+ NodeBlurData * data = (NodeBlurData*)editorNode->storage;
+#if 0
+ const bNodeSocket *sock = this->getInputSocket(1)->getbNodeSocket();
+ const float size = ((const bNodeSocketValueFloat*)sock->default_value)->value;
+#endif
+
+ CompositorQuality quality = context->getQuality();
+
+ if (data->filtertype == R_FILTER_MITCH || data->filtertype == R_FILTER_CATROM) {
+ quality = COM_QUALITY_HIGH;
+ }
+ if (data->filtertype == R_FILTER_FAST_GAUSS) {
+ FastGaussianBlurOperation *operationfgb = new FastGaussianBlurOperation();
+ operationfgb->setData(data);
+ this->getInputSocket(0)->relinkConnections(operationfgb->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operationfgb->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operationfgb->getOutputSocket(0));
+ graph->addOperation(operationfgb);
+ addPreviewOperation(graph, operationfgb->getOutputSocket(), 5);
+ }
+ else if (!data->bokeh) {
+ GaussianXBlurOperation *operationx = new GaussianXBlurOperation();
+ operationx->setData(data);
+ operationx->setQuality(quality);
+ this->getInputSocket(0)->relinkConnections(operationx->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operationx->getInputSocket(1), 1, graph);
+ graph->addOperation(operationx);
+ GaussianYBlurOperation *operationy = new GaussianYBlurOperation();
+ operationy->setData(data);
+ operationy->setQuality(quality);
+ this->getOutputSocket(0)->relinkConnections(operationy->getOutputSocket());
+ graph->addOperation(operationy);
+ addLink(graph, operationx->getOutputSocket(), operationy->getInputSocket(0));
+ addLink(graph, operationx->getInputSocket(1)->getConnection()->getFromSocket(), operationy->getInputSocket(1));
+ addPreviewOperation(graph, operationy->getOutputSocket(), 5);
+ }
+ else {
+ GaussianBokehBlurOperation *operation = new GaussianBokehBlurOperation();
+ operation->setData(data);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ operation->setQuality(quality);
+ graph->addOperation(operation);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ addPreviewOperation(graph, operation->getOutputSocket(), 5);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_BlurNode.h b/source/blender/compositor/nodes/COM_BlurNode.h
new file mode 100644
index 00000000000..04a680c32cf
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BlurNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BlurNode_h_
+#define _COM_BlurNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief BlurNode
+ * @ingroup Node
+ */
+
+class BlurNode: public Node {
+public:
+ BlurNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_BokehBlurNode.cpp b/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
new file mode 100644
index 00000000000..d6f4f58fe70
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BokehBlurNode.h"
+#include "DNA_scene_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_object_types.h"
+#include "DNA_node_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_BokehBlurOperation.h"
+#include "COM_VariableSizeBokehBlurOperation.h"
+#include "COM_ConvertDepthToRadiusOperation.h"
+
+BokehBlurNode::BokehBlurNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void BokehBlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ Object *camob = context->getScene()->camera;
+
+ if (this->getInputSocket(2)->isConnected()) {
+ VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
+ ConvertDepthToRadiusOperation *converter = new ConvertDepthToRadiusOperation();
+ converter->setfStop(4.0f);
+ converter->setCameraObject(camob);
+ operation->setMaxBlur(16);
+ operation->setQuality(context->getQuality());
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(2)->relinkConnections(converter->getInputSocket(0), 2, graph);
+ addLink(graph, converter->getOutputSocket(), operation->getInputSocket(2));
+ graph->addOperation(operation);
+ graph->addOperation(converter);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ }
+ else {
+ BokehBlurOperation *operation = new BokehBlurOperation();
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(3)->relinkConnections(operation->getInputSocket(2), 3, graph);
+ operation->setSize(((bNodeSocketValueFloat*)this->getInputSocket(2)->getbNodeSocket()->default_value)->value);
+ operation->setQuality(context->getQuality());
+ graph->addOperation(operation);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_BokehBlurNode.h b/source/blender/compositor/nodes/COM_BokehBlurNode.h
new file mode 100644
index 00000000000..eb9fada5112
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BokehBlurNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehBlurNode_h_
+#define _COM_BokehBlurNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief BokehBlurNode
+ * @ingroup Node
+ */
+
+class BokehBlurNode: public Node {
+public:
+ BokehBlurNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_BokehImageNode.cpp b/source/blender/compositor/nodes/COM_BokehImageNode.cpp
new file mode 100644
index 00000000000..35511d213f5
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BokehImageNode.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BokehImageNode.h"
+#include "DNA_scene_types.h"
+#include "COM_BokehImageOperation.h"
+#include "COM_ExecutionSystem.h"
+
+BokehImageNode::BokehImageNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void BokehImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ BokehImageOperation *operation = new BokehImageOperation();
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ operation->setData((NodeBokehImage*)this->getbNode()->storage);
+ addPreviewOperation(graph, operation->getOutputSocket(0), 9);
+}
diff --git a/source/blender/compositor/nodes/COM_BokehImageNode.h b/source/blender/compositor/nodes/COM_BokehImageNode.h
new file mode 100644
index 00000000000..d4fabf0e516
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BokehImageNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehImageNode_h_
+#define _COM_BokehImageNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief BokehImageNode
+ * @ingroup Node
+ */
+class BokehImageNode: public Node {
+public:
+ BokehImageNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_BoxMaskNode.cpp b/source/blender/compositor/nodes/COM_BoxMaskNode.cpp
new file mode 100644
index 00000000000..e99252663d0
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BoxMaskNode.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BoxMaskNode.h"
+#include "DNA_scene_types.h"
+#include "COM_BoxMaskOperation.h"
+#include "COM_ExecutionSystem.h"
+
+BoxMaskNode::BoxMaskNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void BoxMaskNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ BoxMaskOperation *operation;
+ operation = new BoxMaskOperation();
+ operation->setData((NodeBoxMask*)this->getbNode()->storage);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ operation->setMaskType(this->getbNode()->custom1);
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_BoxMaskNode.h b/source/blender/compositor/nodes/COM_BoxMaskNode.h
new file mode 100644
index 00000000000..c71c6a18388
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BoxMaskNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BoxMaskNode_h_
+#define _COM_BoxMaskNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief BoxMaskNode
+ * @ingroup Node
+ */
+class BoxMaskNode: public Node {
+public:
+ BoxMaskNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_BrightnessNode.cpp b/source/blender/compositor/nodes/COM_BrightnessNode.cpp
new file mode 100644
index 00000000000..9ccb58a45de
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BrightnessNode.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BrightnessNode.h"
+#include "DNA_scene_types.h"
+#include "COM_BrightnessOperation.h"
+#include "COM_ExecutionSystem.h"
+
+BrightnessNode::BrightnessNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void BrightnessNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ BrightnessOperation *operation = new BrightnessOperation();
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(2), 2, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_BrightnessNode.h b/source/blender/compositor/nodes/COM_BrightnessNode.h
new file mode 100644
index 00000000000..4c3b6421322
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_BrightnessNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BrightnessNode_h_
+#define _COM_BrightnessNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief BrightnessNode
+ * @ingroup Node
+ */
+class BrightnessNode: public Node {
+public:
+ BrightnessNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp b/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp
new file mode 100644
index 00000000000..dbe5b9936dc
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ChannelMatteNode.h"
+#include "BKE_node.h"
+#include "COM_ChannelMatteOperation.h"
+#include "COM_ConvertRGBToHSVOperation.h"
+#include "COM_ConvertRGBToYCCOperation.h"
+#include "COM_ConvertRGBToYUVOperation.h"
+#include "COM_SetAlphaOperation.h"
+
+ChannelMatteNode::ChannelMatteNode(bNode *editorNode): Node(editorNode)
+{}
+
+void ChannelMatteNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ InputSocket *inputSocketImage = this->getInputSocket(0);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+ OutputSocket *outputSocketMatte = this->getOutputSocket(1);
+
+ NodeOperation *convert=NULL;
+ bNode *node = this->getbNode();
+
+ /* colorspace */
+ switch (node->custom1) {
+ case CMP_NODE_CHANNEL_MATTE_CS_RGB:
+ break;
+ case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/
+ convert = new ConvertRGBToHSVOperation();
+ break;
+ case CMP_NODE_CHANNEL_MATTE_CS_YUV: /*YUV*/
+ convert = new ConvertRGBToYUVOperation();
+ break;
+ case CMP_NODE_CHANNEL_MATTE_CS_YCC: /*YCC*/
+ convert = new ConvertRGBToYCCOperation();
+ ((ConvertRGBToYCCOperation *)convert)->setMode(0); /* BLI_YCC_ITU_BT601 */
+ break;
+ default:
+ break;
+ }
+
+ ChannelMatteOperation *operation = new ChannelMatteOperation();
+ /* pass the ui properties to the operation */
+ operation->setSettings((NodeChroma*)node->storage, node->custom2);
+
+ SetAlphaOperation *operationAlpha = new SetAlphaOperation();
+
+ if (convert) {
+ inputSocketImage->relinkConnections(convert->getInputSocket(0), 0, graph);
+ addLink(graph, convert->getOutputSocket(), operation->getInputSocket(0));
+ addLink(graph, convert->getInputSocket(0)->getConnection()->getFromSocket(), operationAlpha->getInputSocket(0));
+ graph->addOperation(convert);
+ }
+ else {
+ inputSocketImage->relinkConnections(operation->getInputSocket(0), 0, graph);
+ addLink(graph, operation->getInputSocket(0)->getConnection()->getFromSocket(), operationAlpha->getInputSocket(0));
+ }
+
+ if (outputSocketMatte->isConnected()) {
+ outputSocketMatte->relinkConnections(operation->getOutputSocket(0));
+ }
+
+ graph->addOperation(operation);
+ graph->addOperation(operationAlpha);
+
+ addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
+ addPreviewOperation(graph, operationAlpha->getOutputSocket(), 9);
+
+ if (outputSocketImage->isConnected()) {
+ outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_ChannelMatteNode.h b/source/blender/compositor/nodes/COM_ChannelMatteNode.h
new file mode 100644
index 00000000000..cb67ac604b2
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ChannelMatteNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef COM_ChannelMatteNODE_H
+#define COM_ChannelMatteNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief ChannelMatteNode
+ * @ingroup Node
+ */
+class ChannelMatteNode : public Node
+{
+public:
+ ChannelMatteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_ChannelMatteNODE_H
diff --git a/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp b/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp
new file mode 100644
index 00000000000..dd3b3855e3f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ChromaMatteNode.h"
+#include "BKE_node.h"
+#include "COM_ChromaMatteOperation.h"
+#include "COM_ConvertRGBToYCCOperation.h"
+#include "COM_SetAlphaOperation.h"
+
+ChromaMatteNode::ChromaMatteNode(bNode *editorNode): Node(editorNode)
+{}
+
+void ChromaMatteNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ InputSocket *inputSocketImage = this->getInputSocket(0);
+ InputSocket *inputSocketKey = this->getInputSocket(1);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+ OutputSocket *outputSocketMatte = this->getOutputSocket(1);
+
+ ConvertRGBToYCCOperation *operationRGBToYCC_Image = new ConvertRGBToYCCOperation();
+ ConvertRGBToYCCOperation *operationRGBToYCC_Key = new ConvertRGBToYCCOperation();
+ operationRGBToYCC_Image->setMode(0); /* BLI_YCC_ITU_BT601 */
+ operationRGBToYCC_Key->setMode(0); /* BLI_YCC_ITU_BT601 */
+
+ ChromaMatteOperation *operation = new ChromaMatteOperation();
+ bNode *editorsnode = getbNode();
+ operation->setSettings((NodeChroma*)editorsnode->storage);
+
+ inputSocketImage->relinkConnections(operationRGBToYCC_Image->getInputSocket(0), 0, graph);
+ inputSocketKey->relinkConnections(operationRGBToYCC_Key->getInputSocket(0), 0, graph);
+
+ addLink(graph, operationRGBToYCC_Image->getOutputSocket(), operation->getInputSocket(0));
+ addLink(graph, operationRGBToYCC_Key->getOutputSocket(), operation->getInputSocket(1));
+
+ graph->addOperation(operationRGBToYCC_Image);
+ graph->addOperation(operationRGBToYCC_Key);
+ graph->addOperation(operation);
+
+ if (outputSocketMatte->isConnected()) {
+ outputSocketMatte->relinkConnections(operation->getOutputSocket());
+ }
+
+ SetAlphaOperation *operationAlpha = new SetAlphaOperation();
+ addLink(graph, operationRGBToYCC_Image->getInputSocket(0)->getConnection()->getFromSocket(), operationAlpha->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
+
+ graph->addOperation(operationAlpha);
+ addPreviewOperation(graph, operationAlpha->getOutputSocket(), 9);
+
+ if (outputSocketImage->isConnected()) {
+ outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_ChromaMatteNode.h b/source/blender/compositor/nodes/COM_ChromaMatteNode.h
new file mode 100644
index 00000000000..6008137b4a7
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ChromaMatteNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef COM_ChromaMatteNODE_H
+#define COM_ChromaMatteNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief ChromaMatteNode
+ * @ingroup Node
+ */
+class ChromaMatteNode : public Node
+{
+public:
+ ChromaMatteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_ChromaMatteNODE_H
diff --git a/source/blender/compositor/nodes/COM_ColorBalanceNode.cpp b/source/blender/compositor/nodes/COM_ColorBalanceNode.cpp
new file mode 100644
index 00000000000..7b852678191
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorBalanceNode.cpp
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorBalanceNode.h"
+#include "COM_ColorBalanceLGGOperation.h"
+#include "COM_ColorBalanceASCCDLOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "BKE_node.h"
+#include "COM_MixBlendOperation.h"
+
+ColorBalanceNode::ColorBalanceNode(bNode *editorNode): Node(editorNode)
+{
+}
+void ColorBalanceNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputImageSocket = this->getInputSocket(1);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+
+ bNode *node = this->getbNode();
+ NodeColorBalance *n = (NodeColorBalance *)node->storage;
+ NodeOperation*operation;
+ if (node->custom1 == 0) {
+ ColorBalanceLGGOperation *operationLGG = new ColorBalanceLGGOperation();
+ {
+ int c;
+
+ for (c = 0; c < 3; c++) {
+ n->lift_lgg[c] = 2.0f - n->lift[c];
+ n->gamma_inv[c] = (n->gamma[c] != 0.0f) ? 1.0f/n->gamma[c] : 1000000.0f;
+ }
+ }
+
+ operationLGG->setGain(n->gain);
+ operationLGG->setLift(n->lift_lgg);
+ operationLGG->setGammaInv(n->gamma_inv);
+ operation = operationLGG;
+ }
+ else {
+ ColorBalanceASCCDLOperation *operationCDL = new ColorBalanceASCCDLOperation();
+ operationCDL->setGain(n->gain);
+ operationCDL->setLift(n->lift);
+ operationCDL->setGamma(n->gamma);
+ operation = operationCDL;
+ }
+
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputImageSocket->relinkConnections(operation->getInputSocket(1), 0, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorBalanceNode.h b/source/blender/compositor/nodes/COM_ColorBalanceNode.h
new file mode 100644
index 00000000000..61a09d28c01
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorBalanceNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef COM_ColorBalanceNODE_H
+#define COM_ColorBalanceNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorBalanceNode
+ * @ingroup Node
+ */
+class ColorBalanceNode : public Node
+{
+public:
+ ColorBalanceNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_ColorBalanceNODE_H
diff --git a/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp b/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp
new file mode 100644
index 00000000000..4909f1b9895
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorCorrectionNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ColorCorrectionOperation.h"
+#include "COM_ExecutionSystem.h"
+
+ColorCorrectionNode::ColorCorrectionNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void ColorCorrectionNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ ColorCorrectionOperation *operation = new ColorCorrectionOperation();
+ bNode *editorNode = getbNode();
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ operation->setData((NodeColorCorrection*)editorNode->storage);
+ operation->setRedChannelEnabled((editorNode->custom1&1)>0);
+ operation->setGreenChannelEnabled((editorNode->custom1&2)>0);
+ operation->setBlueChannelEnabled((editorNode->custom1&4)>0);
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorCorrectionNode.h b/source/blender/compositor/nodes/COM_ColorCorrectionNode.h
new file mode 100644
index 00000000000..46b7fe5e0bc
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorCorrectionNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorCorrectionNode_h_
+#define _COM_ColorCorrectionNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorCorrectionNode
+ * @ingroup Node
+ */
+class ColorCorrectionNode: public Node {
+public:
+ ColorCorrectionNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ColorCurveNode.cpp b/source/blender/compositor/nodes/COM_ColorCurveNode.cpp
new file mode 100644
index 00000000000..d7cde21a984
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorCurveNode.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorCurveNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ColorCurveOperation.h"
+#include "COM_ExecutionSystem.h"
+
+ColorCurveNode::ColorCurveNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void ColorCurveNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ ColorCurveOperation *operation = new ColorCurveOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(2), 2, graph);
+ this->getInputSocket(3)->relinkConnections(operation->getInputSocket(3), 3, graph);
+
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ operation->setCurveMapping((CurveMapping*)this->getbNode()->storage);
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorCurveNode.h b/source/blender/compositor/nodes/COM_ColorCurveNode.h
new file mode 100644
index 00000000000..264e2691566
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorCurveNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorCurveNode_h_
+#define _COM_ColorCurveNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorCurveNode
+ * @ingroup Node
+ */
+class ColorCurveNode: public Node {
+public:
+ ColorCurveNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ColorMatteNode.cpp b/source/blender/compositor/nodes/COM_ColorMatteNode.cpp
new file mode 100644
index 00000000000..860d1a01194
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorMatteNode.cpp
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ColorMatteNode.h"
+#include "BKE_node.h"
+#include "COM_ColorMatteOperation.h"
+#include "COM_ConvertRGBToHSVOperation.h"
+#include "COM_SetAlphaOperation.h"
+
+ColorMatteNode::ColorMatteNode(bNode *editorNode): Node(editorNode)
+{}
+
+void ColorMatteNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ InputSocket *inputSocketImage = this->getInputSocket(0);
+ InputSocket *inputSocketKey = this->getInputSocket(1);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+ OutputSocket *outputSocketMatte = this->getOutputSocket(1);
+
+ ConvertRGBToHSVOperation *operationRGBToHSV_Image = new ConvertRGBToHSVOperation();
+ ConvertRGBToHSVOperation *operationRGBToHSV_Key = new ConvertRGBToHSVOperation();
+
+ ColorMatteOperation *operation = new ColorMatteOperation();
+ bNode *editorsnode = getbNode();
+ operation->setSettings((NodeChroma*)editorsnode->storage);
+
+ inputSocketImage->relinkConnections(operationRGBToHSV_Image->getInputSocket(0), 0, graph);
+ inputSocketKey->relinkConnections(operationRGBToHSV_Key->getInputSocket(0), 1, graph);
+
+ addLink(graph, operationRGBToHSV_Image->getOutputSocket(), operation->getInputSocket(0));
+ addLink(graph, operationRGBToHSV_Key->getOutputSocket(), operation->getInputSocket(1));
+
+ if (outputSocketMatte->isConnected()) {
+ outputSocketMatte->relinkConnections(operation->getOutputSocket(0));
+ }
+
+ graph->addOperation(operationRGBToHSV_Image);
+ graph->addOperation(operationRGBToHSV_Key);
+ graph->addOperation(operation);
+
+ SetAlphaOperation *operationAlpha = new SetAlphaOperation();
+ addLink(graph, operationRGBToHSV_Image->getInputSocket(0)->getConnection()->getFromSocket(), operationAlpha->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
+ graph->addOperation(operationAlpha);
+ addPreviewOperation(graph, operationAlpha->getOutputSocket(), 9);
+
+ if (outputSocketImage->isConnected()) {
+ outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_ColorMatteNode.h b/source/blender/compositor/nodes/COM_ColorMatteNode.h
new file mode 100644
index 00000000000..af64616d054
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorMatteNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef COM_ColorMatteNODE_H
+#define COM_ColorMatteNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorMatteNode
+ * @ingroup Node
+ */
+class ColorMatteNode : public Node
+{
+public:
+ ColorMatteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_ColorMatteNODE_H
diff --git a/source/blender/compositor/nodes/COM_ColorNode.cpp b/source/blender/compositor/nodes/COM_ColorNode.cpp
new file mode 100644
index 00000000000..f5fcb0177f7
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorNode.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorNode.h"
+#include "DNA_scene_types.h"
+#include "COM_SetColorOperation.h"
+#include "COM_ExecutionSystem.h"
+
+ColorNode::ColorNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void ColorNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ SetColorOperation *operation = new SetColorOperation();
+ bNodeSocket *socket = this->getEditorOutputSocket(0);
+ bNodeSocketValueRGBA *dval = (bNodeSocketValueRGBA*)socket->default_value;
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ operation->setChannels(dval->value);
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorNode.h b/source/blender/compositor/nodes/COM_ColorNode.h
new file mode 100644
index 00000000000..937979dd961
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorNode_h_
+#define _COM_ColorNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorNode
+ * @ingroup Node
+ */
+class ColorNode: public Node {
+public:
+ ColorNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ColorRampNode.cpp b/source/blender/compositor/nodes/COM_ColorRampNode.cpp
new file mode 100644
index 00000000000..c6090120467
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorRampNode.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorRampNode.h"
+#include "COM_ExecutionSystem.h"
+#include "BKE_node.h"
+#include "COM_ColorRampOperation.h"
+#include "COM_SeparateChannelOperation.h"
+#include "DNA_texture_types.h"
+
+ColorRampNode::ColorRampNode(bNode *editorNode): Node(editorNode)
+{}
+
+void ColorRampNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ OutputSocket *outputSocketAlpha = this->getOutputSocket(1);
+ bNode *editorNode = this->getbNode();
+
+ ColorRampOperation *operation = new ColorRampOperation();
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ if (outputSocketAlpha->isConnected()) {
+ SeparateChannelOperation *operation2 = new SeparateChannelOperation();
+ outputSocketAlpha->relinkConnections(operation2->getOutputSocket());
+ addLink(graph, operation->getOutputSocket(), operation2->getInputSocket(0));
+ operation2->setChannel(3);
+ graph->addOperation(operation2);
+ }
+ operation->setColorBand((ColorBand*)editorNode->storage);
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorRampNode.h b/source/blender/compositor/nodes/COM_ColorRampNode.h
new file mode 100644
index 00000000000..53fff2b0d98
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorRampNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef COM_ColorRampNODE_H
+#define COM_ColorRampNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorRampNode
+ * @ingroup Node
+ */
+class ColorRampNode : public Node
+{
+public:
+ ColorRampNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif // COM_ColorRampNODE_H
diff --git a/source/blender/compositor/nodes/COM_ColorSpillNode.cpp b/source/blender/compositor/nodes/COM_ColorSpillNode.cpp
new file mode 100644
index 00000000000..503ca3c8bd3
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorSpillNode.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorSpillNode.h"
+#include "BKE_node.h"
+#include "COM_ColorSpillOperation.h"
+
+ColorSpillNode::ColorSpillNode(bNode *editorNode): Node(editorNode)
+{}
+
+void ColorSpillNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ InputSocket *inputSocketImage = this->getInputSocket(0);
+ InputSocket *inputSocketFac = this->getInputSocket(1);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+
+ bNode *editorsnode = getbNode();
+
+
+ ColorSpillOperation *operation;
+ if (editorsnode->custom2 == 0) {
+ // Simple color spill
+ operation = new ColorSpillOperation();
+ }
+ else {
+ // Average color spill
+ operation = new ColorSpillAverageOperation();
+ }
+ operation->setSettings((NodeColorspill*)editorsnode->storage);
+ operation->setSpillChannel(editorsnode->custom1-1); // Channel for spilling
+
+
+ inputSocketImage->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputSocketFac->relinkConnections(operation->getInputSocket(1), 1, graph);
+
+ outputSocketImage->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorSpillNode.h b/source/blender/compositor/nodes/COM_ColorSpillNode.h
new file mode 100644
index 00000000000..ed0e33b0742
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorSpillNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef COM_ColorSpillNODE_H
+#define COM_ColorSpillNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief ColorSpillNode
+ * @ingroup Node
+ */
+class ColorSpillNode : public Node
+{
+public:
+ ColorSpillNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_ColorSpillNODE_H
diff --git a/source/blender/compositor/nodes/COM_ColorToBWNode.cpp b/source/blender/compositor/nodes/COM_ColorToBWNode.cpp
new file mode 100644
index 00000000000..ed2869d35f2
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorToBWNode.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorToBWNode.h"
+
+#include "COM_ConvertColorToBWOperation.h"
+#include "COM_ExecutionSystem.h"
+
+ColourToBWNode::ColourToBWNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void ColourToBWNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *colourSocket = this->getInputSocket(0);
+ OutputSocket *valueSocket = this->getOutputSocket(0);
+
+ ConvertColorToBWOperation *convertProg = new ConvertColorToBWOperation();
+ colourSocket->relinkConnections(convertProg->getInputSocket(0), 0, graph);
+ valueSocket->relinkConnections(convertProg->getOutputSocket(0));
+ graph->addOperation(convertProg);
+}
diff --git a/source/blender/compositor/nodes/COM_ColorToBWNode.h b/source/blender/compositor/nodes/COM_ColorToBWNode.h
new file mode 100644
index 00000000000..e2badd1b104
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ColorToBWNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColourToBWNode_h
+#define _COM_ColourToBWNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief ColourToBWNode
+ * @ingroup Node
+ */
+class ColourToBWNode : public Node {
+public:
+ ColourToBWNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_CombineHSVANode.cpp b/source/blender/compositor/nodes/COM_CombineHSVANode.cpp
new file mode 100644
index 00000000000..a0f46ad6b6c
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineHSVANode.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CombineHSVANode.h"
+
+#include "COM_CombineChannelsOperation.h"
+
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ConvertHSVToRGBOperation.h"
+
+CombineHSVANode::CombineHSVANode(bNode *editorNode): CombineRGBANode(editorNode)
+{
+}
+
+void CombineHSVANode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ ConvertHSVToRGBOperation *operation = new ConvertHSVToRGBOperation();
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ if (outputSocket->isConnected()) {
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ addLink(graph, outputSocket, operation->getInputSocket(0));
+ }
+ graph->addOperation(operation);
+ CombineRGBANode::convertToOperations(graph, context);
+}
diff --git a/source/blender/compositor/nodes/COM_CombineHSVANode.h b/source/blender/compositor/nodes/COM_CombineHSVANode.h
new file mode 100644
index 00000000000..fabd6f91f7e
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineHSVANode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CombineHSVANode_h
+#define _COM_CombineHSVANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_CombineRGBANode.h"
+/**
+ * @brief CombineHSVANode
+ * @ingroup Node
+ */
+class CombineHSVANode : public CombineRGBANode {
+public:
+ CombineHSVANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_CombineRGBANode.cpp b/source/blender/compositor/nodes/COM_CombineRGBANode.cpp
new file mode 100644
index 00000000000..e6fcc48ac5b
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineRGBANode.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CombineRGBANode.h"
+
+#include "COM_CombineChannelsOperation.h"
+
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "DNA_material_types.h" // the ramp types
+
+
+CombineRGBANode::CombineRGBANode(bNode *editorNode): Node(editorNode)
+{
+}
+
+
+void CombineRGBANode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputRSocket = this->getInputSocket(0);
+ InputSocket *inputGSocket = this->getInputSocket(1);
+ InputSocket *inputBSocket = this->getInputSocket(2);
+ InputSocket *inputASocket = this->getInputSocket(3);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+
+ CombineChannelsOperation *operation = new CombineChannelsOperation();
+ if (inputRSocket->isConnected()) {
+ operation->setResolutionInputSocketIndex(0);
+ }
+ else if (inputGSocket->isConnected()) {
+ operation->setResolutionInputSocketIndex(1);
+ }
+ else if (inputBSocket->isConnected()) {
+ operation->setResolutionInputSocketIndex(2);
+ }
+ else {
+ operation->setResolutionInputSocketIndex(3);
+ }
+ inputRSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputGSocket->relinkConnections(operation->getInputSocket(1), 1, graph);
+ inputBSocket->relinkConnections(operation->getInputSocket(2), 2, graph);
+ inputASocket->relinkConnections(operation->getInputSocket(3), 3, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_CombineRGBANode.h b/source/blender/compositor/nodes/COM_CombineRGBANode.h
new file mode 100644
index 00000000000..182bfece6d3
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineRGBANode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CombineRGBANode_h
+#define _COM_CombineRGBANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief CombineRGBANode
+ * @ingroup Node
+ */
+class CombineRGBANode : public Node {
+public:
+ CombineRGBANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_CombineYCCANode.cpp b/source/blender/compositor/nodes/COM_CombineYCCANode.cpp
new file mode 100644
index 00000000000..ad6203ea85a
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineYCCANode.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_CombineYCCANode.h"
+#include "COM_ConvertYCCToRGBOperation.h"
+
+CombineYCCANode::CombineYCCANode(bNode *editorNode): CombineRGBANode(editorNode)
+{
+}
+
+void CombineYCCANode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ ConvertYCCToRGBOperation *operation = new ConvertYCCToRGBOperation();
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+
+ bNode *node = this->getbNode();
+ operation->setMode(node->custom1);
+
+ if (outputSocket->isConnected()) {
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ addLink(graph, outputSocket, operation->getInputSocket(0));
+ }
+
+ graph->addOperation(operation);
+ CombineRGBANode::convertToOperations(graph, context);
+}
diff --git a/source/blender/compositor/nodes/COM_CombineYCCANode.h b/source/blender/compositor/nodes/COM_CombineYCCANode.h
new file mode 100644
index 00000000000..86e2d50e950
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineYCCANode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_CombineYCCANode_h
+#define _COM_CombineYCCANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_CombineRGBANode.h"
+/**
+ * @brief CombineYCCANode
+ * @ingroup Node
+ */
+class CombineYCCANode : public CombineRGBANode {
+public:
+ CombineYCCANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_CombineYUVANode.cpp b/source/blender/compositor/nodes/COM_CombineYUVANode.cpp
new file mode 100644
index 00000000000..ea92a40f803
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineYUVANode.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_CombineYUVANode.h"
+#include "COM_ConvertYUVToRGBOperation.h"
+
+CombineYUVANode::CombineYUVANode(bNode *editorNode): CombineRGBANode(editorNode)
+{
+}
+
+void CombineYUVANode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ ConvertYUVToRGBOperation *operation = new ConvertYUVToRGBOperation();
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ if (outputSocket->isConnected()) {
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ addLink(graph, outputSocket, operation->getInputSocket(0));
+ }
+ graph->addOperation(operation);
+ CombineRGBANode::convertToOperations(graph, context);
+}
diff --git a/source/blender/compositor/nodes/COM_CombineYUVANode.h b/source/blender/compositor/nodes/COM_CombineYUVANode.h
new file mode 100644
index 00000000000..7d2f9cddf7e
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CombineYUVANode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_CombineYUVANode_h
+#define _COM_CombineYUVANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_CombineRGBANode.h"
+/**
+ * @brief CombineYUVANode
+ * @ingroup Node
+ */
+class CombineYUVANode : public CombineRGBANode {
+public:
+ CombineYUVANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_CompositorNode.cpp b/source/blender/compositor/nodes/COM_CompositorNode.cpp
new file mode 100644
index 00000000000..57821e7fe27
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CompositorNode.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CompositorNode.h"
+#include "COM_CompositorOperation.h"
+#include "COM_ExecutionSystem.h"
+
+CompositorNode::CompositorNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void CompositorNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *imageSocket = this->getInputSocket(0);
+ InputSocket *alphaSocket = this->getInputSocket(1);
+ if (imageSocket->isConnected()) {
+ CompositorOperation *colourAlphaProg = new CompositorOperation();
+ colourAlphaProg->setScene(context->getScene());
+ colourAlphaProg->setbNodeTree(context->getbNodeTree());
+ imageSocket->relinkConnections(colourAlphaProg->getInputSocket(0));
+ alphaSocket->relinkConnections(colourAlphaProg->getInputSocket(1));
+ graph->addOperation(colourAlphaProg);
+ addPreviewOperation(graph, colourAlphaProg->getInputSocket(0), 5);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_CompositorNode.h b/source/blender/compositor/nodes/COM_CompositorNode.h
new file mode 100644
index 00000000000..e77d1d2f225
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CompositorNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CompositorNode_h
+#define _COM_CompositorNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief CompositorNode
+ * @ingroup Node
+ */
+class CompositorNode : public Node {
+public:
+ CompositorNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_ConvertAlphaNode.cpp b/source/blender/compositor/nodes/COM_ConvertAlphaNode.cpp
new file mode 100644
index 00000000000..0b4326a17ca
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ConvertAlphaNode.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertAlphaNode.h"
+#include "COM_ConvertPremulToKeyOperation.h"
+#include "COM_ConvertKeyToPremulOperation.h"
+#include "COM_ExecutionSystem.h"
+
+void ConvertAlphaNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ NodeOperation *operation = NULL;
+ bNode *node = this->getbNode();
+
+ /* value hardcoded in rna_nodetree.c */
+ if (node->custom1 == 1) {
+ operation = new ConvertPremulToKeyOperation();
+ }
+ else {
+ operation = new ConvertKeyToPremulOperation();
+ }
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ConvertAlphaNode.h b/source/blender/compositor/nodes/COM_ConvertAlphaNode.h
new file mode 100644
index 00000000000..2e3fe743f4e
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ConvertAlphaNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertAlphaNode_h
+#define _COM_ConvertAlphaNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief ConvertAlphaNode
+ * @ingroup Node
+ */
+class ConvertAlphaNode: public Node {
+public:
+ ConvertAlphaNode(bNode *editorNode) :Node(editorNode) {}
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_CropNode.cpp b/source/blender/compositor/nodes/COM_CropNode.cpp
new file mode 100644
index 00000000000..c58fcc874cb
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CropNode.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CropNode.h"
+#include "COM_CropOperation.h"
+
+
+CropNode::CropNode(bNode *editorNode) : Node(editorNode)
+{
+}
+
+void CropNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ bNode *node = getbNode();
+ NodeTwoXYs *cropSettings = (NodeTwoXYs*)node->storage;
+ bool relative = (bool)node->custom2;
+ bool cropImage = (bool)node->custom1;
+ CropBaseOperation *operation;
+ if (cropImage) {
+ operation = new CropImageOperation();
+ }
+ else {
+ operation = new CropOperation();
+ }
+ operation->setCropSettings(cropSettings);
+ operation->setRelative(relative);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket()->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_CropNode.h b/source/blender/compositor/nodes/COM_CropNode.h
new file mode 100644
index 00000000000..0bdfffc8fec
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_CropNode.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CropNode_h_
+#define _COM_CropNode_h_
+
+#include "COM_Node.h"
+
+class CropNode: public Node {
+public:
+ CropNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
+
+
diff --git a/source/blender/compositor/nodes/COM_DefocusNode.cpp b/source/blender/compositor/nodes/COM_DefocusNode.cpp
new file mode 100644
index 00000000000..e4e19fdbe27
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DefocusNode.cpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DefocusNode.h"
+#include "DNA_scene_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_object_types.h"
+#include "DNA_node_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_ConvertDepthToRadiusOperation.h"
+#include "COM_VariableSizeBokehBlurOperation.h"
+#include "COM_BokehImageOperation.h"
+#include "COM_MathBaseOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_GammaCorrectOperation.h"
+
+DefocusNode::DefocusNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void DefocusNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ bNode *node = this->getbNode();
+ Scene *scene = (Scene*)node->id;
+ Object *camob = (scene)? scene->camera: NULL;
+ NodeDefocus *data = (NodeDefocus*)node->storage;
+
+ NodeOperation *radiusOperation;
+ if (data->no_zbuf) {
+ MathMultiplyOperation *multiply = new MathMultiplyOperation();
+ SetValueOperation *multiplier = new SetValueOperation();
+ multiplier->setValue(data->scale);
+ SetValueOperation *maxRadius = new SetValueOperation();
+ maxRadius->setValue(data->maxblur);
+ MathMinimumOperation *minimize = new MathMinimumOperation();
+ this->getInputSocket(1)->relinkConnections(multiply->getInputSocket(0), 1, graph);
+ addLink(graph, multiplier->getOutputSocket(), multiply->getInputSocket(1));
+ addLink(graph, maxRadius->getOutputSocket(), minimize->getInputSocket(1));
+ addLink(graph, multiply->getOutputSocket(), minimize->getInputSocket(0));
+
+ graph->addOperation(multiply);
+ graph->addOperation(multiplier);
+ graph->addOperation(maxRadius);
+ graph->addOperation(minimize);
+ radiusOperation = minimize;
+ }
+ else {
+ ConvertDepthToRadiusOperation *converter = new ConvertDepthToRadiusOperation();
+ converter->setCameraObject(camob);
+ converter->setfStop(data->fstop);
+ converter->setMaxRadius(data->maxblur);
+ this->getInputSocket(1)->relinkConnections(converter->getInputSocket(0), 1, graph);
+ graph->addOperation(converter);
+ radiusOperation = converter;
+ }
+
+ BokehImageOperation *bokeh = new BokehImageOperation();
+ NodeBokehImage * bokehdata = new NodeBokehImage();
+ bokehdata->angle = data->rotation;
+ bokehdata->rounding = 0.0f;
+ bokehdata->flaps = data->bktype;
+ if (data->bktype<3) {
+ bokehdata->flaps = 5;
+ bokehdata->rounding = 1.0f;
+ }
+ bokehdata->catadioptric = 0.0f;
+ bokehdata->lensshift = 0.0f;
+
+ bokeh->setData(bokehdata);
+ bokeh->deleteDataOnFinish();
+ graph->addOperation(bokeh);
+
+ VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
+ operation->setQuality(context->getQuality());
+ operation->setMaxBlur(data->maxblur);
+ operation->setThreshold(data->bthresh);
+ addLink(graph, bokeh->getOutputSocket(), operation->getInputSocket(1));
+ addLink(graph, radiusOperation->getOutputSocket(), operation->getInputSocket(2));
+ if (data->gamco) {
+ GammaCorrectOperation * correct = new GammaCorrectOperation();
+ GammaUncorrectOperation * inverse = new GammaUncorrectOperation();
+ this->getInputSocket(0)->relinkConnections(correct->getInputSocket(0), 0, graph);
+ addLink(graph, correct->getOutputSocket(), operation->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), inverse->getInputSocket(0));
+ this->getOutputSocket()->relinkConnections(inverse->getOutputSocket());
+ graph->addOperation(correct);
+ graph->addOperation(inverse);
+ }
+ else {
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket()->relinkConnections(operation->getOutputSocket());
+ }
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_DefocusNode.h b/source/blender/compositor/nodes/COM_DefocusNode.h
new file mode 100644
index 00000000000..d52ee3da77b
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DefocusNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DefocusNode_h_
+#define _COM_DefocusNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief DefocusNode
+ * @ingroup Node
+ */
+
+class DefocusNode: public Node {
+public:
+ DefocusNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp b/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp
new file mode 100644
index 00000000000..c26fb4e5c5d
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DifferenceMatteNode.h"
+#include "BKE_node.h"
+#include "COM_DifferenceMatteOperation.h"
+#include "COM_SetAlphaOperation.h"
+
+DifferenceMatteNode::DifferenceMatteNode(bNode *editorNode): Node(editorNode)
+{}
+
+void DifferenceMatteNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputSocket2 = this->getInputSocket(1);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+ OutputSocket *outputSocketMatte = this->getOutputSocket(1);
+ bNode *editorNode = this->getbNode();
+
+ DifferenceMatteOperation * operationSet = new DifferenceMatteOperation();
+ operationSet->setSettings((NodeChroma*)editorNode->storage);
+ inputSocket->relinkConnections(operationSet->getInputSocket(0), 0, graph);
+ inputSocket2->relinkConnections(operationSet->getInputSocket(1), 1, graph);
+
+ outputSocketMatte->relinkConnections(operationSet->getOutputSocket(0));
+ graph->addOperation(operationSet);
+
+ SetAlphaOperation * operation = new SetAlphaOperation();
+ addLink(graph, operationSet->getInputSocket(0)->getConnection()->getFromSocket(), operation->getInputSocket(0));
+ addLink(graph, operationSet->getOutputSocket(), operation->getInputSocket(1));
+ outputSocketImage->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+ addPreviewOperation(graph, operation->getOutputSocket(), 5);
+}
diff --git a/source/blender/compositor/nodes/COM_DifferenceMatteNode.h b/source/blender/compositor/nodes/COM_DifferenceMatteNode.h
new file mode 100644
index 00000000000..3b270ebc3b7
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DifferenceMatteNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef COM_DifferenceMatteNODE_H
+#define COM_DifferenceMatteNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief DifferenceMatteNode
+ * @ingroup Node
+ */
+class DifferenceMatteNode : public Node
+{
+public:
+ DifferenceMatteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif // COM_DifferenceMatteNODE_H
diff --git a/source/blender/compositor/nodes/COM_DilateErodeNode.cpp b/source/blender/compositor/nodes/COM_DilateErodeNode.cpp
new file mode 100644
index 00000000000..cc96f672ebd
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DilateErodeNode.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DilateErodeNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_DilateErodeOperation.h"
+#include "COM_AntiAliasOperation.h"
+#include "BLI_math.h"
+
+DilateErodeNode::DilateErodeNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void DilateErodeNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+
+ bNode *editorNode = this->getbNode();
+ if (editorNode->custom1 == CMP_NODE_DILATEERODE_DISTANCE) {
+ DilateErodeDistanceOperation *operation = new DilateErodeDistanceOperation();
+ operation->setDistance(editorNode->custom2);
+ operation->setInset(editorNode->custom3);
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+
+ if (editorNode->custom3 < 2.0f) {
+ AntiAliasOperation * antiAlias = new AntiAliasOperation();
+ addLink(graph, operation->getOutputSocket(), antiAlias->getInputSocket(0));
+ this->getOutputSocket(0)->relinkConnections(antiAlias->getOutputSocket(0));
+ graph->addOperation(antiAlias);
+ }
+ else {
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ }
+ graph->addOperation(operation);
+ }
+ else {
+ if (editorNode->custom2 > 0) {
+ DilateStepOperation * operation = new DilateStepOperation();
+ operation->setIterations(editorNode->custom2);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ else {
+ ErodeStepOperation * operation = new ErodeStepOperation();
+ operation->setIterations(-editorNode->custom2);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_DilateErodeNode.h b/source/blender/compositor/nodes/COM_DilateErodeNode.h
new file mode 100644
index 00000000000..496bd0203dd
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DilateErodeNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DilateErodeNode_h_
+#define _COM_DilateErodeNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief DilateErodeNode
+ * @ingroup Node
+ */
+class DilateErodeNode: public Node {
+public:
+ DilateErodeNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp b/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp
new file mode 100644
index 00000000000..d63fbbdb092
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DirectionalBlurNode.h"
+#include "DNA_scene_types.h"
+#include "DNA_node_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_DirectionalBlurOperation.h"
+
+DirectionalBlurNode::DirectionalBlurNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void DirectionalBlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ NodeDBlurData *data = (NodeDBlurData*)this->getbNode()->storage;
+ DirectionalBlurOperation *operation = new DirectionalBlurOperation();
+ operation->setQuality(context->getQuality());
+ operation->setData(data);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_DirectionalBlurNode.h b/source/blender/compositor/nodes/COM_DirectionalBlurNode.h
new file mode 100644
index 00000000000..1cf36fdeae7
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DirectionalBlurNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DirectionalBlurNode_h_
+#define _COM_DirectionalBlurNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief DirectionalBlurNode
+ * @ingroup Node
+ */
+class DirectionalBlurNode: public Node {
+public:
+ DirectionalBlurNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_DisplaceNode.cpp b/source/blender/compositor/nodes/COM_DisplaceNode.cpp
new file mode 100644
index 00000000000..9604db378bc
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DisplaceNode.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_DisplaceNode.h"
+#include "COM_DisplaceOperation.h"
+#include "COM_DisplaceSimpleOperation.h"
+#include "COM_ExecutionSystem.h"
+
+DisplaceNode::DisplaceNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void DisplaceNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ NodeOperation *operation;
+ if (context->getQuality() == COM_QUALITY_LOW)
+ operation = new DisplaceSimpleOperation();
+ else
+ operation = new DisplaceOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(2), 2, graph);
+ this->getInputSocket(3)->relinkConnections(operation->getInputSocket(3), 3, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_DisplaceNode.h b/source/blender/compositor/nodes/COM_DisplaceNode.h
new file mode 100644
index 00000000000..3451f05dd1f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DisplaceNode.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_DisplaceNode_h
+#define _COM_DisplaceNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief DisplaceNode
+ * @ingroup Node
+ */
+class DisplaceNode : public Node {
+public:
+ DisplaceNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp b/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp
new file mode 100644
index 00000000000..d7b4e481ec2
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_DistanceMatteNode.h"
+#include "BKE_node.h"
+#include "COM_DistanceMatteOperation.h"
+#include "COM_SetAlphaOperation.h"
+
+DistanceMatteNode::DistanceMatteNode(bNode *editorNode): Node(editorNode)
+{}
+
+void DistanceMatteNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ InputSocket *inputSocketImage = this->getInputSocket(0);
+ InputSocket *inputSocketKey = this->getInputSocket(1);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+ OutputSocket *outputSocketMatte = this->getOutputSocket(1);
+
+ DistanceMatteOperation *operation = new DistanceMatteOperation();
+ bNode *editorsnode = getbNode();
+ operation->setSettings((NodeChroma*)editorsnode->storage);
+
+ inputSocketImage->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputSocketKey->relinkConnections(operation->getInputSocket(1), 1, graph);
+
+ if (outputSocketMatte->isConnected()) {
+ outputSocketMatte->relinkConnections(operation->getOutputSocket());
+ }
+
+ graph->addOperation(operation);
+
+ SetAlphaOperation *operationAlpha = new SetAlphaOperation();
+ addLink(graph, operation->getInputSocket(0)->getConnection()->getFromSocket(), operationAlpha->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
+
+ graph->addOperation(operationAlpha);
+ addPreviewOperation(graph, operationAlpha->getOutputSocket(), 9);
+
+ if (outputSocketImage->isConnected()) {
+ outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_DistanceMatteNode.h b/source/blender/compositor/nodes/COM_DistanceMatteNode.h
new file mode 100644
index 00000000000..740eb767a71
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DistanceMatteNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef COM_DistanceMatteNODE_H
+#define COM_DistanceMatteNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief DistanceMatteNode
+ * @ingroup Node
+ */
+class DistanceMatteNode : public Node
+{
+public:
+ DistanceMatteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_DistanceMatteNODE_H
diff --git a/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp b/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp
new file mode 100644
index 00000000000..ab9e101dad8
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DoubleEdgeMaskNode.h"
+#include "COM_DoubleEdgeMaskOperation.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+
+DoubleEdgeMaskNode::DoubleEdgeMaskNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void DoubleEdgeMaskNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ DoubleEdgeMaskOperation *operation;
+ bNode *bnode = this->getbNode();
+
+ operation = new DoubleEdgeMaskOperation();
+ operation->setAdjecentOnly(bnode->custom1);
+ operation->setKeepInside(bnode->custom2);
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, system);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, system);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ system->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.h b/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.h
new file mode 100644
index 00000000000..2c52e988946
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DoubleEdgeMaskNode_h_
+#define _COM_DoubleEdgeMaskNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief DoubleEdgeMaskNode
+ * @ingroup Node
+ */
+class DoubleEdgeMaskNode: public Node {
+public:
+ DoubleEdgeMaskNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp b/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp
new file mode 100644
index 00000000000..f5003c4be94
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_EllipseMaskNode.h"
+#include "DNA_scene_types.h"
+#include "COM_EllipseMaskOperation.h"
+#include "COM_ExecutionSystem.h"
+
+EllipseMaskNode::EllipseMaskNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void EllipseMaskNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ EllipseMaskOperation *operation;
+ operation = new EllipseMaskOperation();
+ operation->setData((NodeEllipseMask*)this->getbNode()->storage);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ operation->setMaskType(this->getbNode()->custom1);
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_EllipseMaskNode.h b/source/blender/compositor/nodes/COM_EllipseMaskNode.h
new file mode 100644
index 00000000000..be6956e30b5
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_EllipseMaskNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_EllipseMaskNode_h_
+#define _COM_EllipseMaskNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief EllipseMaskNode
+ * @ingroup Node
+ */
+class EllipseMaskNode: public Node {
+public:
+ EllipseMaskNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_FilterNode.cpp b/source/blender/compositor/nodes/COM_FilterNode.cpp
new file mode 100644
index 00000000000..bdba69dc47d
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_FilterNode.cpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_FilterNode.h"
+#include "COM_ConvolutionFilterOperation.h"
+#include "COM_ConvolutionEdgeFilterOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "BKE_node.h"
+#include "COM_MixBlendOperation.h"
+
+FilterNode::FilterNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void FilterNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputImageSocket = this->getInputSocket(1);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ ConvolutionFilterOperation *operation = NULL;
+
+ switch (this->getbNode()->custom1) {
+ case CMP_FILT_SOFT:
+ operation = new ConvolutionFilterOperation();
+ operation->set3x3Filter(1/16.0f, 2/16.0f, 1/16.0f, 2/16.0f, 4/16.0f, 2/16.0f, 1/16.0f, 2/16.0f, 1/16.0f);
+ break;
+ case CMP_FILT_SHARP:
+ operation = new ConvolutionFilterOperation();
+ operation->set3x3Filter(-1,-1,-1,-1,9,-1,-1,-1,-1);
+ break;
+ case CMP_FILT_LAPLACE:
+ operation = new ConvolutionFilterOperation();
+ operation->set3x3Filter(-1/8.0f, -1/8.0f, -1/8.0f, -1/8.0f, 1.0f, -1/8.0f, -1/8.0f, -1/8.0f, -1/8.0f);
+ break;
+ case CMP_FILT_SOBEL:
+ operation = new ConvolutionEdgeFilterOperation();
+ operation->set3x3Filter(1,2,1,0,0,0,-1,-2,-1);
+ break;
+ case CMP_FILT_PREWITT:
+ operation = new ConvolutionEdgeFilterOperation();
+ operation->set3x3Filter(1,1,1,0,0,0,-1,-1,-1);
+ break;
+ case CMP_FILT_KIRSCH:
+ operation = new ConvolutionEdgeFilterOperation();
+ operation->set3x3Filter(5,5,5,-3,-3,-3,-2,-2,-2);
+ break;
+ case CMP_FILT_SHADOW:
+ operation = new ConvolutionFilterOperation();
+ operation->set3x3Filter(1,2,1,0,1,0,-1,-2,-1);
+ break;
+ default:
+ operation = new ConvolutionFilterOperation();
+ operation->set3x3Filter(0,0,0,0,1,0,0,0,0);
+ break;
+ }
+
+ inputImageSocket->relinkConnections(operation->getInputSocket(0), 1, graph);
+ inputSocket->relinkConnections(operation->getInputSocket(1), 0, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ addPreviewOperation(graph, operation->getOutputSocket(0), 5);
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_FilterNode.h b/source/blender/compositor/nodes/COM_FilterNode.h
new file mode 100644
index 00000000000..080682dcefe
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_FilterNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef COM_FILTERNODE_H
+#define COM_FILTERNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief FilterNode
+ * @ingroup Node
+ */
+class FilterNode : public Node
+{
+public:
+ FilterNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif // COM_FILTERNODE_H
diff --git a/source/blender/compositor/nodes/COM_FlipNode.cpp b/source/blender/compositor/nodes/COM_FlipNode.cpp
new file mode 100644
index 00000000000..0830c757833
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_FlipNode.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_FlipNode.h"
+
+#include "COM_FlipOperation.h"
+#include "COM_ExecutionSystem.h"
+
+FlipNode::FlipNode(bNode *editorNode) : Node(editorNode)
+{
+}
+
+void FlipNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ FlipOperation *operation = new FlipOperation();
+ switch (this->getbNode()->custom1) {
+ case 0: /// @TODO: I didn't find any constants in the old implementation, should I introduce them.
+ operation->setFlipX(true);
+ operation->setFlipY(false);
+ break;
+ case 1:
+ operation->setFlipX(false);
+ operation->setFlipY(true);
+ break;
+ case 2:
+ operation->setFlipX(true);
+ operation->setFlipY(true);
+ break;
+ }
+
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_FlipNode.h b/source/blender/compositor/nodes/COM_FlipNode.h
new file mode 100644
index 00000000000..53bcc504f80
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_FlipNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_FlipNode_h_
+#define _COM_FlipNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief FlipNode
+ * @ingroup Node
+ */
+class FlipNode: public Node {
+public:
+ FlipNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_GammaNode.cpp b/source/blender/compositor/nodes/COM_GammaNode.cpp
new file mode 100644
index 00000000000..58b05607618
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_GammaNode.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GammaNode.h"
+#include "DNA_scene_types.h"
+#include "COM_GammaOperation.h"
+#include "COM_ExecutionSystem.h"
+
+GammaNode::GammaNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void GammaNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ GammaOperation *operation = new GammaOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_GammaNode.h b/source/blender/compositor/nodes/COM_GammaNode.h
new file mode 100644
index 00000000000..121d99cbd57
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_GammaNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GammaNode_h_
+#define _COM_GammaNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief GammaNode
+ * @ingroup Node
+ */
+class GammaNode: public Node {
+public:
+ GammaNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_GlareNode.cpp b/source/blender/compositor/nodes/COM_GlareNode.cpp
new file mode 100644
index 00000000000..9382e726d76
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_GlareNode.cpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GlareNode.h"
+#include "DNA_node_types.h"
+#include "COM_FogGlowImageOperation.h"
+#include "COM_GlareThresholdOperation.h"
+#include "COM_GlareSimpleStarOperation.h"
+#include "COM_GlareStreaksOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_MixBlendOperation.h"
+#include "COM_FastGaussianBlurOperation.h"
+
+GlareNode::GlareNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void GlareNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)\
+{
+ bNode *node = this->getbNode();
+ NodeGlare *glare = (NodeGlare*)node->storage;
+
+ switch (glare->type) {
+
+ default:
+ case 2: // streaks
+ {
+ GlareThresholdOperation *thresholdOperation = new GlareThresholdOperation();
+ GlareStreaksOperation * glareoperation = new GlareStreaksOperation();
+ SetValueOperation * mixvalueoperation = new SetValueOperation();
+ MixBlendOperation * mixoperation = new MixBlendOperation();
+
+ this->getInputSocket(0)->relinkConnections(thresholdOperation->getInputSocket(0), 0, system);
+ addLink(system, thresholdOperation->getOutputSocket(), glareoperation->getInputSocket(0));
+ addLink(system, mixvalueoperation->getOutputSocket(), mixoperation->getInputSocket(0));
+ addLink(system, glareoperation->getOutputSocket(), mixoperation->getInputSocket(2));
+ addLink(system, thresholdOperation->getInputSocket(0)->getConnection()->getFromSocket(), mixoperation->getInputSocket(1));
+ this->getOutputSocket()->relinkConnections(mixoperation->getOutputSocket());
+
+ thresholdOperation->setThreshold(glare->threshold);
+ glareoperation->setGlareSettings(glare);
+ mixvalueoperation->setValue(0.5f+glare->mix*0.5f);
+ mixoperation->setResolutionInputSocketIndex(1);
+
+ system->addOperation(glareoperation);
+ system->addOperation(thresholdOperation);
+ system->addOperation(mixvalueoperation);
+ system->addOperation(mixoperation);
+ }
+ break;
+ case 1: // fog glow
+ {
+ GlareThresholdOperation *thresholdOperation = new GlareThresholdOperation();
+ FastGaussianBlurOperation* bluroperation = new FastGaussianBlurOperation();
+ SetValueOperation * valueoperation = new SetValueOperation();
+ SetValueOperation * mixvalueoperation = new SetValueOperation();
+ MixBlendOperation * mixoperation = new MixBlendOperation();
+ mixoperation->setResolutionInputSocketIndex(1);
+ this->getInputSocket(0)->relinkConnections(thresholdOperation->getInputSocket(0), 0, system);
+ addLink(system, thresholdOperation->getOutputSocket(), bluroperation->getInputSocket(0));
+ addLink(system, valueoperation->getOutputSocket(), bluroperation->getInputSocket(1));
+ addLink(system, mixvalueoperation->getOutputSocket(), mixoperation->getInputSocket(0));
+ addLink(system, bluroperation->getOutputSocket(), mixoperation->getInputSocket(2));
+ addLink(system, thresholdOperation->getInputSocket(0)->getConnection()->getFromSocket(), mixoperation->getInputSocket(1));
+
+ thresholdOperation->setThreshold(glare->threshold);
+ NodeBlurData * data = new NodeBlurData();
+ data->relative = 0;
+ data->sizex = glare->size;
+ data->sizey = glare->size;
+ bluroperation->setData(data);
+ bluroperation->deleteDataWhenFinished();
+ bluroperation->setQuality(context->getQuality());
+ valueoperation->setValue(1.0f);
+ mixvalueoperation->setValue(0.5f+glare->mix*0.5f);
+ this->getOutputSocket()->relinkConnections(mixoperation->getOutputSocket());
+
+ system->addOperation(bluroperation);
+ system->addOperation(thresholdOperation);
+ system->addOperation(mixvalueoperation);
+ system->addOperation(valueoperation);
+ system->addOperation(mixoperation);
+ }
+ break;
+
+ case 0: // simple star
+ {
+ GlareThresholdOperation *thresholdOperation = new GlareThresholdOperation();
+ GlareSimpleStarOperation * glareoperation = new GlareSimpleStarOperation();
+ SetValueOperation * mixvalueoperation = new SetValueOperation();
+ MixBlendOperation * mixoperation = new MixBlendOperation();
+
+ this->getInputSocket(0)->relinkConnections(thresholdOperation->getInputSocket(0), 0, system);
+ addLink(system, thresholdOperation->getOutputSocket(), glareoperation->getInputSocket(0));
+ addLink(system, mixvalueoperation->getOutputSocket(), mixoperation->getInputSocket(0));
+ addLink(system, glareoperation->getOutputSocket(), mixoperation->getInputSocket(2));
+ addLink(system, thresholdOperation->getInputSocket(0)->getConnection()->getFromSocket(), mixoperation->getInputSocket(1));
+ this->getOutputSocket()->relinkConnections(mixoperation->getOutputSocket());
+
+ thresholdOperation->setThreshold(glare->threshold);
+ glareoperation->setGlareSettings(glare);
+ mixvalueoperation->setValue(0.5f+glare->mix*0.5f);
+ mixoperation->setResolutionInputSocketIndex(1);
+
+
+ system->addOperation(glareoperation);
+ system->addOperation(thresholdOperation);
+ system->addOperation(mixvalueoperation);
+ system->addOperation(mixoperation);
+ }
+ break;
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_GlareNode.h b/source/blender/compositor/nodes/COM_GlareNode.h
new file mode 100644
index 00000000000..97a75445db7
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_GlareNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GlareNode_h_
+#define _COM_GlareNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief GlareNode
+ * @ingroup Node
+ */
+class GlareNode: public Node {
+public:
+ GlareNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_GroupNode.cpp b/source/blender/compositor/nodes/COM_GroupNode.cpp
new file mode 100644
index 00000000000..076d4f1501a
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_GroupNode.cpp
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GroupNode.h"
+#include "COM_SocketProxyNode.h"
+#include "COM_ExecutionSystemHelper.h"
+
+GroupNode::GroupNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void GroupNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+}
+
+void GroupNode::ungroup(ExecutionSystem &system)
+{
+ vector<InputSocket*> &inputsockets = this->getInputSockets();
+ vector<OutputSocket*> &outputsockets = this->getOutputSockets();
+ unsigned int index;
+
+ /* get the node list size _before_ adding proxy nodes, so they are available for linking */
+ int nodes_start = system.getNodes().size();
+
+ for (index = 0 ; index < inputsockets.size();index ++) {
+ InputSocket * inputSocket = inputsockets[index];
+ bNodeSocket *editorInput = inputSocket->getbNodeSocket();
+ if (editorInput->groupsock) {
+ if (inputSocket->isConnected()) {
+ SocketProxyNode * proxy = new SocketProxyNode(this->getbNode(), editorInput, editorInput->groupsock);
+ inputSocket->relinkConnections(proxy->getInputSocket(0), index, &system);
+ ExecutionSystemHelper::addNode(system.getNodes(), proxy);
+ }
+ else {
+ OutputSocketProxyNode * proxy = new OutputSocketProxyNode(this->getbNode(), editorInput, editorInput->groupsock);
+ inputSocket->relinkConnections(proxy->getInputSocket(0), index, &system);
+ ExecutionSystemHelper::addNode(system.getNodes(), proxy);
+ }
+ }
+ }
+
+ for (index = 0 ; index < outputsockets.size();index ++) {
+ OutputSocket * outputSocket = outputsockets[index];
+ bNodeSocket *editorOutput = outputSocket->getbNodeSocket();
+ if (outputSocket->isConnected() && editorOutput->groupsock) {
+ SocketProxyNode * proxy = new SocketProxyNode(this->getbNode(), editorOutput->groupsock, editorOutput);
+ outputSocket->relinkConnections(proxy->getOutputSocket(0));
+ ExecutionSystemHelper::addNode(system.getNodes(), proxy);
+ }
+ }
+
+ bNodeTree *subtree = (bNodeTree*)this->getbNode()->id;
+ ExecutionSystemHelper::addbNodeTree(system, nodes_start, subtree);
+}
diff --git a/source/blender/compositor/nodes/COM_GroupNode.h b/source/blender/compositor/nodes/COM_GroupNode.h
new file mode 100644
index 00000000000..e35c9cbce33
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_GroupNode.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GroupNode_h_
+#define _COM_GroupNode_h_
+
+#include "COM_Node.h"
+#include "COM_ExecutionSystem.h"
+
+/**
+ * @brief Represents a group node
+ * @ingroup Node
+ */
+class GroupNode: public Node {
+public:
+ GroupNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+
+ /**
+ * @brief check if this node a group node.
+ * @returns true
+ */
+ bool isGroupNode() const { return true; }
+
+ /**
+ * @brief ungroup this group node.
+ * during ungroup the subtree (internal nodes and links) of the group node
+ * are added to the ExecutionSystem.
+ *
+ * Between the main tree and the subtree proxy nodes will be added
+ * to translate between InputSocket and OutputSocket
+ *
+ * @param system the ExecutionSystem where to add the subtree
+ */
+ void ungroup(ExecutionSystem &system);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.cpp b/source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.cpp
new file mode 100644
index 00000000000..ae96a8c9fb8
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_HueSaturationValueCorrectNode.h"
+
+#include "COM_ConvertColourToValueProg.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_ConvertRGBToHSVOperation.h"
+#include "COM_ConvertHSVToRGBOperation.h"
+#include "COM_MixBlendOperation.h"
+#include "COM_SetColorOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ChangeHSVOperation.h"
+#include "DNA_node_types.h"
+#include "COM_HueSaturationValueCorrectOperation.h"
+
+HueSaturationValueCorrectNode::HueSaturationValueCorrectNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void HueSaturationValueCorrectNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *valueSocket = this->getInputSocket(0);
+ InputSocket *colourSocket = this->getInputSocket(1);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ bNode *editorsnode = getbNode();
+ CurveMapping *storage = (CurveMapping*)editorsnode->storage;
+
+ if (colourSocket->isConnected() && outputSocket->isConnected()) {
+ ConvertRGBToHSVOperation * rgbToHSV = new ConvertRGBToHSVOperation();
+ ConvertHSVToRGBOperation * hsvToRGB = new ConvertHSVToRGBOperation();
+ HueSaturationValueCorrectOperation *changeHSV = new HueSaturationValueCorrectOperation();
+ MixBlendOperation * blend = new MixBlendOperation();
+
+ colourSocket->relinkConnections(rgbToHSV->getInputSocket(0), 1, graph);
+ addLink(graph, rgbToHSV->getOutputSocket(), changeHSV->getInputSocket(0));
+ addLink(graph, changeHSV->getOutputSocket(), hsvToRGB->getInputSocket(0));
+ addLink(graph, hsvToRGB->getOutputSocket(), blend->getInputSocket(2));
+ addLink(graph, rgbToHSV->getInputSocket(0)->getConnection()->getFromSocket(), blend->getInputSocket(1));
+ valueSocket->relinkConnections(blend->getInputSocket(0), 0, graph);
+ outputSocket->relinkConnections(blend->getOutputSocket());
+
+ changeHSV->setCurveMapping(storage);
+
+ blend->setResolutionInputSocketIndex(1);
+
+ graph->addOperation(rgbToHSV);
+ graph->addOperation(hsvToRGB);
+ graph->addOperation(changeHSV);
+ graph->addOperation(blend);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.h b/source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.h
new file mode 100644
index 00000000000..d69990f712c
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_HueSaturationValueCorrectNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_HueSaturationValueCorrectNode_h
+#define _COM_HueSaturationValueCorrectNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief HueSaturationValueCorrectNode
+ * @ingroup Node
+ */
+class HueSaturationValueCorrectNode : public Node {
+public:
+ HueSaturationValueCorrectNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_HueSaturationValueNode.cpp b/source/blender/compositor/nodes/COM_HueSaturationValueNode.cpp
new file mode 100644
index 00000000000..32c7d4719a4
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_HueSaturationValueNode.cpp
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_HueSaturationValueNode.h"
+
+#include "COM_ConvertColourToValueProg.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_ConvertRGBToHSVOperation.h"
+#include "COM_ConvertHSVToRGBOperation.h"
+#include "COM_MixBlendOperation.h"
+#include "COM_SetColorOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ChangeHSVOperation.h"
+#include "DNA_node_types.h"
+
+HueSaturationValueNode::HueSaturationValueNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void HueSaturationValueNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *valueSocket = this->getInputSocket(0);
+ InputSocket *colourSocket = this->getInputSocket(1);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ bNode *editorsnode = getbNode();
+ NodeHueSat *storage = (NodeHueSat*)editorsnode->storage;
+
+ ConvertRGBToHSVOperation * rgbToHSV = new ConvertRGBToHSVOperation();
+ ConvertHSVToRGBOperation * hsvToRGB = new ConvertHSVToRGBOperation();
+ ChangeHSVOperation *changeHSV = new ChangeHSVOperation();
+ MixBlendOperation * blend = new MixBlendOperation();
+
+ colourSocket->relinkConnections(rgbToHSV->getInputSocket(0), 0, graph);
+ addLink(graph, rgbToHSV->getOutputSocket(), changeHSV->getInputSocket(0));
+ addLink(graph, changeHSV->getOutputSocket(), hsvToRGB->getInputSocket(0));
+ addLink(graph, hsvToRGB->getOutputSocket(), blend->getInputSocket(2));
+ addLink(graph, rgbToHSV->getInputSocket(0)->getConnection()->getFromSocket(), blend->getInputSocket(1));
+ valueSocket->relinkConnections(blend->getInputSocket(0), 0, graph);
+ outputSocket->relinkConnections(blend->getOutputSocket());
+
+ changeHSV->setHue(storage->hue);
+ changeHSV->setSaturation(storage->sat);
+ changeHSV->setValue(storage->val);
+
+ blend->setResolutionInputSocketIndex(1);
+
+ graph->addOperation(rgbToHSV);
+ graph->addOperation(hsvToRGB);
+ graph->addOperation(changeHSV);
+ graph->addOperation(blend);
+}
diff --git a/source/blender/compositor/nodes/COM_HueSaturationValueNode.h b/source/blender/compositor/nodes/COM_HueSaturationValueNode.h
new file mode 100644
index 00000000000..4fa1a4f547c
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_HueSaturationValueNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_HueSaturationValueNode_h
+#define _COM_HueSaturationValueNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief HueSaturationValueNode
+ * @ingroup Node
+ */
+class HueSaturationValueNode : public Node {
+public:
+ HueSaturationValueNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_IDMaskNode.cpp b/source/blender/compositor/nodes/COM_IDMaskNode.cpp
new file mode 100644
index 00000000000..82d3ae8ca29
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_IDMaskNode.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_IDMaskNode.h"
+#include "DNA_scene_types.h"
+#include "COM_IDMaskOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_AntiAliasOperation.h"
+
+IDMaskNode::IDMaskNode(bNode *editorNode): Node(editorNode)
+{
+}
+void IDMaskNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ bNode *bnode = this->getbNode();
+ IDMaskOperation *operation;
+ operation = new IDMaskOperation();
+ operation->setObjectIndex(bnode->custom1);
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ if (bnode->custom2==0 || context->getScene()->r.scemode & R_FULL_SAMPLE) {
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ }
+ else {
+ AntiAliasOperation * antiAliasOperation = new AntiAliasOperation();
+ addLink(graph, operation->getOutputSocket(), antiAliasOperation->getInputSocket(0));
+ this->getOutputSocket(0)->relinkConnections(antiAliasOperation->getOutputSocket(0));
+ graph->addOperation(antiAliasOperation);
+ }
+ graph->addOperation(operation);
+
+}
diff --git a/source/blender/compositor/nodes/COM_IDMaskNode.h b/source/blender/compositor/nodes/COM_IDMaskNode.h
new file mode 100644
index 00000000000..2ccbbc08f9a
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_IDMaskNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_IDMaskNode_h_
+#define _COM_IDMaskNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief IDMaskNode
+ * @ingroup Node
+ */
+class IDMaskNode: public Node {
+public:
+ IDMaskNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ImageNode.cpp b/source/blender/compositor/nodes/COM_ImageNode.cpp
new file mode 100644
index 00000000000..5300d2deffc
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ImageNode.cpp
@@ -0,0 +1,152 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#include "COM_ImageNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_ImageOperation.h"
+#include "COM_MultilayerImageOperation.h"
+#include "BKE_node.h"
+#include "BLI_utildefines.h"
+
+ImageNode::ImageNode(bNode *editorNode): Node(editorNode)
+{
+}
+NodeOperation *ImageNode::doMultilayerCheck(ExecutionSystem *system, RenderLayer *rl, Image *image, ImageUser *user, int framenumber, int outputsocketIndex, int pass, DataType datatype)
+{
+ OutputSocket *outputSocket = this->getOutputSocket(outputsocketIndex);
+ MultilayerBaseOperation * operation = NULL;
+ switch (datatype) {
+ case COM_DT_VALUE:
+ operation = new MultilayerValueOperation(pass);
+ break;
+ case COM_DT_VECTOR:
+ operation = new MultilayerVectorOperation(pass);
+ break;
+ case COM_DT_COLOR:
+ operation = new MultilayerColorOperation(pass);
+ break;
+ default:
+ break;
+ }
+ operation->setImage(image);
+ operation->setRenderLayer(rl);
+ operation->setImageUser(user);
+ operation->setFramenumber(framenumber);
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ system->addOperation(operation);
+ return operation;
+}
+
+void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ /// Image output
+ OutputSocket *outputImage = this->getOutputSocket(0);
+ bNode *editorNode = this->getbNode();
+ Image *image = (Image*)editorNode->id;
+ ImageUser *imageuser = (ImageUser*)editorNode->storage;
+ int framenumber = context->getFramenumber();
+ int numberOfOutputs = this->getNumberOfOutputSockets();
+
+ /* force a load, we assume iuser index will be set OK anyway */
+ if (image && image->type==IMA_TYPE_MULTILAYER) {
+ BKE_image_get_ibuf(image, imageuser);
+ if (image->rr) {
+ RenderLayer *rl = (RenderLayer*)BLI_findlink(&image->rr->layers, imageuser->layer);
+ if (rl) {
+ OutputSocket * socket;
+ int index;
+ for (index = 0 ; index < numberOfOutputs ; index ++) {
+ socket = this->getOutputSocket(index);
+ if (socket->isConnected() || index == 0) {
+ bNodeSocket *bnodeSocket = socket->getbNodeSocket();
+ NodeImageLayer *storage = (NodeImageLayer*)bnodeSocket->storage;
+ int passindex = storage->pass_index;
+
+ RenderPass *rpass = (RenderPass *)BLI_findlink(&rl->passes, passindex);
+ if (rpass) {
+ NodeOperation * operation = NULL;
+ imageuser->pass = passindex;
+ switch (rpass->channels) {
+ case 1:
+ operation = doMultilayerCheck(graph, rl, image, imageuser, framenumber, index, passindex, COM_DT_VALUE);
+ break;
+ /* using image operations for both 3 and 4 channels (RGB and RGBA respectively) */
+ /* XXX any way to detect actual vector images? */
+ case 3:
+ operation = doMultilayerCheck(graph, rl, image, imageuser, framenumber, index, passindex, COM_DT_VECTOR);
+ break;
+ case 4:
+ operation = doMultilayerCheck(graph, rl, image, imageuser, framenumber, index, passindex, COM_DT_COLOR);
+ break;
+
+ default:
+ /* XXX add a dummy operation? */
+ break;
+ }
+ if (index == 0 && operation) {
+ addPreviewOperation(graph, operation->getOutputSocket(), 9);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ else {
+ if (numberOfOutputs > 0) {
+ ImageOperation *operation = new ImageOperation();
+ if (outputImage->isConnected()) {
+ outputImage->relinkConnections(operation->getOutputSocket());
+ }
+ operation->setImage(image);
+ operation->setImageUser(imageuser);
+ operation->setFramenumber(framenumber);
+ graph->addOperation(operation);
+ addPreviewOperation(graph, operation->getOutputSocket(), 9);
+ }
+
+ if (numberOfOutputs > 1) {
+ OutputSocket *alphaImage = this->getOutputSocket(1);
+ if (alphaImage->isConnected()) {
+ ImageAlphaOperation *alphaOperation = new ImageAlphaOperation();
+ alphaOperation->setImage(image);
+ alphaOperation->setImageUser(imageuser);
+ alphaOperation->setFramenumber(framenumber);
+ alphaImage->relinkConnections(alphaOperation->getOutputSocket());
+ graph->addOperation(alphaOperation);
+ }
+ }
+ if (numberOfOutputs > 2) {
+ OutputSocket *depthImage = this->getOutputSocket(2);
+ if (depthImage->isConnected()) {
+ ImageDepthOperation *depthOperation = new ImageDepthOperation();
+ depthOperation->setImage(image);
+ depthOperation->setImageUser(imageuser);
+ depthOperation->setFramenumber(framenumber);
+ depthImage->relinkConnections(depthOperation->getOutputSocket());
+ graph->addOperation(depthOperation);
+ }
+ }
+ }
+}
+
diff --git a/source/blender/compositor/nodes/COM_ImageNode.h b/source/blender/compositor/nodes/COM_ImageNode.h
new file mode 100644
index 00000000000..70c3ab7f4b0
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ImageNode.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#include "COM_defines.h"
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "DNA_image_types.h"
+extern "C" {
+ #include "RE_engine.h"
+}
+
+/**
+ * @brief ImageNode
+ * @ingroup Node
+ */
+class ImageNode : public Node {
+
+private:
+ NodeOperation *doMultilayerCheck(ExecutionSystem *system, RenderLayer *rl, Image *image, ImageUser *user, int framenumber, int outputsocketIndex, int pass, DataType datatype);
+public:
+ ImageNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+
+};
diff --git a/source/blender/compositor/nodes/COM_InvertNode.cpp b/source/blender/compositor/nodes/COM_InvertNode.cpp
new file mode 100644
index 00000000000..5d039239fbe
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_InvertNode.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_InvertNode.h"
+#include "DNA_scene_types.h"
+#include "COM_InvertOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "BKE_node.h"
+
+InvertNode::InvertNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void InvertNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InvertOperation *operation = new InvertOperation();
+ bNode *node = this->getbNode();
+ operation->setColor(node->custom1 & CMP_CHAN_RGB);
+ operation->setAlpha(node->custom1 & CMP_CHAN_A);
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_InvertNode.h b/source/blender/compositor/nodes/COM_InvertNode.h
new file mode 100644
index 00000000000..570e86445e6
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_InvertNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_InvertNode_h_
+#define _COM_InvertNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief InvertNode
+ * @ingroup Node
+ */
+class InvertNode: public Node {
+public:
+ InvertNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_LensDistortionNode.cpp b/source/blender/compositor/nodes/COM_LensDistortionNode.cpp
new file mode 100644
index 00000000000..e55dd5e64d8
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_LensDistortionNode.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_LensDistortionNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_ProjectorLensDistortionOperation.h"
+#include "COM_ScreenLensDistortionOperation.h"
+
+LensDistortionNode::LensDistortionNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void LensDistortionNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ bNode *editorNode = this->getbNode();
+ NodeLensDist * data = (NodeLensDist*)editorNode->storage;
+ if (data->proj) {
+ ProjectorLensDistortionOperation *operation = new ProjectorLensDistortionOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ operation->setDispertion(this->getInputSocket(2)->getStaticValues()[0]);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+
+ operation->setData(data);
+ graph->addOperation(operation);
+
+ }
+ else {
+ ScreenLensDistortionOperation *operation = new ScreenLensDistortionOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ operation->setDistortion(this->getInputSocket(1)->getStaticValues()[0]);
+ operation->setDispertion(this->getInputSocket(2)->getStaticValues()[0]);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+
+ operation->setData(data);
+ graph->addOperation(operation);
+ }
+
+}
diff --git a/source/blender/compositor/nodes/COM_LensDistortionNode.h b/source/blender/compositor/nodes/COM_LensDistortionNode.h
new file mode 100644
index 00000000000..64de740fde8
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_LensDistortionNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_LensDistortionNode_h_
+#define _COM_LensDistortionNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief LensDistortionNode
+ * @ingroup Node
+ */
+class LensDistortionNode: public Node {
+public:
+ LensDistortionNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp b/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp
new file mode 100644
index 00000000000..eb78657f3c4
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_LuminanceMatteNode.h"
+#include "BKE_node.h"
+#include "COM_LuminanceMatteOperation.h"
+#include "COM_ConvertRGBToYUVOperation.h"
+#include "COM_SetAlphaOperation.h"
+
+LuminanceMatteNode::LuminanceMatteNode(bNode *editorNode): Node(editorNode)
+{}
+
+void LuminanceMatteNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ OutputSocket *outputSocketImage = this->getOutputSocket(0);
+ OutputSocket *outputSocketMatte = this->getOutputSocket(1);
+
+ ConvertRGBToYUVOperation *rgbToYUV = new ConvertRGBToYUVOperation();
+ LuminanceMatteOperation *operationSet = new LuminanceMatteOperation();
+ bNode *editorsnode = getbNode();
+ operationSet->setSettings((NodeChroma*)editorsnode->storage);
+
+ inputSocket->relinkConnections(rgbToYUV->getInputSocket(0), 0, graph);
+ addLink(graph, rgbToYUV->getOutputSocket(), operationSet->getInputSocket(0));
+
+ if (outputSocketMatte->isConnected()) {
+ outputSocketMatte->relinkConnections(operationSet->getOutputSocket(0));
+ }
+
+ graph->addOperation(rgbToYUV);
+ graph->addOperation(operationSet);
+
+ SetAlphaOperation *operation = new SetAlphaOperation();
+ addLink(graph, rgbToYUV->getInputSocket(0)->getConnection()->getFromSocket(), operation->getInputSocket(0));
+ addLink(graph, operationSet->getOutputSocket(), operation->getInputSocket(1));
+ graph->addOperation(operation);
+ addPreviewOperation(graph, operation->getOutputSocket(), 9);
+
+ if (outputSocketImage->isConnected()) {
+ outputSocketImage->relinkConnections(operation->getOutputSocket());
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_LuminanceMatteNode.h b/source/blender/compositor/nodes/COM_LuminanceMatteNode.h
new file mode 100644
index 00000000000..e2dd8b47833
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_LuminanceMatteNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef COM_LuminanceMatteNODE_H
+#define COM_LuminanceMatteNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief LuminanceMatteNode
+ * @ingroup Node
+ */
+class LuminanceMatteNode : public Node
+{
+public:
+ LuminanceMatteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif // COM_LuminanceMatteNODE_H
diff --git a/source/blender/compositor/nodes/COM_MapUVNode.cpp b/source/blender/compositor/nodes/COM_MapUVNode.cpp
new file mode 100644
index 00000000000..e0e7e2594ed
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MapUVNode.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_MapUVNode.h"
+#include "COM_MapUVOperation.h"
+#include "COM_ExecutionSystem.h"
+
+MapUVNode::MapUVNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void MapUVNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ MapUVOperation *operation = new MapUVOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ bNode *node = this->getbNode();
+ operation->setAlpha((float)node->custom1);
+ operation->setResolutionInputSocketIndex(1);
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_MapUVNode.h b/source/blender/compositor/nodes/COM_MapUVNode.h
new file mode 100644
index 00000000000..3092e84990f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MapUVNode.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_MapUVNode_h
+#define _COM_MapUVNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief MapUVNode
+ * @ingroup Node
+ */
+class MapUVNode : public Node {
+public:
+ MapUVNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_MapValueNode.cpp b/source/blender/compositor/nodes/COM_MapValueNode.cpp
new file mode 100644
index 00000000000..f56662b1d64
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MapValueNode.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MapValueNode.h"
+
+#include "COM_MapValueOperation.h"
+#include "COM_ExecutionSystem.h"
+
+MapValueNode::MapValueNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void MapValueNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *colourSocket = this->getInputSocket(0);
+ OutputSocket *valueSocket = this->getOutputSocket(0);
+ TexMapping *storage = (TexMapping*)this->getbNode()->storage;
+ MapValueOperation *convertProg = new MapValueOperation();
+ convertProg->setSettings(storage);
+ colourSocket->relinkConnections(convertProg->getInputSocket(0), 0, graph);
+ valueSocket->relinkConnections(convertProg->getOutputSocket(0));
+ graph->addOperation(convertProg);
+}
diff --git a/source/blender/compositor/nodes/COM_MapValueNode.h b/source/blender/compositor/nodes/COM_MapValueNode.h
new file mode 100644
index 00000000000..47a6ea6adce
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MapValueNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MapValueNode_h
+#define _COM_MapValueNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief MapValueNode
+ * @ingroup Node
+ */
+class MapValueNode : public Node {
+public:
+ MapValueNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_MathNode.cpp b/source/blender/compositor/nodes/COM_MathNode.cpp
new file mode 100644
index 00000000000..eabd0481e38
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MathNode.cpp
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MathNode.h"
+#include "COM_MathBaseOperation.h"
+#include "COM_ExecutionSystem.h"
+
+void MathNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ MathBaseOperation *operation=NULL;
+
+ switch (this->getbNode()->custom1)
+ {
+ case 0: /* Add */
+ operation = new MathAddOperation();
+ break;
+ case 1: /* Subtract */
+ operation = new MathSubtractOperation();
+ break;
+ case 2: /* Multiply */
+ operation = new MathMultiplyOperation();
+ break;
+ case 3: /* Divide */
+ operation = new MathDivideOperation();
+ break;
+ case 4: /* Sine */
+ operation = new MathSineOperation();
+ break;
+ case 5: /* Cosine */
+ operation = new MathCosineOperation();
+ break;
+ case 6: /* Tangent */
+ operation = new MathTangentOperation();
+ break;
+ case 7: /* Arc-Sine */
+ operation = new MathArcSineOperation();
+ break;
+ case 8: /* Arc-Cosine */
+ operation = new MathArcCosineOperation();
+ break;
+ case 9: /* Arc-Tangent */
+ operation = new MathArcTangentOperation();
+ break;
+ case 10: /* Power */
+ operation = new MathPowerOperation();
+ break;
+ case 11: /* Logarithm */
+ operation = new MathLogarithmOperation();
+ break;
+ case 12: /* Minimum */
+ operation = new MathMinimumOperation();
+ break;
+ case 13: /* Maximum */
+ operation = new MathMaximumOperation();
+ break;
+ case 14: /* Round */
+ operation = new MathRoundOperation();
+ break;
+ case 15: /* Less Than */
+ operation = new MathLessThanOperation();
+ break;
+ case 16: /* Greater Than */
+ operation = new MathGreaterThanOperation();
+ break;
+ }
+
+ if (operation != NULL) {
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ graph->addOperation(operation);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_MathNode.h b/source/blender/compositor/nodes/COM_MathNode.h
new file mode 100644
index 00000000000..1e2cccda396
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MathNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MathNode_h
+#define _COM_MathNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief MathNode
+ * @ingroup Node
+ */
+class MathNode: public Node {
+public:
+ MathNode(bNode *editorNode) :Node(editorNode) {}
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_MixNode.cpp b/source/blender/compositor/nodes/COM_MixNode.cpp
new file mode 100644
index 00000000000..86ca5ebc237
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MixNode.cpp
@@ -0,0 +1,133 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixNode.h"
+
+#include "COM_MixBlendOperation.h"
+#include "COM_MixAddOperation.h"
+#include "COM_MixMultiplyOperation.h"
+#include "COM_MixBurnOperation.h"
+#include "COM_MixColorOperation.h"
+#include "COM_MixDarkenOperation.h"
+#include "COM_MixDifferenceOperation.h"
+#include "COM_MixDivideOperation.h"
+#include "COM_MixHueOperation.h"
+#include "COM_MixLightenOperation.h"
+#include "COM_MixLinearLightOperation.h"
+#include "COM_MixOverlayOperation.h"
+#include "COM_MixSaturationOperation.h"
+#include "COM_MixScreenOperation.h"
+#include "COM_MixSoftLightOperation.h"
+#include "COM_MixSubtractOperation.h"
+#include "COM_MixValueOperation.h"
+#include "COM_MixDodgeOperation.h"
+
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "DNA_material_types.h" // the ramp types
+
+
+MixNode::MixNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+
+void MixNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *valueSocket = this->getInputSocket(0);
+ InputSocket *color1Socket = this->getInputSocket(1);
+ InputSocket *color2Socket = this->getInputSocket(2);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ bNode *editorNode = this->getbNode();
+
+ MixBaseOperation *convertProg;
+
+ switch (editorNode->custom1) {
+ case MA_RAMP_ADD:
+ convertProg = new MixAddOperation();
+ break;
+ case MA_RAMP_MULT:
+ convertProg = new MixMultiplyOperation();
+ break;
+ case MA_RAMP_LIGHT:
+ convertProg = new MixLightenOperation();
+ break;
+ case MA_RAMP_BURN:
+ convertProg = new MixBurnOperation();
+ break;
+ case MA_RAMP_HUE:
+ convertProg = new MixHueOperation();
+ break;
+ case MA_RAMP_COLOR:
+ convertProg = new MixColorOperation();
+ break;
+ case MA_RAMP_SOFT:
+ convertProg = new MixSoftLightOperation();
+ break;
+ case MA_RAMP_SCREEN:
+ convertProg = new MixScreenOperation();
+ break;
+ case MA_RAMP_LINEAR:
+ convertProg = new MixLinearLightOperation();
+ break;
+ case MA_RAMP_DIFF:
+ convertProg = new MixDifferenceOperation();
+ break;
+ case MA_RAMP_SAT:
+ convertProg = new MixSaturationOperation();
+ break;
+ case MA_RAMP_DIV:
+ convertProg = new MixDivideOperation();
+ break;
+ case MA_RAMP_SUB:
+ convertProg = new MixSubtractOperation();
+ break;
+ case MA_RAMP_DARK:
+ convertProg = new MixDarkenOperation();
+ break;
+ case MA_RAMP_OVERLAY:
+ convertProg = new MixOverlayOperation();
+ break;
+ case MA_RAMP_VAL:
+ convertProg = new MixValueOperation();
+ break;
+ case MA_RAMP_DODGE:
+ convertProg = new MixDodgeOperation();
+ break;
+
+ case MA_RAMP_BLEND:
+ default:
+ convertProg = new MixBlendOperation();
+ break;
+ }
+ convertProg->setUseValueAlphaMultiply(this->getbNode()->custom2);
+
+ valueSocket->relinkConnections(convertProg->getInputSocket(0), 0, graph);
+ color1Socket->relinkConnections(convertProg->getInputSocket(1), 1, graph);
+ color2Socket->relinkConnections(convertProg->getInputSocket(2), 2, graph);
+ outputSocket->relinkConnections(convertProg->getOutputSocket(0));
+ addPreviewOperation(graph, convertProg->getOutputSocket(0), 5);
+
+ convertProg->getInputSocket(2)->setResizeMode(color2Socket->getResizeMode());
+
+ graph->addOperation(convertProg);
+}
diff --git a/source/blender/compositor/nodes/COM_MixNode.h b/source/blender/compositor/nodes/COM_MixNode.h
new file mode 100644
index 00000000000..4b57bdbc02a
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MixNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixNode_h
+#define _COM_MixNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief MixNode
+ * @ingroup Node
+ */
+class MixNode : public Node {
+public:
+ MixNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_MovieClipNode.cpp b/source/blender/compositor/nodes/COM_MovieClipNode.cpp
new file mode 100644
index 00000000000..75831130936
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MovieClipNode.cpp
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MovieClipNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_MovieClipOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ConvertColorProfileOperation.h"
+
+extern "C" {
+ #include "DNA_movieclip_types.h"
+ #include "BKE_movieclip.h"
+ #include "BKE_tracking.h"
+ #include "IMB_imbuf.h"
+}
+
+MovieClipNode::MovieClipNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void MovieClipNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ OutputSocket *outputMovieClip = this->getOutputSocket(0);
+ OutputSocket *offsetXMovieClip = this->getOutputSocket(1);
+ OutputSocket *offsetYMovieClip = this->getOutputSocket(2);
+ OutputSocket *scaleMovieClip = this->getOutputSocket(3);
+ OutputSocket *angleMovieClip = this->getOutputSocket(4);
+
+ bNode *editorNode = this->getbNode();
+ MovieClip *movieClip = (MovieClip*)editorNode->id;
+ MovieClipUser *movieClipUser = (MovieClipUser*)editorNode->storage;
+
+ ImBuf * ibuf = NULL;
+ if (movieClip) {
+ ibuf = BKE_movieclip_get_ibuf(movieClip, movieClipUser);
+ }
+
+ // always connect the output image
+ MovieClipOperation *operation = new MovieClipOperation();
+
+ if (ibuf && context->isColorManaged() && ibuf->profile == IB_PROFILE_NONE) {
+ ConvertColorProfileOperation *converter = new ConvertColorProfileOperation();
+ converter->setFromColorProfile(IB_PROFILE_LINEAR_RGB);
+ converter->setToColorProfile(IB_PROFILE_SRGB);
+ addLink(graph, operation->getOutputSocket(), converter->getInputSocket(0));
+ addPreviewOperation(graph, converter->getOutputSocket(), 9);
+ if (outputMovieClip->isConnected()) {
+ outputMovieClip->relinkConnections(converter->getOutputSocket());
+ }
+ graph->addOperation(converter);
+ if (ibuf) {
+ converter->setPredivided(ibuf->flags & IB_cm_predivide);
+ }
+ }
+ else {
+ addPreviewOperation(graph, operation->getOutputSocket(), 9);
+ if (outputMovieClip->isConnected()) {
+ outputMovieClip->relinkConnections(operation->getOutputSocket());
+ }
+ }
+ operation->setMovieClip(movieClip);
+ operation->setMovieClipUser(movieClipUser);
+ operation->setFramenumber(context->getFramenumber());
+ graph->addOperation(operation);
+
+ MovieTrackingStabilization *stab = &movieClip->tracking.stabilization;
+ float loc[2], scale, angle;
+ loc[0] = 0.0f;
+ loc[1] = 0.0f;
+ scale = 1.0f;
+ angle = 0.0f;
+
+ if (ibuf) {
+ if (stab->flag&TRACKING_2D_STABILIZATION) {
+ BKE_tracking_stabilization_data(&movieClip->tracking, context->getFramenumber(), ibuf->x, ibuf->y, loc, &scale, &angle);
+ }
+ }
+
+ if (offsetXMovieClip->isConnected()) {
+ SetValueOperation * operationSetValue = new SetValueOperation();
+ operationSetValue->setValue(loc[0]);
+ offsetXMovieClip->relinkConnections(operationSetValue->getOutputSocket());
+ graph->addOperation(operationSetValue);
+ }
+ if (offsetYMovieClip->isConnected()) {
+ SetValueOperation * operationSetValue = new SetValueOperation();
+ operationSetValue->setValue(loc[1]);
+ offsetYMovieClip->relinkConnections(operationSetValue->getOutputSocket());
+ graph->addOperation(operationSetValue);
+ }
+ if (scaleMovieClip->isConnected()) {
+ SetValueOperation * operationSetValue = new SetValueOperation();
+ operationSetValue->setValue(scale);
+ scaleMovieClip->relinkConnections(operationSetValue->getOutputSocket());
+ graph->addOperation(operationSetValue);
+ }
+ if (angleMovieClip->isConnected()) {
+ SetValueOperation * operationSetValue = new SetValueOperation();
+ operationSetValue->setValue(angle);
+ angleMovieClip->relinkConnections(operationSetValue->getOutputSocket());
+ graph->addOperation(operationSetValue);
+ }
+
+ if (ibuf) {
+ IMB_freeImBuf(ibuf);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_MovieClipNode.h b/source/blender/compositor/nodes/COM_MovieClipNode.h
new file mode 100644
index 00000000000..8ad2fa8cbb0
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MovieClipNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief MovieClipNode
+ * @ingroup Node
+ */
+class MovieClipNode : public Node {
+
+
+public:
+ MovieClipNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+
+};
diff --git a/source/blender/compositor/nodes/COM_MovieDistortionNode.cpp b/source/blender/compositor/nodes/COM_MovieDistortionNode.cpp
new file mode 100644
index 00000000000..bdf4c53fa72
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MovieDistortionNode.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MovieDistortionNode.h"
+
+#include "COM_MovieDistortionOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "DNA_movieclip_types.h"
+
+MovieDistortionNode::MovieDistortionNode(bNode *editorNode) : Node(editorNode)
+{
+}
+
+void MovieDistortionNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ bNode *bnode = this->getbNode();
+ MovieClip * clip = (MovieClip*)bnode->id;
+
+ MovieDistortionOperation * operation = new MovieDistortionOperation(bnode->custom1 == 1);
+ operation->setMovieClip(clip);
+ operation->setFramenumber(context->getFramenumber());
+
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, system);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ system->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_MovieDistortionNode.h b/source/blender/compositor/nodes/COM_MovieDistortionNode.h
new file mode 100644
index 00000000000..5ee328c9df3
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MovieDistortionNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MovieDistortionNode_h_
+#define _COM_MovieDistortionNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief MovieDistortionNode
+ * @ingroup Node
+ */
+class MovieDistortionNode: public Node {
+public:
+ MovieDistortionNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_MuteNode.cpp b/source/blender/compositor/nodes/COM_MuteNode.cpp
new file mode 100644
index 00000000000..72303a4d6ee
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MuteNode.cpp
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MuteNode.h"
+#include "COM_SocketConnection.h"
+#include "stdio.h"
+#include "COM_SetValueOperation.h"
+#include "COM_SetVectorOperation.h"
+#include "COM_SetColorOperation.h"
+
+MuteNode::MuteNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void MuteNode::reconnect(ExecutionSystem * graph, OutputSocket * output)
+{
+ vector<InputSocket*> &inputsockets = this->getInputSockets();
+ for (unsigned int index = 0; index < inputsockets.size() ; index ++) {
+ InputSocket *input = inputsockets[index];
+ if (input->getDataType() == output->getDataType()) {
+ if (input->isConnected()) {
+ output->relinkConnections(input->getConnection()->getFromSocket(), false);
+ return;
+ }
+ }
+ }
+
+ NodeOperation * operation;
+ switch (output->getDataType()) {
+ case COM_DT_VALUE:
+ {
+ SetValueOperation *valueoperation = new SetValueOperation();
+ valueoperation->setValue(0.0f);
+ operation = valueoperation;
+ break;
+ }
+ case COM_DT_VECTOR:
+ {
+ SetVectorOperation *vectoroperation = new SetVectorOperation();
+ vectoroperation->setX(0.0f);
+ vectoroperation->setY(0.0f);
+ vectoroperation->setW(0.0f);
+ operation = vectoroperation;
+ break;
+ }
+ case COM_DT_COLOR:
+ {
+ SetColorOperation *coloroperation = new SetColorOperation();
+ coloroperation->setChannel1(0.0f);
+ coloroperation->setChannel2(0.0f);
+ coloroperation->setChannel3(0.0f);
+ coloroperation->setChannel4(0.0f);
+ operation = coloroperation;
+ break;
+ }
+ /* quiet warnings */
+ case COM_DT_UNKNOWN:
+ break;
+ }
+
+ if (operation) {
+ output->relinkConnections(operation->getOutputSocket(), false);
+ graph->addOperation(operation);
+ }
+
+ output->clearConnections();
+}
+
+void MuteNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ vector<OutputSocket*> &outputsockets = this->getOutputSockets();
+
+ for (unsigned int index = 0 ; index < outputsockets.size() ; index ++) {
+ OutputSocket * output = outputsockets[index];
+ if (output->isConnected()) {
+ reconnect(graph, output);
+ }
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_MuteNode.h b/source/blender/compositor/nodes/COM_MuteNode.h
new file mode 100644
index 00000000000..2dfc786ef2b
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_MuteNode.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MuteNode_h_
+#define _COM_MuteNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief MuteNode
+ * @ingroup Node
+ */
+class MuteNode: public Node {
+public:
+ MuteNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+private:
+ void reconnect(ExecutionSystem *graph, OutputSocket * output);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_NormalNode.cpp b/source/blender/compositor/nodes/COM_NormalNode.cpp
new file mode 100644
index 00000000000..0b1faafe302
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_NormalNode.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_NormalNode.h"
+#include "COM_ExecutionSystem.h"
+#include "BKE_node.h"
+#include "COM_DotproductOperation.h"
+#include "COM_SetVectorOperation.h"
+
+NormalNode::NormalNode(bNode *editorNode): Node(editorNode)
+{}
+
+void NormalNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ OutputSocket *outputSocketDotproduct = this->getOutputSocket(1);
+ bNode *editorNode = this->getbNode();
+
+ SetVectorOperation * operationSet = new SetVectorOperation();
+ bNodeSocket * insock = (bNodeSocket*)editorNode->outputs.first;
+ bNodeSocketValueVector *dval = (bNodeSocketValueVector*)insock->default_value;
+ operationSet->setX(dval->value[0]);
+ operationSet->setY(dval->value[1]);
+ operationSet->setZ(dval->value[2]);
+ operationSet->setW(0.0f);
+
+ outputSocket->relinkConnections(operationSet->getOutputSocket(0));
+ graph->addOperation(operationSet);
+
+ if (outputSocketDotproduct->isConnected()) {
+ DotproductOperation *operation = new DotproductOperation();
+ outputSocketDotproduct->relinkConnections(operation->getOutputSocket(0));
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ addLink(graph, operationSet->getOutputSocket(0), operation->getInputSocket(1));
+ graph->addOperation(operation);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_NormalNode.h b/source/blender/compositor/nodes/COM_NormalNode.h
new file mode 100644
index 00000000000..1e7c7c584c3
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_NormalNode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef COM_NORMALNODE_H
+#define COM_NORMALNODE_H
+
+#include "COM_Node.h"
+
+/**
+ * @brief NormalNode
+ * @ingroup Node
+ */
+class NormalNode : public Node
+{
+public:
+ NormalNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif // COM_NormalNODE_H
diff --git a/source/blender/compositor/nodes/COM_NormalizeNode.cpp b/source/blender/compositor/nodes/COM_NormalizeNode.cpp
new file mode 100644
index 00000000000..11173b3a73f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_NormalizeNode.cpp
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_NormalizeNode.h"
+#include "COM_NormalizeOperation.h"
+#include "COM_ExecutionSystem.h"
+
+NormalizeNode::NormalizeNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void NormalizeNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ NormalizeOperation *operation = new NormalizeOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_NormalizeNode.h b/source/blender/compositor/nodes/COM_NormalizeNode.h
new file mode 100644
index 00000000000..ce7a6e1f7ab
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_NormalizeNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_NormalizeNode_h_
+#define _COM_NormalizeNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief NormalizeNode
+ * @ingroup Node
+ */
+class NormalizeNode: public Node {
+public:
+ NormalizeNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_OutputFileNode.cpp b/source/blender/compositor/nodes/COM_OutputFileNode.cpp
new file mode 100644
index 00000000000..cc060e9f7cd
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_OutputFileNode.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#include "COM_OutputFileNode.h"
+#include "COM_OutputFileOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "BLI_path_util.h"
+#include "BKE_utildefines.h"
+
+OutputFileNode::OutputFileNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void OutputFileNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ NodeImageMultiFile *storage = (NodeImageMultiFile*)this->getbNode()->storage;
+
+ if (!context->isRendering()) {
+ /* XXX TODO as in previous implementation?
+ * add dummy operations and exit, to prevent file writing on each compo update.
+ */
+ }
+
+ if (storage->format.imtype==R_IMF_IMTYPE_MULTILAYER) {
+ /* single output operation for the multilayer file */
+ OutputOpenExrMultiLayerOperation *outputOperation = new OutputOpenExrMultiLayerOperation(
+ context->getScene(), context->getbNodeTree(), storage->base_path, storage->format.exr_codec);
+
+ int num_inputs = getNumberOfInputSockets();
+ bool hasConnections = false;
+ for (int i=0; i < num_inputs; ++i) {
+ InputSocket *input = getInputSocket(i);
+ if (input->isConnected()) {
+ hasConnections = true;
+ NodeImageMultiFileSocket *sockdata = (NodeImageMultiFileSocket *)input->getbNodeSocket()->storage;
+
+ outputOperation->add_layer(sockdata->layer, input->getDataType());
+
+ input->relinkConnections(outputOperation->getInputSocket(i));
+ }
+ }
+ if (hasConnections) addPreviewOperation(graph, outputOperation->getInputSocket(0), 5);
+
+ graph->addOperation(outputOperation);
+ }
+ else { /* single layer format */
+ int num_inputs = getNumberOfInputSockets();
+ bool previewAdded = false;
+ for (int i=0; i < num_inputs; ++i) {
+ InputSocket *input = getInputSocket(i);
+ if (input->isConnected()) {
+ NodeImageMultiFileSocket *sockdata = (NodeImageMultiFileSocket *)input->getbNodeSocket()->storage;
+ ImageFormatData *format = (sockdata->use_node_format ? &storage->format : &sockdata->format);
+ char path[FILE_MAX];
+
+ /* combine file path for the input */
+ BLI_join_dirfile(path, FILE_MAX, storage->base_path, sockdata->path);
+
+ OutputSingleLayerOperation *outputOperation = new OutputSingleLayerOperation(
+ context->getScene(), context->getbNodeTree(), input->getActualDataType(), format, path);
+ input->relinkConnections(outputOperation->getInputSocket(0));
+ graph->addOperation(outputOperation);
+ if (!previewAdded) {
+ addPreviewOperation(graph, outputOperation->getInputSocket(0), 5);
+ previewAdded = true;
+ }
+ }
+ }
+ }
+}
+
diff --git a/source/blender/compositor/nodes/COM_OutputFileNode.h b/source/blender/compositor/nodes/COM_OutputFileNode.h
new file mode 100644
index 00000000000..10cbba7d50f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_OutputFileNode.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#ifndef _COM_OutputFileNode_h
+#define _COM_OutputFileNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief OutputFileNode
+ * @ingroup Node
+ */
+class OutputFileNode : public Node {
+public:
+ OutputFileNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_RenderLayersNode.cpp b/source/blender/compositor/nodes/COM_RenderLayersNode.cpp
new file mode 100644
index 00000000000..4e99db090e1
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_RenderLayersNode.cpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_RenderLayersImageProg.h"
+#include "COM_RenderLayersAlphaProg.h"
+#include "COM_RenderLayersDepthProg.h"
+#include "COM_RenderLayersNormalOperation.h"
+#include "COM_RenderLayersSpeedOperation.h"
+#include "COM_RenderLayersColorOperation.h"
+#include "COM_RenderLayersUVOperation.h"
+#include "COM_RenderLayersMistOperation.h"
+#include "COM_RenderLayersObjectIndexOperation.h"
+#include "COM_RenderLayersDiffuseOperation.h"
+#include "COM_RenderLayersSpecularOperation.h"
+#include "COM_RenderLayersShadowOperation.h"
+#include "COM_RenderLayersAOOperation.h"
+#include "COM_RenderLayersEmitOperation.h"
+#include "COM_RenderLayersReflectionOperation.h"
+#include "COM_RenderLayersRefractionOperation.h"
+#include "COM_RenderLayersEnvironmentOperation.h"
+#include "COM_RenderLayersIndirectOperation.h"
+#include "COM_RenderLayersMaterialIndexOperation.h"
+#include "COM_RenderLayersCyclesOperation.h"
+#include "COM_TranslateOperation.h"
+#include "COM_RotateOperation.h"
+#include "COM_ScaleOperation.h"
+#include "COM_SetValueOperation.h"
+
+RenderLayersNode::RenderLayersNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void RenderLayersNode::testSocketConnection(ExecutionSystem *system, int outputSocketNumber, RenderLayersBaseProg * operation)
+{
+ OutputSocket *outputSocket = this->getOutputSocket(outputSocketNumber);
+ Scene *scene = (Scene*)this->getbNode()->id;
+ short layerId = this->getbNode()->custom1;
+
+ if (outputSocket->isConnected()) {
+ operation->setScene(scene);
+ operation->setLayerId(layerId);
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ system->addOperation(operation);
+ if (outputSocketNumber == 0) { // only do for image socket if connected
+ addPreviewOperation(system, operation->getOutputSocket(), 9);
+ }
+ }
+ else {
+ if (outputSocketNumber == 0) {
+ system->addOperation(operation);
+ operation->setScene(scene);
+ operation->setLayerId(layerId);
+ addPreviewOperation(system, operation->getOutputSocket(), 9);
+ }
+ else {
+ delete operation;
+ }
+ }
+}
+
+void RenderLayersNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ testSocketConnection(graph, 0, new RenderLayersColourProg());
+ testSocketConnection(graph, 1, new RenderLayersAlphaProg());
+ testSocketConnection(graph, 2, new RenderLayersDepthProg());
+ testSocketConnection(graph, 3, new RenderLayersNormalOperation());
+ testSocketConnection(graph, 4, new RenderLayersUVOperation());
+ testSocketConnection(graph, 5, new RenderLayersSpeedOperation());
+ testSocketConnection(graph, 6, new RenderLayersColorOperation());
+ testSocketConnection(graph, 7, new RenderLayersDiffuseOperation());
+ testSocketConnection(graph, 8, new RenderLayersSpecularOperation());
+ testSocketConnection(graph, 9, new RenderLayersShadowOperation());
+ testSocketConnection(graph, 10, new RenderLayersAOOperation());
+ testSocketConnection(graph, 11, new RenderLayersReflectionOperation());
+ testSocketConnection(graph, 12, new RenderLayersRefractionOperation());
+ testSocketConnection(graph, 13, new RenderLayersIndirectOperation());
+ testSocketConnection(graph, 14, new RenderLayersObjectIndexOperation());
+ testSocketConnection(graph, 15, new RenderLayersMaterialIndexOperation());
+ testSocketConnection(graph, 16, new RenderLayersMistOperation());
+ testSocketConnection(graph, 17, new RenderLayersEmitOperation());
+ testSocketConnection(graph, 18, new RenderLayersEnvironmentOperation());
+
+ // cycles passes
+ testSocketConnection(graph, 19, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_DIRECT));
+ testSocketConnection(graph, 20, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_INDIRECT));
+ testSocketConnection(graph, 21, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_COLOR));
+ testSocketConnection(graph, 22, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_DIRECT));
+ testSocketConnection(graph, 23, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_INDIRECT));
+ testSocketConnection(graph, 24, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_COLOR));
+ testSocketConnection(graph, 25, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_DIRECT));
+ testSocketConnection(graph, 26, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_INDIRECT));
+ testSocketConnection(graph, 27, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_COLOR));
+}
diff --git a/source/blender/compositor/nodes/COM_RenderLayersNode.h b/source/blender/compositor/nodes/COM_RenderLayersNode.h
new file mode 100644
index 00000000000..f796a7147d9
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_RenderLayersNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_RenderLayersBaseProg.h"
+
+/**
+ * @brief RenderLayersNode
+ * @ingroup Node
+ */
+class RenderLayersNode : public Node {
+public:
+ RenderLayersNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+private:
+ void testSocketConnection(ExecutionSystem *graph, int outputSocketNumber, RenderLayersBaseProg * operation);
+};
diff --git a/source/blender/compositor/nodes/COM_RotateNode.cpp b/source/blender/compositor/nodes/COM_RotateNode.cpp
new file mode 100644
index 00000000000..48acc567739
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_RotateNode.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RotateNode.h"
+
+#include "COM_RotateOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SetSamplerOperation.h"
+
+RotateNode::RotateNode(bNode *editorNode) : Node(editorNode)
+{
+}
+
+void RotateNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputDegreeSocket = this->getInputSocket(1);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ RotateOperation *operation = new RotateOperation();
+ SetSamplerOperation *sampler = new SetSamplerOperation();
+
+ switch (this->getbNode()->custom1) {
+ case 0:
+ sampler->setSampler(COM_PS_NEAREST);
+ break ;
+ case 1:
+ sampler->setSampler(COM_PS_BILINEAR);
+ break;
+ case 2:
+ sampler->setSampler(COM_PS_BICUBIC);
+ break;
+
+ }
+
+ addLink(system, sampler->getOutputSocket(), operation->getInputSocket(0));
+
+ inputSocket->relinkConnections(sampler->getInputSocket(0), 0, system);
+ inputDegreeSocket->relinkConnections(operation->getInputSocket(1), 1, system);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ system->addOperation(sampler);
+ system->addOperation(operation);
+
+}
diff --git a/source/blender/compositor/nodes/COM_RotateNode.h b/source/blender/compositor/nodes/COM_RotateNode.h
new file mode 100644
index 00000000000..9b471742aab
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_RotateNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RotateNode_h_
+#define _COM_RotateNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief RotateNode
+ * @ingroup Node
+ */
+class RotateNode: public Node {
+public:
+ RotateNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ScaleNode.cpp b/source/blender/compositor/nodes/COM_ScaleNode.cpp
new file mode 100644
index 00000000000..d709781299f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ScaleNode.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ScaleNode.h"
+
+#include "COM_ScaleOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "BKE_node.h"
+#include "COM_SetValueOperation.h"
+
+ScaleNode::ScaleNode(bNode *editorNode) : Node(editorNode)
+{
+}
+
+void ScaleNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputXSocket = this->getInputSocket(1);
+ InputSocket *inputYSocket = this->getInputSocket(2);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ bNode *bnode = this->getbNode();
+ switch (bnode->custom1) {
+ case CMP_SCALE_RELATIVE: {
+ ScaleOperation *operation = new ScaleOperation();
+
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputXSocket->relinkConnections(operation->getInputSocket(1), 1, graph);
+ inputYSocket->relinkConnections(operation->getInputSocket(2), 2, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ break;
+ case CMP_SCALE_SCENEPERCENT: {
+ SetValueOperation * scaleFactorOperation = new SetValueOperation();
+ scaleFactorOperation->setValue(context->getScene()->r.size/100.0f);
+ ScaleOperation * operation = new ScaleOperation();
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ addLink(graph, scaleFactorOperation->getOutputSocket(), operation->getInputSocket(1));
+ addLink(graph, scaleFactorOperation->getOutputSocket(), operation->getInputSocket(2));
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(scaleFactorOperation);
+ graph->addOperation(operation);
+ }
+ break;
+
+ case CMP_SCALE_RENDERPERCENT: {
+ const RenderData *data = &context->getScene()->r;
+ ScaleFixedSizeOperation * operation = new ScaleFixedSizeOperation();
+ operation->setNewWidth(data->xsch*data->size/100.0f);
+ operation->setNewHeight(data->ysch*data->size/100.0f);
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ operation->getInputSocket(0)->getConnection()->setIgnoreResizeCheck(true);
+ graph->addOperation(operation);
+ }
+ break;
+
+ case CMP_SCALE_ABSOLUTE: {
+ ScaleAbsoluteOperation *operation = new ScaleAbsoluteOperation(); // TODO: what is the use of this one.... perhaps some issues when the ui was updated....
+
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputXSocket->relinkConnections(operation->getInputSocket(1), 1, graph);
+ inputYSocket->relinkConnections(operation->getInputSocket(2), 2, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ break;
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_ScaleNode.h b/source/blender/compositor/nodes/COM_ScaleNode.h
new file mode 100644
index 00000000000..310ae96a65e
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ScaleNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ScaleNode_h_
+#define _COM_ScaleNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief ScaleNode
+ * @ingroup Node
+ */
+class ScaleNode: public Node {
+public:
+ ScaleNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_SeparateHSVANode.cpp b/source/blender/compositor/nodes/COM_SeparateHSVANode.cpp
new file mode 100644
index 00000000000..cfce56a080a
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateHSVANode.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SeparateHSVANode.h"
+
+#include "COM_SeparateChannelOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ConvertRGBToHSVOperation.h"
+
+SeparateHSVANode::SeparateHSVANode(bNode *editorNode): SeparateRGBANode(editorNode)
+{
+}
+
+void SeparateHSVANode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ ConvertRGBToHSVOperation *operation = new ConvertRGBToHSVOperation();
+ InputSocket *inputSocket = this->getInputSocket(0);
+ if (inputSocket->isConnected()) {
+ inputSocket->relinkConnections(operation->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), inputSocket);
+ }
+ graph->addOperation(operation);
+ SeparateRGBANode::convertToOperations(graph, context);
+}
diff --git a/source/blender/compositor/nodes/COM_SeparateHSVANode.h b/source/blender/compositor/nodes/COM_SeparateHSVANode.h
new file mode 100644
index 00000000000..9fbd0212509
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateHSVANode.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SeparateHSVANode_h
+#define _COM_SeparateHSVANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_SeparateRGBANode.h"
+
+/**
+ * @brief SeparateHSVANode
+ * @ingroup Node
+ */
+class SeparateHSVANode : public SeparateRGBANode {
+public:
+ SeparateHSVANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_SeparateRGBANode.cpp b/source/blender/compositor/nodes/COM_SeparateRGBANode.cpp
new file mode 100644
index 00000000000..dd154fe604d
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateRGBANode.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SeparateRGBANode.h"
+
+#include "COM_SeparateChannelOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "DNA_material_types.h" // the ramp types
+
+
+SeparateRGBANode::SeparateRGBANode(bNode *editorNode): Node(editorNode)
+{
+}
+
+
+void SeparateRGBANode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *imageSocket = this->getInputSocket(0);
+ OutputSocket *outputRSocket = this->getOutputSocket(0);
+ OutputSocket *outputGSocket = this->getOutputSocket(1);
+ OutputSocket *outputBSocket = this->getOutputSocket(2);
+ OutputSocket *outputASocket = this->getOutputSocket(3);
+
+ if (outputRSocket->isConnected()) {
+ SeparateChannelOperation *operation = new SeparateChannelOperation();
+ operation->setChannel(0);
+ imageSocket->relinkConnectionsDuplicate(operation->getInputSocket(0), 0, graph);
+ outputRSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ if (outputGSocket->isConnected()) {
+ SeparateChannelOperation *operation = new SeparateChannelOperation();
+ operation->setChannel(1);
+ imageSocket->relinkConnectionsDuplicate(operation->getInputSocket(0), 0, graph);
+ outputGSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ if (outputBSocket->isConnected()) {
+ SeparateChannelOperation *operation = new SeparateChannelOperation();
+ operation->setChannel(2);
+ imageSocket->relinkConnectionsDuplicate(operation->getInputSocket(0), 0, graph);
+ outputBSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+ if (outputASocket->isConnected()) {
+ SeparateChannelOperation *operation = new SeparateChannelOperation();
+ operation->setChannel(3);
+ imageSocket->relinkConnectionsDuplicate(operation->getInputSocket(0), 0, graph);
+ outputASocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_SeparateRGBANode.h b/source/blender/compositor/nodes/COM_SeparateRGBANode.h
new file mode 100644
index 00000000000..5fb00600790
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateRGBANode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SeparateRGBANode_h
+#define _COM_SeparateRGBANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief SeparateRGBANode
+ * @ingroup Node
+ */
+class SeparateRGBANode : public Node {
+public:
+ SeparateRGBANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_SeparateYCCANode.cpp b/source/blender/compositor/nodes/COM_SeparateYCCANode.cpp
new file mode 100644
index 00000000000..68d20235de7
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateYCCANode.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_SeparateYCCANode.h"
+#include "COM_SeparateChannelOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ConvertRGBToYCCOperation.h"
+
+SeparateYCCANode::SeparateYCCANode(bNode *editorNode): SeparateRGBANode(editorNode)
+{
+}
+
+void SeparateYCCANode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ ConvertRGBToYCCOperation *operation = new ConvertRGBToYCCOperation();
+ InputSocket *inputSocket = this->getInputSocket(0);
+
+ bNode *node = this->getbNode();
+ operation->setMode(node->custom1);
+
+ if (inputSocket->isConnected()) {
+ inputSocket->relinkConnections(operation->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), inputSocket);
+ }
+ graph->addOperation(operation);
+ SeparateRGBANode::convertToOperations(graph, context);
+}
diff --git a/source/blender/compositor/nodes/COM_SeparateYCCANode.h b/source/blender/compositor/nodes/COM_SeparateYCCANode.h
new file mode 100644
index 00000000000..441eba9bc93
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateYCCANode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_SeparateYCCANode_h
+#define _COM_SeparateYCCANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_SeparateRGBANode.h"
+
+/**
+ * @brief SeparateYCCANode
+ * @ingroup Node
+ */
+class SeparateYCCANode : public SeparateRGBANode {
+public:
+ SeparateYCCANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_SeparateYUVANode.cpp b/source/blender/compositor/nodes/COM_SeparateYUVANode.cpp
new file mode 100644
index 00000000000..650e5d1340b
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateYUVANode.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_SeparateYUVANode.h"
+#include "COM_SeparateChannelOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ConvertRGBToYUVOperation.h"
+
+SeparateYUVANode::SeparateYUVANode(bNode *editorNode): SeparateRGBANode(editorNode)
+{
+}
+
+void SeparateYUVANode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ ConvertRGBToYUVOperation *operation = new ConvertRGBToYUVOperation();
+ InputSocket *inputSocket = this->getInputSocket(0);
+ if (inputSocket->isConnected()) {
+ inputSocket->relinkConnections(operation->getInputSocket(0));
+ addLink(graph, operation->getOutputSocket(), inputSocket);
+ }
+ graph->addOperation(operation);
+ SeparateRGBANode::convertToOperations(graph, context);
+}
diff --git a/source/blender/compositor/nodes/COM_SeparateYUVANode.h b/source/blender/compositor/nodes/COM_SeparateYUVANode.h
new file mode 100644
index 00000000000..136ce1b4f20
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SeparateYUVANode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_SeparateYUVANode_h
+#define _COM_SeparateYUVANode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+#include "COM_SeparateRGBANode.h"
+
+/**
+ * @brief SeparateYUVANode
+ * @ingroup Node
+ */
+class SeparateYUVANode : public SeparateRGBANode {
+public:
+ SeparateYUVANode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_SetAlphaNode.cpp b/source/blender/compositor/nodes/COM_SetAlphaNode.cpp
new file mode 100644
index 00000000000..1d09b81c4d2
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SetAlphaNode.cpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SetAlphaNode.h"
+#include "COM_SetAlphaOperation.h"
+#include "COM_ExecutionSystem.h"
+
+void SetAlphaNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ SetAlphaOperation *operation = new SetAlphaOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_SetAlphaNode.h b/source/blender/compositor/nodes/COM_SetAlphaNode.h
new file mode 100644
index 00000000000..c6b603049c5
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SetAlphaNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SetAlphaNode_h
+#define _COM_SetAlphaNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief SetAlphaNode
+ * @ingroup Node
+ */
+class SetAlphaNode: public Node {
+public:
+ SetAlphaNode(bNode *editorNode) :Node(editorNode) {}
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_SocketProxyNode.cpp b/source/blender/compositor/nodes/COM_SocketProxyNode.cpp
new file mode 100644
index 00000000000..42dd49bd1da
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SocketProxyNode.cpp
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SocketProxyNode.h"
+#include "COM_SocketConnection.h"
+#include "COM_SocketProxyOperation.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "COM_SetVectorOperation.h"
+#include "COM_SetColorOperation.h"
+
+SocketProxyNode::SocketProxyNode(bNode *editorNode, bNodeSocket *editorInput, bNodeSocket *editorOutput): Node(editorNode, false)
+{
+ DataType dt;
+
+ dt = COM_DT_VALUE;
+ if (editorInput->type == SOCK_RGBA) dt = COM_DT_COLOR;
+ if (editorInput->type == SOCK_VECTOR) dt = COM_DT_VECTOR;
+ this->addInputSocket(dt, (InputSocketResizeMode)editorInput->resizemode, editorInput);
+
+ dt = COM_DT_VALUE;
+ if (editorOutput->type == SOCK_RGBA) dt = COM_DT_COLOR;
+ if (editorOutput->type == SOCK_VECTOR) dt = COM_DT_VECTOR;
+ this->addOutputSocket(dt, editorOutput);
+}
+
+void SocketProxyNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ OutputSocket * outputsocket = this->getOutputSocket(0);
+ if (outputsocket->isConnected()) {
+ SocketProxyOperation *operation = new SocketProxyOperation();
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0));
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+}
+
+void OutputSocketProxyNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ OutputSocket * outputsocket = this->getOutputSocket(0);
+ InputSocket * inputsocket = this->getInputSocket(0);
+ if (outputsocket->isConnected()) {
+ switch (outputsocket->getActualDataType()) {
+ case COM_DT_VALUE:
+ {
+ SetValueOperation *operation = new SetValueOperation();
+ bNodeSocketValueFloat *dval = (bNodeSocketValueFloat*)inputsocket->getbNodeSocket()->default_value;
+ operation->setValue(dval->value);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ break;
+ }
+ case COM_DT_COLOR:
+ {
+ SetColorOperation *operation = new SetColorOperation();
+ bNodeSocketValueRGBA *dval = (bNodeSocketValueRGBA*)inputsocket->getbNodeSocket()->default_value;
+ operation->setChannels(dval->value);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ break;
+ }
+ case COM_DT_VECTOR:
+ {
+ SetVectorOperation *operation = new SetVectorOperation();
+ bNodeSocketValueVector *dval = (bNodeSocketValueVector*)inputsocket->getbNodeSocket()->default_value;
+ operation->setVector(dval->value);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ break;
+ }
+ /* quiet warnings */
+ case COM_DT_UNKNOWN:
+ break;
+ }
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_SocketProxyNode.h b/source/blender/compositor/nodes/COM_SocketProxyNode.h
new file mode 100644
index 00000000000..1b5ee699211
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SocketProxyNode.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SocketProxyNode_h_
+#define _COM_SocketProxyNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief SocketProxyNode
+ * @ingroup Node
+ */
+class SocketProxyNode: public Node {
+public:
+ SocketProxyNode(bNode *editorNode, bNodeSocket *editorInput, bNodeSocket *editorOutput);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+
+ virtual bool isProxyNode() const { return true; }
+};
+
+class OutputSocketProxyNode: public SocketProxyNode {
+public:
+ OutputSocketProxyNode(bNode *editorNode, bNodeSocket *editorInput, bNodeSocket *editorOutput): SocketProxyNode(editorNode, editorInput, editorOutput) {}
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_SplitViewerNode.cpp b/source/blender/compositor/nodes/COM_SplitViewerNode.cpp
new file mode 100644
index 00000000000..9f9efbd8fe5
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SplitViewerNode.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SplitViewerNode.h"
+#include "BKE_global.h"
+
+#include "COM_SplitViewerOperation.h"
+#include "COM_ExecutionSystem.h"
+
+SplitViewerNode::SplitViewerNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void SplitViewerNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *image1Socket = this->getInputSocket(0);
+ InputSocket *image2Socket = this->getInputSocket(1);
+ Image *image = (Image*)this->getbNode()->id;
+ ImageUser * imageUser = (ImageUser*) this->getbNode()->storage;
+ if (image1Socket->isConnected() && image2Socket->isConnected()) {
+ SplitViewerOperation *splitViewerOperation = new SplitViewerOperation();
+ splitViewerOperation->setImage(image);
+ splitViewerOperation->setImageUser(imageUser);
+ splitViewerOperation->setActive(this->getbNode()->flag & NODE_DO_OUTPUT);
+ splitViewerOperation->setSplitPercentage(this->getbNode()->custom1);
+ splitViewerOperation->setXSplit(!this->getbNode()->custom2);
+ image1Socket->relinkConnections(splitViewerOperation->getInputSocket(0), 0, graph);
+ image2Socket->relinkConnections(splitViewerOperation->getInputSocket(1), 1, graph);
+ addPreviewOperation(graph, splitViewerOperation->getInputSocket(0), 0);
+ graph->addOperation(splitViewerOperation);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_SplitViewerNode.h b/source/blender/compositor/nodes/COM_SplitViewerNode.h
new file mode 100644
index 00000000000..e2d7a8c0dc9
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SplitViewerNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SplitViewerNode_h
+#define _COM_SplitViewerNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief SplitViewerNode
+ * @ingroup Node
+ */
+class SplitViewerNode : public Node {
+public:
+ SplitViewerNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp b/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp
new file mode 100644
index 00000000000..7234e71a43c
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Stabilize2dNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_TranslateOperation.h"
+#include "COM_RotateOperation.h"
+#include "COM_ScaleOperation.h"
+#include "COM_MovieClipAttributeOperation.h"
+
+extern "C" {
+ #include "DNA_movieclip_types.h"
+ #include "BKE_tracking.h"
+}
+
+Stabilize2dNode::Stabilize2dNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void Stabilize2dNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *imageInput = this->getInputSocket(0);
+ MovieClip *clip = (MovieClip *)getbNode()->id;
+
+ ScaleOperation * scaleOperation = new ScaleOperation();
+ RotateOperation * rotateOperation = new RotateOperation();
+ TranslateOperation * translateOperation = new TranslateOperation();
+ MovieClipAttributeOperation *scaleAttribute = new MovieClipAttributeOperation();
+ MovieClipAttributeOperation *angleAttribute = new MovieClipAttributeOperation();
+ MovieClipAttributeOperation *xAttribute = new MovieClipAttributeOperation();
+ MovieClipAttributeOperation *yAttribute = new MovieClipAttributeOperation();
+
+ scaleAttribute->setAttribute(MCA_SCALE);
+ scaleAttribute->setFramenumber(context->getFramenumber());
+ scaleAttribute->setMovieClip(clip);
+
+ angleAttribute->setAttribute(MCA_ANGLE);
+ angleAttribute->setFramenumber(context->getFramenumber());
+ angleAttribute->setMovieClip(clip);
+
+ xAttribute->setAttribute(MCA_X);
+ xAttribute->setFramenumber(context->getFramenumber());
+ xAttribute->setMovieClip(clip);
+
+ yAttribute->setAttribute(MCA_Y);
+ yAttribute->setFramenumber(context->getFramenumber());
+ yAttribute->setMovieClip(clip);
+
+ imageInput->relinkConnections(scaleOperation->getInputSocket(0), 0, graph);
+ addLink(graph, scaleAttribute->getOutputSocket(), scaleOperation->getInputSocket(1));
+ addLink(graph, scaleAttribute->getOutputSocket(), scaleOperation->getInputSocket(2));
+
+ addLink(graph, scaleOperation->getOutputSocket(), rotateOperation->getInputSocket(0));
+ addLink(graph, angleAttribute->getOutputSocket(), rotateOperation->getInputSocket(1));
+ rotateOperation->setDoDegree2RadConversion(false);
+
+ addLink(graph, rotateOperation->getOutputSocket(), translateOperation->getInputSocket(0));
+ addLink(graph, xAttribute->getOutputSocket(), translateOperation->getInputSocket(1));
+ addLink(graph, yAttribute->getOutputSocket(), translateOperation->getInputSocket(2));
+
+ this->getOutputSocket()->relinkConnections(translateOperation->getOutputSocket());
+
+ graph->addOperation(scaleAttribute);
+ graph->addOperation(angleAttribute);
+ graph->addOperation(xAttribute);
+ graph->addOperation(yAttribute);
+ graph->addOperation(scaleOperation);
+ graph->addOperation(translateOperation);
+ graph->addOperation(rotateOperation);
+}
diff --git a/source/blender/compositor/nodes/COM_Stabilize2dNode.h b/source/blender/compositor/nodes/COM_Stabilize2dNode.h
new file mode 100644
index 00000000000..63bf50b4d69
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_Stabilize2dNode.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief Stabilize2dNode
+ * @ingroup Node
+ */
+class Stabilize2dNode : public Node {
+public:
+ Stabilize2dNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
diff --git a/source/blender/compositor/nodes/COM_SwitchNode.cpp b/source/blender/compositor/nodes/COM_SwitchNode.cpp
new file mode 100644
index 00000000000..58c60a96de8
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SwitchNode.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SwitchNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_SocketProxyOperation.h"
+
+SwitchNode::SwitchNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+
+void SwitchNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ SocketProxyOperation * operation = new SocketProxyOperation();
+ int switchFrame = this->getbNode()->custom1;
+
+ if (!switchFrame) {
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ }
+ else {
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(0), 1, graph);
+ }
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_SwitchNode.h b/source/blender/compositor/nodes/COM_SwitchNode.h
new file mode 100644
index 00000000000..da93af42489
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_SwitchNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SwitchNode_h
+#define _COM_SwitchNode_h
+
+#include "COM_Node.h"
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+/**
+ * @brief SwitchNode
+ * @ingroup Node
+ */
+class SwitchNode : public Node {
+public:
+ SwitchNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_TextureNode.cpp b/source/blender/compositor/nodes/COM_TextureNode.cpp
new file mode 100644
index 00000000000..be8bb623f4c
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TextureNode.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TextureNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_TextureOperation.h"
+
+TextureNode::TextureNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void TextureNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ bNode *editorNode = this->getbNode();
+ Tex *texture = (Tex*)editorNode->id;
+ TextureOperation *operation = new TextureOperation();
+ this->getOutputSocket(1)->relinkConnections(operation->getOutputSocket());
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, system);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, system);
+ operation->setTexture(texture);
+ operation->setScene(context->getScene());
+ system->addOperation(operation);
+ addPreviewOperation(system, operation->getOutputSocket(), 9);
+
+ if (this->getOutputSocket(0)->isConnected()) {
+ TextureAlphaOperation *alphaOperation = new TextureAlphaOperation();
+ this->getOutputSocket(0)->relinkConnections(alphaOperation->getOutputSocket());
+ addLink(system, operation->getInputSocket(0)->getConnection()->getFromSocket(), alphaOperation->getInputSocket(0));
+ addLink(system, operation->getInputSocket(1)->getConnection()->getFromSocket(), alphaOperation->getInputSocket(1));
+ alphaOperation->setTexture(texture);
+ alphaOperation->setScene(context->getScene());
+ system->addOperation(alphaOperation);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_TextureNode.h b/source/blender/compositor/nodes/COM_TextureNode.h
new file mode 100644
index 00000000000..15c39db9077
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TextureNode.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief TextureNode
+ * @ingroup Node
+ */
+class TextureNode : public Node {
+public:
+ TextureNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
diff --git a/source/blender/compositor/nodes/COM_TimeNode.cpp b/source/blender/compositor/nodes/COM_TimeNode.cpp
new file mode 100644
index 00000000000..b3ce27a3829
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TimeNode.cpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TimeNode.h"
+#include "DNA_scene_types.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ExecutionSystem.h"
+extern "C" {
+ #include "BKE_colortools.h"
+}
+#include "BLI_utildefines.h"
+
+TimeNode::TimeNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void TimeNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ SetValueOperation *operation = new SetValueOperation();
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ bNode *node = this->getbNode();
+
+ /* stack order output: fac */
+ float fac = 0.0f;
+ const int framenumber = context->getFramenumber();
+
+ if (framenumber < node->custom1) {
+ fac = 0.0f;
+ }
+ else if (framenumber > node->custom2) {
+ fac = 1.0f;
+ }
+ else if (node->custom1 < node->custom2) {
+ fac = (context->getFramenumber() - node->custom1)/(float)(node->custom2-node->custom1);
+ }
+
+ fac = curvemapping_evaluateF((CurveMapping*)node->storage, 0, fac);
+ operation->setValue(CLAMPIS(fac, 0.0f, 1.0f));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_TimeNode.h b/source/blender/compositor/nodes/COM_TimeNode.h
new file mode 100644
index 00000000000..26751f6f104
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TimeNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_TimeNode_h_
+#define _COM_TimeNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief TimeNode
+ * @ingroup Node
+ */
+class TimeNode: public Node {
+public:
+ TimeNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_TonemapNode.cpp b/source/blender/compositor/nodes/COM_TonemapNode.cpp
new file mode 100644
index 00000000000..80f02f3edbb
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TonemapNode.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TonemapNode.h"
+#include "DNA_scene_types.h"
+#include "COM_TonemapOperation.h"
+#include "COM_ExecutionSystem.h"
+
+TonemapNode::TonemapNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void TonemapNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ NodeTonemap *data = (NodeTonemap*)this->getbNode()->storage;
+ TonemapOperation *operation = data->type==1?new PhotoreceptorTonemapOperation():new TonemapOperation();
+
+ operation->setData(data);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, system);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ system->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_TonemapNode.h b/source/blender/compositor/nodes/COM_TonemapNode.h
new file mode 100644
index 00000000000..d6dd8474afa
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TonemapNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_TonemapNode_h_
+#define _COM_TonemapNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief TonemapNode
+ * @ingroup Node
+ */
+class TonemapNode: public Node {
+public:
+ TonemapNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_TransformNode.cpp b/source/blender/compositor/nodes/COM_TransformNode.cpp
new file mode 100644
index 00000000000..da3e85036a5
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TransformNode.cpp
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TransformNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_TranslateOperation.h"
+#include "COM_RotateOperation.h"
+#include "COM_ScaleOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_SetSamplerOperation.h"
+
+TransformNode::TransformNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void TransformNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *imageInput = this->getInputSocket(0);
+ InputSocket *xInput = this->getInputSocket(1);
+ InputSocket *yInput = this->getInputSocket(2);
+ InputSocket *angleInput = this->getInputSocket(3);
+ InputSocket *scaleInput = this->getInputSocket(4);
+
+ ScaleOperation * scaleOperation = new ScaleOperation();
+ RotateOperation * rotateOperation = new RotateOperation();
+ TranslateOperation * translateOperation = new TranslateOperation();
+ SetSamplerOperation *sampler = new SetSamplerOperation();
+
+ switch (this->getbNode()->custom1) {
+ case 0:
+ sampler->setSampler(COM_PS_NEAREST);
+ break ;
+ case 1:
+ sampler->setSampler(COM_PS_BILINEAR);
+ break;
+ case 2:
+ sampler->setSampler(COM_PS_BICUBIC);
+ break;
+ }
+
+ imageInput->relinkConnections(sampler->getInputSocket(0), 0, graph);
+ addLink(graph, sampler->getOutputSocket(), scaleOperation->getInputSocket(0));
+ scaleInput->relinkConnections(scaleOperation->getInputSocket(1), 4, graph);
+ addLink(graph, scaleOperation->getInputSocket(1)->getConnection()->getFromSocket(), scaleOperation->getInputSocket(2)); // xscale = yscale
+
+ addLink(graph, scaleOperation->getOutputSocket(), rotateOperation->getInputSocket(0));
+ rotateOperation->setDoDegree2RadConversion(false);
+ angleInput->relinkConnections(rotateOperation->getInputSocket(1), 3, graph);
+
+ addLink(graph, rotateOperation->getOutputSocket(), translateOperation->getInputSocket(0));
+ xInput->relinkConnections(translateOperation->getInputSocket(1), 1, graph);
+ yInput->relinkConnections(translateOperation->getInputSocket(2), 2, graph);
+
+ this->getOutputSocket()->relinkConnections(translateOperation->getOutputSocket());
+
+ graph->addOperation(sampler);
+ graph->addOperation(scaleOperation);
+ graph->addOperation(rotateOperation);
+ graph->addOperation(translateOperation);
+}
diff --git a/source/blender/compositor/nodes/COM_TransformNode.h b/source/blender/compositor/nodes/COM_TransformNode.h
new file mode 100644
index 00000000000..237da44afd9
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TransformNode.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief TransformNode
+ * @ingroup Node
+ */
+class TransformNode : public Node {
+public:
+ TransformNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
diff --git a/source/blender/compositor/nodes/COM_TranslateNode.cpp b/source/blender/compositor/nodes/COM_TranslateNode.cpp
new file mode 100644
index 00000000000..407c6da4e4d
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TranslateNode.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TranslateNode.h"
+
+#include "COM_TranslateOperation.h"
+#include "COM_ExecutionSystem.h"
+
+TranslateNode::TranslateNode(bNode *editorNode) : Node(editorNode)
+{
+}
+
+void TranslateNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputXSocket = this->getInputSocket(1);
+ InputSocket *inputYSocket = this->getInputSocket(2);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ TranslateOperation *operation = new TranslateOperation();
+
+ inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputXSocket->relinkConnections(operation->getInputSocket(1), 1, graph);
+ inputYSocket->relinkConnections(operation->getInputSocket(2), 2, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_TranslateNode.h b/source/blender/compositor/nodes/COM_TranslateNode.h
new file mode 100644
index 00000000000..295024d6beb
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TranslateNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_TranslateNode_h_
+#define _COM_TranslateNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief TranslateNode
+ * @ingroup Node
+ */
+class TranslateNode: public Node {
+public:
+ TranslateNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ValueNode.cpp b/source/blender/compositor/nodes/COM_ValueNode.cpp
new file mode 100644
index 00000000000..39245e75a2f
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ValueNode.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ValueNode.h"
+#include "DNA_scene_types.h"
+#include "COM_SetValueOperation.h"
+#include "COM_ExecutionSystem.h"
+
+ValueNode::ValueNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void ValueNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ SetValueOperation *operation = new SetValueOperation();
+ bNodeSocket *socket = this->getEditorOutputSocket(0);
+ bNodeSocketValueFloat *dval = (bNodeSocketValueFloat*)socket->default_value;
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ operation->setValue(dval->value);
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_ValueNode.h b/source/blender/compositor/nodes/COM_ValueNode.h
new file mode 100644
index 00000000000..4faf193fc8e
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ValueNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ValueNode_h_
+#define _COM_ValueNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief ValueNode
+ * @ingroup Node
+ */
+class ValueNode: public Node {
+public:
+ ValueNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_VectorBlurNode.cpp b/source/blender/compositor/nodes/COM_VectorBlurNode.cpp
new file mode 100644
index 00000000000..596256eb6af
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_VectorBlurNode.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_VectorBlurNode.h"
+#include "DNA_node_types.h"
+#include "COM_FogGlowImageOperation.h"
+#include "COM_BokehBlurOperation.h"
+#include "COM_VectorBlurOperation.h"
+#include "COM_SetValueOperation.h"
+#include "COM_MixBlendOperation.h"
+
+VectorBlurNode::VectorBlurNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void VectorBlurNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ bNode *node = this->getbNode();
+ NodeBlurData *vectorBlurSettings = (NodeBlurData*)node->storage;
+ VectorBlurOperation *operation = new VectorBlurOperation();
+ operation->setVectorBlurSettings(vectorBlurSettings);
+ operation->setQuality(context->getQuality());
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, system);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, system);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(2), 2, system);
+ this->getOutputSocket()->relinkConnections(operation->getOutputSocket());
+ system->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_VectorBlurNode.h b/source/blender/compositor/nodes/COM_VectorBlurNode.h
new file mode 100644
index 00000000000..1df945731ce
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_VectorBlurNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_VectorBlurNode_h_
+#define _COM_VectorBlurNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief VectorBlurNode
+ * @ingroup Node
+ */
+class VectorBlurNode: public Node {
+public:
+ VectorBlurNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_VectorCurveNode.cpp b/source/blender/compositor/nodes/COM_VectorCurveNode.cpp
new file mode 100644
index 00000000000..908e1a19f16
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_VectorCurveNode.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_VectorCurveNode.h"
+#include "DNA_scene_types.h"
+#include "COM_VectorCurveOperation.h"
+#include "COM_ExecutionSystem.h"
+
+VectorCurveNode::VectorCurveNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void VectorCurveNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ VectorCurveOperation *operation = new VectorCurveOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ operation->setCurveMapping((CurveMapping*)this->getbNode()->storage);
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_VectorCurveNode.h b/source/blender/compositor/nodes/COM_VectorCurveNode.h
new file mode 100644
index 00000000000..9fbcfd50156
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_VectorCurveNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_VectorCurveNode_h_
+#define _COM_VectorCurveNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief VectorCurveNode
+ * @ingroup Node
+ */
+class VectorCurveNode: public Node {
+public:
+ VectorCurveNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp b/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp
new file mode 100644
index 00000000000..cedf81e3f2a
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ViewLevelsNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_CalculateMeanOperation.h"
+#include "COM_CalculateStandardDeviationOperation.h"
+
+ViewLevelsNode::ViewLevelsNode(bNode *editorNode): Node(editorNode)
+{
+}
+void ViewLevelsNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
+{
+ InputSocket * input = this->getInputSocket(0);
+ bool firstOperationConnected = false;
+ if (input->isConnected()) {
+ OutputSocket *inputSocket = input->getConnection()->getFromSocket();
+ // add preview to inputSocket;
+
+ OutputSocket * socket = this->getOutputSocket(0);
+ if (socket->isConnected()) {
+ // calculate mean operation
+ CalculateMeanOperation * operation = new CalculateMeanOperation();
+ input->relinkConnections(operation->getInputSocket(0), 0, graph);
+ firstOperationConnected = true;
+ operation->setSetting(this->getbNode()->custom1);
+ socket->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+ }
+
+ socket = this->getOutputSocket(1);
+ if (socket->isConnected()) {
+ // calculate standard deviation operation
+ CalculateStandardDeviationOperation * operation = new CalculateStandardDeviationOperation();
+ if (firstOperationConnected) {
+ addLink(graph, inputSocket, operation->getInputSocket(0));
+ }
+ else {
+ input->relinkConnections(operation->getInputSocket(0), 0, graph);
+ }
+ operation->setSetting(this->getbNode()->custom1);
+ socket->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+ }
+ }
+}
+
diff --git a/source/blender/compositor/nodes/COM_ViewLevelsNode.h b/source/blender/compositor/nodes/COM_ViewLevelsNode.h
new file mode 100644
index 00000000000..11be6216cba
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ViewLevelsNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ViewLevelsNode_h_
+#define _COM_ViewLevelsNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief ViewLevelsNode
+ * @ingroup Node
+ */
+class ViewLevelsNode: public Node {
+public:
+ ViewLevelsNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_ViewerNode.cpp b/source/blender/compositor/nodes/COM_ViewerNode.cpp
new file mode 100644
index 00000000000..3282929af52
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ViewerNode.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ViewerNode.h"
+#include "BKE_global.h"
+
+#include "COM_ViewerOperation.h"
+#include "COM_ExecutionSystem.h"
+
+ViewerNode::ViewerNode(bNode *editorNode): Node(editorNode)
+{
+}
+
+void ViewerNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)\
+{
+ InputSocket *imageSocket = this->getInputSocket(0);
+ InputSocket *alphaSocket = this->getInputSocket(1);
+ Image *image = (Image*)this->getbNode()->id;
+ ImageUser * imageUser = (ImageUser*) this->getbNode()->storage;
+ if (imageSocket->isConnected()) {
+ bNode *editorNode = this->getbNode();
+ ViewerOperation *viewerOperation = new ViewerOperation();
+ viewerOperation->setColorManagement(context->getScene()->r.color_mgt_flag & R_COLOR_MANAGEMENT);
+ viewerOperation->setColorPredivide(context->getScene()->r.color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
+ viewerOperation->setbNodeTree(context->getbNodeTree());
+ viewerOperation->setImage(image);
+ viewerOperation->setImageUser(imageUser);
+ viewerOperation->setActive(editorNode->flag & NODE_DO_OUTPUT);
+ viewerOperation->setChunkOrder((OrderOfChunks)editorNode->custom1);
+ viewerOperation->setCenterX(editorNode->custom3);
+ viewerOperation->setCenterY(editorNode->custom4);
+ imageSocket->relinkConnections(viewerOperation->getInputSocket(0), 0, graph);
+ alphaSocket->relinkConnections(viewerOperation->getInputSocket(1));
+ graph->addOperation(viewerOperation);
+ addPreviewOperation(graph, viewerOperation->getInputSocket(0), 0);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_ViewerNode.h b/source/blender/compositor/nodes/COM_ViewerNode.h
new file mode 100644
index 00000000000..59371f04e87
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ViewerNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ViewerNode_h
+#define _COM_ViewerNode_h
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+/**
+ * @brief ViewerNode
+ * @ingroup Node
+ */
+class ViewerNode : public Node {
+public:
+ ViewerNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+#endif
diff --git a/source/blender/compositor/nodes/COM_ZCombineNode.cpp b/source/blender/compositor/nodes/COM_ZCombineNode.cpp
new file mode 100644
index 00000000000..2495d1a5ab2
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ZCombineNode.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ZCombineNode.h"
+
+#include "COM_ZCombineOperation.h"
+
+#include "COM_ExecutionSystem.h"
+#include "COM_SetValueOperation.h"
+#include "COM_MathBaseOperation.h"
+
+#include "DNA_material_types.h" // the ramp types
+
+void ZCombineNode::convertToOperations(ExecutionSystem *system, CompositorContext * context)
+{
+ if (this->getOutputSocket(0)->isConnected()) {
+ ZCombineOperation * operation = NULL;
+ if (this->getbNode()->custom1) {
+ operation = new ZCombineAlphaOperation();
+ }
+ else {
+ operation = new ZCombineOperation();
+ }
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, system);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, system);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(2), 2, system);
+ this->getInputSocket(3)->relinkConnections(operation->getInputSocket(3), 3, system);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ system->addOperation(operation);
+ if (this->getOutputSocket(1)->isConnected()) {
+ MathMinimumOperation * zoperation = new MathMinimumOperation();
+ addLink(system, operation->getInputSocket(1)->getConnection()->getFromSocket(), zoperation->getInputSocket(0));
+ addLink(system, operation->getInputSocket(3)->getConnection()->getFromSocket(), zoperation->getInputSocket(1));
+ this->getOutputSocket(1)->relinkConnections(zoperation->getOutputSocket());
+ system->addOperation(zoperation);
+ }
+ }
+ else {
+ if (this->getOutputSocket(1)->isConnected()) {
+ MathMinimumOperation * zoperation = new MathMinimumOperation();
+ this->getInputSocket(1)->relinkConnections(zoperation->getInputSocket(0), 1, system);
+ this->getInputSocket(3)->relinkConnections(zoperation->getInputSocket(1), 3, system);
+ this->getOutputSocket(1)->relinkConnections(zoperation->getOutputSocket());
+ system->addOperation(zoperation);
+ }
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_ZCombineNode.h b/source/blender/compositor/nodes/COM_ZCombineNode.h
new file mode 100644
index 00000000000..e9ce2f27469
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_ZCombineNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ZCombineNode_h
+#define _COM_ZCombineNode_h
+
+#include "COM_Node.h"
+
+/**
+ * @brief ZCombineNode
+ * @ingroup Node
+ */
+class ZCombineNode: public Node {
+public:
+ ZCombineNode(bNode *editorNode) :Node(editorNode) {}
+ void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
new file mode 100644
index 00000000000..c891142b808
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_AlphaOverKeyOperation.h"
+
+AlphaOverKeyOperation::AlphaOverKeyOperation(): MixBaseOperation()
+{
+}
+
+void AlphaOverKeyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputOverColor[4];
+ float value[4];
+
+ inputValueOperation->read(value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
+ inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
+
+ if (inputOverColor[3] <= 0.0f) {
+ outputValue[0] = inputColor1[0];
+ outputValue[1] = inputColor1[1];
+ outputValue[2] = inputColor1[2];
+ outputValue[3] = inputColor1[3];
+ }
+ else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
+ outputValue[0] = inputOverColor[0];
+ outputValue[1] = inputOverColor[1];
+ outputValue[2] = inputOverColor[2];
+ outputValue[3] = inputOverColor[3];
+ }
+ else {
+ float premul = value[0]*inputOverColor[3];
+ float mul = 1.0f - premul;
+
+ outputValue[0] = (mul*inputColor1[0]) + premul*inputOverColor[0];
+ outputValue[1] = (mul*inputColor1[1]) + premul*inputOverColor[1];
+ outputValue[2] = (mul*inputColor1[2]) + premul*inputOverColor[2];
+ outputValue[3] = (mul*inputColor1[3]) + value[0]*inputOverColor[3];
+ }
+}
diff --git a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h
new file mode 100644
index 00000000000..d3077a05706
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_AlphaOverKeyOperation_h
+#define _COM_AlphaOverKeyOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class AlphaOverKeyOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ AlphaOverKeyOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
new file mode 100644
index 00000000000..aedf6ec5e9e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_AlphaOverMixedOperation.h"
+
+AlphaOverMixedOperation::AlphaOverMixedOperation(): MixBaseOperation()
+{
+ this->x = 0.0f;
+}
+
+void AlphaOverMixedOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputOverColor[4];
+ float value[4];
+
+ inputValueOperation->read(value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
+ inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
+
+ if (inputOverColor[3] <= 0.0f) {
+ outputValue[0] = inputColor1[0];
+ outputValue[1] = inputColor1[1];
+ outputValue[2] = inputColor1[2];
+ outputValue[3] = inputColor1[3];
+ }
+ else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
+ outputValue[0] = inputOverColor[0];
+ outputValue[1] = inputOverColor[1];
+ outputValue[2] = inputOverColor[2];
+ outputValue[3] = inputOverColor[3];
+ }
+ else {
+ float addfac = 1.0f - this->x + inputOverColor[3]*this->x;
+ float premul = value[0]*addfac;
+ float mul = 1.0f - value[0]*inputOverColor[3];
+
+ outputValue[0] = (mul*inputColor1[0]) + premul*inputOverColor[0];
+ outputValue[1] = (mul*inputColor1[1]) + premul*inputOverColor[1];
+ outputValue[2] = (mul*inputColor1[2]) + premul*inputOverColor[2];
+ outputValue[3] = (mul*inputColor1[3]) + value[0]*inputOverColor[3];
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h
new file mode 100644
index 00000000000..92936a20b79
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_AlphaOverMixedOperation_h
+#define _COM_AlphaOverMixedOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class AlphaOverMixedOperation : public MixBaseOperation {
+private:
+ float x;
+public:
+ /**
+ * Default constructor
+ */
+ AlphaOverMixedOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void setX(float x) {this->x = x;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
new file mode 100644
index 00000000000..6cc33387917
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_AlphaOverPremultiplyOperation.h"
+
+AlphaOverPremultiplyOperation::AlphaOverPremultiplyOperation(): MixBaseOperation()
+{
+}
+
+void AlphaOverPremultiplyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputOverColor[4];
+ float value[4];
+
+ inputValueOperation->read(value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
+ inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
+
+ /* Zero alpha values should still permit an add of RGB data */
+ if (inputOverColor[3]<0.0f) {
+ outputValue[0] = inputColor1[0];
+ outputValue[1] = inputColor1[1];
+ outputValue[2] = inputColor1[2];
+ outputValue[3] = inputColor1[3];
+ }
+ else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
+ outputValue[0] = inputOverColor[0];
+ outputValue[1] = inputOverColor[1];
+ outputValue[2] = inputOverColor[2];
+ outputValue[3] = inputOverColor[3];
+ }
+ else {
+ float mul = 1.0f - value[0]*inputOverColor[3];
+
+ outputValue[0] = (mul*inputColor1[0]) + value[0]*inputOverColor[0];
+ outputValue[1] = (mul*inputColor1[1]) + value[0]*inputOverColor[1];
+ outputValue[2] = (mul*inputColor1[2]) + value[0]*inputOverColor[2];
+ outputValue[3] = (mul*inputColor1[3]) + value[0]*inputOverColor[3];
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h
new file mode 100644
index 00000000000..2fe4422d03e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_AlphaOverPremultiplyOperation_h
+#define _COM_AlphaOverPremultiplyOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class AlphaOverPremultiplyOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ AlphaOverPremultiplyOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_AntiAliasOperation.cpp b/source/blender/compositor/operations/COM_AntiAliasOperation.cpp
new file mode 100644
index 00000000000..62639eeb24a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AntiAliasOperation.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_AntiAliasOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+extern "C" {
+ #include "RE_render_ext.h"
+}
+
+
+AntiAliasOperation::AntiAliasOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->valueReader = NULL;
+ this->buffer = NULL;
+ this->setComplex(true);
+}
+void AntiAliasOperation::initExecution()
+{
+ this->valueReader = this->getInputSocketReader(0);
+ NodeOperation::initMutex();
+}
+
+void AntiAliasOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data)
+{
+ if (y < 0 || y >= this->height || x < 0 || x >= this->width) {
+ color[0] = 0.0f;
+ }
+ else {
+ int offset = y*this->width + x;
+ color[0] = buffer[offset]/255.0f;
+ }
+
+}
+
+void AntiAliasOperation::deinitExecution()
+{
+ this->valueReader = NULL;
+ if (this->buffer) {
+ delete buffer;
+ }
+ NodeOperation::deinitMutex();
+}
+
+bool AntiAliasOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti imageInput;
+ if (this->buffer) {
+ return false;
+ }
+ else {
+ NodeOperation *operation = getInputOperation(0);
+ imageInput.xmax = operation->getWidth();
+ imageInput.xmin = 0;
+ imageInput.ymax = operation->getHeight();
+ imageInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&imageInput, readOperation, output) ) {
+ return true;
+ }
+ }
+ return false;
+}
+
+void *AntiAliasOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ if (this->buffer) {return buffer;}
+ BLI_mutex_lock(getMutex());
+ if (this->buffer == NULL) {
+ MemoryBuffer *tile = (MemoryBuffer*)valueReader->initializeTileData(rect, memoryBuffers);
+ int size = tile->getHeight()*tile->getWidth();
+ float * input = tile->getBuffer();
+ char *valuebuffer = new char[size];
+ for (int i = 0 ; i < size ; i ++) {
+ float in = input[i * COM_NUMBER_OF_CHANNELS];
+ if (in < 0.0f) { in = 0.0f;}
+ if (in > 1.0f) {in = 1.0f;}
+ valuebuffer[i] = in * 255;
+ }
+ antialias_tagbuf(tile->getWidth(), tile->getHeight(), valuebuffer);
+ this->buffer = valuebuffer;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->buffer;
+}
diff --git a/source/blender/compositor/operations/COM_AntiAliasOperation.h b/source/blender/compositor/operations/COM_AntiAliasOperation.h
new file mode 100644
index 00000000000..fe160763828
--- /dev/null
+++ b/source/blender/compositor/operations/COM_AntiAliasOperation.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_AntiAliasOperation_h
+#define _COM_AntiAliasOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief AntiAlias operations
+ * it only supports anti aliasing on BW buffers.
+ * @ingroup operation
+ */
+class AntiAliasOperation : public NodeOperation {
+protected:
+ /**
+ * @brief Cached reference to the reader
+ */
+ SocketReader * valueReader;
+ char *buffer;
+public:
+ AntiAliasOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp b/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
new file mode 100644
index 00000000000..88fe17f633e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BilateralBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+BilateralBlurOperation::BilateralBlurOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+
+ this->inputColorProgram = NULL;
+ this->inputDeterminatorProgram = NULL;
+}
+
+void BilateralBlurOperation::initExecution()
+{
+ this->inputColorProgram = getInputSocketReader(0);
+ this->inputDeterminatorProgram = getInputSocketReader(1);
+ this->space = this->data->sigma_space + this->data->iter;
+ QualityStepHelper::initExecution(COM_QH_INCREASE);
+}
+
+void BilateralBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ // read the determinator color at x, y, this will be used as the reference color for the determinator
+ float determinatorReferenceColor[4];
+ float determinator[4];
+ float tempColor[4];
+ float blurColor[4];
+ float blurDivider;
+ float space = this->space;
+ float sigmacolor = this->data->sigma_color;
+ int minx = floor(x - space);
+ int maxx = ceil(x + space);
+ int miny = floor(y - space);
+ int maxy = ceil(y + space);
+ float deltaColor;
+ this->inputDeterminatorProgram->read(determinatorReferenceColor, x, y, inputBuffers, data);
+
+ blurColor[0] = 0.0f;
+ blurColor[1] = 0.0f;
+ blurColor[2] = 0.0f;
+ blurColor[3] = 0.0f;
+ blurDivider = 0.0f;
+ for (int yi = miny ; yi < maxy ; yi+=QualityStepHelper::getStep()) {
+ for (int xi = minx ; xi < maxx ; xi+=QualityStepHelper::getStep()) {
+ // read determinator
+ this->inputDeterminatorProgram->read(determinator, xi, yi, inputBuffers, data);
+ deltaColor = fabsf(determinatorReferenceColor[0] - determinator[0])+
+ fabsf(determinatorReferenceColor[1] - determinator[1])+
+ fabsf(determinatorReferenceColor[2] - determinator[2]); // do not take the alpha channel into account
+ if (deltaColor< sigmacolor) {
+ // add this to the blur
+ this->inputColorProgram->read(tempColor, xi, yi, inputBuffers, data);
+ blurColor[0]+=tempColor[0];
+ blurColor[1]+=tempColor[1];
+ blurColor[2]+=tempColor[2];
+ blurColor[3]+=tempColor[3];
+ blurDivider += 1.0f;
+ }
+ }
+ }
+
+ if (blurDivider > 0.0f) {
+ color[0] = blurColor[0]/blurDivider;
+ color[1] = blurColor[1]/blurDivider;
+ color[2] = blurColor[2]/blurDivider;
+ color[3] = blurColor[3]/blurDivider;
+ }
+ else {
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ }
+}
+
+void BilateralBlurOperation::deinitExecution()
+{
+ this->inputColorProgram = NULL;
+ this->inputDeterminatorProgram = NULL;
+}
+
+bool BilateralBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ int add = ceil(this->space)+1;
+
+ newInput.xmax = input->xmax + (add);
+ newInput.xmin = input->xmin - (add);
+ newInput.ymax = input->ymax + (add);
+ newInput.ymin = input->ymin - (add);
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_BilateralBlurOperation.h b/source/blender/compositor/operations/COM_BilateralBlurOperation.h
new file mode 100644
index 00000000000..8ec1ba8df99
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BilateralBlurOperation.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehBilateralBlurOperation_h
+#define _COM_BilateralBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_QualityStepHelper.h"
+
+class BilateralBlurOperation : public NodeOperation, public QualityStepHelper {
+private:
+ SocketReader *inputColorProgram;
+ SocketReader *inputDeterminatorProgram;
+ NodeBilateralBlurData *data;
+ float space;
+
+public:
+ BilateralBlurOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ void setData(NodeBilateralBlurData *data) {this->data = data;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
new file mode 100644
index 00000000000..6e1a7e2a908
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BlurBaseOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+BlurBaseOperation::BlurBaseOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+ this->inputProgram = NULL;
+ this->data = NULL;
+ this->size = 1.0f;
+ this->deleteData = false;
+}
+void BlurBaseOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ this->inputSize = this->getInputSocketReader(1);
+ this->data->image_in_width = this->getWidth();
+ this->data->image_in_height = this->getHeight();
+ if (this->data->relative) {
+ switch (this->data->aspect) {
+ case CMP_NODE_BLUR_ASPECT_NONE:
+ this->data->sizex = (int)(this->data->percentx*0.01f*this->data->image_in_width);
+ this->data->sizey = (int)(this->data->percenty*0.01f*this->data->image_in_height);
+ break;
+ case CMP_NODE_BLUR_ASPECT_Y:
+ this->data->sizex = (int)(this->data->percentx*0.01f*this->data->image_in_width);
+ this->data->sizey = (int)(this->data->percenty*0.01f*this->data->image_in_width);
+ break;
+ case CMP_NODE_BLUR_ASPECT_X:
+ this->data->sizex = (int)(this->data->percentx*0.01f*this->data->image_in_height);
+ this->data->sizey = (int)(this->data->percenty*0.01f*this->data->image_in_height);
+ break;
+ }
+ }
+
+ QualityStepHelper::initExecution(COM_QH_MULTIPLY);
+
+}
+
+float *BlurBaseOperation::make_gausstab(int rad)
+{
+ float *gausstab, sum, val;
+ int i, n;
+
+ n = 2 * rad + 1;
+
+ gausstab = new float[n];
+
+ sum = 0.0f;
+ for (i = -rad; i <= rad; i++) {
+ val = RE_filter_value(this->data->filtertype, (float)i/(float)rad);
+ sum += val;
+ gausstab[i+rad] = val;
+ }
+
+ sum = 1.0f/sum;
+ for (i=0; i<n; i++)
+ gausstab[i]*= sum;
+
+ return gausstab;
+}
+
+void BlurBaseOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+ this->inputSize = NULL;
+ if (this->deleteData) {
+ delete this->data;
+ }
+ this->data = NULL;
+}
+
+void BlurBaseOperation::updateSize(MemoryBuffer **memoryBuffers)
+{
+ float result[4];
+ this->getInputSocketReader(1)->read(result, 0, 0, COM_PS_NEAREST, memoryBuffers);
+ this->size = result[0];
+}
diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.h b/source/blender/compositor/operations/COM_BlurBaseOperation.h
new file mode 100644
index 00000000000..13e7eb52b77
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BlurBaseOperation.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BlurBaseOperation_h
+#define _COM_BlurBaseOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_QualityStepHelper.h"
+
+class BlurBaseOperation : public NodeOperation, public QualityStepHelper {
+private:
+
+protected:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputProgram;
+ SocketReader *inputSize;
+ NodeBlurData * data;
+ BlurBaseOperation();
+ float *make_gausstab(int rad);
+ float size;
+ bool deleteData;
+ void updateSize(MemoryBuffer **memoryBuffers);
+public:
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeBlurData *data) {this->data = data;}
+
+ void deleteDataWhenFinished() {this->deleteData = true;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_BokehBlurOperation.cpp b/source/blender/compositor/operations/COM_BokehBlurOperation.cpp
new file mode 100644
index 00000000000..1050fc57194
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BokehBlurOperation.cpp
@@ -0,0 +1,167 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BokehBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+BokehBlurOperation::BokehBlurOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+
+ this->size = .01;
+
+ this->inputProgram = NULL;
+ this->inputBokehProgram = NULL;
+ this->inputBoundingBoxReader = NULL;
+}
+
+void *BokehBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void BokehBlurOperation::initExecution()
+{
+ this->inputProgram = getInputSocketReader(0);
+ this->inputBokehProgram = getInputSocketReader(1);
+ this->inputBoundingBoxReader = getInputSocketReader(2);
+
+ int width = inputBokehProgram->getWidth();
+ int height = inputBokehProgram->getHeight();
+
+ float dimension;
+ if (width<height) {
+ dimension = width;
+ }
+ else {
+ dimension = height;
+ }
+ this->bokehMidX = width/2.0f;
+ this->bokehMidY = height/2.0f;
+ this->bokehDimension = dimension/2.0f;
+ QualityStepHelper::initExecution(COM_QH_INCREASE);
+}
+
+void BokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float tempColor[4];
+ float tempBoundingBox[4];
+ float bokeh[4];
+
+ inputBoundingBoxReader->read(tempBoundingBox, x, y, COM_PS_NEAREST, inputBuffers);
+ if (tempBoundingBox[0] >0.0f) {
+ tempColor[0] = 0;
+ tempColor[1] = 0;
+ tempColor[2] = 0;
+ tempColor[3] = 0;
+ float overallmultiplyerr = 0;
+ float overallmultiplyerg = 0;
+ float overallmultiplyerb = 0;
+ MemoryBuffer *inputBuffer = (MemoryBuffer*)data;
+ float *buffer = inputBuffer->getBuffer();
+ int bufferwidth = inputBuffer->getWidth();
+ int bufferstartx = inputBuffer->getRect()->xmin;
+ int bufferstarty = inputBuffer->getRect()->ymin;
+ int pixelSize = this->size*this->getWidth();
+
+ int miny = y - pixelSize;
+ int maxy = y + pixelSize;
+ int minx = x - pixelSize;
+ int maxx = x + pixelSize;
+ miny = max(miny, inputBuffer->getRect()->ymin);
+ minx = max(minx, inputBuffer->getRect()->xmin);
+ maxy = min(maxy, inputBuffer->getRect()->ymax);
+ maxx = min(maxx, inputBuffer->getRect()->xmax);
+
+ int step = getStep();
+ int offsetadd = getOffsetAdd();
+
+ float m = this->bokehDimension/pixelSize;
+ for (int ny = miny ; ny < maxy ; ny +=step) {
+ int bufferindex = ((minx - bufferstartx)*4)+((ny-bufferstarty)*4*bufferwidth);
+ for (int nx = minx ; nx < maxx ; nx +=step) {
+ float u = this->bokehMidX - (nx-x) *m;
+ float v = this->bokehMidY - (ny-y) *m;
+ inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST, inputBuffers);
+ tempColor[0] += bokeh[0] * buffer[bufferindex];
+ tempColor[1] += bokeh[1] * buffer[bufferindex+1];
+ tempColor[2] += bokeh[2]* buffer[bufferindex+2];
+ overallmultiplyerr += bokeh[0];
+ overallmultiplyerg += bokeh[1];
+ overallmultiplyerb += bokeh[2];
+ bufferindex +=offsetadd;
+ }
+ }
+ color[0] = tempColor[0]*(1.0/overallmultiplyerr);
+ color[1] = tempColor[1]*(1.0/overallmultiplyerg);
+ color[2] = tempColor[2]*(1.0/overallmultiplyerb);
+ color[3] = 1.0f;
+ }
+ else {
+ inputProgram->read(color, x, y, COM_PS_NEAREST, inputBuffers);
+ }
+}
+
+void BokehBlurOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+ this->inputBokehProgram = NULL;
+ this->inputBoundingBoxReader = NULL;
+}
+
+bool BokehBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ rcti bokehInput;
+
+ newInput.xmax = input->xmax + (size*this->getWidth());
+ newInput.xmin = input->xmin - (size*this->getWidth());
+ newInput.ymax = input->ymax + (size*this->getWidth());
+ newInput.ymin = input->ymin - (size*this->getWidth());
+
+ NodeOperation *operation = getInputOperation(1);
+ bokehInput.xmax = operation->getWidth();
+ bokehInput.xmin = 0;
+ bokehInput.ymax = operation->getHeight();
+ bokehInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&bokehInput, readOperation, output) ) {
+ return true;
+ }
+ operation = getInputOperation(0);
+ if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
+ return true;
+ }
+ operation = getInputOperation(2);
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output) ) {
+ return true;
+ }
+ return false;
+}
diff --git a/source/blender/compositor/operations/COM_BokehBlurOperation.h b/source/blender/compositor/operations/COM_BokehBlurOperation.h
new file mode 100644
index 00000000000..ce14faa8596
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BokehBlurOperation.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehBokehBlurOperation_h
+#define _COM_BokehBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_QualityStepHelper.h"
+
+class BokehBlurOperation : public NodeOperation, public QualityStepHelper {
+private:
+ SocketReader *inputProgram;
+ SocketReader *inputBokehProgram;
+ SocketReader *inputBoundingBoxReader;
+ float size;
+ float bokehMidX;
+ float bokehMidY;
+ float bokehDimension;
+public:
+ BokehBlurOperation();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ void setSize(float size) {this->size = size;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_BokehImageOperation.cpp b/source/blender/compositor/operations/COM_BokehImageOperation.cpp
new file mode 100644
index 00000000000..0279b9a5bdf
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BokehImageOperation.cpp
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BokehImageOperation.h"
+#include "BLI_math.h"
+
+BokehImageOperation::BokehImageOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+ this->deleteData = false;
+}
+void BokehImageOperation::initExecution()
+{
+ this->centerX = getWidth() / 2;
+ this->centerY = getHeight() / 2;
+ this->center[0] = this->centerX;
+ this->center[1] = this->centerY;
+ this->inverseRounding = 1.0-this->data->rounding;
+ this->circularDistance = getWidth()/2;
+ this->flapRad = (M_PI*2)/this->data->flaps;
+ this->flapRadAdd = (this->data->angle/360.0)*M_PI*2;
+ while (this->flapRadAdd<0.0f) {
+ this->flapRadAdd+=M_PI*2;
+ }
+ while (this->flapRadAdd>M_PI) {
+ this->flapRadAdd-=M_PI*2;
+ }
+}
+void BokehImageOperation::detemineStartPointOfFlap(float r[2], int flapNumber, float distance)
+{
+ r[0] = sin(flapRad*flapNumber + flapRadAdd)*distance+centerX;
+ r[1] = cos(flapRad*flapNumber + flapRadAdd)*distance+centerY;
+}
+float BokehImageOperation::isInsideBokeh(float distance, float x, float y)
+{
+ float insideBokeh = 0.0;
+ const float deltaX = x - centerX;
+ const float deltaY = y - centerY;
+ float closestPoint[2];
+ float lineP1[2];
+ float lineP2[2];
+ float point[2];
+ point[0] = x;
+ point[1] = y;
+
+ const float distanceToCenter = len_v2v2(point, center);
+ const float bearing = (atan2f(deltaX, deltaY) + (M_PI*2));
+ int flapNumber = (int)((bearing-flapRadAdd)/flapRad);
+
+ detemineStartPointOfFlap(lineP1, flapNumber, distance);
+ detemineStartPointOfFlap(lineP2, flapNumber+1, distance);
+ closest_to_line_v2(closestPoint, point, lineP1, lineP2);
+
+ const float distanceLineToCenter = len_v2v2(center, closestPoint);
+ const float distanceRoundingToCenter = inverseRounding*distanceLineToCenter+this->data->rounding*distance;
+
+ const float catadioptricDistanceToCenter = distanceRoundingToCenter*this->data->catadioptric;
+ if (distanceRoundingToCenter>=distanceToCenter && catadioptricDistanceToCenter<=distanceToCenter) {
+ if (distanceRoundingToCenter-distanceToCenter<1.0) {
+ insideBokeh = (distanceRoundingToCenter-distanceToCenter);
+ }
+ else if (this->data->catadioptric != 0.0 && distanceToCenter-catadioptricDistanceToCenter<1.0) {
+ insideBokeh = (distanceToCenter-catadioptricDistanceToCenter);
+ }
+ else {
+ insideBokeh = 1.0;
+ }
+ }
+ return insideBokeh;
+}
+void BokehImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float shift = this->data->lensshift;
+ float shift2 = shift/2.0f;
+ float distance = this->circularDistance;
+ float insideBokehMax = isInsideBokeh(distance, x, y);
+ float insideBokehMed = isInsideBokeh(distance-fabs(shift2*distance), x, y);
+ float insideBokehMin = isInsideBokeh(distance-fabs(shift*distance), x, y);
+ if (shift<0) {
+ color[0] = insideBokehMax;
+ color[1] = insideBokehMed;
+ color[2] = insideBokehMin;
+ }
+ else {
+ color[0] = insideBokehMin;
+ color[1] = insideBokehMed;
+ color[2] = insideBokehMax;
+ }
+ color[3] = 1.0f;
+}
+
+void BokehImageOperation::deinitExecution()
+{
+ if (deleteData) {
+ if (data) {
+ delete data;
+ data = NULL;
+ }
+ }
+}
+
+void BokehImageOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ resolution[0] = 512;
+ resolution[1] = 512;
+}
diff --git a/source/blender/compositor/operations/COM_BokehImageOperation.h b/source/blender/compositor/operations/COM_BokehImageOperation.h
new file mode 100644
index 00000000000..516cc1da4f0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BokehImageOperation.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehImageOperation_h
+#define _COM_BokehImageOperation_h
+#include "COM_NodeOperation.h"
+
+
+class BokehImageOperation : public NodeOperation {
+private:
+ NodeBokehImage *data;
+
+ float center[2];
+ float centerX;
+ float centerY;
+ float inverseRounding;
+ float circularDistance;
+ float flapRad;
+ float flapRadAdd;
+
+ bool deleteData;
+
+ void detemineStartPointOfFlap(float r[2], int flapNumber, float distance);
+ float isInsideBokeh(float distance, float x, float y);
+public:
+ BokehImageOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ void setData(NodeBokehImage *data) {this->data = data;}
+ void deleteDataOnFinish() {this->deleteData = true;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_BoxMaskOperation.cpp b/source/blender/compositor/operations/COM_BoxMaskOperation.cpp
new file mode 100644
index 00000000000..0244be4cad3
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BoxMaskOperation.cpp
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BoxMaskOperation.h"
+#include "BLI_math.h"
+#include "DNA_node_types.h"
+
+BoxMaskOperation::BoxMaskOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputMask = NULL;
+ this->inputValue = NULL;
+ this->cosine = 0.0f;
+ this->sine = 0.0f;
+}
+void BoxMaskOperation::initExecution()
+{
+ this->inputMask = this->getInputSocketReader(0);
+ this->inputValue = this->getInputSocketReader(1);
+ const double rad = DEG2RAD(this->data->rotation);
+ this->cosine = cos(rad);
+ this->sine = sin(rad);
+ this->aspectRatio = ((float)this->getWidth())/this->getHeight();
+}
+
+void BoxMaskOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputMask[4];
+ float inputValue[4];
+
+ float rx = x/this->getWidth();
+ float ry = y/this->getHeight();
+
+ const float dy = (ry - this->data->y)/this->aspectRatio;
+ const float dx = rx - this->data->x;
+ rx = this->data->x+(this->cosine*dx + this->sine*dy);
+ ry = this->data->y+(-this->sine*dx + this->cosine*dy);
+
+ this->inputMask->read(inputMask, x, y, sampler, inputBuffers);
+ this->inputValue->read(inputValue, x, y, sampler, inputBuffers);
+
+ float halfHeight = (this->data->height)/2.0f;
+ float halfWidth = this->data->width/2.0f;
+ bool inside = rx > this->data->x-halfWidth
+ && rx < this->data->x+halfWidth
+ && ry > this->data->y-halfHeight
+ && ry < this->data->y+halfHeight;
+
+ switch (this->maskType) {
+ case CMP_NODE_MASKTYPE_ADD:
+ if (inside) {
+ color[0] = max(inputMask[0],inputValue[0]);
+ }
+ else {
+ color[0] = inputMask[0];
+ }
+ break;
+ case CMP_NODE_MASKTYPE_SUBTRACT:
+ if (inside) {
+ color[0] = inputMask[0]-inputValue[0];
+ CLAMP(color[0], 0, 1);
+ }
+ else {
+ color[0] = inputMask[0];
+ }
+ break;
+ case CMP_NODE_MASKTYPE_MULTIPLY:
+ if (inside) {
+ color[0] = inputMask[0]*inputValue[0];
+ }
+ else {
+ color[0] = 0;
+ }
+ break;
+ case CMP_NODE_MASKTYPE_NOT:
+ if (inside) {
+ if (inputMask[0]>0.0f) {
+ color[0] = 0;
+ }
+ else {
+ color[0] = inputValue[0];
+ }
+ }
+ else {
+ color[0] = inputMask[0];
+ }
+ break;
+ }
+
+
+}
+
+void BoxMaskOperation::deinitExecution()
+{
+ this->inputMask = NULL;
+ this->inputValue = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_BoxMaskOperation.h b/source/blender/compositor/operations/COM_BoxMaskOperation.h
new file mode 100644
index 00000000000..c3af95578d4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BoxMaskOperation.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BoxMaskOperation_h
+#define _COM_BoxMaskOperation_h
+#include "COM_NodeOperation.h"
+
+
+class BoxMaskOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputMask;
+ SocketReader * inputValue;
+
+ float sine;
+ float cosine;
+ float aspectRatio;
+ int maskType;
+
+ NodeBoxMask *data;
+public:
+ BoxMaskOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeBoxMask *data) {this->data = data;}
+
+ void setMaskType(int maskType) {this->maskType = maskType;}
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_BrightnessOperation.cpp b/source/blender/compositor/operations/COM_BrightnessOperation.cpp
new file mode 100644
index 00000000000..a4396a43cf7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BrightnessOperation.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_BrightnessOperation.h"
+
+BrightnessOperation::BrightnessOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+}
+void BrightnessOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ this->inputBrightnessProgram = this->getInputSocketReader(1);
+ this->inputContrastProgram = this->getInputSocketReader(2);
+}
+
+void BrightnessOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ float a, b;
+ float inputBrightness[4];
+ float inputContrast[4];
+ this->inputProgram->read(inputValue, x, y, sampler, inputBuffers);
+ this->inputBrightnessProgram->read(inputBrightness, x, y, sampler, inputBuffers);
+ this->inputContrastProgram->read(inputContrast, x, y, sampler, inputBuffers);
+ float brightness = inputBrightness[0];
+ float contrast = inputContrast[0];
+ brightness /= 100.0f;
+ float delta = contrast / 200.0f;
+ a = 1.0f - delta * 2.0f;
+ /*
+ * The algorithm is by Werner D. Streidt
+ * (http://visca.com/ffactory/archives/5-99/msg00021.html)
+ * Extracted of OpenCV demhist.c
+ */
+ if (contrast > 0) {
+ a = 1.0f / a;
+ b = a * (brightness - delta);
+ }
+ else {
+ delta *= -1;
+ b = a * (brightness + delta);
+ }
+
+ color[0] = a*inputValue[0]+b;
+ color[1] = a*inputValue[1]+b;
+ color[2] = a*inputValue[2]+b;
+ color[3] = inputValue[3];
+}
+
+void BrightnessOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+ this->inputBrightnessProgram = NULL;
+ this->inputContrastProgram = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_BrightnessOperation.h b/source/blender/compositor/operations/COM_BrightnessOperation.h
new file mode 100644
index 00000000000..0c718a8b131
--- /dev/null
+++ b/source/blender/compositor/operations/COM_BrightnessOperation.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BrightnessOperation_h
+#define _COM_BrightnessOperation_h
+#include "COM_NodeOperation.h"
+
+
+class BrightnessOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputProgram;
+ SocketReader *inputBrightnessProgram;
+ SocketReader *inputContrastProgram;
+
+public:
+ BrightnessOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp b/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
new file mode 100644
index 00000000000..a3438cea27b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CalculateMeanOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+
+
+CalculateMeanOperation::CalculateMeanOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->imageReader = NULL;
+ this->iscalculated = false;
+ this->setting = 1;
+ this->setComplex(true);
+}
+void CalculateMeanOperation::initExecution()
+{
+ this->imageReader = this->getInputSocketReader(0);
+ this->iscalculated = false;
+ NodeOperation::initMutex();
+}
+
+void CalculateMeanOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data)
+{
+ color[0] = this->result;
+}
+
+void CalculateMeanOperation::deinitExecution()
+{
+ this->imageReader = NULL;
+ NodeOperation::deinitMutex();
+}
+
+bool CalculateMeanOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti imageInput;
+ if (iscalculated) {
+ return false;
+ }
+ NodeOperation *operation = getInputOperation(0);
+ imageInput.xmax = operation->getWidth();
+ imageInput.xmin = 0;
+ imageInput.ymax = operation->getHeight();
+ imageInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&imageInput, readOperation, output) ) {
+ return true;
+ }
+ return false;
+}
+
+void *CalculateMeanOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ BLI_mutex_lock(getMutex());
+ if (!this->iscalculated) {
+ MemoryBuffer *tile = (MemoryBuffer*)imageReader->initializeTileData(rect, memoryBuffers);
+ calculateMean(tile);
+ this->iscalculated = true;
+ }
+ BLI_mutex_unlock(getMutex());
+ return NULL;
+}
+
+void CalculateMeanOperation::calculateMean(MemoryBuffer * tile)
+{
+ this->result = 0.0f;
+ float *buffer = tile->getBuffer();
+ int size = tile->getWidth()*tile->getHeight();
+ int pixels = 0;
+ float sum;
+ for (int i = 0, offset = 0 ; i < size ; i ++, offset +=4) {
+ if (buffer[offset+3] > 0) {
+ pixels ++;
+
+ switch (this->setting)
+ {
+ case 1:
+ {
+ sum += buffer[offset]*0.35f + buffer[offset+1]*0.45f + buffer[offset+2]*0.2f;
+ break;
+ }
+ case 2:
+ {
+ sum+= buffer[offset];
+ break;
+ }
+ case 3:
+ {
+ sum+= buffer[offset+1];
+ break;
+ }
+ case 4:
+ {
+ sum+= buffer[offset+2];
+ break;
+ }
+ case 5:
+ {
+ float yuv[3];
+ rgb_to_yuv(buffer[offset], buffer[offset+1], buffer[offset+2], &yuv[0], &yuv[1], &yuv[2]);
+ sum+=yuv[0];
+ break;
+ }
+ }
+ }
+ }
+ this->result = sum / pixels;
+}
diff --git a/source/blender/compositor/operations/COM_CalculateMeanOperation.h b/source/blender/compositor/operations/COM_CalculateMeanOperation.h
new file mode 100644
index 00000000000..b21743aa8bc
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CalculateMeanOperation.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CalculateMeanOperation_h
+#define _COM_CalculateMeanOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief base class of CalculateMean, implementing the simple CalculateMean
+ * @ingroup operation
+ */
+class CalculateMeanOperation : public NodeOperation {
+protected:
+ /**
+ * @brief Cached reference to the reader
+ */
+ SocketReader * imageReader;
+
+ bool iscalculated;
+ float result;
+ int setting;
+
+public:
+ CalculateMeanOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void setSetting(int setting) {this->setting = setting;}
+
+protected:
+ void calculateMean(MemoryBuffer *tile);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
new file mode 100644
index 00000000000..651c6674fdb
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
@@ -0,0 +1,97 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CalculateStandardDeviationOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+
+
+CalculateStandardDeviationOperation::CalculateStandardDeviationOperation(): CalculateMeanOperation()
+{
+}
+
+void CalculateStandardDeviationOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data)
+{
+ color[0] = this->standardDeviation;
+}
+
+void *CalculateStandardDeviationOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ BLI_mutex_lock(getMutex());
+ if (!this->iscalculated) {
+ MemoryBuffer *tile = (MemoryBuffer*)imageReader->initializeTileData(rect, memoryBuffers);
+ CalculateMeanOperation::calculateMean(tile);
+ this->standardDeviation = 0.0f;
+ float *buffer = tile->getBuffer();
+ int size = tile->getWidth()*tile->getHeight();
+ int pixels = 0;
+ float sum;
+ float mean = this->result;
+ for (int i = 0, offset = 0 ; i < size ; i ++, offset +=4) {
+ if (buffer[offset+3] > 0) {
+ pixels ++;
+
+ switch (this->setting)
+ {
+ case 1:
+ {
+ float value = buffer[offset]*0.35f + buffer[offset+1]*0.45f + buffer[offset+2]*0.2f;
+ sum+=(value-mean)*(value-mean);
+ break;
+ }
+ case 2:
+ {
+ float value = buffer[offset];
+ sum+=value;
+ sum+=(value-mean)*(value-mean);
+ break;
+ }
+ case 3:
+ {
+ float value = buffer[offset+1];
+ sum+=value;
+ sum+=(value-mean)*(value-mean);
+ break;
+ }
+ case 4:
+ {
+ float value = buffer[offset+2];
+ sum+=value;
+ sum+=(value-mean)*(value-mean);
+ }
+ case 5:
+ {
+ float yuv[3];
+ rgb_to_yuv(buffer[offset], buffer[offset+1], buffer[offset+2], &yuv[0], &yuv[1], &yuv[2]);
+ sum+=(yuv[0]-mean)*(yuv[0]-mean);
+ break;
+ }
+ }
+ }
+ }
+ this->standardDeviation = sqrt(sum / (float)(pixels-1));
+ this->iscalculated = true;
+ }
+ BLI_mutex_unlock(getMutex());
+ return NULL;
+}
diff --git a/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h
new file mode 100644
index 00000000000..05c94401c86
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CalculateStandardDeviationOperation_h
+#define _COM_CalculateStandardDeviationOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+#include "COM_CalculateMeanOperation.h"
+/**
+ * @brief base class of CalculateStandardDeviation, implementing the simple CalculateStandardDeviation
+ * @ingroup operation
+ */
+class CalculateStandardDeviationOperation : public CalculateMeanOperation {
+protected:
+ float standardDeviation;
+
+public:
+ CalculateStandardDeviationOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp b/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp
new file mode 100644
index 00000000000..9b7f87e38bc
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ChangeHSVOperation.h"
+
+ChangeHSVOperation::ChangeHSVOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ChangeHSVOperation::initExecution()
+{
+ this->inputOperation = getInputSocketReader(0);
+}
+
+void ChangeHSVOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
+void ChangeHSVOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+
+ inputOperation->read(inputColor1, x, y, sampler, inputBuffers);
+
+ outputValue[0] = inputColor1[0] + (this->hue - 0.5f);
+ if (outputValue[0]>1.0f) outputValue[0]-=1.0; else if (outputValue[0]<0.0) outputValue[0]+= 1.0;
+ outputValue[1] = inputColor1[1] * this->saturation;
+ outputValue[2] = inputColor1[2] * this->value;
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_ChangeHSVOperation.h b/source/blender/compositor/operations/COM_ChangeHSVOperation.h
new file mode 100644
index 00000000000..a89487f9d7b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ChangeHSVOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ChangeHSVOperation_h
+#define _COM_ChangeHSVOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ChangeHSVOperation : public NodeOperation {
+private:
+ SocketReader * inputOperation;
+
+ float hue;
+ float saturation;
+ float value;
+
+public:
+ /**
+ * Default constructor
+ */
+ ChangeHSVOperation();
+
+ void initExecution();
+ void deinitExecution();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void setHue(float hue) {this->hue = hue;}
+ void setSaturation(float saturation) {this->saturation = saturation;}
+ void setValue(float value) {this->value = value;}
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp b/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp
new file mode 100644
index 00000000000..70bfc8f8cfa
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ChannelMatteOperation.h"
+#include "BLI_math.h"
+
+ChannelMatteOperation::ChannelMatteOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addOutputSocket(COM_DT_VALUE);
+
+ inputImageProgram = NULL;
+}
+
+void ChannelMatteOperation::initExecution()
+{
+ this->inputImageProgram = this->getInputSocketReader(0);
+
+ this->limit_range = this->limit_max - this->limit_min;
+
+ switch (this->limit_method) {
+ /* SINGLE */
+ case 0: {
+ /* 123 / RGB / HSV / YUV / YCC */
+ const int matte_channel=this->matte_channel-1;
+ const int limit_channel=this->limit_channel-1;
+ this->ids[0] = matte_channel;
+ this->ids[1] = limit_channel;
+ this->ids[2] = limit_channel;
+ break;
+ }
+ /* MAX */
+ case 1: {
+ switch (this->matte_channel) {
+ case 1: {
+ this->ids[0] = 0;
+ this->ids[1] = 1;
+ this->ids[2] = 2;
+ break;
+ }
+ case 2: {
+ this->ids[0] = 1;
+ this->ids[1] = 0;
+ this->ids[2] = 2;
+ break;
+ }
+ case 3: {
+ this->ids[0] = 2;
+ this->ids[1] = 0;
+ this->ids[2] = 1;
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+void ChannelMatteOperation::deinitExecution()
+{
+ this->inputImageProgram = NULL;
+}
+
+void ChannelMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inColor[4];
+ float alpha;
+
+ const float limit_max = this->limit_max;
+ const float limit_min = this->limit_min;
+ const float limit_range = this->limit_range;
+
+ this->inputImageProgram->read(inColor, x, y, sampler, inputBuffers);
+
+ /* matte operation */
+ alpha = inColor[this->ids[0]] - max(inColor[this->ids[1]], inColor[this->ids[2]]);
+
+ /* flip because 0.0 is transparent, not 1.0 */
+ alpha = 1.f - alpha;
+
+ /* test range*/
+ if (alpha > limit_max) {
+ alpha = inColor[3]; /*whatever it was prior */
+ }
+ else if (alpha < limit_min) {
+ alpha = 0.f;
+ }
+ else {/*blend */
+ alpha = (alpha - limit_min) / limit_range;
+ }
+
+ /* store matte(alpha) value in [0] to go with
+ * COM_SetAlphaOperation and the Value output
+ */
+
+ /* don't make something that was more transparent less transparent */
+ outputValue[0] = min(alpha, inColor[3]);
+}
+
diff --git a/source/blender/compositor/operations/COM_ChannelMatteOperation.h b/source/blender/compositor/operations/COM_ChannelMatteOperation.h
new file mode 100644
index 00000000000..a4b5f454f92
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ChannelMatteOperation.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ChannelMatteOperation_h
+#define _COM_ChannelMatteOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ChannelMatteOperation : public NodeOperation {
+private:
+ SocketReader *inputImageProgram;
+
+ int color_space; /* node->custom1 */
+ int matte_channel; /* node->custom2 */
+ int limit_method; /* node->algorithm */
+ int limit_channel; /* node->channel */
+ float limit_max; /* node->storage->t1 */
+ float limit_min; /* node->storage->t2 */
+
+ float limit_range;
+
+ /** ids to use for the operations (max and simple)
+ * alpha = in[ids[0]] - max(in[ids[1]], in[ids[2]])
+ * the simple operation is using:
+ * alpha = in[ids[0]] - in[ids[1]]
+ * but to use the same formula and operation for both we do:
+ * ids[2] = ids[1]
+ * alpha = in[ids[0]] - max(in[ids[1]], in[ids[2]])
+ */
+ int ids[3];
+public:
+ /**
+ * Default constructor
+ */
+ ChannelMatteOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeChroma *nodeChroma, const int custom2)
+ {
+ this->limit_max = nodeChroma->t1;
+ this->limit_min = nodeChroma->t2;
+ this->limit_method = nodeChroma->algorithm;
+ this->limit_channel = nodeChroma->channel;
+ this->matte_channel = custom2;
+ }
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp b/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp
new file mode 100644
index 00000000000..e082ffed2b6
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ChromaMatteOperation.h"
+#include "BLI_math.h"
+
+ChromaMatteOperation::ChromaMatteOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addInputSocket(COM_DT_COLOR);
+ addOutputSocket(COM_DT_VALUE);
+
+ inputImageProgram = NULL;
+ inputKeyProgram = NULL;
+}
+
+void ChromaMatteOperation::initExecution()
+{
+ this->inputImageProgram = this->getInputSocketReader(0);
+ this->inputKeyProgram = this->getInputSocketReader(1);
+}
+
+void ChromaMatteOperation::deinitExecution()
+{
+ this->inputImageProgram = NULL;
+ this->inputKeyProgram = NULL;
+}
+
+void ChromaMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inKey[4];
+ float inImage[4];
+
+ const float acceptance = this->settings->t1; /* in radians */
+ const float cutoff = this->settings->t2; /* in radians */
+ const float gain = this->settings->fstrength;
+
+ float x_angle, z_angle, alpha;
+ float theta, beta;
+ float kfg;
+
+ this->inputKeyProgram->read(inKey, x, y, sampler, inputBuffers);
+ this->inputImageProgram->read(inImage, x, y, sampler, inputBuffers);
+
+ /* store matte(alpha) value in [0] to go with
+ * COM_SetAlphaOperation and the Value output
+ */
+
+ /* Algorithm from book "Video Demistified," does not include the spill reduction part */
+ /* find theta, the angle that the color space should be rotated based on key*/
+ theta=atan2(inKey[2], inKey[1]);
+
+ /*rotate the cb and cr into x/z space */
+ x_angle=inImage[1]*cosf(theta)+inImage[2]*sinf(theta);
+ z_angle=inImage[2]*cosf(theta)-inImage[1]*sinf(theta);
+
+ /*if within the acceptance angle */
+ /* if kfg is <0 then the pixel is outside of the key color */
+ kfg = x_angle-(fabsf(z_angle)/tanf(acceptance/2.f));
+
+ if (kfg>0.f) { /* found a pixel that is within key color */
+ alpha=(1.f-kfg)*(gain);
+
+ beta=atan2(z_angle,x_angle);
+
+ /* if beta is within the cutoff angle */
+ if (fabsf(beta) < (cutoff/2.f)) {
+ alpha=0.f;
+ }
+
+ /* don't make something that was more transparent less transparent */
+ if (alpha<inImage[3]) {
+ outputValue[0]=alpha;
+ }
+ else {
+ outputValue[0]=inImage[3];
+ }
+ }
+ else { /*pixel is outside key color */
+ outputValue[0]=inImage[3]; /* make pixel just as transparent as it was before */
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_ChromaMatteOperation.h b/source/blender/compositor/operations/COM_ChromaMatteOperation.h
new file mode 100644
index 00000000000..9c5a5ff997b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ChromaMatteOperation.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ChromaMatteOperation_h
+#define _COM_ChromaMatteOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ChromaMatteOperation : public NodeOperation {
+private:
+ NodeChroma *settings;
+ SocketReader *inputImageProgram;
+ SocketReader *inputKeyProgram;
+public:
+ /**
+ * Default constructor
+ */
+ ChromaMatteOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeChroma *nodeChroma) {this->settings = nodeChroma;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp
new file mode 100644
index 00000000000..cc535cd95df
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorBalanceASCCDLOperation.h"
+#include "BLI_math.h"
+
+inline float colorbalance_cdl(float in, float offset, float power, float slope)
+{
+ float x = in * slope + offset;
+
+ /* prevent NaN */
+ CLAMP(x, 0.0, 1.0);
+
+ return powf(x, power);
+}
+
+ColorBalanceASCCDLOperation::ColorBalanceASCCDLOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputValueOperation = NULL;
+ this->inputColorOperation = NULL;
+ this->setResolutionInputSocketIndex(1);
+}
+
+void ColorBalanceASCCDLOperation::initExecution()
+{
+ this->inputValueOperation = this->getInputSocketReader(0);
+ this->inputColorOperation = this->getInputSocketReader(1);
+}
+
+void ColorBalanceASCCDLOperation::executePixel(float *outputColor, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ float value[4];
+
+ inputValueOperation->read(value, x, y, sampler, inputBuffers);
+ inputColorOperation->read(inputColor, x, y, sampler, inputBuffers);
+
+ float fac = value[0];
+ fac = min(1.0f, fac);
+ const float mfac = 1.0f - fac;
+
+ outputColor[0] = mfac*inputColor[0] + fac * colorbalance_cdl(inputColor[0], this->lift[0], this->gamma[0], this->gain[0]);
+ outputColor[1] = mfac*inputColor[1] + fac * colorbalance_cdl(inputColor[1], this->lift[1], this->gamma[1], this->gain[1]);
+ outputColor[2] = mfac*inputColor[2] + fac * colorbalance_cdl(inputColor[2], this->lift[2], this->gamma[2], this->gain[2]);
+ outputColor[3] = inputColor[3];
+
+}
+
+void ColorBalanceASCCDLOperation::deinitExecution()
+{
+ this->inputValueOperation = NULL;
+ this->inputColorOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h
new file mode 100644
index 00000000000..fb973e75c15
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorBalanceASCCDLOperation_h
+#define _COM_ColorBalanceASCCDLOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ColorBalanceASCCDLOperation : public NodeOperation {
+protected:
+ /**
+ * Prefetched reference to the inputProgram
+ */
+ SocketReader * inputValueOperation;
+ SocketReader * inputColorOperation;
+
+ float gain[3];
+ float lift[3];
+ float gamma[3];
+
+public:
+ /**
+ * Default constructor
+ */
+ ColorBalanceASCCDLOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setGain(float gain[3]) {
+ this->gain[0] = gain[0];
+ this->gain[1] = gain[1];
+ this->gain[2] = gain[2];
+ }
+ void setLift(float lift[3]) {
+ this->lift[0] = lift[0];
+ this->lift[1] = lift[1];
+ this->lift[2] = lift[2];
+ }
+ void setGamma(float gamma[3]) {
+ this->gamma[0] = gamma[0];
+ this->gamma[1] = gamma[1];
+ this->gamma[2] = gamma[2];
+ }
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp
new file mode 100644
index 00000000000..82958a7086e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorBalanceLGGOperation.h"
+#include "BLI_math.h"
+
+
+inline float colorbalance_lgg(float in, float lift_lgg, float gamma_inv, float gain)
+{
+ /* 1:1 match with the sequencer with linear/srgb conversions, the conversion isnt pretty
+ * but best keep it this way, sice testing for durian shows a similar calculation
+ * without lin/srgb conversions gives bad results (over-saturated shadows) with colors
+ * slightly below 1.0. some correction can be done but it ends up looking bad for shadows or lighter tones - campbell */
+ float x = (((linearrgb_to_srgb(in) - 1.0f) * lift_lgg) + 1.0f) * gain;
+
+ /* prevent NaN */
+ if (x < 0.f) x = 0.f;
+
+ return powf(srgb_to_linearrgb(x), gamma_inv);
+}
+
+ColorBalanceLGGOperation::ColorBalanceLGGOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputValueOperation = NULL;
+ this->inputColorOperation = NULL;
+ this->setResolutionInputSocketIndex(1);
+}
+
+void ColorBalanceLGGOperation::initExecution()
+{
+ this->inputValueOperation = this->getInputSocketReader(0);
+ this->inputColorOperation = this->getInputSocketReader(1);
+}
+
+void ColorBalanceLGGOperation::executePixel(float *outputColor, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ float value[4];
+
+ inputValueOperation->read(value, x, y, sampler, inputBuffers);
+ inputColorOperation->read(inputColor, x, y, sampler, inputBuffers);
+
+ float fac = value[0];
+ fac = min(1.0f, fac);
+ const float mfac = 1.0f - fac;
+
+ outputColor[0] = mfac*inputColor[0] + fac * colorbalance_lgg(inputColor[0], this->lift[0], this->gamma_inv[0], this->gain[0]);
+ outputColor[1] = mfac*inputColor[1] + fac * colorbalance_lgg(inputColor[1], this->lift[1], this->gamma_inv[1], this->gain[1]);
+ outputColor[2] = mfac*inputColor[2] + fac * colorbalance_lgg(inputColor[2], this->lift[2], this->gamma_inv[2], this->gain[2]);
+ outputColor[3] = inputColor[3];
+
+}
+
+void ColorBalanceLGGOperation::deinitExecution()
+{
+ this->inputValueOperation = NULL;
+ this->inputColorOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h
new file mode 100644
index 00000000000..e0df76cf2c5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorBalanceLGGOperation_h
+#define _COM_ColorBalanceLGGOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ColorBalanceLGGOperation : public NodeOperation {
+protected:
+ /**
+ * Prefetched reference to the inputProgram
+ */
+ SocketReader * inputValueOperation;
+ SocketReader * inputColorOperation;
+
+ float gain[3];
+ float lift[3];
+ float gamma_inv[3];
+
+public:
+ /**
+ * Default constructor
+ */
+ ColorBalanceLGGOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setGain(float gain[3]) {
+ this->gain[0] = gain[0];
+ this->gain[1] = gain[1];
+ this->gain[2] = gain[2];
+ }
+ void setLift(float lift[3]) {
+ this->lift[0] = lift[0];
+ this->lift[1] = lift[1];
+ this->lift[2] = lift[2];
+ }
+ void setGammaInv(float gamma_inv[3]) {
+ this->gamma_inv[0] = gamma_inv[0];
+ this->gamma_inv[1] = gamma_inv[1];
+ this->gamma_inv[2] = gamma_inv[2];
+ }
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp b/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp
new file mode 100644
index 00000000000..af28b776892
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorCorrectionOperation.h"
+#include "BLI_math.h"
+
+ColorCorrectionOperation::ColorCorrectionOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputImage = NULL;
+ this->inputMask = NULL;
+ this->redChannelEnabled = true;
+ this->greenChannelEnabled = true;
+ this->blueChannelEnabled = true;
+}
+void ColorCorrectionOperation::initExecution()
+{
+ this->inputImage = this->getInputSocketReader(0);
+ this->inputMask = this->getInputSocketReader(1);
+}
+
+void ColorCorrectionOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputImageColor[4];
+ float inputMask[4];
+ this->inputImage->read(inputImageColor, x, y, sampler, inputBuffers);
+ this->inputMask->read(inputMask, x, y, sampler, inputBuffers);
+
+ float level = (inputImageColor[0] + inputImageColor[1] + inputImageColor[2])/3.0f;
+ float contrast = this->data->master.contrast;
+ float saturation = this->data->master.saturation;
+ float gamma = this->data->master.gamma;
+ float gain = this->data->master.gain;
+ float lift = this->data->master.lift;
+ float r, g, b;
+
+ float value = inputMask[0];
+ value = min(1.0f, value);
+ const float mvalue = 1.0f - value;
+
+ float levelShadows = 0.0;
+ float levelMidtones = 0.0;
+ float levelHighlights = 0.0;
+#define MARGIN 0.10
+#define MARGIN_DIV (0.5/MARGIN)
+ if (level < this->data->startmidtones-MARGIN) {
+ levelShadows = 1.0f;
+ }
+ else if (level < this->data->startmidtones+MARGIN) {
+ levelMidtones = ((level-this->data->startmidtones)*MARGIN_DIV)+0.5;
+ levelShadows = 1.0 - levelMidtones;
+ }
+ else if (level < this->data->endmidtones-MARGIN) {
+ levelMidtones = 1.0f;
+ }
+ else if (level < this->data->endmidtones+MARGIN) {
+ levelHighlights = ((level-this->data->endmidtones)*MARGIN_DIV)+0.5;
+ levelMidtones = 1.0 - levelHighlights;
+ }
+ else {
+ levelHighlights = 1.0f;
+ }
+#undef MARGIN
+#undef MARGIN_DIV
+ contrast *= (levelShadows*this->data->shadows.contrast)+(levelMidtones*this->data->midtones.contrast)+(levelHighlights*this->data->highlights.contrast);
+ saturation *= (levelShadows*this->data->shadows.saturation)+(levelMidtones*this->data->midtones.saturation)+(levelHighlights*this->data->highlights.saturation);
+ gamma *= (levelShadows*this->data->shadows.gamma)+(levelMidtones*this->data->midtones.gamma)+(levelHighlights*this->data->highlights.gamma);
+ gain *= (levelShadows*this->data->shadows.gain)+(levelMidtones*this->data->midtones.gain)+(levelHighlights*this->data->highlights.gain);
+ lift += (levelShadows*this->data->shadows.lift)+(levelMidtones*this->data->midtones.lift)+(levelHighlights*this->data->highlights.lift);
+
+ r = inputImageColor[0];
+ g = inputImageColor[1];
+ b = inputImageColor[2];
+
+ float invgamma = 1.0f/gamma;
+ float luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;
+ r = (luma + saturation * (r - luma));
+ g = (luma + saturation * (g - luma));
+ b = (luma + saturation * (b - luma));
+
+ r = 0.5+((r-0.5)*contrast);
+ g = 0.5+((g-0.5)*contrast);
+ b = 0.5+((b-0.5)*contrast);
+
+ r = powf(r*gain+lift, invgamma);
+ g = powf(g*gain+lift, invgamma);
+ b = powf(b*gain+lift, invgamma);
+
+
+ // mix with mask
+ r = mvalue*inputImageColor[0] + value * r;
+ g = mvalue*inputImageColor[1] + value * g;
+ b = mvalue*inputImageColor[2] + value * b;
+
+ if (this->redChannelEnabled) {
+ output[0] = r;
+ }
+ else {
+ output[0] = inputImageColor[0];
+ }
+ if (this->greenChannelEnabled) {
+ output[1] = g;
+ }
+ else {
+ output[1] = inputImageColor[1];
+ }
+ if (this->blueChannelEnabled) {
+ output[2] = b;
+ }
+ else {
+ output[2] = inputImageColor[2];
+ }
+ output[3] = inputImageColor[3];
+}
+
+void ColorCorrectionOperation::deinitExecution()
+{
+ this->inputImage = NULL;
+ this->inputMask = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_ColorCorrectionOperation.h b/source/blender/compositor/operations/COM_ColorCorrectionOperation.h
new file mode 100644
index 00000000000..89107150ebd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorCorrectionOperation.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorCorrectionOperation_h
+#define _COM_ColorCorrectionOperation_h
+#include "COM_NodeOperation.h"
+
+
+class ColorCorrectionOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputImage;
+ SocketReader *inputMask;
+ NodeColorCorrection *data;
+
+ bool redChannelEnabled;
+ bool greenChannelEnabled;
+ bool blueChannelEnabled;
+
+public:
+ ColorCorrectionOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeColorCorrection * data) {this->data = data;}
+ void setRedChannelEnabled(bool enabled) {this->redChannelEnabled = enabled;}
+ void setGreenChannelEnabled(bool enabled) {this->greenChannelEnabled = enabled;}
+ void setBlueChannelEnabled(bool enabled) {this->blueChannelEnabled = enabled;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorCurveOperation.cpp b/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
new file mode 100644
index 00000000000..8aee54013b1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorCurveOperation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ #include "BKE_colortools.h"
+#ifdef __cplusplus
+}
+#endif
+
+ColorCurveOperation::ColorCurveOperation(): CurveBaseOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputFacProgram = NULL;
+ this->inputImageProgram = NULL;
+ this->inputBlackProgram = NULL;
+ this->inputWhiteProgram = NULL;
+
+ this->setResolutionInputSocketIndex(1);
+}
+void ColorCurveOperation::initExecution()
+{
+ CurveBaseOperation::initExecution();
+ this->inputFacProgram = this->getInputSocketReader(0);
+ this->inputImageProgram = this->getInputSocketReader(1);
+ this->inputBlackProgram = this->getInputSocketReader(2);
+ this->inputWhiteProgram = this->getInputSocketReader(3);
+
+ curvemapping_premultiply(this->curveMapping, 0);
+
+}
+
+void ColorCurveOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float black[4];
+ float white[4];
+ float fac[4];
+ float image[4];
+
+ this->inputBlackProgram->read(black, x, y, sampler, inputBuffers);
+ this->inputWhiteProgram->read(white, x, y, sampler, inputBuffers);
+
+ curvemapping_set_black_white(this->curveMapping, black, white);
+
+ this->inputFacProgram->read(fac, x, y, sampler, inputBuffers);
+ this->inputImageProgram->read(image, x, y, sampler, inputBuffers);
+
+ if (fac[0] >= 1.0)
+ curvemapping_evaluate_premulRGBF(this->curveMapping, color, image);
+ else if (*fac<=0.0) {
+ color[0] = image[0];
+ color[1] = image[1];
+ color[2] = image[2];
+ }
+ else {
+ float col[4], mfac = 1.0f-*fac;
+ curvemapping_evaluate_premulRGBF(this->curveMapping, col, image);
+ color[0] = mfac*image[0] + *fac*col[0];
+ color[1] = mfac*image[1] + *fac*col[1];
+ color[2] = mfac*image[2] + *fac*col[2];
+ }
+ color[3] = image[3];
+}
+
+void ColorCurveOperation::deinitExecution()
+{
+ this->inputFacProgram = NULL;
+ this->inputImageProgram = NULL;
+ this->inputBlackProgram = NULL;
+ this->inputWhiteProgram = NULL;
+ curvemapping_premultiply(this->curveMapping, 1);
+}
diff --git a/source/blender/compositor/operations/COM_ColorCurveOperation.h b/source/blender/compositor/operations/COM_ColorCurveOperation.h
new file mode 100644
index 00000000000..15f9fd25e81
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorCurveOperation.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorCurveOperation_h
+#define _COM_ColorCurveOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_color_types.h"
+#include "COM_CurveBaseOperation.h"
+
+class ColorCurveOperation : public CurveBaseOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputFacProgram;
+ SocketReader * inputImageProgram;
+ SocketReader * inputBlackProgram;
+ SocketReader * inputWhiteProgram;
+public:
+ ColorCurveOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorMatteOperation.cpp b/source/blender/compositor/operations/COM_ColorMatteOperation.cpp
new file mode 100644
index 00000000000..7706559be00
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorMatteOperation.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ColorMatteOperation.h"
+#include "BLI_math.h"
+
+ColorMatteOperation::ColorMatteOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addInputSocket(COM_DT_COLOR);
+ addOutputSocket(COM_DT_VALUE);
+
+ inputImageProgram = NULL;
+ inputKeyProgram = NULL;
+}
+
+void ColorMatteOperation::initExecution()
+{
+ this->inputImageProgram = this->getInputSocketReader(0);
+ this->inputKeyProgram = this->getInputSocketReader(1);
+}
+
+void ColorMatteOperation::deinitExecution()
+{
+ this->inputImageProgram = NULL;
+ this->inputKeyProgram = NULL;
+}
+
+void ColorMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inColor[4];
+ float inKey[4];
+
+ const float hue = this->settings->t1;
+ const float sat = this->settings->t2;
+ const float val = this->settings->t3;
+
+ float h_wrap;
+
+ this->inputImageProgram->read(inColor, x, y, sampler, inputBuffers);
+ this->inputKeyProgram->read(inKey, x, y, sampler, inputBuffers);
+
+
+ /* store matte(alpha) value in [0] to go with
+ * COM_SetAlphaOperation and the Value output
+ */
+
+ if (
+ /* do hue last because it needs to wrap, and does some more checks */
+
+ /* sat */ (fabsf(inColor[1] - inKey[1]) < sat) &&
+ /* val */ (fabsf(inColor[2] - inKey[2]) < val) &&
+
+ /* multiply by 2 because it wraps on both sides of the hue,
+ * otherwise 0.5 would key all hue's */
+
+ /* hue */ ((h_wrap = 2.f * fabsf(inColor[0]-inKey[0])) < hue || (2.f - h_wrap) < hue)
+ ) {
+ outputValue[0] = 0.0f; /*make transparent*/
+ }
+
+ else { /*pixel is outside key color */
+ outputValue[0] = inColor[3]; /* make pixel just as transparent as it was before */
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_ColorMatteOperation.h b/source/blender/compositor/operations/COM_ColorMatteOperation.h
new file mode 100644
index 00000000000..904a51128c8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorMatteOperation.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ColorMatteOperation_h
+#define _COM_ColorMatteOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ColorMatteOperation : public NodeOperation {
+private:
+ NodeChroma *settings;
+ SocketReader *inputImageProgram;
+ SocketReader *inputKeyProgram;
+public:
+ /**
+ * Default constructor
+ */
+ ColorMatteOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeChroma *nodeChroma) {this->settings = nodeChroma;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorRampOperation.cpp b/source/blender/compositor/operations/COM_ColorRampOperation.cpp
new file mode 100644
index 00000000000..992bf3b9d1d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorRampOperation.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorRampOperation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ #include "BKE_texture.h"
+#ifdef __cplusplus
+}
+#endif
+
+ColorRampOperation::ColorRampOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputProgram = NULL;
+ this->colorBand = NULL;
+}
+void ColorRampOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void ColorRampOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float values[4];
+
+ this->inputProgram->read(values, x, y, sampler, inputBuffers);
+ do_colorband(this->colorBand, values[0], color);
+}
+
+void ColorRampOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ColorRampOperation.h b/source/blender/compositor/operations/COM_ColorRampOperation.h
new file mode 100644
index 00000000000..8b8635cc5cd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorRampOperation.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorRampOperation_h
+#define _COM_ColorRampOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_texture_types.h"
+
+class ColorRampOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+ ColorBand *colorBand;
+public:
+ ColorRampOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setColorBand(ColorBand *colorBand) {this->colorBand = colorBand;}
+
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ColorSpillOperation.cpp b/source/blender/compositor/operations/COM_ColorSpillOperation.cpp
new file mode 100644
index 00000000000..56141efe681
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorSpillOperation.cpp
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This Reader is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This Reader is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this Reader; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ColorSpillOperation.h"
+#include "BLI_math.h"
+#define avg(a,b) ((a+b)/2)
+
+ColorSpillOperation::ColorSpillOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addInputSocket(COM_DT_VALUE);
+ addOutputSocket(COM_DT_COLOR);
+
+ inputImageReader = NULL;
+ inputFacReader = NULL;
+ this->spillChannel = 1; // GREEN
+}
+
+void ColorSpillOperation::initExecution()
+{
+ this->inputImageReader = this->getInputSocketReader(0);
+ this->inputFacReader = this->getInputSocketReader(1);
+ if (spillChannel == 0) {
+ rmut = -1.0f;
+ gmut = 1.0f;
+ bmut = 1.0f;
+ this->channel2 = 1;
+ this->channel3 = 2;
+ if (settings->unspill == 0) {
+ settings->uspillr = 1.0f;
+ settings->uspillg = 0.0f;
+ settings->uspillb = 0.0f;
+ }
+ }
+ else if (spillChannel == 1) {
+ rmut = 1.0f;
+ gmut = -1.0f;
+ bmut = 1.0f;
+ this->channel2 = 0;
+ this->channel3 = 2;
+ if (settings->unspill == 0) {
+ settings->uspillr = 0.0f;
+ settings->uspillg = 1.0f;
+ settings->uspillb = 0.0f;
+ }
+ }
+ else {
+ rmut = 1.0f;
+ gmut = 1.0f;
+ bmut = -1.0f;
+
+ this->channel2 = 0;
+ this->channel3 = 1;
+ if (settings->unspill == 0) {
+ settings->uspillr = 0.0f;
+ settings->uspillg = 0.0f;
+ settings->uspillb = 1.0f;
+ }
+ }
+}
+
+void ColorSpillOperation::deinitExecution()
+{
+ this->inputImageReader = NULL;
+ this->inputFacReader = NULL;
+}
+
+void ColorSpillOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float fac[4];
+ float input[4];
+ float map;
+ this->inputFacReader->read(fac, x, y, sampler, inputBuffers);
+ this->inputImageReader->read(input, x, y, sampler, inputBuffers);
+ float rfac = min(1.0f, fac[0]);
+ map = calculateMapValue(rfac, input);
+ if (map>0) {
+ outputValue[0]=input[0]+rmut*(settings->uspillr*map);
+ outputValue[1]=input[1]+gmut*(settings->uspillg*map);
+ outputValue[2]=input[2]+bmut*(settings->uspillb*map);
+ outputValue[3]=input[3];
+ }
+ else {
+ outputValue[0]=input[0];
+ outputValue[1]=input[1];
+ outputValue[2]=input[2];
+ outputValue[3]=input[3];
+ }
+}
+float ColorSpillOperation::calculateMapValue(float fac, float *input)
+{
+ return fac * (input[this->spillChannel]-(this->settings->limscale*input[settings->limchan]));
+}
+
+
+float ColorSpillAverageOperation::calculateMapValue(float fac, float *input)
+{
+ return fac * (input[this->spillChannel]-(this->settings->limscale*avg(input[this->channel2], input[this->channel3])));
+}
diff --git a/source/blender/compositor/operations/COM_ColorSpillOperation.h b/source/blender/compositor/operations/COM_ColorSpillOperation.h
new file mode 100644
index 00000000000..69f51882496
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ColorSpillOperation.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ColorSpillOperation_h
+#define _COM_ColorSpillOperation_h
+#include "COM_NodeOperation.h"
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ColorSpillOperation : public NodeOperation {
+protected:
+ NodeColorspill *settings;
+ SocketReader *inputImageReader;
+ SocketReader *inputFacReader;
+ int spillChannel;
+ int channel2;
+ int channel3;
+ float rmut, gmut, bmut;
+public:
+ /**
+ * Default constructor
+ */
+ ColorSpillOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeColorspill *nodeColorSpill) {this->settings = nodeColorSpill;}
+ void setSpillChannel(int channel) {this->spillChannel = channel;}
+
+ float calculateMapValue(float fac, float *input);
+};
+
+class ColorSpillAverageOperation: public ColorSpillOperation {
+public:
+ float calculateMapValue(float fac, float *input);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp b/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp
new file mode 100644
index 00000000000..6b64934f0b8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CombineChannelsOperation.h"
+#include <stdio.h>
+
+CombineChannelsOperation::CombineChannelsOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputChannel1Operation = NULL;
+ this->inputChannel2Operation = NULL;
+ this->inputChannel3Operation = NULL;
+ this->inputChannel4Operation = NULL;
+}
+void CombineChannelsOperation::initExecution()
+{
+ this->inputChannel1Operation = this->getInputSocketReader(0);
+ this->inputChannel2Operation = this->getInputSocketReader(1);
+ this->inputChannel3Operation = this->getInputSocketReader(2);
+ this->inputChannel4Operation = this->getInputSocketReader(3);
+}
+
+void CombineChannelsOperation::deinitExecution()
+{
+ this->inputChannel1Operation = NULL;
+ this->inputChannel2Operation = NULL;
+ this->inputChannel3Operation = NULL;
+ this->inputChannel4Operation = NULL;
+}
+
+
+void CombineChannelsOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float input[4];
+ /// @todo: remove if statements
+ if (this->inputChannel1Operation) {
+ this->inputChannel1Operation->read(input, x, y, sampler, inputBuffers);
+ color[0] = input[0];
+ }
+ if (this->inputChannel2Operation) {
+ this->inputChannel2Operation->read(input, x, y, sampler, inputBuffers);
+ color[1] = input[0];
+ }
+ if (this->inputChannel3Operation) {
+ this->inputChannel3Operation->read(input, x, y, sampler, inputBuffers);
+ color[2] = input[0];
+ }
+ if (this->inputChannel4Operation) {
+ this->inputChannel4Operation->read(input, x, y, sampler, inputBuffers);
+ color[3] = input[0];
+ }
+}
diff --git a/source/blender/compositor/operations/COM_CombineChannelsOperation.h b/source/blender/compositor/operations/COM_CombineChannelsOperation.h
new file mode 100644
index 00000000000..18dd1fd2ec9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CombineChannelsOperation.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CombineChannelsOperation_h_
+#define _COM_CombineChannelsOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class CombineChannelsOperation: public NodeOperation {
+private:
+ SocketReader *inputChannel1Operation;
+ SocketReader *inputChannel2Operation;
+ SocketReader *inputChannel3Operation;
+ SocketReader *inputChannel4Operation;
+public:
+ CombineChannelsOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_CompositorOperation.cpp b/source/blender/compositor/operations/COM_CompositorOperation.cpp
new file mode 100644
index 00000000000..5a919965ede
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CompositorOperation.cpp
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CompositorOperation.h"
+#include "COM_SocketConnection.h"
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "BKE_image.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+ #include "RE_shader_ext.h"
+ #include "RE_render_ext.h"
+ #include "MEM_guardedalloc.h"
+ #include "render_types.h"
+}
+#include "PIL_time.h"
+
+
+CompositorOperation::CompositorOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+
+ this->setScene(NULL);
+ this->outputBuffer = NULL;
+ this->imageInput = NULL;
+ this->alphaInput = NULL;
+}
+
+void CompositorOperation::initExecution()
+{
+ // When initializing the tree during initial load the width and height can be zero.
+ this->imageInput = getInputSocketReader(0);
+ this->alphaInput = getInputSocketReader(1);
+ if (this->getWidth() * this->getHeight() != 0) {
+ this->outputBuffer=(float*) MEM_callocN(this->getWidth()*this->getHeight()*4*sizeof(float), "CompositorOperation");
+ }
+}
+
+void CompositorOperation::deinitExecution()
+{
+ if (tree->test_break && !tree->test_break(tree->tbh)) {
+ const Scene * scene = this->scene;
+ Render *re = RE_GetRender(scene->id.name);
+ RenderResult *rr = RE_AcquireResultWrite(re);
+ if (rr) {
+ if (rr->rectf != NULL) {
+ MEM_freeN(rr->rectf);
+ }
+ rr->rectf = outputBuffer;
+ }
+ if (re) {
+ RE_ReleaseResult(re);
+ re = NULL;
+ }
+ BKE_image_signal(BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), NULL, IMA_SIGNAL_FREE);
+ }
+ else {
+ if (this->outputBuffer) {
+ MEM_freeN(this->outputBuffer);
+ }
+ }
+
+ this->outputBuffer = NULL;
+ this->imageInput = NULL;
+ this->alphaInput = NULL;
+}
+
+
+void CompositorOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers)
+{
+ float color[8]; // 7 is enough
+ float *buffer = this->outputBuffer;
+
+ if (!buffer) return;
+ int x1 = rect->xmin;
+ int y1 = rect->ymin;
+ int x2 = rect->xmax;
+ int y2 = rect->ymax;
+ int offset = (y1*this->getWidth() + x1 ) * 4;
+ int x;
+ int y;
+ bool breaked = false;
+
+ for (y = y1 ; y < y2 && (!breaked); y++) {
+ for (x = x1 ; x < x2 && (!breaked) ; x++) {
+ imageInput->read(color, x, y, COM_PS_NEAREST, memoryBuffers);
+ if (alphaInput != NULL) {
+ alphaInput->read(&(color[3]), x, y, COM_PS_NEAREST, memoryBuffers);
+ }
+ buffer[offset] = color[0];
+ buffer[offset+1] = color[1];
+ buffer[offset+2] = color[2];
+ buffer[offset+3] = color[3];
+ offset +=4;
+ if (tree->test_break && tree->test_break(tree->tbh)) {
+ breaked = true;
+ }
+ }
+ offset += (this->getWidth()-(x2-x1))*4;
+ }
+}
+
+void CompositorOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ int width = this->scene->r.xsch*this->scene->r.size/100;
+ int height = this->scene->r.ysch*this->scene->r.size/100;
+ preferredResolution[0] = width;
+ preferredResolution[1] = height;
+
+ NodeOperation::determineResolution(resolution, preferredResolution);
+
+ resolution[0] = width;
+ resolution[1] = height;
+}
diff --git a/source/blender/compositor/operations/COM_CompositorOperation.h b/source/blender/compositor/operations/COM_CompositorOperation.h
new file mode 100644
index 00000000000..41d43f896bb
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CompositorOperation.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CompositorOperation_h
+#define _COM_CompositorOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_scene_types.h"
+#include "BLI_rect.h"
+
+/**
+ * @brief Compositor output operation
+ */
+class CompositorOperation : public NodeOperation {
+private:
+ /**
+ * @brief local reference to the scene
+ */
+ const Scene *scene;
+
+ /**
+ * @brief local reference to the node tree
+ */
+ const bNodeTree *tree;
+
+ /**
+ * @brief reference to the output float buffer
+ */
+ float *outputBuffer;
+
+ /**
+ * @brief local reference to the input image operation
+ */
+ SocketReader *imageInput;
+
+ /**
+ * @brief local reference to the input alpha operation
+ */
+ SocketReader *alphaInput;
+public:
+ CompositorOperation();
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers);
+ void setScene(const Scene *scene) {this->scene = scene;}
+ void setbNodeTree(const bNodeTree *tree) {this->tree = tree;}
+ bool isOutputOperation(bool rendering) const {return true;}
+ void initExecution();
+ void deinitExecution();
+ const int getRenderPriority() const {return 7;}
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp
new file mode 100644
index 00000000000..df12a7d6b49
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertColorProfileOperation.h"
+
+extern "C" {
+ #include "IMB_imbuf.h"
+}
+ConvertColorProfileOperation::ConvertColorProfileOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+ this->predivided = false;
+}
+
+void ConvertColorProfileOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertColorProfileOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float color[4];
+ inputOperation->read(color, x, y, sampler, inputBuffers);
+ IMB_buffer_float_from_float(outputValue, color, 4, this->toProfile, this->fromProfile, this->predivided, 1, 1, 0, 0);
+}
+
+void ConvertColorProfileOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h
new file mode 100644
index 00000000000..1868de6d815
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertColorProfileOperation_h
+#define _COM_ConvertColorProfileOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertColorProfileOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+
+ /**
+ * @brief color profile where to convert from
+ */
+ int fromProfile;
+
+ /**
+ * @brief color profile where to convert to
+ */
+ int toProfile;
+
+ /**
+ * @brief is color predivided
+ */
+ bool predivided;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertColorProfileOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setFromColorProfile(int colorProfile) {this->fromProfile = colorProfile;}
+ void setToColorProfile(int colorProfile) {this->toProfile = colorProfile;}
+ void setPredivided(bool predivided) {this->predivided = predivided;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
new file mode 100644
index 00000000000..4421dec319a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertColorToBWOperation.h"
+
+ConvertColorToBWOperation::ConvertColorToBWOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputOperation = NULL;
+}
+
+void ConvertColorToBWOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertColorToBWOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(&inputColor[0], x, y, sampler, inputBuffers);
+ outputValue[0] = (inputColor[0]*0.35f + inputColor[1]*0.45f + inputColor[2]*0.2f)*inputColor[3];
+}
+
+void ConvertColorToBWOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h
new file mode 100644
index 00000000000..616cf0f2d01
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertColorToBWOperation_h
+#define _COM_ConvertColorToBWOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertColorToBWOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertColorToBWOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp
new file mode 100644
index 00000000000..ce45266ace0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertColorToVectorOperation.h"
+
+ConvertColorToVectorOperation::ConvertColorToVectorOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_VECTOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertColorToVectorOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertColorToVectorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ inputOperation->read(outputValue, x, y, sampler, inputBuffers);
+}
+
+void ConvertColorToVectorOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h
new file mode 100644
index 00000000000..11a1bf30a07
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertColorToVectorOperation_h
+#define _COM_ConvertColorToVectorOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertColorToVectorOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertColorToVectorOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertColourToValueProg.cpp b/source/blender/compositor/operations/COM_ConvertColourToValueProg.cpp
new file mode 100644
index 00000000000..84a33f652cd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColourToValueProg.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertColourToValueProg.h"
+
+ConvertColourToValueProg::ConvertColourToValueProg(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputOperation = NULL;
+}
+
+void ConvertColourToValueProg::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertColourToValueProg::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(&inputColor[0], x, y, sampler, inputBuffers);
+ outputValue[0] = ((inputColor[0] + inputColor[1] + inputColor[2])/3.0f)*inputColor[3];
+}
+
+void ConvertColourToValueProg::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertColourToValueProg.h b/source/blender/compositor/operations/COM_ConvertColourToValueProg.h
new file mode 100644
index 00000000000..7aa07dd46f2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertColourToValueProg.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertColourToValueProg_h
+#define _COM_ConvertColourToValueProg_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertColourToValueProg : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertColourToValueProg();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
new file mode 100644
index 00000000000..f64f0c054b1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertDepthToRadiusOperation.h"
+#include "BLI_math.h"
+#include "DNA_camera_types.h"
+
+ConvertDepthToRadiusOperation::ConvertDepthToRadiusOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputOperation = NULL;
+ this->fStop = 128.0f;
+ this->cameraObject = NULL;
+ this->maxRadius = 32.0f;
+}
+
+float ConvertDepthToRadiusOperation::determineFocalDistance()
+{
+
+ if (cameraObject == NULL || cameraObject->type != OB_CAMERA) {
+ return 10.0f;
+ }
+ else {
+ Camera *camera = (Camera*)this->cameraObject->data;
+ cam_lens = camera->lens;
+ if (camera->dof_ob) {
+ /* too simple, better to return the distance on the view axis only
+ * return len_v3v3(ob->obmat[3], cam->dof_ob->obmat[3]); */
+ float mat[4][4], imat[4][4], obmat[4][4];
+
+ copy_m4_m4(obmat, cameraObject->obmat);
+ normalize_m4(obmat);
+ invert_m4_m4(imat, obmat);
+ mult_m4_m4m4(mat, imat, camera->dof_ob->obmat);
+ return (float)fabs(mat[3][2]);
+ }
+ return camera->YF_dofdist;
+ }
+}
+
+void ConvertDepthToRadiusOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ float focalDistance = determineFocalDistance();
+ if (focalDistance == 0.0f) focalDistance = 1e10f; /* if the dof is 0.0 then set it be be far away */
+ inverseFocalDistance = 1.f/focalDistance;
+ this->aspect = (this->getWidth() > this->getHeight()) ? (this->getHeight() / (float)this->getWidth()) : (this->getWidth() / (float)this->getHeight());
+ this->aperture = 0.5f*(this->cam_lens / (this->aspect*32.f)) / this->fStop;
+ float minsz = MIN2(getWidth(), getHeight());
+ this->dof_sp = (float)minsz / (16.f / cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov);
+}
+
+void ConvertDepthToRadiusOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ float z;
+ float radius;
+ inputOperation->read(inputValue, x, y, sampler, inputBuffers);
+ z = inputValue[0];
+ if (z!=0.f) {
+ float iZ = (1.f/z);
+
+ // bug #6656 part 2b, do not rescale
+ /*
+ bcrad = 0.5f*fabs(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f));
+ // scale crad back to original maximum and blend
+ crad->rect[px] = bcrad + wts->rect[px]*(scf*crad->rect[px] - bcrad);
+ */
+ radius = 0.5f*fabsf(this->aperture*(dof_sp*(inverseFocalDistance - iZ) - 1.f));
+ // 'bug' #6615, limit minimum radius to 1 pixel, not really a solution, but somewhat mitigates the problem
+ if (radius < 0.5f) radius = 0.5f;
+ if (radius > maxRadius) {
+ radius = maxRadius;
+ }
+ outputValue[0] = radius;
+ }
+ else outputValue[0] = 0.0f;
+}
+
+void ConvertDepthToRadiusOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h
new file mode 100644
index 00000000000..c199ea87fe3
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertDepthToRadiusOperation_h
+#define _COM_ConvertDepthToRadiusOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_object_types.h"
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertDepthToRadiusOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+ float fStop;
+ float aspect;
+ float maxRadius;
+ float inverseFocalDistance;
+ float aperture;
+ float cam_lens;
+ float dof_sp;
+ Object *cameraObject;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertDepthToRadiusOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setfStop(float fStop) {this->fStop = fStop;}
+ void setMaxRadius(float maxRadius) {this->maxRadius = maxRadius;}
+ void setCameraObject(Object *camera) {this->cameraObject = camera;}
+ float determineFocalDistance();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp
new file mode 100644
index 00000000000..97dd7e69092
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertHSVToRGBOperation.h"
+#include "BLI_math_color.h"
+
+ConvertHSVToRGBOperation::ConvertHSVToRGBOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertHSVToRGBOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertHSVToRGBOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ hsv_to_rgb(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
+ outputValue[3] = inputColor[3];
+}
+
+void ConvertHSVToRGBOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h
new file mode 100644
index 00000000000..327b4089934
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertHSVToRGBOperation_h
+#define _COM_ConvertHSVToRGBOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertHSVToRGBOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertHSVToRGBOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp
new file mode 100644
index 00000000000..547915f58c9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertKeyToPremulOperation.h"
+#include "BLI_math.h"
+
+ConvertKeyToPremulOperation::ConvertKeyToPremulOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputColor = NULL;
+}
+
+void ConvertKeyToPremulOperation::initExecution()
+{
+ this->inputColor = getInputSocketReader(0);
+}
+
+void ConvertKeyToPremulOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ float alpha;
+
+ this->inputColor->read(inputValue, x, y, sampler, inputBuffers);
+ alpha = inputValue[3];
+
+ outputValue[0] = inputValue[0] * alpha;
+ outputValue[1] = inputValue[1] * alpha;
+ outputValue[2] = inputValue[2] * alpha;
+
+ /* never touches the alpha */
+ outputValue[3] = alpha;
+}
+
+void ConvertKeyToPremulOperation::deinitExecution()
+{
+ this->inputColor = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h
new file mode 100644
index 00000000000..1d5a1c1c4a6
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertKeyToPremulOperation_h
+#define _COM_ConvertKeyToPremulOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertKeyToPremulOperation : public NodeOperation {
+private:
+ SocketReader *inputColor;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertKeyToPremulOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp
new file mode 100644
index 00000000000..16636ee2afc
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertPremulToKeyOperation.h"
+#include "BLI_math.h"
+
+ConvertPremulToKeyOperation::ConvertPremulToKeyOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputColor = NULL;
+}
+
+void ConvertPremulToKeyOperation::initExecution()
+{
+ this->inputColor = getInputSocketReader(0);
+}
+
+void ConvertPremulToKeyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ float alpha;
+
+ this->inputColor->read(inputValue, x, y, sampler, inputBuffers);
+ alpha = inputValue[3];
+
+ if (fabsf(alpha) < 1e-5f) {
+ outputValue[0] = 0.f;
+ outputValue[1] = 0.f;
+ outputValue[2] = 0.f;
+ }
+ else {
+ outputValue[0] = inputValue[0] / alpha;
+ outputValue[1] = inputValue[1] / alpha;
+ outputValue[2] = inputValue[2] / alpha;
+ }
+
+ /* never touches the alpha */
+ outputValue[3] = alpha;
+}
+
+void ConvertPremulToKeyOperation::deinitExecution()
+{
+ this->inputColor = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h
new file mode 100644
index 00000000000..17597fa8f15
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertPremulToKeyOperation_h
+#define _COM_ConvertPremulToKeyOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertPremulToKeyOperation : public NodeOperation {
+private:
+ SocketReader *inputColor;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertPremulToKeyOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp
new file mode 100644
index 00000000000..99054efc267
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertRGBToHSVOperation.h"
+#include "BLI_math_color.h"
+
+ConvertRGBToHSVOperation::ConvertRGBToHSVOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertRGBToHSVOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertRGBToHSVOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ rgb_to_hsv(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
+ outputValue[3] = inputColor[3];
+}
+
+void ConvertRGBToHSVOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h
new file mode 100644
index 00000000000..5064bd06993
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertRGBToHSVOperation_h
+#define _COM_ConvertRGBToHSVOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertRGBToHSVOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertRGBToHSVOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp
new file mode 100644
index 00000000000..c626dc03000
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertRGBToYCCOperation.h"
+#include "BLI_math_color.h"
+
+ConvertRGBToYCCOperation::ConvertRGBToYCCOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertRGBToYCCOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertRGBToYCCOperation::setMode(int mode)
+{
+ switch (mode)
+ {
+ case 1:
+ this->mode = BLI_YCC_ITU_BT709;
+ break;
+ case 2:
+ this->mode = BLI_YCC_JFIF_0_255;
+ break;
+ case 0:
+ default:
+ this->mode = BLI_YCC_ITU_BT601;
+ break;
+ }
+}
+
+void ConvertRGBToYCCOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ float color[3];
+
+ inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ rgb_to_ycc(inputColor[0], inputColor[1], inputColor[2], &color[0], &color[1], &color[2], this->mode);
+
+ /* divided by 255 to normalize for viewing in */
+ outputValue[0] = color[0]/255.f; /* Y */
+ outputValue[1] = color[1]/255.f; /* Cb*/
+ outputValue[2] = color[2]/255.f; /* Cr*/
+ outputValue[3] = inputColor[3];
+}
+
+void ConvertRGBToYCCOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h
new file mode 100644
index 00000000000..a952627893b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertRGBToYCCOperation_h
+#define _COM_ConvertRGBToYCCOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertRGBToYCCOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+
+ /**
+ * YCbCr mode (Jpeg, ITU601, ITU709)
+ */
+ int mode;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertRGBToYCCOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ /**
+ * Set the YCC mode
+ */
+ void setMode(int mode);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp
new file mode 100644
index 00000000000..c4b870d6ad5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertRGBToYUVOperation.h"
+#include "BLI_math_color.h"
+
+ConvertRGBToYUVOperation::ConvertRGBToYUVOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertRGBToYUVOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertRGBToYUVOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ rgb_to_yuv(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
+ outputValue[3] = inputColor[3];
+}
+
+void ConvertRGBToYUVOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h
new file mode 100644
index 00000000000..5bc763dde00
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertRGBToYUVOperation_h
+#define _COM_ConvertRGBToYUVOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertRGBToYUVOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertRGBToYUVOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertValueToColourProg.cpp b/source/blender/compositor/operations/COM_ConvertValueToColourProg.cpp
new file mode 100644
index 00000000000..dce554efbac
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertValueToColourProg.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertValueToColourProg.h"
+
+ConvertValueToColourProg::ConvertValueToColourProg(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+}
+void ConvertValueToColourProg::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void ConvertValueToColourProg::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ this->inputProgram->read(inputValue, x, y, sampler, inputBuffers);
+ color[0] = inputValue[0];
+ color[1] = inputValue[0];
+ color[2] = inputValue[0];
+ color[3] = 1.0f;
+}
+
+void ConvertValueToColourProg::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertValueToColourProg.h b/source/blender/compositor/operations/COM_ConvertValueToColourProg.h
new file mode 100644
index 00000000000..4956f7196f5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertValueToColourProg.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertValueToColourProg_h
+#define _COM_ConvertValueToColourProg_h
+#include "COM_NodeOperation.h"
+
+
+class ConvertValueToColourProg : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputProgram;
+public:
+ ConvertValueToColourProg();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp
new file mode 100644
index 00000000000..ba7913d24ee
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertValueToVectorOperation.h"
+
+ConvertValueToVectorOperation::ConvertValueToVectorOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VECTOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertValueToVectorOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertValueToVectorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float input[4];
+ inputOperation->read(input, x, y, sampler, inputBuffers);
+ outputValue[0] = input[0];
+ outputValue[1] = input[0];
+ outputValue[2] = input[0];
+ outputValue[3] = 0.0f;
+}
+
+void ConvertValueToVectorOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h
new file mode 100644
index 00000000000..1e6a7d4b3e7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertValueToVectorOperation_h
+#define _COM_ConvertValueToVectorOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertValueToVectorOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertValueToVectorOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp
new file mode 100644
index 00000000000..5a4cc4d3549
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertVectorToColorOperation.h"
+
+ConvertVectorToColorOperation::ConvertVectorToColorOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertVectorToColorOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertVectorToColorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ inputOperation->read(outputValue, x, y, sampler, inputBuffers);
+ outputValue[3] = 1.0f;
+}
+
+void ConvertVectorToColorOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h
new file mode 100644
index 00000000000..45ffd0675bd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertVectorToColorOperation_h
+#define _COM_ConvertVectorToColorOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertVectorToColorOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertVectorToColorOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp
new file mode 100644
index 00000000000..67cc42ac8fc
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvertVectorToValueOperation.h"
+
+ConvertVectorToValueOperation::ConvertVectorToValueOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputOperation = NULL;
+}
+
+void ConvertVectorToValueOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertVectorToValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float input[4];
+ inputOperation->read(input, x, y, sampler, inputBuffers);
+ outputValue[0] = (input[0]+input[1]+input[2])/3.0f;
+}
+
+void ConvertVectorToValueOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h
new file mode 100644
index 00000000000..59bae18ed26
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvertVectorToValueOperation_h
+#define _COM_ConvertVectorToValueOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertVectorToValueOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertVectorToValueOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp
new file mode 100644
index 00000000000..d3048c131e4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertYCCToRGBOperation.h"
+#include "BLI_math_color.h"
+
+ConvertYCCToRGBOperation::ConvertYCCToRGBOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertYCCToRGBOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertYCCToRGBOperation::setMode(int mode)
+{
+ switch (mode)
+ {
+ case 1:
+ this->mode = BLI_YCC_ITU_BT709;
+ break;
+ case 2:
+ this->mode = BLI_YCC_JFIF_0_255;
+ break;
+ case 0:
+ default:
+ this->mode = BLI_YCC_ITU_BT601;
+ break;
+ }
+}
+
+void ConvertYCCToRGBOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+
+ /* need to un-normalize the data */
+ inputColor[0] *= 255.f; /* Y */
+ inputColor[1] *= 255.f; /* Cb*/
+ inputColor[2] *= 255.f; /* Cr*/
+
+ ycc_to_rgb(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2], this->mode);
+ outputValue[3] = inputColor[3];
+}
+
+void ConvertYCCToRGBOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h
new file mode 100644
index 00000000000..a13c2826a79
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertYCCToRGBOperation_h
+#define _COM_ConvertYCCToRGBOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertYCCToRGBOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+
+ /**
+ * YCbCr mode (Jpeg, ITU601, ITU709)
+ */
+ int mode;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertYCCToRGBOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ /**
+ * Set the YCC mode
+ */
+ void setMode(int mode);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp
new file mode 100644
index 00000000000..d7037a2c2d1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_ConvertYUVToRGBOperation.h"
+#include "BLI_math_color.h"
+
+ConvertYUVToRGBOperation::ConvertYUVToRGBOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void ConvertYUVToRGBOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void ConvertYUVToRGBOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ yuv_to_rgb(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
+ outputValue[3] = inputColor[3];
+}
+
+void ConvertYUVToRGBOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h
new file mode 100644
index 00000000000..380510d0100
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_ConvertYUVToRGBOperation_h
+#define _COM_ConvertYUVToRGBOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ConvertYUVToRGBOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+public:
+ /**
+ * Default constructor
+ */
+ ConvertYUVToRGBOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
new file mode 100644
index 00000000000..0daa2b9c08a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvolutionEdgeFilterOperation.h"
+#include "BLI_math.h"
+
+ConvolutionEdgeFilterOperation::ConvolutionEdgeFilterOperation() : ConvolutionFilterOperation()
+{
+}
+inline void addFilter(float *result, float*input, float value)
+{
+ result[0] += input[0] * value;
+ result[1] += input[1] * value;
+ result[2] += input[2] * value;
+}
+
+void ConvolutionEdgeFilterOperation::executePixel(float *color,int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float in1[4],in2[4], res1[4], res2[4];
+
+ float value[4];
+ this->inputValueOperation->read(value, x, y, inputBuffers, NULL);
+ float mval = 1.0f - value[0];
+
+ res1[0] = 0.0f;
+ res1[1] = 0.0f;
+ res1[2] = 0.0f;
+ res1[3] = 0.0f;
+ res2[0] = 0.0f;
+ res2[1] = 0.0f;
+ res2[2] = 0.0f;
+ res2[3] = 0.0f;
+
+ this->inputOperation->read(in1, x-1, y-1, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[0]);
+ addFilter(res2, in1, this->filter[0]);
+
+ this->inputOperation->read(in1, x, y-1, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[1]);
+ addFilter(res2, in1, this->filter[3]);
+
+ this->inputOperation->read(in1, x+1, y-1, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[2]);
+ addFilter(res2, in1, this->filter[6]);
+
+ this->inputOperation->read(in1, x-1, y, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[3]);
+ addFilter(res2, in1, this->filter[1]);
+
+ this->inputOperation->read(in2, x, y, inputBuffers, NULL);
+ addFilter(res1, in2, this->filter[4]);
+ addFilter(res2, in2, this->filter[4]);
+
+ this->inputOperation->read(in1, x+1, y, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[5]);
+ addFilter(res2, in1, this->filter[7]);
+
+ this->inputOperation->read(in1, x-1, y+1, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[6]);
+ addFilter(res2, in1, this->filter[2]);
+
+ this->inputOperation->read(in1, x, y+1, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[7]);
+ addFilter(res2, in1, this->filter[5]);
+
+ this->inputOperation->read(in1, x+1, y+1, inputBuffers, NULL);
+ addFilter(res1, in1, this->filter[8]);
+ addFilter(res2, in1, this->filter[8]);
+
+ color[0] = sqrt(res1[0]*res1[0]+res2[0]*res2[0]);
+ color[1] = sqrt(res1[1]*res1[1]+res2[1]*res2[1]);
+ color[2] = sqrt(res1[2]*res1[2]+res2[2]*res2[2]);
+
+ color[0] = color[0]*value[0] + in2[0] * mval;
+ color[1] = color[1]*value[0] + in2[1] * mval;
+ color[2] = color[2]*value[0] + in2[2] * mval;
+
+ color[3] = in2[3];
+}
diff --git a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h
new file mode 100644
index 00000000000..a0f9c1b3452
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvolutionEdgeFilterOperation_h_
+#define _COM_ConvolutionEdgeFilterOperation_h_
+
+#include "COM_ConvolutionFilterOperation.h"
+
+class ConvolutionEdgeFilterOperation: public ConvolutionFilterOperation {
+public:
+ ConvolutionEdgeFilterOperation();
+ void executePixel(float *color,int x, int y, MemoryBuffer *inputBuffers[], void *data);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp
new file mode 100644
index 00000000000..05cd570feaa
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ConvolutionFilterOperation.h"
+
+ConvolutionFilterOperation::ConvolutionFilterOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+ this->filter = NULL;
+ this->setComplex(true);
+}
+void ConvolutionFilterOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ this->inputValueOperation = this->getInputSocketReader(1);
+}
+
+void ConvolutionFilterOperation::set3x3Filter(float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8, float f9)
+{
+ this->filter = new float[9];
+ this->filter[0] = f1;
+ this->filter[1] = f2;
+ this->filter[2] = f3;
+ this->filter[3] = f4;
+ this->filter[4] = f5;
+ this->filter[5] = f6;
+ this->filter[6] = f7;
+ this->filter[7] = f8;
+ this->filter[8] = f9;
+ this->filterHeight = 3;
+ this->filterWidth = 3;
+}
+
+void ConvolutionFilterOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+ this->inputValueOperation = NULL;
+ if (this->filter) {
+ delete this->filter;
+ this->filter = NULL;
+ }
+}
+
+
+void ConvolutionFilterOperation::executePixel(float *color,int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ color[0] = 0.0;
+ color[1] = 0.0;
+ color[2] = 0.0;
+ color[3] = 0.0;
+ float in1[4];
+ float in2[4];
+ float value[4];
+ this->inputValueOperation->read(value, x, y, inputBuffers, NULL);
+ float mval = 1.0f - value[0];
+
+ this->inputOperation->read(in1, x-1, y-1, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[0];
+ color[1] += in1[1] * this->filter[0];
+ color[2] += in1[2] * this->filter[0];
+ color[3] += in1[3] * this->filter[0];
+ this->inputOperation->read(in1, x, y-1, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[1];
+ color[1] += in1[1] * this->filter[1];
+ color[2] += in1[2] * this->filter[1];
+ color[3] += in1[3] * this->filter[1];
+ this->inputOperation->read(in1, x+1, y-1, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[2];
+ color[1] += in1[1] * this->filter[2];
+ color[2] += in1[2] * this->filter[2];
+ color[3] += in1[3] * this->filter[2];
+ this->inputOperation->read(in1, x-1, y, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[3];
+ color[1] += in1[1] * this->filter[3];
+ color[2] += in1[2] * this->filter[3];
+ color[3] += in1[3] * this->filter[3];
+ this->inputOperation->read(in2, x, y, inputBuffers, NULL);
+ color[0] += in2[0] * this->filter[4];
+ color[1] += in2[1] * this->filter[4];
+ color[2] += in2[2] * this->filter[4];
+ color[3] += in2[3] * this->filter[4];
+ this->inputOperation->read(in1, x+1, y, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[5];
+ color[1] += in1[1] * this->filter[5];
+ color[2] += in1[2] * this->filter[5];
+ color[3] += in1[3] * this->filter[5];
+ this->inputOperation->read(in1, x-1, y+1, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[6];
+ color[1] += in1[1] * this->filter[6];
+ color[2] += in1[2] * this->filter[6];
+ color[3] += in1[3] * this->filter[6];
+ this->inputOperation->read(in1, x, y+1, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[7];
+ color[1] += in1[1] * this->filter[7];
+ color[2] += in1[2] * this->filter[7];
+ color[3] += in1[3] * this->filter[7];
+ this->inputOperation->read(in1, x+1, y+1, inputBuffers, NULL);
+ color[0] += in1[0] * this->filter[8];
+ color[1] += in1[1] * this->filter[8];
+ color[2] += in1[2] * this->filter[8];
+ color[3] += in1[3] * this->filter[8];
+
+ color[0] = color[0]*value[0] + in2[0] * mval;
+ color[1] = color[1]*value[0] + in2[1] * mval;
+ color[2] = color[2]*value[0] + in2[2] * mval;
+}
+
+bool ConvolutionFilterOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ int addx = (this->filterWidth-1)/2+1;
+ int addy = (this->filterHeight-1)/2+1;
+ newInput.xmax = input->xmax + addx;
+ newInput.xmin = input->xmin - addx;
+ newInput.ymax = input->ymax + addy;
+ newInput.ymin = input->ymin - addy;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h
new file mode 100644
index 00000000000..3276038726b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ConvolutionFilterOperation_h_
+#define _COM_ConvolutionFilterOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class ConvolutionFilterOperation: public NodeOperation {
+private:
+ int filterWidth;
+ int filterHeight;
+
+protected:
+ SocketReader *inputOperation;
+ SocketReader *inputValueOperation;
+ float *filter;
+
+public:
+ ConvolutionFilterOperation();
+ void set3x3Filter(float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8, float f9);
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color,int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ void initExecution();
+ void deinitExecution();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_CropOperation.cpp b/source/blender/compositor/operations/COM_CropOperation.cpp
new file mode 100644
index 00000000000..192ad8d0bda
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CropOperation.cpp
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CropOperation.h"
+#include "BLI_math.h"
+
+CropBaseOperation::CropBaseOperation() :NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+ this->settings = NULL;
+}
+
+void CropBaseOperation::updateArea()
+{
+ SocketReader * inputReference = this->getInputSocketReader(0);
+ float width = inputReference->getWidth();
+ float height = inputReference->getHeight();
+ if (this->relative) {
+ settings->x1 = width * settings->fac_x1;
+ settings->x2 = width * settings->fac_x2;
+ settings->y1 = height * settings->fac_y1;
+ settings->y2 = height * settings->fac_y2;
+ }
+ if (width <= settings->x1 + 1)
+ settings->x1 = width - 1;
+ if (height <= settings->y1 + 1)
+ settings->y1 = height - 1;
+ if (width <= settings->x2 + 1)
+ settings->x2 = width - 1;
+ if (height <= settings->y2 + 1)
+ settings->y2 = height - 1;
+
+ this->xmax = MAX2(settings->x1, settings->x2) + 1;
+ this->xmin = MIN2(settings->x1, settings->x2);
+ this->ymax = MAX2(settings->y1, settings->y2) + 1;
+ this->ymin = MIN2(settings->y1, settings->y2);
+}
+
+void CropBaseOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ updateArea();
+}
+
+void CropBaseOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
+CropOperation::CropOperation() :CropBaseOperation()
+{
+}
+
+void CropOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ if ((x < this->xmax && x >= xmin) && (y < ymax && y >= ymin)) {
+ inputOperation->read(color, x, y, sampler, inputBuffers);
+ }
+ else {
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 0.0f;
+ }
+}
+
+CropImageOperation::CropImageOperation() :CropBaseOperation()
+{
+}
+
+bool CropImageOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmax = input->xmax + this->xmin;
+ newInput.xmin = input->xmin + this->xmin;
+ newInput.ymax = input->ymax + this->ymin;
+ newInput.ymin = input->ymin + this->ymin;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+
+void CropImageOperation::determineResolution(unsigned int resolution[], unsigned int preferedResolution[])
+{
+ NodeOperation::determineResolution(resolution, preferedResolution);
+ updateArea();
+ resolution[0] = this->xmax - this->xmin;
+ resolution[1] = this->ymax - this->ymin;
+}
+
+void CropImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ this->inputOperation->read(color, (x + this->xmin), (y + this->ymin), sampler, inputBuffers);
+}
diff --git a/source/blender/compositor/operations/COM_CropOperation.h b/source/blender/compositor/operations/COM_CropOperation.h
new file mode 100644
index 00000000000..e8edabf08ed
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CropOperation.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CropOperation_h_
+#define _COM_CropOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class CropBaseOperation: public NodeOperation {
+protected:
+ SocketReader *inputOperation;
+ NodeTwoXYs *settings;
+ bool relative;
+ int xmax;
+ int xmin;
+ int ymax;
+ int ymin;
+
+ void updateArea();
+public:
+ CropBaseOperation();
+ void initExecution();
+ void deinitExecution();
+ void setCropSettings(NodeTwoXYs *settings) {this->settings = settings;}
+ void setRelative(bool rel) {this->relative = rel;}
+};
+
+class CropOperation: public CropBaseOperation {
+private:
+public:
+ CropOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+class CropImageOperation: public CropBaseOperation {
+private:
+public:
+ CropImageOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void determineResolution(unsigned int resolution[], unsigned int preferedResolution[]);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_CurveBaseOperation.cpp b/source/blender/compositor/operations/COM_CurveBaseOperation.cpp
new file mode 100644
index 00000000000..fda5b00e2a0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CurveBaseOperation.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_CurveBaseOperation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ #include "BKE_colortools.h"
+#ifdef __cplusplus
+}
+#endif
+
+CurveBaseOperation::CurveBaseOperation(): NodeOperation()
+{
+ this->curveMapping = NULL;
+}
+void CurveBaseOperation::initExecution()
+{
+ curvemapping_initialize(this->curveMapping);
+}
diff --git a/source/blender/compositor/operations/COM_CurveBaseOperation.h b/source/blender/compositor/operations/COM_CurveBaseOperation.h
new file mode 100644
index 00000000000..366af5b07cb
--- /dev/null
+++ b/source/blender/compositor/operations/COM_CurveBaseOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_CurveBaseOperation_h
+#define _COM_CurveBaseOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_color_types.h"
+
+class CurveBaseOperation : public NodeOperation {
+protected:
+ /**
+ * Cached reference to the inputProgram
+ */
+ CurveMapping *curveMapping;
+public:
+ CurveBaseOperation();
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void setCurveMapping(CurveMapping *mapping) {this->curveMapping = mapping;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp b/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp
new file mode 100644
index 00000000000..628daa7c775
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DifferenceMatteOperation.h"
+#include "BLI_math.h"
+
+DifferenceMatteOperation::DifferenceMatteOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addInputSocket(COM_DT_COLOR);
+ addOutputSocket(COM_DT_VALUE);
+
+ inputImage1Program = NULL;
+ inputImage2Program = NULL;
+}
+
+void DifferenceMatteOperation::initExecution()
+{
+ this->inputImage1Program = this->getInputSocketReader(0);
+ this->inputImage2Program = this->getInputSocketReader(1);
+}
+void DifferenceMatteOperation::deinitExecution()
+{
+ this->inputImage1Program = NULL;
+ this->inputImage2Program = NULL;
+}
+
+void DifferenceMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inColor1[4];
+ float inColor2[4];
+
+ const float tolerence=this->settings->t1;
+ const float falloff=this->settings->t2;
+ float difference;
+ float alpha;
+
+ this->inputImage1Program->read(inColor1, x, y, sampler, inputBuffers);
+ this->inputImage2Program->read(inColor2, x, y, sampler, inputBuffers);
+
+ difference = (fabs(inColor2[0] - inColor1[0]) +
+ fabs(inColor2[1] - inColor1[1]) +
+ fabs(inColor2[2] - inColor1[2]));
+
+ /*average together the distances*/
+ difference=difference/3.0;
+
+ /*make 100% transparent*/
+ if (difference < tolerence) {
+ outputValue[0]=0.0;
+ }
+ /*in the falloff region, make partially transparent */
+ else if (difference < falloff+tolerence) {
+ difference=difference-tolerence;
+ alpha=difference/falloff;
+ /*only change if more transparent than before */
+ if (alpha < inColor1[3]) {
+ outputValue[0]=alpha;
+ }
+ else { /* leave as before */
+ outputValue[0]=inColor1[3];
+ }
+ }
+ else {
+ /*foreground object*/
+ outputValue[0] = inColor1[3];
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_DifferenceMatteOperation.h b/source/blender/compositor/operations/COM_DifferenceMatteOperation.h
new file mode 100644
index 00000000000..95ebed6f63d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DifferenceMatteOperation.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DifferenceMatteOperation_h
+#define _COM_DifferenceMatteOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class DifferenceMatteOperation : public NodeOperation {
+private:
+ NodeChroma *settings;
+ SocketReader * inputImage1Program;
+ SocketReader *inputImage2Program;
+public:
+ /**
+ * Default constructor
+ */
+ DifferenceMatteOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeChroma *nodeChroma) {this->settings = nodeChroma;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DilateErodeOperation.cpp b/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
new file mode 100644
index 00000000000..a73f76030ab
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
@@ -0,0 +1,308 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DilateErodeOperation.h"
+#include "BLI_math.h"
+
+DilateErodeDistanceOperation::DilateErodeDistanceOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->setComplex(true);
+ this->inputProgram = NULL;
+ this->inset = 0.0f;
+ this->_switch = 0.5f;
+ this->distance = 0.0f;
+}
+void DilateErodeDistanceOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ if (this->distance < 0.0f) {
+ this->scope = - this->distance + this->inset;
+ }
+ else {
+ if (this->inset*2 > this->distance) {
+ this->scope = max(this->inset*2 - this->distance, this->distance);
+ }
+ else {
+ this->scope = distance;
+ }
+ }
+ if (scope < 3) {
+ scope = 3;
+ }
+}
+
+void *DilateErodeDistanceOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ void *buffer = inputProgram->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void DilateErodeDistanceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float inputValue[4];
+ const float sw = this->_switch;
+ const float distance = this->distance;
+ float pixelvalue;
+ const float rd = scope * scope;
+ const float inset = this->inset;
+ float mindist = rd*2;
+
+ MemoryBuffer *inputBuffer = (MemoryBuffer*)data;
+ float *buffer = inputBuffer->getBuffer();
+ rcti *rect = inputBuffer->getRect();
+ const int minx = max(x - scope, rect->xmin);
+ const int miny = max(y - scope, rect->ymin);
+ const int maxx = min(x + scope, rect->xmax);
+ const int maxy = min(y + scope, rect->ymax);
+ const int bufferWidth = rect->xmax-rect->xmin;
+ int offset;
+
+ this->inputProgram->read(inputValue, x, y, inputBuffers, NULL);
+ if (inputValue[0]>sw) {
+ for (int yi = miny ; yi<maxy;yi++) {
+ offset = ((yi-rect->ymin)*bufferWidth+(minx-rect->xmin))*4;
+ for (int xi = minx ; xi<maxx;xi++) {
+ if (buffer[offset]<sw) {
+ const float dx = xi-x;
+ const float dy = yi-y;
+ const float dis = dx*dx+dy*dy;
+ mindist = min(mindist, dis);
+ }
+ offset +=4;
+ }
+ }
+ pixelvalue = -sqrtf(mindist);
+ }
+ else {
+ for (int yi = miny ; yi<maxy;yi++) {
+ offset = ((yi-rect->ymin)*bufferWidth+(minx-rect->xmin))*4;
+ for (int xi = minx ; xi<maxx;xi++) {
+ if (buffer[offset]>sw) {
+ const float dx = xi-x;
+ const float dy = yi-y;
+ const float dis = dx*dx+dy*dy;
+ mindist = min(mindist, dis);
+ }
+ offset +=4;
+
+ }
+ }
+ pixelvalue = sqrtf(mindist);
+ }
+
+ if (distance > 0.0f) {
+ const float delta = distance - pixelvalue;
+ if (delta >= 0.0f) {
+ if (delta >= inset) {
+ color[0] = 1.0f;
+ }
+ else {
+ color[0] = delta/inset;
+ }
+ }
+ else {
+ color[0] = 0.0f;
+ }
+ }
+ else {
+ const float delta = -distance+pixelvalue;
+ if (delta < 0.0f) {
+ if (delta < -inset) {
+ color[0] = 1.0f;
+ }
+ else {
+ color[0] = (-delta)/inset;
+ }
+ }
+ else {
+ color[0] = 0.0f;
+ }
+ }
+}
+
+void DilateErodeDistanceOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
+
+bool DilateErodeDistanceOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmax = input->xmax + scope;
+ newInput.xmin = input->xmin - scope;
+ newInput.ymax = input->ymax + scope;
+ newInput.ymin = input->ymin - scope;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+
+// Dilate step
+DilateStepOperation::DilateStepOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->setComplex(true);
+ this->inputProgram = NULL;
+}
+void DilateStepOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ this->cached_buffer = NULL;
+ this->initMutex();
+}
+
+void *DilateStepOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ if (this->cached_buffer != NULL) {
+ return this->cached_buffer;
+ }
+ BLI_mutex_lock(getMutex());
+ if (this->cached_buffer == NULL) {
+ MemoryBuffer *buffer = (MemoryBuffer*)inputProgram->initializeTileData(NULL, memoryBuffers);
+ float *rectf = buffer->convertToValueBuffer();
+ int x, y, i;
+ float *p;
+ int bwidth = buffer->getWidth();
+ int bheight = buffer->getHeight();
+ for (i = 0 ; i < this->iterations ; i ++) {
+ for (y=0; y < bheight; y++) {
+ for (x=0; x < bwidth-1; x++) {
+ p = rectf + (bwidth*y + x);
+ *p = MAX2(*p, *(p + 1));
+ }
+ }
+
+ for (y=0; y < bheight; y++) {
+ for (x=bwidth-1; x >= 1; x--) {
+ p = rectf + (bwidth*y + x);
+ *p = MAX2(*p, *(p - 1));
+ }
+ }
+
+ for (x=0; x < bwidth; x++) {
+ for (y=0; y < bheight-1; y++) {
+ p = rectf + (bwidth*y + x);
+ *p = MAX2(*p, *(p + bwidth));
+ }
+ }
+
+ for (x=0; x < bwidth; x++) {
+ for (y=bheight-1; y >= 1; y--) {
+ p = rectf + (bwidth*y + x);
+ *p = MAX2(*p, *(p - bwidth));
+ }
+ }
+ }
+ this->cached_buffer = rectf;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->cached_buffer;
+}
+
+
+void DilateStepOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ color[0] = this->cached_buffer[y*this->getWidth()+x];
+}
+
+void DilateStepOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+ this->deinitMutex();
+ if (this->cached_buffer) {
+ delete cached_buffer;
+ this->cached_buffer = NULL;
+ }
+}
+
+bool DilateStepOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this->cached_buffer) {
+ return false;
+ }
+ else {
+ rcti newInput;
+
+ newInput.xmax = getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = getHeight();
+ newInput.ymin = 0;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
+
+// Erode step
+ErodeStepOperation::ErodeStepOperation(): DilateStepOperation()
+{
+}
+
+void *ErodeStepOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ if (this->cached_buffer != NULL) {
+ return this->cached_buffer;
+ }
+ BLI_mutex_lock(getMutex());
+ if (this->cached_buffer == NULL) {
+ MemoryBuffer *buffer = (MemoryBuffer*)inputProgram->initializeTileData(NULL, memoryBuffers);
+ float *rectf = buffer->convertToValueBuffer();
+ int x, y, i;
+ float *p;
+ int bwidth = buffer->getWidth();
+ int bheight = buffer->getHeight();
+ for (i = 0 ; i < this->iterations ; i ++) {
+ for (y=0; y < bheight; y++) {
+ for (x=0; x < bwidth-1; x++) {
+ p = rectf + (bwidth*y + x);
+ *p = MIN2(*p, *(p + 1));
+ }
+ }
+
+ for (y=0; y < bheight; y++) {
+ for (x=bwidth-1; x >= 1; x--) {
+ p = rectf + (bwidth*y + x);
+ *p = MIN2(*p, *(p - 1));
+ }
+ }
+
+ for (x=0; x < bwidth; x++) {
+ for (y=0; y < bheight-1; y++) {
+ p = rectf + (bwidth*y + x);
+ *p = MIN2(*p, *(p + bwidth));
+ }
+ }
+
+ for (x=0; x < bwidth; x++) {
+ for (y=bheight-1; y >= 1; y--) {
+ p = rectf + (bwidth*y + x);
+ *p = MIN2(*p, *(p - bwidth));
+ }
+ }
+ }
+ this->cached_buffer = rectf;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->cached_buffer;
+}
diff --git a/source/blender/compositor/operations/COM_DilateErodeOperation.h b/source/blender/compositor/operations/COM_DilateErodeOperation.h
new file mode 100644
index 00000000000..7f01ea94494
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DilateErodeOperation.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DilateErodeOperation_h
+#define _COM_DilateErodeOperation_h
+#include "COM_NodeOperation.h"
+
+
+class DilateErodeDistanceOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+ float distance;
+ float _switch;
+ float inset;
+
+ /**
+ * determines the area of interest to track pixels
+ * keep this one as small as possible for speed gain.
+ */
+ int scope;
+public:
+ DilateErodeDistanceOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setDistance(float distance) {this->distance = distance;}
+ void setSwitch(float sw) {this->_switch = sw;}
+ void setInset(float inset) {this->inset = inset;}
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+};
+
+class DilateStepOperation : public NodeOperation {
+protected:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+ int iterations;
+
+ float *cached_buffer;
+public:
+ DilateStepOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setIterations(int iterations) {this->iterations = iterations;}
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+};
+
+class ErodeStepOperation : public DilateStepOperation {
+public:
+ ErodeStepOperation();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp b/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp
new file mode 100644
index 00000000000..30a09a45ade
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DirectionalBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+DirectionalBlurOperation::DirectionalBlurOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+
+ this->inputProgram = NULL;
+}
+
+void DirectionalBlurOperation::initExecution()
+{
+ this->inputProgram = getInputSocketReader(0);
+ QualityStepHelper::initExecution(COM_QH_INCREASE);
+ const float angle = this->data->angle;
+ const float zoom = this->data->zoom;
+ const float spin = this->data->spin;
+ const float iterations = this->data->iter;
+ const float distance = this->data->distance;
+ const float center_x = this->data->center_x;
+ const float center_y = this->data->center_y;
+ const float width = getWidth();
+ const float height = getHeight();
+
+ const float a = angle;
+ const float itsc = 1.f / pow(2.f, (float)iterations);
+ float D;
+
+ D = distance * sqrtf(width*width + height*height);
+ center_x_pix = center_x * width;
+ center_y_pix = center_y * height;
+
+ tx= itsc * D * cos(a);
+ ty= -itsc * D * sin(a);
+ sc= itsc * zoom;
+ rot = itsc * spin;
+
+}
+
+void DirectionalBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ const int iterations = pow(2.f, this->data->iter);
+ float col[4] = {0,0,0,0};
+ float col2[4] = {0,0,0,0};
+ this->inputProgram->read(col2, x, y, COM_PS_NEAREST, inputBuffers);
+ float ltx = tx;
+ float lty = ty;
+ float lsc = sc;
+ float lrot = rot;
+ /* blur the image */
+ for (int i = 0; i < iterations; ++i) {
+ const float cs = cos(lrot), ss = sin(lrot);
+ const float isc = 1.f / (1.f + lsc);
+
+ const float v = isc * (y - center_y_pix) + lty;
+ const float u = isc * (x - center_x_pix) + ltx;
+
+ this->inputProgram->read(col, cs * u + ss * v + center_x_pix, cs * v - ss * u + center_y_pix, COM_PS_NEAREST, inputBuffers);
+
+ col2[0] += col[0];
+ col2[1] += col[1];
+ col2[2] += col[2];
+ col2[3] += col[3];
+
+ /* double transformations */
+ ltx += tx;
+ lty += ty;
+ lrot += rot;
+ lsc += sc;
+ }
+ color[0] = col2[0]/iterations;
+ color[1] = col2[1]/iterations;
+ color[2] = col2[2]/iterations;
+ color[3] = col2[3]/iterations;
+}
+
+void DirectionalBlurOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
+
+bool DirectionalBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmax = this->getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = this->getHeight();
+ newInput.ymin = 0;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_DirectionalBlurOperation.h b/source/blender/compositor/operations/COM_DirectionalBlurOperation.h
new file mode 100644
index 00000000000..280e9247c1b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DirectionalBlurOperation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehDirectionalBlurOperation_h
+#define _COM_DirectionalBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_QualityStepHelper.h"
+
+class DirectionalBlurOperation : public NodeOperation, public QualityStepHelper {
+private:
+ SocketReader *inputProgram;
+ NodeDBlurData *data;
+
+ float center_x_pix, center_y_pix;
+ float tx, ty;
+ float sc, rot;
+
+public:
+ DirectionalBlurOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ void setData(NodeDBlurData *data) {this->data = data;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DisplaceOperation.cpp b/source/blender/compositor/operations/COM_DisplaceOperation.cpp
new file mode 100644
index 00000000000..2add367f39e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DisplaceOperation.cpp
@@ -0,0 +1,151 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_DisplaceOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+DisplaceOperation::DisplaceOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+
+ this->inputColorProgram = NULL;
+ this->inputVectorProgram = NULL;
+ this->inputScaleXProgram = NULL;
+ this->inputScaleYProgram = NULL;
+}
+
+void DisplaceOperation::initExecution()
+{
+ this->inputColorProgram = this->getInputSocketReader(0);
+ this->inputVectorProgram = this->getInputSocketReader(1);
+ this->inputScaleXProgram = this->getInputSocketReader(2);
+ this->inputScaleYProgram = this->getInputSocketReader(3);
+
+ width_x4 = this->getWidth() * 4;
+ height_x4 = this->getHeight() * 4;
+}
+
+
+/* minimum distance (in pixels) a pixel has to be displaced
+ * in order to take effect */
+#define DISPLACE_EPSILON 0.01f
+
+void DisplaceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float inVector[4];
+ float inScale[4];
+
+ float p_dx, p_dy; /* main displacement in pixel space */
+ float d_dx, d_dy;
+ float dxt, dyt;
+ float u, v;
+
+ this->inputScaleXProgram->read(inScale, x, y, COM_PS_NEAREST, inputBuffers);
+ float xs = inScale[0];
+ this->inputScaleYProgram->read(inScale, x, y, COM_PS_NEAREST, inputBuffers);
+ float ys = inScale[0];
+
+ /* clamp x and y displacement to triple image resolution -
+ * to prevent hangs from huge values mistakenly plugged in eg. z buffers */
+ CLAMP(xs, -width_x4, width_x4);
+ CLAMP(ys, -height_x4, height_x4);
+
+ this->inputVectorProgram->read(inVector, x, y, COM_PS_NEAREST, inputBuffers);
+ p_dx = inVector[0] * xs;
+ p_dy = inVector[1] * ys;
+
+ /* displaced pixel in uv coords, for image sampling */
+ u = x - p_dx + 0.5f;
+ v = y - p_dy + 0.5f;
+
+ /* calc derivatives */
+ this->inputVectorProgram->read(inVector, x+1, y, COM_PS_NEAREST, inputBuffers);
+ d_dx = inVector[0] * xs;
+ this->inputVectorProgram->read(inVector, x, y+1, COM_PS_NEAREST, inputBuffers);
+ d_dy = inVector[0] * ys;
+
+ /* clamp derivatives to minimum displacement distance in UV space */
+ dxt = p_dx - d_dx;
+ dyt = p_dy - d_dy;
+
+ dxt = signf(dxt)*maxf(fabsf(dxt), DISPLACE_EPSILON)/this->getWidth();
+ dyt = signf(dyt)*maxf(fabsf(dyt), DISPLACE_EPSILON)/this->getHeight();
+
+ /* EWA filtering */
+ this->inputColorProgram->read(color, u, v, dxt, dyt, inputBuffers);
+}
+
+void DisplaceOperation::deinitExecution()
+{
+ this->inputColorProgram = NULL;
+ this->inputVectorProgram = NULL;
+ this->inputScaleXProgram = NULL;
+ this->inputScaleYProgram = NULL;
+}
+
+bool DisplaceOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti colorInput;
+ rcti vectorInput;
+ NodeOperation *operation=NULL;
+
+ /* the vector buffer only needs a 2x2 buffer. The image needs whole buffer */
+ /* image */
+ operation = getInputOperation(0);
+ colorInput.xmax = operation->getWidth();
+ colorInput.xmin = 0;
+ colorInput.ymax = operation->getHeight();
+ colorInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&colorInput, readOperation, output)) {
+ return true;
+ }
+
+ /* vector */
+ operation = getInputOperation(1);
+ vectorInput.xmax = input->xmax + 2;
+ vectorInput.xmin = input->xmin;
+ vectorInput.ymax = input->ymax + 2;
+ vectorInput.ymin = input->ymin;
+ if (operation->determineDependingAreaOfInterest(&vectorInput, readOperation, output)) {
+ return true;
+ }
+
+ /* scale x */
+ operation = getInputOperation(2);
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output) ) {
+ return true;
+ }
+
+ /* scale y */
+ operation = getInputOperation(3);
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output) ) {
+ return true;
+ }
+
+ return false;
+}
+
diff --git a/source/blender/compositor/operations/COM_DisplaceOperation.h b/source/blender/compositor/operations/COM_DisplaceOperation.h
new file mode 100644
index 00000000000..9c59c928854
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DisplaceOperation.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_DisplaceOperation_h
+#define _COM_DisplaceOperation_h
+#include "COM_NodeOperation.h"
+
+
+class DisplaceOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputColorProgram;
+ SocketReader *inputVectorProgram;
+ SocketReader *inputScaleXProgram;
+ SocketReader *inputScaleYProgram;
+
+ float width_x4;
+ float height_x4;
+
+public:
+ DisplaceOperation();
+
+ /**
+ * we need a 2x2 differential filter for Vector Input and full buffer for the image
+ */
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp
new file mode 100644
index 00000000000..8675caca1e2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_DisplaceSimpleOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+DisplaceSimpleOperation::DisplaceSimpleOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputColorProgram = NULL;
+ this->inputVectorProgram = NULL;
+ this->inputScaleXProgram = NULL;
+ this->inputScaleYProgram = NULL;
+}
+
+void DisplaceSimpleOperation::initExecution()
+{
+ this->inputColorProgram = this->getInputSocketReader(0);
+ this->inputVectorProgram = this->getInputSocketReader(1);
+ this->inputScaleXProgram = this->getInputSocketReader(2);
+ this->inputScaleYProgram = this->getInputSocketReader(3);
+
+ width_x4 = this->getWidth() * 4;
+ height_x4 = this->getHeight() * 4;
+}
+
+
+/* minimum distance (in pixels) a pixel has to be displaced
+ * in order to take effect */
+#define DISPLACE_EPSILON 0.01f
+
+void DisplaceSimpleOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inVector[4];
+ float inScale[4];
+
+ float p_dx, p_dy; /* main displacement in pixel space */
+ float u, v;
+
+ this->inputScaleXProgram->read(inScale, x, y, sampler, inputBuffers);
+ float xs = inScale[0];
+ this->inputScaleYProgram->read(inScale, x, y, sampler, inputBuffers);
+ float ys = inScale[0];
+
+ /* clamp x and y displacement to triple image resolution -
+ * to prevent hangs from huge values mistakenly plugged in eg. z buffers */
+ CLAMP(xs, -width_x4, width_x4);
+ CLAMP(ys, -height_x4, height_x4);
+
+ this->inputVectorProgram->read(inVector, x, y, sampler, inputBuffers);
+ p_dx = inVector[0] * xs;
+ p_dy = inVector[1] * ys;
+
+ /* displaced pixel in uv coords, for image sampling */
+ /* clamp nodes to avoid glitches */
+ u = x - p_dx + 0.5f;
+ v = y - p_dy + 0.5f;
+ CLAMP(u, 0.f, this->getWidth()-1.f);
+ CLAMP(v, 0.f, this->getHeight()-1.f);
+
+ this->inputColorProgram->read(color, u, v, sampler, inputBuffers);
+}
+
+void DisplaceSimpleOperation::deinitExecution()
+{
+ this->inputColorProgram = NULL;
+ this->inputVectorProgram = NULL;
+ this->inputScaleXProgram = NULL;
+ this->inputScaleYProgram = NULL;
+}
+
+bool DisplaceSimpleOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti colorInput;
+ NodeOperation *operation=NULL;
+
+ /* the vector buffer only needs a 2x2 buffer. The image needs whole buffer */
+ /* image */
+ operation = getInputOperation(0);
+ colorInput.xmax = operation->getWidth();
+ colorInput.xmin = 0;
+ colorInput.ymax = operation->getHeight();
+ colorInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&colorInput, readOperation, output)) {
+ return true;
+ }
+
+ /* vector */
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output)) {
+ return true;
+ }
+
+ /* scale x */
+ operation = getInputOperation(2);
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output) ) {
+ return true;
+ }
+
+ /* scale y */
+ operation = getInputOperation(3);
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output) ) {
+ return true;
+ }
+
+ return false;
+}
+
diff --git a/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h
new file mode 100644
index 00000000000..0e3bcc1b1f0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_DisplaceSimpleOperation_h
+#define _COM_DisplaceSimpleOperation_h
+#include "COM_NodeOperation.h"
+
+
+class DisplaceSimpleOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputColorProgram;
+ SocketReader *inputVectorProgram;
+ SocketReader *inputScaleXProgram;
+ SocketReader *inputScaleYProgram;
+
+ float width_x4;
+ float height_x4;
+
+public:
+ DisplaceSimpleOperation();
+
+ /**
+ * we need a full buffer for the image
+ */
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DistanceMatteOperation.cpp b/source/blender/compositor/operations/COM_DistanceMatteOperation.cpp
new file mode 100644
index 00000000000..304f7fa5066
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DistanceMatteOperation.cpp
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_DistanceMatteOperation.h"
+#include "BLI_math.h"
+
+DistanceMatteOperation::DistanceMatteOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addInputSocket(COM_DT_COLOR);
+ addOutputSocket(COM_DT_VALUE);
+
+ inputImageProgram = NULL;
+ inputKeyProgram = NULL;
+}
+
+void DistanceMatteOperation::initExecution()
+{
+ this->inputImageProgram = this->getInputSocketReader(0);
+ this->inputKeyProgram = this->getInputSocketReader(1);
+}
+
+void DistanceMatteOperation::deinitExecution()
+{
+ this->inputImageProgram = NULL;
+ this->inputKeyProgram = NULL;
+}
+
+void DistanceMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inKey[4];
+ float inImage[4];
+
+ const float tolerence=this->settings->t1;
+ const float falloff=this->settings->t2;
+
+ float distance;
+ float alpha;
+
+ this->inputKeyProgram->read(inKey, x, y, sampler, inputBuffers);
+ this->inputImageProgram->read(inImage, x, y, sampler, inputBuffers);
+
+ distance = sqrt(pow((inKey[0]-inImage[0]),2)+
+ pow((inKey[1]-inImage[1]),2)+
+ pow((inKey[2]-inImage[2]),2));
+
+ /* store matte(alpha) value in [0] to go with
+ * COM_SetAlphaOperation and the Value output
+ */
+
+ /*make 100% transparent */
+ if (distance < tolerence) {
+ outputValue[0]=0.f;
+ }
+ /*in the falloff region, make partially transparent */
+ else if (distance < falloff+tolerence) {
+ distance=distance-tolerence;
+ alpha=distance/falloff;
+ /*only change if more transparent than before */
+ if (alpha < inImage[3]) {
+ outputValue[0]=alpha;
+ }
+ else { /* leave as before */
+ outputValue[0]=inImage[3];
+ }
+ }
+ else {
+ /* leave as before */
+ outputValue[0]=inImage[3];
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_DistanceMatteOperation.h b/source/blender/compositor/operations/COM_DistanceMatteOperation.h
new file mode 100644
index 00000000000..2a668f31f8f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DistanceMatteOperation.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_DistanceMatteOperation_h
+#define _COM_DistanceMatteOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class DistanceMatteOperation : public NodeOperation {
+private:
+ NodeChroma *settings;
+ SocketReader *inputImageProgram;
+ SocketReader *inputKeyProgram;
+public:
+ /**
+ * Default constructor
+ */
+ DistanceMatteOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeChroma *nodeChroma) {this->settings = nodeChroma;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DotproductOperation.cpp b/source/blender/compositor/operations/COM_DotproductOperation.cpp
new file mode 100644
index 00000000000..b03b176f08a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DotproductOperation.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DotproductOperation.h"
+
+DotproductOperation::DotproductOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->setResolutionInputSocketIndex(0);
+ this->input1Operation = NULL;
+ this->input2Operation = NULL;
+}
+void DotproductOperation::initExecution()
+{
+ this->input1Operation = this->getInputSocketReader(0);
+ this->input2Operation = this->getInputSocketReader(1);
+}
+
+void DotproductOperation::deinitExecution()
+{
+ this->input1Operation = NULL;
+ this->input2Operation = NULL;
+}
+
+/** @todo: current implementation is the inverse of a dotproduct. not 'logically' correct
+ */
+void DotproductOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float input1[4];
+ float input2[4];
+ this->input1Operation->read(input1, x, y, sampler, inputBuffers);
+ this->input2Operation->read(input2, x, y, sampler, inputBuffers);
+ color[0] = -(input1[0]*input2[0]+input1[1]*input2[1]+input1[2]*input2[2]);
+}
diff --git a/source/blender/compositor/operations/COM_DotproductOperation.h b/source/blender/compositor/operations/COM_DotproductOperation.h
new file mode 100644
index 00000000000..0244fffa110
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DotproductOperation.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DotproductOperation_h_
+#define _COM_DotproductOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class DotproductOperation: public NodeOperation {
+private:
+ SocketReader *input1Operation;
+ SocketReader *input2Operation;
+public:
+ DotproductOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp
new file mode 100644
index 00000000000..9e911e7ba40
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp
@@ -0,0 +1,1301 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_DoubleEdgeMaskOperation.h"
+#include "BLI_math.h"
+#include "DNA_node_types.h"
+
+// this part has been copied from the double edge mask
+// Contributor(s): Peter Larabell.
+static void do_adjacentKeepBorders(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize)
+{
+ int x;
+ unsigned int isz=0; // inner edge size
+ unsigned int osz=0; // outer edge size
+ unsigned int gsz=0; // gradient fill area size
+ /* Test the four corners */
+ /* upper left corner */
+ x=t-rw+1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or to the right, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x] = 1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x] = 3; // flag pixel as outer edge
+ }
+ /* upper right corner */
+ x=t;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or to the left, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x-1] && lomask[x-1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ /* lower left corner */
+ x=0;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel above, or to the right, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x+rw] && lomask[x+rw]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ /* lower right corner */
+ x=rw-1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel above, or to the left, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x+rw] && lomask[x+rw]) || (!limask[x-1] && lomask[x-1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+
+ /* Test the TOP row of pixels in buffer, except corners */
+ for (x = t-1; x>=(t-rw)+2; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel to the right, or to the left, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-1] && lomask[x-1]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+
+ /* Test the BOTTOM row of pixels in buffer, except corners */
+ for (x = rw-2; x; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel to the right, or to the left, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-1] && lomask[x-1]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+ /* Test the LEFT edge of pixels in buffer, except corners */
+ for (x = t-(rw<<1)+1; x>=rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or above, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x+rw] && lomask[x+rw])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+
+ /* Test the RIGHT edge of pixels in buffer, except corners */
+ for (x = t-rw; x>rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or above, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x+rw] && lomask[x+rw])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+
+ rsize[0]=isz; // fill in our return sizes for edges + fill
+ rsize[1]=osz;
+ rsize[2]=gsz;
+}
+
+static void do_adjacentBleedBorders(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize)
+{
+ int x;
+ unsigned int isz=0; // inner edge size
+ unsigned int osz=0; // outer edge size
+ unsigned int gsz=0; // gradient fill area size
+ /* Test the four corners */
+ /* upper left corner */
+ x=t-rw+1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or to the right, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x+1]) { // test if outer mask is empty underneath or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* upper right corner */
+ x=t;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or to the left, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x-1] && lomask[x-1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x-1]) { // test if outer mask is empty underneath or to the left
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* lower left corner */
+ x=0;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel above, or to the right, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x+rw] && lomask[x+rw]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x+rw] || !lomask[x+1]) { // test if outer mask is empty above or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* lower right corner */
+ x=rw-1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel above, or to the left, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x+rw] && lomask[x+rw]) || (!limask[x-1] && lomask[x-1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x+rw] || !lomask[x-1]) { // test if outer mask is empty above or to the left
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* Test the TOP row of pixels in buffer, except corners */
+ for (x = t-1; x>=(t-rw)+2; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel to the left, or to the right, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-1] && lomask[x-1]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-1] || !lomask[x+1]) { // test if outer mask is empty to the left or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+
+ /* Test the BOTTOM row of pixels in buffer, except corners */
+ for (x = rw-2; x; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel to the left, or to the right, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-1] && lomask[x-1]) || (!limask[x+1] && lomask[x+1])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-1] || !lomask[x+1]) { // test if outer mask is empty to the left or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+ /* Test the LEFT edge of pixels in buffer, except corners */
+ for (x = t-(rw<<1)+1; x>=rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or above, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x+rw] && lomask[x+rw])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x+rw]) { // test if outer mask is empty underneath or above
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+
+ /* Test the RIGHT edge of pixels in buffer, except corners */
+ for (x = t-rw; x>rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if pixel underneath, or above, are empty in the inner mask,
+ // but filled in the outer mask
+ if ((!limask[x-rw] && lomask[x-rw]) || (!limask[x+rw] && lomask[x+rw])) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x+rw]) { // test if outer mask is empty underneath or above
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+
+ rsize[0]=isz; // fill in our return sizes for edges + fill
+ rsize[1]=osz;
+ rsize[2]=gsz;
+}
+
+static void do_allKeepBorders(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize)
+{
+ int x;
+ unsigned int isz=0; // inner edge size
+ unsigned int osz=0; // outer edge size
+ unsigned int gsz=0; // gradient fill area size
+ /* Test the four corners */
+ /* upper left corner */
+ x=t-rw+1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if the inner mask is empty underneath or to the right
+ if (!limask[x-rw] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ /* upper right corner */
+ x=t;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if the inner mask is empty underneath or to the left
+ if (!limask[x-rw] || !limask[x-1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ /* lower left corner */
+ x=0;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty above or to the right
+ if (!limask[x+rw] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ /* lower right corner */
+ x=rw-1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty above or to the left
+ if (!limask[x+rw] || !limask[x-1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+
+ /* Test the TOP row of pixels in buffer, except corners */
+ for (x = t-1; x>=(t-rw)+2; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty to the left or to the right
+ if (!limask[x-1] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+
+ /* Test the BOTTOM row of pixels in buffer, except corners */
+ for (x = rw-2; x; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty to the left or to the right
+ if (!limask[x-1] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+ /* Test the LEFT edge of pixels in buffer, except corners */
+ for (x = t-(rw<<1)+1; x>=rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty underneath or above
+ if (!limask[x-rw] || !limask[x+rw]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+
+ /* Test the RIGHT edge of pixels in buffer, except corners */
+ for (x = t-rw; x>rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty underneath or above
+ if (!limask[x-rw] || !limask[x+rw]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ }
+
+ rsize[0]=isz; // fill in our return sizes for edges + fill
+ rsize[1]=osz;
+ rsize[2]=gsz;
+}
+
+static void do_allBleedBorders(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize)
+{
+ int x;
+ unsigned int isz=0; // inner edge size
+ unsigned int osz=0; // outer edge size
+ unsigned int gsz=0; // gradient fill area size
+ /* Test the four corners */
+ /* upper left corner */
+ x=t-rw+1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if the inner mask is empty underneath or to the right
+ if (!limask[x-rw] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x+1]) { // test if outer mask is empty underneath or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* upper right corner */
+ x=t;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if the inner mask is empty underneath or to the left
+ if (!limask[x-rw] || !limask[x-1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x-1]) { // test if outer mask is empty above or to the left
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* lower left corner */
+ x=0;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty above or to the right
+ if (!limask[x+rw] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x+rw] || !lomask[x+1]) { // test if outer mask is empty underneath or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* lower right corner */
+ x=rw-1;
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty above or to the left
+ if (!limask[x+rw] || !limask[x-1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x+rw] || !lomask[x-1]) { // test if outer mask is empty underneath or to the left
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ /* Test the TOP row of pixels in buffer, except corners */
+ for (x = t-1; x>=(t-rw)+2; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty to the left or to the right
+ if (!limask[x-1] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-1] || !lomask[x+1]) { // test if outer mask is empty to the left or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+
+ /* Test the BOTTOM row of pixels in buffer, except corners */
+ for (x = rw-2; x; x--) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty to the left or to the right
+ if (!limask[x-1] || !limask[x+1]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-1] || !lomask[x+1]) { // test if outer mask is empty to the left or to the right
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+ /* Test the LEFT edge of pixels in buffer, except corners */
+ for (x = t-(rw<<1)+1; x>=rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty underneath or above
+ if (!limask[x-rw] || !limask[x+rw]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x+rw]) { // test if outer mask is empty underneath or above
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+
+ /* Test the RIGHT edge of pixels in buffer, except corners */
+ for (x = t-rw; x>rw; x-=rw) {
+ // test if inner mask is filled
+ if (limask[x]) {
+ // test if inner mask is empty underneath or above
+ if (!limask[x-rw] || !limask[x+rw]) {
+ isz++; // increment inner edge size
+ lres[x]=4; // flag pixel as inner edge
+ }
+ else {
+ res[x]=1.0f; // pixel is just part of inner mask, and it's not an edge
+ }
+ }
+ else if (lomask[x]) { // inner mask was empty, test if outer mask is filled
+ if (!lomask[x-rw] || !lomask[x+rw]) { // test if outer mask is empty underneath or above
+ osz++; // increment outer edge size
+ lres[x]=3; // flag pixel as outer edge
+ }
+ else {
+ gsz++; // increment the gradient pixel count
+ lres[x]=2; // flag pixel as gradient
+ }
+ }
+ }
+
+ rsize[0]=isz; // fill in our return sizes for edges + fill
+ rsize[1]=osz;
+ rsize[2]=gsz;
+}
+
+static void do_allEdgeDetection(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize, unsigned int in_isz, unsigned int in_osz, unsigned int in_gsz)
+{
+ int x; // x = pixel loop counter
+ int a; // a = pixel loop counter
+ int dx; // dx = delta x
+ int pix_prevRow; // pix_prevRow = pixel one row behind the one we are testing in a loop
+ int pix_nextRow; // pix_nextRow = pixel one row in front of the one we are testing in a loop
+ int pix_prevCol; // pix_prevCol = pixel one column behind the one we are testing in a loop
+ int pix_nextCol; // pix_nextCol = pixel one column in front of the one we are testing in a loop
+ /* Test all rows between the FIRST and LAST rows, excluding left and right edges */
+ for (x = (t-rw)+1, dx=x-(rw-2); dx>rw; x-=rw,dx-=rw) {
+ a=x-2;
+ pix_prevRow=a+rw;
+ pix_nextRow=a-rw;
+ pix_prevCol=a+1;
+ pix_nextCol=a-1;
+ while (a>dx-2) {
+ if (!limask[a]) { // if the inner mask is empty
+ if (lomask[a]) { // if the outer mask is full
+ /*
+ Next we test all 4 directions around the current pixel: next/prev/up/down
+ The test ensures that the outer mask is empty and that the inner mask
+ is also empty. If both conditions are true for any one of the 4 adjacent pixels
+ then the current pixel is counted as being a true outer edge pixel.
+ */
+ if ((!lomask[pix_nextCol] && !limask[pix_nextCol]) ||
+ (!lomask[pix_prevCol] && !limask[pix_prevCol]) ||
+ (!lomask[pix_nextRow] && !limask[pix_nextRow]) ||
+ (!lomask[pix_prevRow] && !limask[pix_prevRow]))
+ {
+ in_osz++; // increment the outer boundary pixel count
+ lres[a]=3; // flag pixel as part of outer edge
+ }
+ else { // it's not a boundary pixel, but it is a gradient pixel
+ in_gsz++; // increment the gradient pixel count
+ lres[a]=2; // flag pixel as gradient
+ }
+ }
+
+ }
+ else {
+ if (!limask[pix_nextCol] || !limask[pix_prevCol] || !limask[pix_nextRow] || !limask[pix_prevRow]) {
+ in_isz++; // increment the inner boundary pixel count
+ lres[a]=4; // flag pixel as part of inner edge
+ }
+ else {
+ res[a]=1.0f; // pixel is part of inner mask, but not at an edge
+ }
+ }
+ a--;
+ pix_prevRow--;
+ pix_nextRow--;
+ pix_prevCol--;
+ pix_nextCol--;
+ }
+ }
+
+ rsize[0]=in_isz; // fill in our return sizes for edges + fill
+ rsize[1]=in_osz;
+ rsize[2]=in_gsz;
+}
+
+static void do_adjacentEdgeDetection(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize, unsigned int in_isz, unsigned int in_osz, unsigned int in_gsz)
+{
+ int x; // x = pixel loop counter
+ int a; // a = pixel loop counter
+ int dx; // dx = delta x
+ int pix_prevRow; // pix_prevRow = pixel one row behind the one we are testing in a loop
+ int pix_nextRow; // pix_nextRow = pixel one row in front of the one we are testing in a loop
+ int pix_prevCol; // pix_prevCol = pixel one column behind the one we are testing in a loop
+ int pix_nextCol; // pix_nextCol = pixel one column in front of the one we are testing in a loop
+ /* Test all rows between the FIRST and LAST rows, excluding left and right edges */
+ for (x = (t-rw)+1, dx=x-(rw-2); dx>rw; x-=rw,dx-=rw) {
+ a=x-2;
+ pix_prevRow=a+rw;
+ pix_nextRow=a-rw;
+ pix_prevCol=a+1;
+ pix_nextCol=a-1;
+ while (a>dx-2) {
+ if (!limask[a]) { // if the inner mask is empty
+ if (lomask[a]) { // if the outer mask is full
+ /*
+ Next we test all 4 directions around the current pixel: next/prev/up/down
+ The test ensures that the outer mask is empty and that the inner mask
+ is also empty. If both conditions are true for any one of the 4 adjacent pixels
+ then the current pixel is counted as being a true outer edge pixel.
+ */
+ if ((!lomask[pix_nextCol] && !limask[pix_nextCol]) ||
+ (!lomask[pix_prevCol] && !limask[pix_prevCol]) ||
+ (!lomask[pix_nextRow] && !limask[pix_nextRow]) ||
+ (!lomask[pix_prevRow] && !limask[pix_prevRow]))
+ {
+ in_osz++; // increment the outer boundary pixel count
+ lres[a]=3; // flag pixel as part of outer edge
+ }
+ else { // it's not a boundary pixel, but it is a gradient pixel
+ in_gsz++; // increment the gradient pixel count
+ lres[a]=2; // flag pixel as gradient
+ }
+ }
+
+ }
+ else {
+ if ((!limask[pix_nextCol] && lomask[pix_nextCol]) ||
+ (!limask[pix_prevCol] && lomask[pix_prevCol]) ||
+ (!limask[pix_nextRow] && lomask[pix_nextRow]) ||
+ (!limask[pix_prevRow] && lomask[pix_prevRow]))
+ {
+ in_isz++; // increment the inner boundary pixel count
+ lres[a]=4; // flag pixel as part of inner edge
+ }
+ else {
+ res[a]=1.0f; // pixel is part of inner mask, but not at an edge
+ }
+ }
+ a--;
+ pix_prevRow--; // advance all four "surrounding" pixel pointers
+ pix_nextRow--;
+ pix_prevCol--;
+ pix_nextCol--;
+ }
+ }
+
+ rsize[0]=in_isz; // fill in our return sizes for edges + fill
+ rsize[1]=in_osz;
+ rsize[2]=in_gsz;
+}
+
+static void do_createEdgeLocationBuffer(unsigned int t, unsigned int rw, unsigned int *lres, float *res, unsigned short *gbuf, unsigned int *innerEdgeOffset, unsigned int *outerEdgeOffset, unsigned int isz, unsigned int gsz)
+{
+ int x; // x = pixel loop counter
+ int a; // a = temporary pixel index buffer loop counter
+ unsigned int ud; // ud = unscaled edge distance
+ unsigned int dmin; // dmin = minimun edge distance
+
+ unsigned int rsl; // long used for finding fast 1.0/sqrt
+ unsigned int gradientFillOffset;
+ unsigned int innerAccum=0; // for looping inner edge pixel indexes, represents current position from offset
+ unsigned int outerAccum=0; // for looping outer edge pixel indexes, represents current position from offset
+ unsigned int gradientAccum=0; // for looping gradient pixel indexes, represents current position from offset
+ /*
+ Here we compute the size of buffer needed to hold (row,col) coordinates
+ for each pixel previously determined to be either gradient, inner edge,
+ or outer edge.
+
+ Allocation is done by requesting 4 bytes "sizeof(int)" per pixel, even
+ though gbuf[] is declared as unsigned short* (2 bytes) because we don't
+ store the pixel indexes, we only store x,y location of pixel in buffer.
+
+ This does make the assumption that x and y can fit in 16 unsigned bits
+ so if Blender starts doing renders greater than 65536 in either direction
+ this will need to allocate gbuf[] as unsigned int *and allocate 8 bytes
+ per flagged pixel.
+
+ In general, the buffer on-screen:
+
+ Example: 9 by 9 pixel block
+
+ . = pixel non-white in both outer and inner mask
+ o = pixel white in outer, but not inner mask, adjacent to "." pixel
+ g = pixel white in outer, but not inner mask, not adjacent to "." pixel
+ i = pixel white in inner mask, adjacent to "g" or "." pixel
+ F = pixel white in inner mask, only adjacent to other pixels white in the inner mask
+
+
+ ......... <----- pixel #80
+ ..oooo...
+ .oggggo..
+ .oggiggo.
+ .ogiFigo.
+ .oggiggo.
+ .oggggo..
+ ..oooo...
+ pixel #00 -----> .........
+
+ gsz = 18 (18 "g" pixels above)
+ isz = 4 (4 "i" pixels above)
+ osz = 18 (18 "o" pixels above)
+
+
+ The memory in gbuf[] after filling will look like this:
+
+ gradientFillOffset (0 pixels) innerEdgeOffset (18 pixels) outerEdgeOffset (22 pixels)
+ / / /
+ / / /
+ |X Y X Y X Y X Y > <X Y X Y > <X Y X Y X Y > <X Y X Y | <- (x,y)
+ +--------------------------------> <----------------> <------------------------> <----------------+
+ |0 2 4 6 8 10 12 14 > ... <68 70 72 74 > ... <80 82 84 86 88 90 > ... <152 154 156 158 | <- bytes
+ +--------------------------------> <----------------> <------------------------> <----------------+
+ |g0 g0 g1 g1 g2 g2 g3 g3 > <g17 g17 i0 i0 > <i2 i2 i3 i3 o0 o0 > <o16 o16 o17 o17 | <- pixel
+ / / /
+ / / /
+ / / /
+ +---------- gradientAccum (18) ---------+ +--- innerAccum (22) ---+ +--- outerAccum (40) ---+
+
+
+ Ultimately we do need the pixel's memory buffer index to set the output
+ pixel color, but it's faster to reconstruct the memory buffer location
+ each iteration of the final gradient calculation than it is to deconstruct
+ a memory location into x,y pairs each round.
+*/
+
+
+ gradientFillOffset=0; // since there are likely "more" of these, put it first. :)
+ *innerEdgeOffset=gradientFillOffset+gsz; // set start of inner edge indexes
+ *outerEdgeOffset=(*innerEdgeOffset)+isz; // set start of outer edge indexes
+ /* set the accumulators to correct positions */ // set up some accumulator variables for loops
+ gradientAccum = gradientFillOffset; // each accumulator variable starts at its respective
+ innerAccum = *innerEdgeOffset; // section's offset so when we start filling, each
+ outerAccum = *outerEdgeOffset; // section fills up it's allocated space in gbuf
+ //uses dmin=row, rsl=col
+ for (x=0,dmin=0; x<t; x+=rw,dmin++) {
+ for (rsl=0; rsl<rw; rsl++) {
+ a=x+rsl;
+ if (lres[a]==2) { // it is a gradient pixel flagged by 2
+ ud=gradientAccum<<1; // double the index to reach correct unsigned short location
+ gbuf[ud]=dmin; // insert pixel's row into gradient pixel location buffer
+ gbuf[ud+1]=rsl; // insert pixel's column into gradient pixel location buffer
+ gradientAccum++; // increment gradient index buffer pointer
+ }
+ else if (lres[a]==3) { // it is an outer edge pixel flagged by 3
+ ud=outerAccum<<1; // double the index to reach correct unsigned short location
+ gbuf[ud]=dmin; // insert pixel's row into outer edge pixel location buffer
+ gbuf[ud+1]=rsl; // insert pixel's column into outer edge pixel location buffer
+ outerAccum++; // increment outer edge index buffer pointer
+ res[a]=0.0f; // set output pixel intensity now since it won't change later
+ }
+ else if (lres[a]==4) { // it is an inner edge pixel flagged by 4
+ ud=innerAccum<<1; // double int index to reach correct unsigned short location
+ gbuf[ud]=dmin; // insert pixel's row into inner edge pixel location buffer
+ gbuf[ud+1]=rsl; // insert pixel's column into inner edge pixel location buffer
+ innerAccum++; // increment inner edge index buffer pointer
+ res[a]=1.0f; // set output pixel intensity now since it won't change later
+ }
+ }
+ }
+
+}
+
+static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *gbuf, unsigned int isz, unsigned int osz, unsigned int gsz, unsigned int innerEdgeOffset, unsigned int outerEdgeOffset)
+{
+ int x; // x = pixel loop counter
+ int a; // a = temporary pixel index buffer loop counter
+ int fsz; // size of the frame
+ unsigned int rsl; // long used for finding fast 1.0/sqrt
+ float rsf; // float used for finding fast 1.0/sqrt
+ const float rsopf = 1.5f; // constant float used for finding fast 1.0/sqrt
+
+ unsigned int gradientFillOffset;
+ unsigned int t;
+ unsigned int ud; // ud = unscaled edge distance
+ unsigned int dmin; // dmin = minimun edge distance
+ float odist; // odist = current outer edge distance
+ float idist; // idist = current inner edge distance
+ int dx; // dx = X-delta (used for distance proportion calculation)
+ int dy; // dy = Y-delta (used for distance proportion calculation)
+
+ /*
+ The general algorithm used to color each gradient pixel is:
+
+ 1.) Loop through all gradient pixels.
+ A.) For each gradient pixel:
+ a.) Loop though all outside edge pixels, looking for closest one
+ to the gradient pixel we are in.
+ b.) Loop through all inside edge pixels, looking for closest one
+ to the gradient pixel we are in.
+ c.) Find proportion of distance from gradient pixel to inside edge
+ pixel compared to sum of distance to inside edge and distance to
+ outside edge.
+
+ In an image where:
+ . = blank (black) pixels, not covered by inner mask or outer mask
+ + = desired gradient pixels, covered only by outer mask
+ * = white full mask pixels, covered by at least inner mask
+
+ ...............................
+ ...............+++++++++++.....
+ ...+O++++++..++++++++++++++....
+ ..+++\++++++++++++++++++++.....
+ .+++++G+++++++++*******+++.....
+ .+++++|+++++++*********+++.....
+ .++***I****************+++.....
+ .++*******************+++......
+ .+++*****************+++.......
+ ..+++***************+++........
+ ....+++**********+++...........
+ ......++++++++++++.............
+ ...............................
+
+ O = outside edge pixel
+ \
+ G = gradient pixel
+ |
+ I = inside edge pixel
+
+ __
+ *note that IO does not need to be a straight line, in fact
+ many cases can arise where straight lines do not work
+ correctly.
+
+ __ __ __
+ d.) Pixel color is assigned as |GO| / ( |GI| + |GO| )
+
+ The implementation does not compute distance, but the reciprocal of the
+ distance. This is done to avoid having to compute a square root, as a
+ reciprocal square root can be computed faster. Therefore, the code computes
+ pixel color as |GI| / (|GI| + |GO|). Since these are reciprocals, GI serves the
+ purpose of GO for the proportion calculation.
+
+ For the purposes of the minimun distance comparisons, we only check
+ the sums-of-squares against eachother, since they are in the same
+ mathematical sort-order as if we did go ahead and take square roots
+
+ Loop through all gradient pixels.
+ */
+
+ for (x = gsz-1; x>=0; x--) {
+ gradientFillOffset=x<<1;
+ t=gbuf[gradientFillOffset]; // calculate column of pixel indexed by gbuf[x]
+ fsz=gbuf[gradientFillOffset+1]; // calculate row of pixel indexed by gbuf[x]
+ dmin=0xffffffff; // reset min distance to edge pixel
+ for (a=outerEdgeOffset+osz-1; a>=outerEdgeOffset; a--) { // loop through all outer edge buffer pixels
+ ud=a<<1;
+ dy=t-gbuf[ud]; // set dx to gradient pixel column - outer edge pixel row
+ dx=fsz-gbuf[ud+1]; // set dy to gradient pixel row - outer edge pixel column
+ ud=dx*dx+dy*dy; // compute sum of squares
+ if (ud<dmin) { // if our new sum of squares is less than the current minimum
+ dmin=ud; // set a new minimum equal to the new lower value
+ }
+ }
+ odist=(float)(dmin); // cast outer min to a float
+ rsf=odist*0.5f; //
+ rsl=*(unsigned int*)&odist; // use some peculiar properties of the way bits are stored
+ rsl=0x5f3759df-(rsl>>1); // in floats vs. unsigned ints to compute an approximate
+ odist=*(float*)&rsl; // reciprocal square root
+ odist=odist*(rsopf-(rsf*odist*odist)); // -- ** this line can be iterated for more accuracy ** --
+ dmin=0xffffffff; // reset min distance to edge pixel
+ for (a = innerEdgeOffset+isz-1; a>=innerEdgeOffset; a--) { // loop through all inside edge pixels
+ ud=a<<1;
+ dy=t-gbuf[ud]; // compute delta in Y from gradient pixel to inside edge pixel
+ dx=fsz-gbuf[ud+1]; // compute delta in X from gradient pixel to inside edge pixel
+ ud=dx*dx+dy*dy; // compute sum of squares
+ if (ud<dmin) { // if our new sum of squares is less than the current minimum we've found
+ dmin=ud; // set a new minimum equal to the new lower value
+ }
+ }
+ idist=(float)(dmin); // cast inner min to a float
+ rsf=idist*0.5f; //
+ rsl=*(unsigned int*)&idist; //
+ rsl=0x5f3759df-(rsl>>1); // see notes above
+ idist=*(float*)&rsl; //
+ idist=idist*(rsopf-(rsf*idist*idist)); //
+ /*
+ Note once again that since we are using reciprocals of distance values our
+ proportion is already the correct intensity, and does not need to be
+ subracted from 1.0 like it would have if we used real distances.
+ */
+
+ /*
+ Here we reconstruct the pixel's memory location in the CompBuf by
+ Pixel Index = Pixel Column + ( Pixel Row * Row Width )
+ */
+ res[gbuf[gradientFillOffset+1]+(gbuf[gradientFillOffset]*rw)]=(idist/(idist+odist)); //set intensity
+ }
+
+}
+
+// end of copy
+
+void DoubleEdgeMaskOperation::doDoubleEdgeMask(float *imask, float *omask, float *res)
+{
+ unsigned int *lres; // lres = unsigned int pointer to output pixel buffer (for bit operations)
+ unsigned int *limask; // limask = unsigned int pointer to inner mask (for bit operations)
+ unsigned int *lomask; // lomask = unsigned int pointer to outer mask (for bit operations)
+
+ int rw; // rw = pixel row width
+ int t; // t = total number of pixels in buffer - 1 (used for loop starts)
+ int fsz; // size of the frame
+
+ unsigned int isz=0; // size (in pixels) of inside edge pixel index buffer
+ unsigned int osz=0; // size (in pixels) of outside edge pixel index buffer
+ unsigned int gsz=0; // size (in pixels) of gradient pixel index buffer
+ unsigned int rsize[3]; // size storage to pass to helper functions
+ unsigned int innerEdgeOffset=0; // offset into final buffer where inner edge pixel indexes start
+ unsigned int outerEdgeOffset=0; // offset into final buffer where outer edge pixel indexes start
+
+ unsigned short *gbuf; // gradient/inner/outer pixel location index buffer
+
+ if (true) { // if both input sockets have some data coming in...
+
+ t=(this->getWidth()*this->getHeight())-1; // determine size of the frame
+
+ lres = (unsigned int*)res; // unsigned int pointer to output buffer (for bit level ops)
+ limask=(unsigned int*)imask; // unsigned int pointer to input mask (for bit level ops)
+ lomask=(unsigned int*)omask; // unsigned int pointer to output mask (for bit level ops)
+ rw = this->getWidth(); // width of a row of pixels
+
+
+ /*
+ The whole buffer is broken up into 4 parts. The four CORNERS, the FIRST and LAST rows, the
+ LEFT and RIGHT edges (excluding the corner pixels), and all OTHER rows.
+ This allows for quick computation of outer edge pixels where
+ a screen edge pixel is marked to be gradient.
+
+ The pixel type (gradient vs inner-edge vs outer-edge) tests change
+ depending on the user selected "Inner Edge Mode" and the user selected
+ "Buffer Edge Mode" on the node's GUI. There are 4 sets of basically the
+ same algorithm:
+
+ 1.) Inner Edge -> Adjacent Only
+ Buffer Edge -> Keep Inside
+
+ 2.) Inner Edge -> Adjacent Only
+ Buffer Edge -> Bleed Out
+
+ 3.) Inner Edge -> All
+ Buffer Edge -> Keep Inside
+
+ 4.) Inner Edge -> All
+ Buffer Edge -> Bleed Out
+
+ Each version has slightly different criteria for detecting an edge pixel.
+ */
+ if (this->adjecentOnly) { // if "adjacent only" inner edge mode is turned on
+ if (this->keepInside) { // if "keep inside" buffer edge mode is turned on
+ do_adjacentKeepBorders(t,rw,limask,lomask,lres,res,rsize);
+ }
+ else { // "bleed out" buffer edge mode is turned on
+ do_adjacentBleedBorders(t,rw,limask,lomask,lres,res,rsize);
+ }
+ isz=rsize[0]; // set up inner edge, outer edge, and gradient buffer sizes after border pass
+ osz=rsize[1];
+ gsz=rsize[2];
+ // detect edges in all non-border pixels in the buffer
+ do_adjacentEdgeDetection(t,rw,limask,lomask,lres,res,rsize,isz,osz,gsz);
+ }
+ else { // "all" inner edge mode is turned on
+ if (this->keepInside) { // if "keep inside" buffer edge mode is turned on
+ do_allKeepBorders(t,rw,limask,lomask,lres,res,rsize);
+ }
+ else { // "bleed out" buffer edge mode is turned on
+ do_allBleedBorders(t,rw,limask,lomask,lres,res,rsize);
+ }
+ isz=rsize[0]; // set up inner edge, outer edge, and gradient buffer sizes after border pass
+ osz=rsize[1];
+ gsz=rsize[2];
+ // detect edges in all non-border pixels in the buffer
+ do_allEdgeDetection(t,rw,limask,lomask,lres,res,rsize,isz,osz,gsz);
+ }
+
+ isz=rsize[0]; // set edge and gradient buffer sizes once again...
+ osz=rsize[1]; // the sizes in rsize[] may have been modified
+ gsz=rsize[2]; // by the do_*EdgeDetection() function.
+
+ fsz=gsz+isz+osz; // calculate size of pixel index buffer needed
+ gbuf = new unsigned short[fsz*2]; // allocate edge/gradient pixel index buffer
+
+ do_createEdgeLocationBuffer(t,rw,lres,res,gbuf,&innerEdgeOffset,&outerEdgeOffset,isz,gsz);
+ do_fillGradientBuffer(rw,res,gbuf,isz,osz,gsz,innerEdgeOffset,outerEdgeOffset);
+
+ delete gbuf; // free the gradient index buffer
+ }
+}
+
+DoubleEdgeMaskOperation::DoubleEdgeMaskOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputInnerMask = NULL;
+ this->inputOuterMask = NULL;
+ this->adjecentOnly = false;
+ this->keepInside = false;
+ this->setComplex(true);
+}
+
+bool DoubleEdgeMaskOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this->cachedInstance == NULL) {
+ rcti newInput;
+ newInput.xmax = this->getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = this->getHeight();
+ newInput.ymin = 0;
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+ else {
+ return false;
+ }
+}
+
+void DoubleEdgeMaskOperation::initExecution()
+{
+ this->inputInnerMask = this->getInputSocketReader(0);
+ this->inputOuterMask = this->getInputSocketReader(1);
+ initMutex();
+ this->cachedInstance = NULL;
+}
+
+void *DoubleEdgeMaskOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ if (this->cachedInstance) return this->cachedInstance;
+
+ BLI_mutex_lock(getMutex());
+ if (this->cachedInstance == NULL) {
+ MemoryBuffer *innerMask = (MemoryBuffer*)inputInnerMask->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *outerMask = (MemoryBuffer*)inputOuterMask->initializeTileData(rect, memoryBuffers);
+ float *data = new float[this->getWidth()*this->getHeight()];
+ float *imask = innerMask->convertToValueBuffer();
+ float *omask = outerMask->convertToValueBuffer();
+ doDoubleEdgeMask(imask, omask, data);
+ delete imask;
+ delete omask;
+ this->cachedInstance = data;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->cachedInstance;
+}
+void DoubleEdgeMaskOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float *buffer = (float*) data;
+ int index = (y*this->getWidth() + x);
+ color[0] = buffer[index];
+ color[1] = buffer[index+1];
+ color[2] = buffer[index+2];
+ color[3] = buffer[index+3];
+}
+
+void DoubleEdgeMaskOperation::deinitExecution()
+{
+ this->inputInnerMask = NULL;
+ this->inputOuterMask = NULL;
+ deinitMutex();
+ if (this->cachedInstance) {
+ delete cachedInstance;
+ this->cachedInstance = NULL;
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h
new file mode 100644
index 00000000000..85c4fd9e5b7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_DoubleEdgeMaskOperation_h
+#define _COM_DoubleEdgeMaskOperation_h
+#include "COM_NodeOperation.h"
+
+
+class DoubleEdgeMaskOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOuterMask;
+ SocketReader * inputInnerMask;
+ bool adjecentOnly;
+ bool keepInside;
+ float *cachedInstance;
+public:
+ DoubleEdgeMaskOperation();
+
+ void doDoubleEdgeMask(float *inner, float *outer, float *res);
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ void setAdjecentOnly(bool adjecentOnly) {this->adjecentOnly = adjecentOnly;}
+ void setKeepInside(bool keepInside) {this->keepInside = keepInside;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp b/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp
new file mode 100644
index 00000000000..85a629f7365
--- /dev/null
+++ b/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_EllipseMaskOperation.h"
+#include "BLI_math.h"
+#include "DNA_node_types.h"
+
+EllipseMaskOperation::EllipseMaskOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputMask = NULL;
+ this->inputValue = NULL;
+ this->cosine = 0.0f;
+ this->sine = 0.0f;
+}
+void EllipseMaskOperation::initExecution()
+{
+ this->inputMask = this->getInputSocketReader(0);
+ this->inputValue = this->getInputSocketReader(1);
+ const double rad = DEG2RAD(this->data->rotation);
+ this->cosine = cos(rad);
+ this->sine = sin(rad);
+ this->aspectRatio = ((float)this->getWidth())/this->getHeight();
+}
+
+void EllipseMaskOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputMask[4];
+ float inputValue[4];
+
+ float rx = x/this->getWidth();
+ float ry = y/this->getHeight();
+
+ const float dy = (ry - this->data->y)/this->aspectRatio;
+ const float dx = rx - this->data->x;
+ rx = this->data->x+(this->cosine*dx + this->sine*dy);
+ ry = this->data->y+(-this->sine*dx + this->cosine*dy);
+
+ this->inputMask->read(inputMask, x, y, sampler, inputBuffers);
+ this->inputValue->read(inputValue, x, y, sampler, inputBuffers);
+
+ const float halfHeight = (this->data->height)/2.0f;
+ const float halfWidth = this->data->width/2.0f;
+ float sx = rx-this->data->x;
+ sx *= sx;
+ const float tx = halfWidth * halfWidth;
+ float sy = ry-this->data->y;
+ sy *= sy;
+ const float ty = halfHeight * halfHeight;
+
+ bool inside = ((sx/tx)+(sy/ty))<1.0f;
+
+ switch (this->maskType) {
+ case CMP_NODE_MASKTYPE_ADD:
+ if (inside) {
+ color[0] = max(inputMask[0],inputValue[0]);
+ }
+ else {
+ color[0] = inputMask[0];
+ }
+ break;
+ case CMP_NODE_MASKTYPE_SUBTRACT:
+ if (inside) {
+ color[0] = inputMask[0]-inputValue[0];
+ CLAMP(color[0], 0, 1);
+ }
+ else {
+ color[0] = inputMask[0];
+ }
+ break;
+ case CMP_NODE_MASKTYPE_MULTIPLY:
+ if (inside) {
+ color[0] = inputMask[0]*inputValue[0];
+ }
+ else {
+ color[0] = 0;
+ }
+ break;
+ case CMP_NODE_MASKTYPE_NOT:
+ if (inside) {
+ if (inputMask[0]>0.0f) {
+ color[0] = 0;
+ }
+ else {
+ color[0] = inputValue[0];
+ }
+ }
+ else {
+ color[0] = inputMask[0];
+ }
+ break;
+ }
+
+
+}
+
+void EllipseMaskOperation::deinitExecution()
+{
+ this->inputMask = NULL;
+ this->inputValue = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_EllipseMaskOperation.h b/source/blender/compositor/operations/COM_EllipseMaskOperation.h
new file mode 100644
index 00000000000..bff94941190
--- /dev/null
+++ b/source/blender/compositor/operations/COM_EllipseMaskOperation.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_EllipseMaskOperation_h
+#define _COM_EllipseMaskOperation_h
+#include "COM_NodeOperation.h"
+
+
+class EllipseMaskOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputMask;
+ SocketReader * inputValue;
+
+ float sine;
+ float cosine;
+ float aspectRatio;
+ int maskType;
+
+ NodeEllipseMask *data;
+public:
+ EllipseMaskOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeEllipseMask *data) {this->data = data;}
+
+ void setMaskType(int maskType) {this->maskType = maskType;}
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp
new file mode 100644
index 00000000000..ad8f3b12387
--- /dev/null
+++ b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp
@@ -0,0 +1,205 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_FastGaussianBlurOperation.h"
+#include "MEM_guardedalloc.h"
+#include "BLI_utildefines.h"
+
+FastGaussianBlurOperation::FastGaussianBlurOperation(): BlurBaseOperation()
+{
+ this->iirgaus = false;
+}
+
+void FastGaussianBlurOperation::executePixel(float *color,int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ MemoryBuffer *newData = (MemoryBuffer*)data;
+
+ newData->read(color, x, y);
+}
+
+bool FastGaussianBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+
+ NodeOperation * operation = this->getInputOperation(1);
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
+ return true;
+ }
+ else {
+ if (this->iirgaus) {
+ newInput.xmax = input->xmax + (sx);
+ newInput.xmin = input->xmin - (sx);
+ newInput.ymax = input->ymax + (sy);
+ newInput.ymin = input->ymin - (sy);
+ }
+ else {
+ newInput.xmin = 0;
+ newInput.ymin = 0;
+ newInput.xmax = this->getWidth();
+ newInput.ymax = this->getHeight();
+ }
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
+
+void *FastGaussianBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ MemoryBuffer *newBuf = (MemoryBuffer*)this->inputProgram->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *copy = newBuf->duplicate();
+ updateSize(memoryBuffers);
+
+ int c;
+ sx = data->sizex * this->size/2.0f;
+ sy = data->sizey * this->size/2.0f;
+ this->iirgaus = true;
+
+ if ((sx == sy) && (sx > 0.f)) {
+ for (c=0; c<COM_NUMBER_OF_CHANNELS; ++c)
+ IIR_gauss(copy, sx, c, 3);
+ }
+ else {
+ if (sx > 0.f) {
+ for (c=0; c<COM_NUMBER_OF_CHANNELS; ++c)
+ IIR_gauss(copy, sx, c, 1);
+ }
+ if (sy > 0.f) {
+ for (c=0; c<COM_NUMBER_OF_CHANNELS; ++c)
+ IIR_gauss(copy, sy, c, 2);
+ }
+ }
+ return copy;
+}
+
+void FastGaussianBlurOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+{
+ MemoryBuffer *newData = (MemoryBuffer*)data;
+ delete newData;
+}
+
+void FastGaussianBlurOperation::IIR_gauss(MemoryBuffer *src, float sigma, int chan, int xy)
+{
+ double q, q2, sc, cf[4], tsM[9], tsu[3], tsv[3];
+ double *X, *Y, *W;
+ int i, x, y, sz;
+ float *buffer = src->getBuffer();
+
+ // <0.5 not valid, though can have a possibly useful sort of sharpening effect
+ if (sigma < 0.5f) return;
+
+ if ((xy < 1) || (xy > 3)) xy = 3;
+
+ // XXX The YVV macro defined below explicitly expects sources of at least 3x3 pixels,
+ // so just skiping blur along faulty direction if src's def is below that limit!
+ if (src->getWidth() < 3) xy &= ~(int) 1;
+ if (src->getHeight() < 3) xy &= ~(int) 2;
+ if (xy < 1) return;
+
+ // see "Recursive Gabor Filtering" by Young/VanVliet
+ // all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200
+ if (sigma >= 3.556f)
+ q = 0.9804f*(sigma - 3.556f) + 2.5091f;
+ else // sigma >= 0.5
+ q = (0.0561f*sigma + 0.5784f)*sigma - 0.2568f;
+ q2 = q*q;
+ sc = (1.1668 + q)*(3.203729649 + (2.21566 + q)*q);
+ // no gabor filtering here, so no complex multiplies, just the regular coefs.
+ // all negated here, so as not to have to recalc Triggs/Sdika matrix
+ cf[1] = q*(5.788961737 + (6.76492 + 3.0*q)*q)/ sc;
+ cf[2] = -q2*(3.38246 + 3.0*q)/sc;
+ // 0 & 3 unchanged
+ cf[3] = q2*q/sc;
+ cf[0] = 1.0 - cf[1] - cf[2] - cf[3];
+
+ // Triggs/Sdika border corrections,
+ // it seems to work, not entirely sure if it is actually totally correct,
+ // Besides J.M.Geusebroek's anigauss.c (see http://www.science.uva.nl/~mark),
+ // found one other implementation by Cristoph Lampert,
+ // but neither seem to be quite the same, result seems to be ok so far anyway.
+ // Extra scale factor here to not have to do it in filter,
+ // though maybe this had something to with the precision errors
+ sc = cf[0]/((1.0 + cf[1] - cf[2] + cf[3])*(1.0 - cf[1] - cf[2] - cf[3])*(1.0 + cf[2] + (cf[1] - cf[3])*cf[3]));
+ tsM[0] = sc*(-cf[3]*cf[1] + 1.0 - cf[3]*cf[3] - cf[2]);
+ tsM[1] = sc*((cf[3] + cf[1])*(cf[2] + cf[3]*cf[1]));
+ tsM[2] = sc*(cf[3]*(cf[1] + cf[3]*cf[2]));
+ tsM[3] = sc*(cf[1] + cf[3]*cf[2]);
+ tsM[4] = sc*(-(cf[2] - 1.0)*(cf[2] + cf[3]*cf[1]));
+ tsM[5] = sc*(-(cf[3]*cf[1] + cf[3]*cf[3] + cf[2] - 1.0)*cf[3]);
+ tsM[6] = sc*(cf[3]*cf[1] + cf[2] + cf[1]*cf[1] - cf[2]*cf[2]);
+ tsM[7] = sc*(cf[1]*cf[2] + cf[3]*cf[2]*cf[2] - cf[1]*cf[3]*cf[3] - cf[3]*cf[3]*cf[3] - cf[3]*cf[2] + cf[3]);
+ tsM[8] = sc*(cf[3]*(cf[1] + cf[3]*cf[2]));
+
+#define YVV(L) \
+{ \
+W[0] = cf[0]*X[0] + cf[1]*X[0] + cf[2]*X[0] + cf[3]*X[0]; \
+W[1] = cf[0]*X[1] + cf[1]*W[0] + cf[2]*X[0] + cf[3]*X[0]; \
+W[2] = cf[0]*X[2] + cf[1]*W[1] + cf[2]*W[0] + cf[3]*X[0]; \
+for (i=3; i<L; i++) \
+W[i] = cf[0]*X[i] + cf[1]*W[i-1] + cf[2]*W[i-2] + cf[3]*W[i-3]; \
+tsu[0] = W[L-1] - X[L-1]; \
+tsu[1] = W[L-2] - X[L-1]; \
+tsu[2] = W[L-3] - X[L-1]; \
+tsv[0] = tsM[0]*tsu[0] + tsM[1]*tsu[1] + tsM[2]*tsu[2] + X[L-1]; \
+tsv[1] = tsM[3]*tsu[0] + tsM[4]*tsu[1] + tsM[5]*tsu[2] + X[L-1]; \
+tsv[2] = tsM[6]*tsu[0] + tsM[7]*tsu[1] + tsM[8]*tsu[2] + X[L-1]; \
+Y[L-1] = cf[0]*W[L-1] + cf[1]*tsv[0] + cf[2]*tsv[1] + cf[3]*tsv[2]; \
+Y[L-2] = cf[0]*W[L-2] + cf[1]*Y[L-1] + cf[2]*tsv[0] + cf[3]*tsv[1]; \
+Y[L-3] = cf[0]*W[L-3] + cf[1]*Y[L-2] + cf[2]*Y[L-1] + cf[3]*tsv[0]; \
+for (i=L-4; i>=0; i--) \
+Y[i] = cf[0]*W[i] + cf[1]*Y[i+1] + cf[2]*Y[i+2] + cf[3]*Y[i+3]; \
+}
+
+ // intermediate buffers
+ sz = MAX2(src->getWidth(), src->getHeight());
+ X = (double*)MEM_callocN(sz*sizeof(double), "IIR_gauss X buf");
+ Y = (double*)MEM_callocN(sz*sizeof(double), "IIR_gauss Y buf");
+ W = (double*)MEM_callocN(sz*sizeof(double), "IIR_gauss W buf");
+ if (xy & 1) { // H
+ for (y=0; y<src->getHeight(); ++y) {
+ const int yx = y*src->getWidth();
+ for (x=0; x<src->getWidth(); ++x)
+ X[x] = buffer[(x + yx)*COM_NUMBER_OF_CHANNELS + chan];
+ YVV(src->getWidth());
+ for (x=0; x<src->getWidth(); ++x)
+ buffer[(x + yx)*COM_NUMBER_OF_CHANNELS + chan] = Y[x];
+ }
+ }
+ if (xy & 2) { // V
+ for (x=0; x<src->getWidth(); ++x) {
+ for (y=0; y<src->getHeight(); ++y)
+ X[y] = buffer[(x + y*src->getWidth())*COM_NUMBER_OF_CHANNELS + chan];
+ YVV(src->getHeight());
+ for (y=0; y<src->getHeight(); ++y)
+ buffer[(x + y*src->getWidth())*COM_NUMBER_OF_CHANNELS + chan] = Y[y];
+ }
+ }
+
+ MEM_freeN(X);
+ MEM_freeN(W);
+ MEM_freeN(Y);
+#undef YVV
+
+}
diff --git a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h
new file mode 100644
index 00000000000..cf36e7f6ebe
--- /dev/null
+++ b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_FastGaussianBlurOperation_h
+#define _COM_FastGaussianBlurOperation_h
+
+#include "COM_BlurBaseOperation.h"
+#include "DNA_node_types.h"
+
+class FastGaussianBlurOperation: public BlurBaseOperation {
+private:
+ float sx;
+ float sy;
+ bool iirgaus;
+public:
+ FastGaussianBlurOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ void IIR_gauss(MemoryBuffer *src, float sigma, int channel, int xy);
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+
+};
+#endif
+
diff --git a/source/blender/compositor/operations/COM_FlipOperation.cpp b/source/blender/compositor/operations/COM_FlipOperation.cpp
new file mode 100644
index 00000000000..38018ffc3f7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_FlipOperation.cpp
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_FlipOperation.h"
+
+FlipOperation::FlipOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+ this->flipX = true;
+ this->flipY = false;
+}
+void FlipOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void FlipOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
+
+void FlipOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float nx = this->flipX?this->getWidth()-1-x:x;
+ float ny = this->flipY?this->getHeight()-1-y:y;
+
+ this->inputOperation->read(color, nx, ny, sampler, inputBuffers);
+}
+
+bool FlipOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ if (this->flipX) {
+ newInput.xmax = (this->getWidth()- 1 - input->xmin)+1;
+ newInput.xmin = (this->getWidth()- 1 - input->xmax)-1;
+ }
+ else {
+ newInput.xmin = input->xmin;
+ newInput.xmax = input->xmax;
+ }
+ if (this->flipY) {
+ newInput.ymax = (this->getHeight()- 1 - input->ymin)+1;
+ newInput.ymin = (this->getHeight()- 1 - input->ymax)-1;
+ }
+ else {
+ newInput.ymin = input->ymin;
+ newInput.ymax = input->ymax;
+ }
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_FlipOperation.h b/source/blender/compositor/operations/COM_FlipOperation.h
new file mode 100644
index 00000000000..9774cfd7bcd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_FlipOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_FlipOperation_h_
+#define _COM_FlipOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class FlipOperation: public NodeOperation {
+private:
+ SocketReader *inputOperation;
+ bool flipX;
+ bool flipY;
+public:
+ FlipOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+ void setFlipX(bool flipX) {this->flipX = flipX;}
+ void setFlipY(bool flipY) {this->flipY = flipY;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_FogGlowImageOperation.cpp b/source/blender/compositor/operations/COM_FogGlowImageOperation.cpp
new file mode 100644
index 00000000000..600bfde64d9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_FogGlowImageOperation.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_FogGlowImageOperation.h"
+#include "BLI_math.h"
+
+FogGlowImageOperation::FogGlowImageOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
+void FogGlowImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ const float cs_r = 1.f, cs_g = 1.f, cs_b = 1.f;
+
+ float u, v, w, d, r;
+
+ v = 2.f*(y / (float)512) - 1.f;
+ u = 2.f*(x / (float)512) - 1.f;
+ r = (u*u + v*v)*256;
+ d = -sqrtf(sqrtf(sqrtf(r)));
+ w = (0.5f + 0.5f*cos((double)u*M_PI))*(0.5f + 0.5f*cos((double)v*M_PI));
+ color[0] = expf(d*cs_r) * w;
+ color[1] = expf(d*cs_g) * w;
+ color[2] = expf(d*cs_b) * w;
+ color[3] = 1.0f;
+}
+
+void FogGlowImageOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ resolution[0] = 512;
+ resolution[1] = 512;
+}
diff --git a/source/blender/compositor/operations/COM_FogGlowImageOperation.h b/source/blender/compositor/operations/COM_FogGlowImageOperation.h
new file mode 100644
index 00000000000..d0fc107638e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_FogGlowImageOperation.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_FogGlowOperation_h
+#define _COM_FogGlowOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_lamp_types.h"
+
+class FogGlowImageOperation : public NodeOperation {
+public:
+ FogGlowImageOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp b/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp
new file mode 100644
index 00000000000..a4fb20402a4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GammaCorrectOperation.h"
+#include "BLI_math.h"
+
+GammaCorrectOperation::GammaCorrectOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+}
+void GammaCorrectOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void GammaCorrectOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ this->inputProgram->read(inputColor, x, y, sampler, inputBuffers);
+ if (inputColor[3] > 0.0f) {
+ inputColor[0] /= inputColor[3];
+ inputColor[1] /= inputColor[3];
+ inputColor[2] /= inputColor[3];
+ }
+
+ /* check for negative to avoid nan's */
+ color[0] = inputColor[0]>0.0f?inputColor[0]*inputColor[0] :0.0f;
+ color[1] = inputColor[1]>0.0f?inputColor[1]*inputColor[1] :0.0f;
+ color[2] = inputColor[2]>0.0f?inputColor[2]*inputColor[2] :0.0f;
+
+ inputColor[0] *= inputColor[3];
+ inputColor[1] *= inputColor[3];
+ inputColor[2] *= inputColor[3];
+
+ color[0] = inputColor[0];
+ color[1] = inputColor[1];
+ color[2] = inputColor[2];
+ color[3] = inputColor[3];
+}
+
+void GammaCorrectOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
+
+GammaUncorrectOperation::GammaUncorrectOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+}
+void GammaUncorrectOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void GammaUncorrectOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor[4];
+ this->inputProgram->read(inputColor, x, y, sampler, inputBuffers);
+
+ if (inputColor[3] > 0.0f) {
+ inputColor[0] /= inputColor[3];
+ inputColor[1] /= inputColor[3];
+ inputColor[2] /= inputColor[3];
+ }
+
+ color[0] = inputColor[0]>0.0f?sqrtf(inputColor[0]) :0.0f;
+ color[1] = inputColor[1]>0.0f?sqrtf(inputColor[1]) :0.0f;
+ color[2] = inputColor[2]>0.0f?sqrtf(inputColor[2]) :0.0f;
+
+ inputColor[0] *= inputColor[3];
+ inputColor[1] *= inputColor[3];
+ inputColor[2] *= inputColor[3];
+
+ color[0] = inputColor[0];
+ color[1] = inputColor[1];
+ color[2] = inputColor[2];
+ color[3] = inputColor[3];
+}
+
+void GammaUncorrectOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_GammaCorrectOperation.h b/source/blender/compositor/operations/COM_GammaCorrectOperation.h
new file mode 100644
index 00000000000..6132f04edba
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GammaCorrectOperation.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GammaCorrectOperation_h
+#define _COM_GammaCorrectOperation_h
+#include "COM_NodeOperation.h"
+
+
+class GammaCorrectOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+public:
+ GammaCorrectOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+
+class GammaUncorrectOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+public:
+ GammaUncorrectOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_GammaOperation.cpp b/source/blender/compositor/operations/COM_GammaOperation.cpp
new file mode 100644
index 00000000000..f0887d4adee
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GammaOperation.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GammaOperation.h"
+#include "BLI_math.h"
+
+GammaOperation::GammaOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+ this->inputGammaProgram = NULL;
+}
+void GammaOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ this->inputGammaProgram = this->getInputSocketReader(1);
+}
+
+void GammaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ float inputGamma[4];
+
+ this->inputProgram->read(inputValue, x, y, sampler, inputBuffers);
+ this->inputGammaProgram->read(inputGamma, x, y, sampler, inputBuffers);
+ const float gamma = inputGamma[0];
+ /* check for negative to avoid nan's */
+ color[0] = inputValue[0]>0.0f?pow(inputValue[0], gamma):inputValue[0];
+ color[1] = inputValue[1]>0.0f?pow(inputValue[1], gamma):inputValue[1];
+ color[2] = inputValue[2]>0.0f?pow(inputValue[2], gamma):inputValue[2];
+
+ color[3] = inputValue[3];
+}
+
+void GammaOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+ this->inputGammaProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_GammaOperation.h b/source/blender/compositor/operations/COM_GammaOperation.h
new file mode 100644
index 00000000000..2f3d8cdf9f7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GammaOperation.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GammaOperation_h
+#define _COM_GammaOperation_h
+#include "COM_NodeOperation.h"
+
+
+class GammaOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+ SocketReader *inputGammaProgram;
+
+public:
+ GammaOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
new file mode 100644
index 00000000000..af10791590b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
@@ -0,0 +1,182 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GaussianBokehBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+GaussianBokehBlurOperation::GaussianBokehBlurOperation(): BlurBaseOperation()
+{
+ this->gausstab = NULL;
+}
+
+void *GaussianBokehBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ updateGauss(memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void GaussianBokehBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+{
+ if (this->gausstab == NULL) {
+ float radxf;
+ float radyf;
+ int n;
+ float *dgauss;
+ float *ddgauss;
+ float val;
+ int j, i;
+ const float width = this->getWidth();
+ const float height = this->getHeight();
+ updateSize(memoryBuffers);
+
+ radxf = size*(float)this->data->sizex;
+ if (radxf>width/2.0f)
+ radxf = width/2.0f;
+ else if (radxf<1.0f)
+ radxf = 1.0f;
+
+ /* vertical */
+ radyf = size*(float)this->data->sizey;
+ if (radyf>height/2.0f)
+ radyf = height/2.0f;
+ else if (radyf<1.0f)
+ radyf = 1.0f;
+
+ radx = ceil(radxf);
+ rady = ceil(radyf);
+
+ n = (2*radx+1)*(2*rady+1);
+
+ /* create a full filter image */
+ ddgauss = new float[n];
+ dgauss = ddgauss;
+ val = 0.0f;
+ for (j=-rady; j<=rady; j++) {
+ for (i=-radx; i<=radx; i++, dgauss++) {
+ float fj = (float)j / radyf;
+ float fi = (float)i / radxf;
+ float dist = sqrt(fj * fj + fi * fi);
+ *dgauss = RE_filter_value(this->data->filtertype, dist);
+
+ val+= *dgauss;
+ }
+ }
+ if (val!=0.0f) {
+ val = 1.0f/val;
+ for (j = n - 1; j>=0; j--)
+ ddgauss[j]*= val;
+ }
+ else ddgauss[4] = 1.0f;
+
+ gausstab = ddgauss;
+ }
+}
+
+void GaussianBokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float tempColor[4];
+ tempColor[0] = 0;
+ tempColor[1] = 0;
+ tempColor[2] = 0;
+ tempColor[3] = 0;
+ float overallmultiplyer = 0;
+ MemoryBuffer *inputBuffer = (MemoryBuffer*)data;
+ float *buffer = inputBuffer->getBuffer();
+ int bufferwidth = inputBuffer->getWidth();
+ int bufferstartx = inputBuffer->getRect()->xmin;
+ int bufferstarty = inputBuffer->getRect()->ymin;
+
+ int miny = y - this->rady;
+ int maxy = y + this->rady;
+ int minx = x - this->radx;
+ int maxx = x + this->radx;
+ miny = max(miny, inputBuffer->getRect()->ymin);
+ minx = max(minx, inputBuffer->getRect()->xmin);
+ maxy = min(maxy, inputBuffer->getRect()->ymax);
+ maxx = min(maxx, inputBuffer->getRect()->xmax);
+
+ int index = 0;
+ int step = QualityStepHelper::getStep();
+ int offsetadd = QualityStepHelper::getOffsetAdd();
+ for (int ny = miny ; ny < maxy ; ny +=step) {
+ int bufferindex = ((minx - bufferstartx)*4)+((ny-bufferstarty)*4*bufferwidth);
+ for (int nx = minx ; nx < maxx ; nx +=step) {
+ float multiplyer = gausstab[index];
+ tempColor[0] += multiplyer * buffer[bufferindex];
+ tempColor[1] += multiplyer * buffer[bufferindex+1];
+ tempColor[2] += multiplyer * buffer[bufferindex+2];
+ tempColor[3] += multiplyer * buffer[bufferindex+3];
+ overallmultiplyer += multiplyer;
+ index += step;
+ bufferindex +=offsetadd;
+ }
+ }
+ float divider = 1.0/overallmultiplyer;
+ color[0] = tempColor[0]*divider;
+ color[1] = tempColor[1]*divider;
+ color[2] = tempColor[2]*divider;
+ color[3] = tempColor[3]*divider;
+}
+
+void GaussianBokehBlurOperation::deinitExecution()
+{
+ BlurBaseOperation::deinitExecution();
+ delete this->gausstab;
+ this->gausstab = NULL;
+}
+
+bool GaussianBokehBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+ NodeOperation * operation = this->getInputOperation(1);
+
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
+ return true;
+ }
+ else {
+ if (this->gausstab) {
+ int addx = radx;
+ int addy = rady;
+ newInput.xmax = input->xmax + addx;
+ newInput.xmin = input->xmin - addx;
+ newInput.ymax = input->ymax + addy;
+ newInput.ymin = input->ymin - addy;
+ }
+ else {
+ newInput.xmin = 0;
+ newInput.ymin = 0;
+ newInput.xmax = this->getWidth();
+ newInput.ymax = this->getHeight();
+ }
+ return BlurBaseOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
diff --git a/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h
new file mode 100644
index 00000000000..a7a0ee74364
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehGaussianBokehBlurOperation_h
+#define _COM_GaussianBokehBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_BlurBaseOperation.h"
+#include "COM_QualityStepHelper.h"
+
+class GaussianBokehBlurOperation : public BlurBaseOperation {
+private:
+ float *gausstab;
+ int radx, rady;
+ void updateGauss(MemoryBuffer **memoryBuffers);
+
+public:
+ GaussianBokehBlurOperation();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
new file mode 100644
index 00000000000..276efd90740
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GaussianXBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+GaussianXBlurOperation::GaussianXBlurOperation(): BlurBaseOperation()
+{
+ this->gausstab = NULL;
+ this->rad = 0;
+
+}
+
+void *GaussianXBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ updateGauss(memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void GaussianXBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+{
+ if (this->gausstab == NULL) {
+ updateSize(memoryBuffers);
+ float rad = size*this->data->sizex;
+ if (rad<1)
+ rad = 1;
+
+ this->rad = rad;
+ this->gausstab = BlurBaseOperation::make_gausstab(rad);
+ }
+}
+
+void GaussianXBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float tempColor[4];
+ tempColor[0] = 0;
+ tempColor[1] = 0;
+ tempColor[2] = 0;
+ tempColor[3] = 0;
+ float overallmultiplyer = 0;
+ MemoryBuffer *inputBuffer = (MemoryBuffer*)data;
+ float *buffer = inputBuffer->getBuffer();
+ int bufferwidth = inputBuffer->getWidth();
+ int bufferstartx = inputBuffer->getRect()->xmin;
+ int bufferstarty = inputBuffer->getRect()->ymin;
+
+ int miny = y;
+ int maxy = y;
+ int minx = x - this->rad;
+ int maxx = x + this->rad;
+ miny = max(miny, inputBuffer->getRect()->ymin);
+ minx = max(minx, inputBuffer->getRect()->xmin);
+ maxy = min(maxy, inputBuffer->getRect()->ymax);
+ maxx = min(maxx, inputBuffer->getRect()->xmax);
+
+ int index = 0;
+ int step = getStep();
+ int offsetadd = getOffsetAdd();
+ int bufferindex = ((minx - bufferstartx)*4)+((miny-bufferstarty)*4*bufferwidth);
+ for (int nx = minx ; nx < maxx ; nx +=step) {
+ float multiplyer = gausstab[index++];
+ tempColor[0] += multiplyer * buffer[bufferindex];
+ tempColor[1] += multiplyer * buffer[bufferindex+1];
+ tempColor[2] += multiplyer * buffer[bufferindex+2];
+ tempColor[3] += multiplyer * buffer[bufferindex+3];
+ overallmultiplyer += multiplyer;
+ bufferindex +=offsetadd;
+ }
+ float divider = 1.0/overallmultiplyer;
+ color[0] = tempColor[0]*divider;
+ color[1] = tempColor[1]*divider;
+ color[2] = tempColor[2]*divider;
+ color[3] = tempColor[3]*divider;
+}
+
+void GaussianXBlurOperation::deinitExecution()
+{
+ BlurBaseOperation::deinitExecution();
+ delete this->gausstab;
+ this->gausstab = NULL;
+}
+
+bool GaussianXBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+
+ NodeOperation * operation = this->getInputOperation(1);
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
+ return true;
+ }
+ else {
+ if (this->gausstab == NULL) {
+ newInput.xmax = this->getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = this->getHeight();
+ newInput.ymin = 0;
+ }
+ else {
+ newInput.xmax = input->xmax + rad;
+ newInput.xmin = input->xmin - rad;
+ newInput.ymax = input->ymax;
+ newInput.ymin = input->ymin;
+ }
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
diff --git a/source/blender/compositor/operations/COM_GaussianXBlurOperation.h b/source/blender/compositor/operations/COM_GaussianXBlurOperation.h
new file mode 100644
index 00000000000..704d063d28f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GaussianXBlurOperation.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GaussianXBlurOperation_h
+#define _COM_GaussianXBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_BlurBaseOperation.h"
+
+class GaussianXBlurOperation : public BlurBaseOperation {
+private:
+ float *gausstab;
+ int rad;
+ void updateGauss(MemoryBuffer **memoryBuffers);
+public:
+ GaussianXBlurOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
new file mode 100644
index 00000000000..faef152dc31
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GaussianYBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+GaussianYBlurOperation::GaussianYBlurOperation(): BlurBaseOperation()
+{
+ this->gausstab = NULL;
+ this->rad = 0;
+}
+
+void *GaussianYBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ updateGauss(memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void GaussianYBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+{
+ if (this->gausstab == NULL) {
+ updateSize(memoryBuffers);
+ float rad = size*this->data->sizey;
+ if (rad<1)
+ rad = 1;
+
+ this->rad = rad;
+ this->gausstab = BlurBaseOperation::make_gausstab(rad);
+ }
+}
+
+void GaussianYBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float tempColor[4];
+ tempColor[0] = 0;
+ tempColor[1] = 0;
+ tempColor[2] = 0;
+ tempColor[3] = 0;
+ float overallmultiplyer = 0;
+ MemoryBuffer *inputBuffer = (MemoryBuffer*)data;
+ float *buffer = inputBuffer->getBuffer();
+ int bufferwidth = inputBuffer->getWidth();
+ int bufferstartx = inputBuffer->getRect()->xmin;
+ int bufferstarty = inputBuffer->getRect()->ymin;
+
+ int miny = y - this->rad;
+ int maxy = y + this->rad;
+ int minx = x;
+ int maxx = x;
+ miny = max(miny, inputBuffer->getRect()->ymin);
+ minx = max(minx, inputBuffer->getRect()->xmin);
+ maxy = min(maxy, inputBuffer->getRect()->ymax);
+ maxx = min(maxx, inputBuffer->getRect()->xmax);
+
+ int step = getStep();
+ int index = 0;
+ for (int ny = miny ; ny < maxy ; ny +=step) {
+ int bufferindex = ((minx - bufferstartx)*4)+((ny-bufferstarty)*4*bufferwidth);
+ float multiplyer = gausstab[index++];
+ tempColor[0] += multiplyer * buffer[bufferindex];
+ tempColor[1] += multiplyer * buffer[bufferindex+1];
+ tempColor[2] += multiplyer * buffer[bufferindex+2];
+ tempColor[3] += multiplyer * buffer[bufferindex+3];
+ overallmultiplyer += multiplyer;
+ }
+ float divider = 1.0/overallmultiplyer;
+ color[0] = tempColor[0]*divider;
+ color[1] = tempColor[1]*divider;
+ color[2] = tempColor[2]*divider;
+ color[3] = tempColor[3]*divider;
+}
+
+void GaussianYBlurOperation::deinitExecution()
+{
+ BlurBaseOperation::deinitExecution();
+ delete this->gausstab;
+ this->gausstab = NULL;
+}
+
+bool GaussianYBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+
+ NodeOperation * operation = this->getInputOperation(1);
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
+ return true;
+ }
+ else {
+ if (this->gausstab == NULL) {
+ newInput.xmax = this->getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = this->getHeight();
+ newInput.ymin = 0;
+ }
+ else {
+ newInput.xmax = input->xmax;
+ newInput.xmin = input->xmin;
+ newInput.ymax = input->ymax + rad;
+ newInput.ymin = input->ymin - rad;
+ }
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
diff --git a/source/blender/compositor/operations/COM_GaussianYBlurOperation.h b/source/blender/compositor/operations/COM_GaussianYBlurOperation.h
new file mode 100644
index 00000000000..c9baf27b1d6
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GaussianYBlurOperation.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GaussianYBlurOperation_h
+#define _COM_GaussianYBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_BlurBaseOperation.h"
+
+class GaussianYBlurOperation : public BlurBaseOperation {
+private:
+ float *gausstab;
+ int rad;
+ void updateGauss(MemoryBuffer **memoryBuffers);
+public:
+ GaussianYBlurOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GlareBaseOperation.cpp b/source/blender/compositor/operations/COM_GlareBaseOperation.cpp
new file mode 100644
index 00000000000..fdfd19a10ae
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareBaseOperation.cpp
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GlareBaseOperation.h"
+#include "BLI_math.h"
+
+GlareBaseOperation::GlareBaseOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->settings = NULL;
+ this->cachedInstance = NULL;
+ setComplex(true);
+}
+void GlareBaseOperation::initExecution()
+{
+ initMutex();
+ this->inputProgram = getInputSocketReader(0);
+ this->cachedInstance = NULL;
+}
+
+void GlareBaseOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)\
+{
+ float *buffer = (float*) data;
+ int index = (y*this->getWidth() + x) * COM_NUMBER_OF_CHANNELS;
+ color[0] = buffer[index];
+ color[1] = buffer[index+1];
+ color[2] = buffer[index+2];
+ color[3] = buffer[index+3];
+}
+
+void GlareBaseOperation::deinitExecution()
+{
+ deinitMutex();
+ this->inputProgram = NULL;
+ if (this->cachedInstance) {
+ delete cachedInstance;
+ this->cachedInstance = NULL;
+ }
+}
+void *GlareBaseOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ BLI_mutex_lock(getMutex());
+ if (this->cachedInstance == NULL) {
+ MemoryBuffer *tile = (MemoryBuffer*)inputProgram->initializeTileData(rect, memoryBuffers);
+ float *data = new float[this->getWidth()*this->getHeight()*COM_NUMBER_OF_CHANNELS];
+ this->generateGlare(data, tile, this->settings);
+ this->cachedInstance = data;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->cachedInstance;
+}
+
+bool GlareBaseOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this->cachedInstance != NULL) {
+ return false;
+ }
+ else {
+ rcti newInput;
+ newInput.xmax = this->getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = this->getHeight();
+ newInput.ymin = 0;
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
diff --git a/source/blender/compositor/operations/COM_GlareBaseOperation.h b/source/blender/compositor/operations/COM_GlareBaseOperation.h
new file mode 100644
index 00000000000..e06244d3cdd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareBaseOperation.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GlareBaseOperation_h
+#define _COM_GlareBaseOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+class GlareBaseOperation : public NodeOperation {
+private:
+ /**
+ * @brief Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+ /**
+ * @brief settings of the glare node.
+ */
+ NodeGlare * settings;
+
+ float *cachedInstance;
+
+public:
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+
+ void setGlareSettings(NodeGlare * settings) {this->settings = settings;}
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+protected:
+ GlareBaseOperation();
+
+ virtual void generateGlare(float *data, MemoryBuffer *inputTile, NodeGlare *settings) = 0;
+
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GlareSimpleStarOperation.cpp b/source/blender/compositor/operations/COM_GlareSimpleStarOperation.cpp
new file mode 100644
index 00000000000..602e18521ee
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareSimpleStarOperation.cpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GlareSimpleStarOperation.h"
+
+void GlareSimpleStarOperation::generateGlare(float *data, MemoryBuffer *inputTile, NodeGlare *settings)
+{
+ int i, x, y, ym, yp, xm, xp;
+ float c[4] = {0,0,0,0}, tc[4] = {0,0,0,0};
+ const float f1 = 1.f - settings->fade, f2 = (1.f - f1)*0.5f;
+
+
+ MemoryBuffer *tbuf1 = inputTile->duplicate();
+ MemoryBuffer *tbuf2 = inputTile->duplicate();
+
+ for (i=0; i<settings->iter; i++) {
+// // (x || x-1, y-1) to (x || x+1, y+1)
+// // F
+ for (y=0; y<this->getHeight(); y++) {
+ ym = y - i;
+ yp = y + i;
+ for (x=0; x<this->getWidth(); x++) {
+ xm = x - i;
+ xp = x + i;
+ tbuf1->read(c, x, y);
+ c[0]*=f1; c[1]*=f1 ; c[2] *=f1;
+ tbuf1->read(tc, (settings->angle ? xm : x), ym);
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ tbuf1->read(tc, (settings->angle ? xp : x), yp);
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ c[3] = 1.0f;
+ tbuf1->writePixel(x, y, c);
+
+ tbuf2->read(c, x, y);
+ c[0]*=f1; c[1]*=f1 ; c[2] *=f1;
+ tbuf2->read(tc, xm, (settings->angle ? yp : y));
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ tbuf2->read(tc, xp, (settings->angle ? ym : y));
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ c[3] = 1.0f;
+ tbuf2->writePixel(x, y, c);
+
+ }
+ }
+// // B
+ for (y=tbuf1->getHeight()-1; y>=0; y--) {
+ ym = y - i;
+ yp = y + i;
+ for (x=tbuf1->getWidth()-1; x>=0; x--) {
+ xm = x - i;
+ xp = x + i;
+ tbuf1->read(c, x, y);
+ c[0]*=f1; c[1]*=f1 ; c[2] *=f1;
+ tbuf1->read(tc, (settings->angle ? xm : x), ym);
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ tbuf1->read(tc, (settings->angle ? xp : x), yp);
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ c[3] = 1.0f;
+ tbuf1->writePixel(x, y, c);
+
+ tbuf2->read(c, x, y);
+ c[0]*=f1; c[1]*=f1 ; c[2] *=f1;
+ tbuf2->read(tc, xm, (settings->angle ? yp : y));
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ tbuf2->read(tc, xp, (settings->angle ? ym : y));
+ c[0]+=tc[0]*f2;
+ c[1]+=tc[1]*f2;
+ c[2]+=tc[2]*f2;
+ c[3] = 1.0f;
+ tbuf2->writePixel(x, y, c);
+ }
+ }
+ }
+
+ for (i = 0 ; i < this->getWidth()*this->getHeight()*4 ; i++) {
+ data[i] = tbuf1->getBuffer()[i] + tbuf2->getBuffer()[i];
+ }
+
+ delete tbuf1;
+ delete tbuf2;
+}
diff --git a/source/blender/compositor/operations/COM_GlareSimpleStarOperation.h b/source/blender/compositor/operations/COM_GlareSimpleStarOperation.h
new file mode 100644
index 00000000000..22040da9bc5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareSimpleStarOperation.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GlareSimpleStarOperation_h
+#define _COM_GlareSimpleStarOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+#include "COM_GlareBaseOperation.h"
+
+class GlareSimpleStarOperation : public GlareBaseOperation {
+public:
+ GlareSimpleStarOperation() : GlareBaseOperation() {}
+protected:
+ void generateGlare(float *data, MemoryBuffer *inputTile, NodeGlare *settings);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp b/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp
new file mode 100644
index 00000000000..42b6a2b5e50
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GlareStreaksOperation.h"
+#include "BLI_math.h"
+
+void GlareStreaksOperation::generateGlare(float *data, MemoryBuffer *inputTile, NodeGlare *settings)
+{
+ int x, y, n;
+ unsigned int nump=0;
+ float c1[4], c2[4], c3[4], c4[4];
+ float a, ang = DEG2RADF(360.0f)/(float)settings->angle;
+
+ int size = inputTile->getWidth()*inputTile->getHeight();
+ int size4 = size*4;
+
+
+ MemoryBuffer *tsrc = inputTile->duplicate();
+ MemoryBuffer *tdst = new MemoryBuffer(NULL, inputTile->getRect());
+ tdst->clear();
+ memset(data, 0, size4*sizeof(float));
+
+ for (a=0.f; a<DEG2RADF(360.0f); a+=ang) {
+ const float an = a + settings->angle_ofs;
+ const float vx = cos((double)an), vy = sin((double)an);
+ for (n=0; n<settings->iter; ++n) {
+ const float p4 = pow(4.0, (double)n);
+ const float vxp = vx*p4, vyp = vy*p4;
+ const float wt = pow((double)settings->fade, (double)p4);
+ const float cmo = 1.f - (float)pow((double)settings->colmod, (double)n+1); // colormodulation amount relative to current pass
+ float *tdstcol = tdst->getBuffer();
+ for (y=0; y<tsrc->getHeight(); ++y) {
+ for (x=0; x<tsrc->getWidth(); ++x, tdstcol+=4) {
+ // first pass no offset, always same for every pass, exact copy,
+ // otherwise results in uneven brightness, only need once
+ if (n==0) tsrc->read(c1, x, y); else c1[0]=c1[1]=c1[2]=0;
+ tsrc->readCubic(c2, x + vxp, y + vyp);
+ tsrc->readCubic(c3, x + vxp*2.f, y + vyp*2.f);
+ tsrc->readCubic(c4, x + vxp*3.f, y + vyp*3.f);
+ // modulate color to look vaguely similar to a color spectrum
+ c2[1] *= cmo;
+ c2[2] *= cmo;
+
+ c3[0] *= cmo;
+ c3[1] *= cmo;
+
+ c4[0] *= cmo;
+ c4[2] *= cmo;
+
+ tdstcol[0] = 0.5f*(tdstcol[0] + c1[0] + wt*(c2[0] + wt*(c3[0] + wt*c4[0])));
+ tdstcol[1] = 0.5f*(tdstcol[1] + c1[1] + wt*(c2[1] + wt*(c3[1] + wt*c4[1])));
+ tdstcol[2] = 0.5f*(tdstcol[2] + c1[2] + wt*(c2[2] + wt*(c3[2] + wt*c4[2])));
+ tdstcol[3] = 1.0f;
+ }
+ }
+ memcpy(tsrc->getBuffer(), tdst->getBuffer(), sizeof(float)*size4);
+ }
+
+// addImage(sbuf, tsrc, 1.f/(float)(6 - ndg->iter)); // add result to data @todo
+ float *sourcebuffer = tsrc->getBuffer();
+ float factor = 1.f/(float)(6 - settings->iter);
+ for (int i = 0 ; i < size4; i ++) {
+ data[i] += sourcebuffer[i] * factor;
+ }
+ for (int i = 0 ; i < size; i ++) {
+ data[i*4+3] = 1.0f;
+ }
+
+ tdst->clear();
+ memcpy(tsrc->getBuffer(), inputTile->getBuffer(), sizeof(float)*size4);
+ nump++;
+ }
+
+ delete tsrc;
+ delete tdst;
+}
diff --git a/source/blender/compositor/operations/COM_GlareStreaksOperation.h b/source/blender/compositor/operations/COM_GlareStreaksOperation.h
new file mode 100644
index 00000000000..07155a4713a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareStreaksOperation.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GlareStreaksOperation_h
+#define _COM_GlareStreaksOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+#include "COM_GlareBaseOperation.h"
+
+class GlareStreaksOperation : public GlareBaseOperation {
+public:
+ GlareStreaksOperation() : GlareBaseOperation() {}
+protected:
+ void generateGlare(float *data, MemoryBuffer *inputTile, NodeGlare *settings);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp b/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp
new file mode 100644
index 00000000000..e8def72b7da
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_GlareThresholdOperation.h"
+#include "BLI_math.h"
+
+GlareThresholdOperation::GlareThresholdOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+}
+void GlareThresholdOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void GlareThresholdOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ this->inputProgram->read(color, x, y, sampler, inputBuffers);
+ if ((0.212671f*color[0] + 0.71516f*color[1] + 0.072169f*color[2]) >= threshold) {
+ color[0] -= threshold, color[1] -= threshold, color[2] -= threshold;
+ color[0] = MAX2(color[0], 0.f);
+ color[1] = MAX2(color[1], 0.f);
+ color[2] = MAX2(color[2], 0.f);
+ }
+ else color[0] = color[1] = color[2] = 0.f;
+}
+
+void GlareThresholdOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_GlareThresholdOperation.h b/source/blender/compositor/operations/COM_GlareThresholdOperation.h
new file mode 100644
index 00000000000..3dfa2f44339
--- /dev/null
+++ b/source/blender/compositor/operations/COM_GlareThresholdOperation.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_GlareScaleOperation_h
+#define _COM_GlareScaleOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_lamp_types.h"
+
+class GlareThresholdOperation : public NodeOperation {
+private:
+ /**
+ * @brief Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+ float threshold;
+
+public:
+ GlareThresholdOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setThreshold(float threshold) {this->threshold = threshold;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp
new file mode 100644
index 00000000000..2970c396493
--- /dev/null
+++ b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_HueSaturationValueCorrectOperation.h"
+
+#include "BLI_math.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ #include "BKE_colortools.h"
+#ifdef __cplusplus
+}
+#endif
+
+HueSaturationValueCorrectOperation::HueSaturationValueCorrectOperation(): CurveBaseOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputProgram = NULL;
+}
+void HueSaturationValueCorrectOperation::initExecution()
+{
+ CurveBaseOperation::initExecution();
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void HueSaturationValueCorrectOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float hsv[4], f;
+
+ this->inputProgram->read(hsv, x, y, sampler, inputBuffers);
+
+ /* adjust hue, scaling returned default 0.5 up to 1 */
+ f = curvemapping_evaluateF(this->curveMapping, 0, hsv[0]);
+ hsv[0] += f-0.5f;
+
+ /* adjust saturation, scaling returned default 0.5 up to 1 */
+ f = curvemapping_evaluateF(this->curveMapping, 1, hsv[0]);
+ hsv[1] *= (f * 2.f);
+
+ /* adjust value, scaling returned default 0.5 up to 1 */
+ f = curvemapping_evaluateF(this->curveMapping, 2, hsv[0]);
+ hsv[2] *= (f * 2.f);
+
+ hsv[0] = hsv[0] - floor(hsv[0]); /* mod 1.0 */
+ CLAMP(hsv[1], 0.f, 1.f);
+
+ output[0] = hsv[0];
+ output[1] = hsv[1];
+ output[2] = hsv[2];
+ output[3] = hsv[3];
+}
+
+void HueSaturationValueCorrectOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h
new file mode 100644
index 00000000000..860bb71a0f1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_HueSaturationValueCorrectOperation_h
+#define _COM_HueSaturationValueCorrectOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_CurveBaseOperation.h"
+
+class HueSaturationValueCorrectOperation : public CurveBaseOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+public:
+ HueSaturationValueCorrectOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *Vector, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_IDMaskOperation.cpp b/source/blender/compositor/operations/COM_IDMaskOperation.cpp
new file mode 100644
index 00000000000..834ca4fc5ed
--- /dev/null
+++ b/source/blender/compositor/operations/COM_IDMaskOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_IDMaskOperation.h"
+
+IDMaskOperation::IDMaskOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputProgram = NULL;
+}
+void IDMaskOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void IDMaskOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+
+ this->inputProgram->read(inputValue, x, y, sampler, inputBuffers);
+ const float a = (inputValue[0] == this->objectIndex)?1.0f:0.0f;
+ color[0] = a;
+}
+
+void IDMaskOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_IDMaskOperation.h b/source/blender/compositor/operations/COM_IDMaskOperation.h
new file mode 100644
index 00000000000..9f897c53d18
--- /dev/null
+++ b/source/blender/compositor/operations/COM_IDMaskOperation.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_IDMaskOperation_h
+#define _COM_IDMaskOperation_h
+#include "COM_NodeOperation.h"
+
+
+class IDMaskOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputProgram;
+
+ float objectIndex;
+public:
+ IDMaskOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setObjectIndex(float objectIndex) {this->objectIndex = objectIndex;}
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ImageOperation.cpp b/source/blender/compositor/operations/COM_ImageOperation.cpp
new file mode 100644
index 00000000000..020dfdbdc14
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ImageOperation.cpp
@@ -0,0 +1,167 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ImageOperation.h"
+
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "DNA_image_types.h"
+#include "BKE_image.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+ #include "RE_shader_ext.h"
+ #include "RE_render_ext.h"
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+BaseImageOperation::BaseImageOperation(): NodeOperation()
+{
+ this->image = NULL;
+ this->buffer = NULL;
+ this->imageBuffer = NULL;
+ this->imageUser = NULL;
+ this->imagewidth = 0;
+ this->imageheight = 0;
+ this->framenumber = 0;
+ this->depthBuffer = NULL;
+ this->numberOfChannels = 0;
+}
+ImageOperation::ImageOperation(): BaseImageOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
+ImageAlphaOperation::ImageAlphaOperation(): BaseImageOperation()
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
+ImageDepthOperation::ImageDepthOperation(): BaseImageOperation()
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
+
+ImBuf *BaseImageOperation::getImBuf()
+{
+ ImBuf *ibuf;
+
+ ibuf = BKE_image_get_ibuf(this->image, this->imageUser);
+ if (ibuf==NULL || (ibuf->rect==NULL && ibuf->rect_float==NULL)) {
+ return NULL;
+ }
+
+ if (ibuf->rect_float == NULL) {
+ IMB_float_from_rect(ibuf);
+ }
+ return ibuf;
+}
+
+
+void BaseImageOperation::initExecution()
+{
+ ImBuf *stackbuf = getImBuf();
+ this->buffer = stackbuf;
+ if (stackbuf) {
+ this->imageBuffer = stackbuf->rect_float;
+ this->depthBuffer = stackbuf->zbuf_float;
+ this->imagewidth = stackbuf->x;
+ this->imageheight = stackbuf->y;
+ this->numberOfChannels = stackbuf->channels;
+ }
+}
+
+void BaseImageOperation::deinitExecution()
+{
+ this->imageBuffer = NULL;
+}
+
+void BaseImageOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ ImBuf *stackbuf = getImBuf();
+
+ resolution[0] = 0;
+ resolution[1] = 0;
+
+ if (stackbuf) {
+ resolution[0] = stackbuf->x;
+ resolution[1] = stackbuf->y;
+ }
+}
+
+void ImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])\
+{
+ if (this->imageBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 0.0f;
+ }
+ else {
+ switch (sampler) {
+ case COM_PS_NEAREST:
+ neareast_interpolation_color(this->buffer, NULL, color, x, y);
+ break;
+ case COM_PS_BILINEAR:
+ bilinear_interpolation_color(this->buffer, NULL, color, x, y);
+ break;
+ case COM_PS_BICUBIC:
+ bicubic_interpolation_color(this->buffer, NULL, color, x, y);
+ break;
+ }
+ }
+}
+
+void ImageAlphaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float tempcolor[4];
+
+ if (this->imageBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
+ color[0] = 0.0f;
+ }
+ else {
+ tempcolor[3] = 1.0f;
+ switch (sampler) {
+ case COM_PS_NEAREST:
+ neareast_interpolation_color(this->buffer, NULL, tempcolor, x, y);
+ break;
+ case COM_PS_BILINEAR:
+ bilinear_interpolation_color(this->buffer, NULL, tempcolor, x, y);
+ break;
+ case COM_PS_BICUBIC:
+ bicubic_interpolation_color(this->buffer, NULL, tempcolor, x, y);
+ break;
+ }
+ color[0] = tempcolor[3];
+ }
+}
+
+void ImageDepthOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ if (this->depthBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
+ color[0] = 0.0f;
+ }
+ else {
+ int offset = y * width + x;
+ color[0] = this->depthBuffer[offset];
+ }
+}
diff --git a/source/blender/compositor/operations/COM_ImageOperation.h b/source/blender/compositor/operations/COM_ImageOperation.h
new file mode 100644
index 00000000000..0bd112304a8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ImageOperation.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+
+#ifndef _COM_ImageOperation_h
+#define _COM_ImageOperation_h
+
+#include "COM_NodeOperation.h"
+#include "DNA_scene_types.h"
+#include "BLI_listbase.h"
+#include "BKE_image.h"
+extern "C" {
+ #include "RE_pipeline.h"
+ #include "RE_shader_ext.h"
+ #include "RE_render_ext.h"
+ #include "MEM_guardedalloc.h"
+}
+
+/**
+ * @brief Base class for all image operations
+ */
+class BaseImageOperation : public NodeOperation {
+protected:
+ ImBuf *buffer;
+ Image *image;
+ ImageUser *imageUser;
+ float *imageBuffer;
+ float *depthBuffer;
+ int imageheight;
+ int imagewidth;
+ int framenumber;
+ int numberOfChannels;
+
+ BaseImageOperation();
+ /**
+ * Determine the output resolution. The resolution is retrieved from the Renderer
+ */
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ virtual ImBuf *getImBuf();
+
+public:
+
+ void initExecution();
+ void deinitExecution();
+ void setImage(Image *image) {this->image = image;}
+ void setImageUser(ImageUser *imageuser) {this->imageUser = imageuser;}
+
+ void setFramenumber(int framenumber) {this->framenumber = framenumber;}
+};
+class ImageOperation: public BaseImageOperation {
+public:
+ /**
+ * Constructor
+ */
+ ImageOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class ImageAlphaOperation: public BaseImageOperation {
+public:
+ /**
+ * Constructor
+ */
+ ImageAlphaOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class ImageDepthOperation: public BaseImageOperation {
+public:
+ /**
+ * Constructor
+ */
+ ImageDepthOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_InvertOperation.cpp b/source/blender/compositor/operations/COM_InvertOperation.cpp
new file mode 100644
index 00000000000..982fe1a5450
--- /dev/null
+++ b/source/blender/compositor/operations/COM_InvertOperation.cpp
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_InvertOperation.h"
+
+InvertOperation::InvertOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputValueProgram = NULL;
+ this->inputColorProgram = NULL;
+ this->color = true;
+ this->alpha = false;
+ setResolutionInputSocketIndex(1);
+}
+void InvertOperation::initExecution()
+{
+ this->inputValueProgram = this->getInputSocketReader(0);
+ this->inputColorProgram = this->getInputSocketReader(1);
+}
+
+void InvertOperation::executePixel(float *out, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue[4];
+ float inputColor[4];
+ this->inputValueProgram->read(inputValue, x, y, sampler, inputBuffers);
+ this->inputColorProgram->read(inputColor, x, y, sampler, inputBuffers);
+
+ const float value = inputValue[0];
+ const float invertedValue = 1.0f - value;
+
+ if (color) {
+ out[0] = (1.0f - inputColor[0])*value + inputColor[0]*invertedValue;
+ out[1] = (1.0f - inputColor[1])*value + inputColor[1]*invertedValue;
+ out[2] = (1.0f - inputColor[2])*value + inputColor[2]*invertedValue;
+ }
+ else {
+ out[0] = inputColor[0];
+ out[1] = inputColor[1];
+ out[2] = inputColor[2];
+ }
+
+ if (alpha)
+ out[3] = (1.0f - inputColor[3])*value + inputColor[3]*invertedValue;
+ else
+ out[3] = inputColor[3];
+
+}
+
+void InvertOperation::deinitExecution()
+{
+ this->inputValueProgram = NULL;
+ this->inputColorProgram = NULL;
+}
+
diff --git a/source/blender/compositor/operations/COM_InvertOperation.h b/source/blender/compositor/operations/COM_InvertOperation.h
new file mode 100644
index 00000000000..27a995238c7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_InvertOperation.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_InvertOperation_h
+#define _COM_InvertOperation_h
+#include "COM_NodeOperation.h"
+
+
+class InvertOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputValueProgram;
+ SocketReader * inputColorProgram;
+
+ bool alpha;
+ bool color;
+
+public:
+ InvertOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setColor(bool color) {this->color = color;}
+ void setAlpha(bool alpha) {this->alpha = alpha;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_LensGhostOperation.cpp b/source/blender/compositor/operations/COM_LensGhostOperation.cpp
new file mode 100644
index 00000000000..bbf6df6c1e5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LensGhostOperation.cpp
@@ -0,0 +1,815 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_LensGhostOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+#define MAX_STEP 256
+class Ray {
+public:
+ float position[3];
+ float direction[3];
+ float uv[2];
+ double wavelength;
+ float intensity;
+ bool valid;
+ void copyFrom(Ray *other) {
+ copy_v3_v3(position, other->position);
+ copy_v3_v3(direction, other->direction);
+ copy_v2_v2(uv, other->uv);
+ wavelength = other->wavelength;
+ intensity = other->intensity;
+ this->valid = other->valid;
+ }
+};
+
+class Intersection {
+public:
+ float position[3];
+ float normal[3];
+ double theta;
+ bool hit;
+ bool inverted;
+};
+
+class LensInterface {
+public:
+ float position[3];
+ float radius;
+ float nominalRadius;
+ double refraction1;
+ double refraction2;
+ double refraction3;
+ float thicknessCoathing;
+ virtual bool isFlat() = 0;
+ virtual void intersect(Intersection *result, Ray *ray) = 0;
+};
+
+class FlatInterface: public LensInterface {
+public:
+ bool isFlat() {return true;}
+ FlatInterface(float positionX, float positionY, float positionZ, float radius) {
+ this->position[0] = positionX;
+ this->position[1] = positionY;
+ this->position[2] = positionZ;
+ this->radius = radius;
+ this->nominalRadius = radius;
+ this->refraction1 = 1.0f;
+ this->refraction2 = 1.0f;
+ this->refraction3 = 1.0f;
+ this->thicknessCoathing = 0.0f;
+
+ }
+ void intersect(Intersection *result, Ray *ray) {
+ const float dz = this->position[2]-ray->position[2];
+ result->position[0] = ray->position[0] + ray->direction[0]*(dz)/ray->direction[2];
+ result->position[1] = ray->position[1] + ray->direction[1]*(dz)/ray->direction[2];
+ result->position[2] = ray->position[2] + ray->direction[2]*(dz)/ray->direction[2];
+ result->normal[0] = 0.0f;
+ result->normal[1] = 0.0f;
+ result->normal[2] = ray->direction[2]>0?-1.0f:1.0f;
+ result->theta = 0.0f;
+// result->hit = this->nominalRadius>maxf(fabs(result->position[0]), fabs(result->position[1]));
+ result->hit = true;
+ result->inverted = false;
+ }
+};
+
+class SphereInterface: public LensInterface {
+public:
+ SphereInterface(float positionX, float positionY, float positionZ, float radius, float nominalRadius, float n0, float n2, float coatingPhase) {
+ this->position[0] = positionX;
+ this->position[1] = positionY;
+ this->position[2] = positionZ;
+ this->radius = radius;
+ this->nominalRadius = nominalRadius;
+ this->refraction1 = n0;
+ this->refraction3 = n2;
+ this->refraction2 = maxf(sqrtf(n0*n2), 1.38);
+
+ this->thicknessCoathing = coatingPhase/4/this->refraction2;
+ }
+ bool isFlat() {return false;}
+ void intersect(Intersection *result, Ray *ray) {
+ float delta[3] ={ray->position[0] - this->position[0],
+ ray->position[1] - this->position[1],
+ ray->position[2] - this->position[2]};
+ float b = dot_v3v3(delta, ray->direction);
+ float c = dot_v3v3(delta, delta) - this->radius*this->radius;
+ float b2c = b*b-c;
+ if (b2c < 0) {
+ result->hit = false;
+ }
+ else {
+ float sgn = (this->radius*ray->direction[2])>0?1.0f:-1.0f;
+ float t = sqrtf(b2c)*sgn-b;
+ result->position[0] = ray->direction[0]*t+ray->position[0];
+ result->position[1] = ray->direction[1]*t+ray->position[1];
+ result->position[2] = ray->direction[2]*t+ray->position[2];
+
+ float p[3] = {
+ result->position[0] - this->position[0],
+ result->position[1] - this->position[1],
+ result->position[2] - this->position[2]
+ };
+ normalize_v3(p);
+
+ if (dot_v3v3(p, ray->direction)> 0) {
+ result->normal[0] = -p[0];
+ result->normal[1] = -p[1];
+ result->normal[2] = -p[2];
+ }
+ else {
+ result->normal[0] = p[0];
+ result->normal[1] = p[1];
+ result->normal[2] = p[2];
+ }
+
+ float inverse[3] ={
+ -ray->direction[0],
+ -ray->direction[1],
+ -ray->direction[2]};
+
+ result->theta = acosf(dot_v3v3(inverse, result->normal));
+ result->hit = this->nominalRadius>sqrt(result->position[0]*result->position[0]+result->position[1]*result->position[1]);
+// result->hit = this->nominalRadius>maxf(fabs(result->position[0]), fabs(result->position[1]));
+// result->hit = true;
+ result->inverted = t < 0;
+ }
+ }
+};
+class RayResult {
+public:
+ float x;
+ float y;
+ float intensity[3];
+ float u;
+ float v;
+ float screenX;
+ float screenY;
+ bool valid;
+ bool hasIntensity;
+};
+class Bounce {
+public:
+ LensInterface *interface1;
+ LensInterface *interface2;
+ RayResult *raster;
+ int length; // number of interfaces to travel
+ int rasterLength;
+ Bounce(LensInterface *interface1, LensInterface *interface2, int length, int rasterStep) {
+ this->interface1 = interface1;
+ this->interface2 = interface2;
+ this->length = length;
+ this->rasterLength = rasterStep;
+ this->raster = new RayResult[rasterLength*rasterLength];
+ for (int i = 0 ; i < rasterLength*rasterLength ; i++) {
+ RayResult * res = &this->raster[i];
+ res->intensity[0] = 0.0f;
+ res->intensity[1] = 0.0f;
+ res->intensity[2] = 0.0f;
+ res->x = 0.0f;
+ res->y = 0.0f;
+ res->u = 0.0f;
+ res->v = 0.0f;
+ res->valid = false;
+ }
+ }
+ ~Bounce() {
+ delete raster;
+
+ }
+
+ RayResult *getRayResult(int x, int y) {
+ return &(raster[x+y*rasterLength]);
+ }
+};
+class LensSystem {
+public:
+ vector<LensInterface*> interfaces;
+ vector<Bounce*> bounces;
+ int bokehIndex;
+ int lensIndex;
+
+ ~LensSystem() {
+ for (int index = 0 ; index <bounces.size();index++) {delete bounces[index];}
+ for (int index = 0 ; index <interfaces.size();index++) {delete interfaces[index];}
+ }
+
+ void updateBounces(int step) {
+ for (int i = 0; i < interfaces.size()-1 ; i ++) {
+ if (!interfaces[i]->isFlat()) {
+ for (int j = i+1; j < interfaces.size()-1 ; j ++) {
+ if (!interfaces[j]->isFlat()) {
+ int length = interfaces.size()+2*(j-i);
+ Bounce *bounce = new Bounce(interfaces[j], interfaces[i], length, step);
+ bounces.push_back(bounce);
+ }
+ }
+ }
+ }
+
+ }
+
+ void addInterface(LensInterface *pinterface) {
+ this->interfaces.push_back(pinterface);
+ this->lensIndex = this->interfaces.size()-1;
+ }
+
+ static int refraction(float *refract, float *n, float *view, double index)
+ {
+
+ return 1;
+
+// float dot, fac;
+
+// VECCOPY(refract, view);
+
+// dot = view[0]*n[0] + view[1]*n[1] + view[2]*n[2];
+
+// if (dot>0.0f) {
+// index = 1.0f/index;
+// fac = 1.0f - (1.0f - dot*dot)*index*index;
+// if (fac<= 0.0f) return 0;
+// fac= -dot*index + sqrt(fac);
+// }
+// else {
+// fac = 1.0f - (1.0f - dot*dot)*index*index;
+// if (fac<= 0.0f) return 0;
+// fac= -dot*index - sqrt(fac);
+// }
+
+// refract[0] = index*view[0] + fac*n[0];
+// refract[1] = index*view[1] + fac*n[1];
+// refract[2] = index*view[2] + fac*n[2];
+
+// normalize_v3(refract);
+// return 1;
+ //---
+// const double cosI = dot_v3v3(n, view);
+// const double sinT2 = index * index * (1.0 - cosI * cosI);
+// if (sinT2 >= 1.0f)
+// {
+// return 0;
+// }
+// refract[0] = index*view[0] - (index + sqrt(1.0-sinT2))*n[0];
+// refract[1] = index*view[1] - (index + sqrt(1.0-sinT2))*n[1];
+// refract[2] = index*view[2] - (index + sqrt(1.0-sinT2))*n[2];
+// normalize_v3(refract);
+// return 1;
+ //---
+
+// double ni = -dot_v3v3(view, n);
+// double test = 1.0f - index*index*(1.0f-ni*ni);
+// if (test < 0) {
+// return 0;
+// }
+// else {
+// double mul = index*ni + sqrt(test);
+// refract[0] = index * view[0] - mul*n[0];
+// refract[1] = index * view[1] - mul*n[1];
+// refract[2] = index * view[2] - mul*n[2];
+// normalize_v3(refract);
+// return 1;
+// }
+ }
+
+ /* orn = original face normal */
+ static void reflection(float *ref, float *n, float *view)
+ {
+ float f1;
+
+ f1= -2.0f*dot_v3v3(n, view);
+
+ ref[0] = (view[0]+f1*n[0]);
+ ref[1] = (view[1]+f1*n[1]);
+ ref[2] = (view[2]+f1*n[2]);
+ normalize_v3(ref);
+ }
+
+ static float fresnelAR(float theta0, float lambda, float d1, float n0, float n1, float n2) {
+ // refractionangles in coating and the 2nd medium
+ float theta1 = asin(sin(theta0)*n0/n1);
+ float theta2 = asin(sin(theta0)*n0/n2);
+
+ float rs01 = -sin(theta0-theta1)/sin(theta0+theta1);
+ float rp01 = tan( theta0-theta1)/tan(theta0+theta1);
+ float ts01 = 2 * sin( theta1 ) * cos( theta0 ) / sin( theta0+theta1 ) ;
+ float tp01 = ts01*cos(theta0-theta1);
+ // amplitude for inner reflection
+ float rs12 = -sin( theta1-theta2 ) / sin( theta1+theta2 ) ;
+ float rp12 = +tan( theta1-theta2 ) / tan( theta1+theta2 ) ;
+ // after passing through first surface twice :
+ // 2 transmissions and 1 reflection
+ float ris = ts01 * ts01 * rs12 ;
+ float rip = tp01 * tp01 * rp12 ;
+ // phase difference between outer and inner reflections
+ float dy = d1 * n1 ;
+ float dx = tan( theta1 ) * dy ;
+ float delay = sqrt( dx * dx+dy * dy ) ;
+ float relPhase = 4 * M_PI / lambda * ( delay-dx * sin( theta0 ) ) ;
+ // Add up sines of different phase and amplitude
+ float out_s2 = rs01 * rs01 + ris * ris + 2 * rs01 * ris * cos( relPhase ) ;
+ float out_p2 = rp01 * rp01 + rip * rip + 2 * rp01 * rip * cos( relPhase ) ;
+ return (out_s2 + out_p2) / 2 ;
+ }
+
+ void detectHit(Ray *result, Ray *inputRay, Bounce *bounce) {
+ int phase = 0;
+ int delta = 1;
+ int t = 1;
+ int k;
+ result->copyFrom(inputRay);
+ result->valid = false;
+ LensInterface *next = bounce->interface1;
+ LensInterface *f = NULL;
+ Intersection intersection;
+ for (k = 0 ; k < bounce->length-1;k++, t+=delta) {
+ f = this->interfaces[t];
+ bool breflect = next == f;
+ if (breflect) {
+ delta = -delta;
+ if (phase == 0) {
+ next = bounce->interface2;
+ }
+ else {
+ next = NULL;
+ }
+ phase ++;
+ }
+
+ f->intersect(&intersection, result);
+ if (!intersection.hit) {
+ break;
+ }
+ if (f->isFlat()) {
+ if (t == this->bokehIndex) {
+ result->uv[0] = intersection.position[0]/f->nominalRadius;
+ result->uv[1] = intersection.position[1]/f->nominalRadius;
+ }
+ }
+
+ float p[3] = {
+ intersection.position[0]-result->position[0],
+ intersection.position[1]-result->position[1],
+ intersection.position[2]-result->position[2]
+ };
+
+ float nfac = sqrt(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
+
+ if (intersection.inverted) {
+ nfac *= -1;
+ }
+
+ result->direction[0] = p[0]/nfac;
+ result->direction[1] = p[1]/nfac;
+ result->direction[2] = p[2]/nfac;
+ result->position[0] = intersection.position[0];
+ result->position[1] = intersection.position[1];
+ result->position[2] = intersection.position[2];
+
+ if (!f->isFlat()) {
+ // do refraction and reflection
+ double n0 = result->direction[2]<0?f->refraction1:f->refraction3;
+ double n1 = f->refraction2;
+ double n2 = result->direction[2]<0?f->refraction3:f->refraction1;
+ if (!breflect) {
+ float view[3] ={
+ result->direction[0],
+ result->direction[1],
+ result->direction[2]
+ };
+ int ref = this->refraction(result->direction, intersection.normal, view, n0/n1);
+ if (ref == 0) {
+ break;
+ }
+ }
+ else {
+ this->reflection(result->direction, intersection.normal, result->direction);
+ float fresnelMultiplyer = fresnelAR(intersection.theta, result->wavelength, f->thicknessCoathing, n0, n1, n2);
+ if (isnan(fresnelMultiplyer)) {
+ fresnelMultiplyer = 0.0f;
+ }
+ result->intensity *= fresnelMultiplyer;
+ }
+ }
+
+ }
+ if (k < bounce->length-1) {
+ result->intensity = 0;
+ }
+ else {
+ result->valid = true;
+ }
+ }
+};
+
+typedef struct LensFace {
+ RayResult *v1;
+ RayResult *v2;
+ RayResult *v3;
+} LensFace;
+
+LensGhostProjectionOperation::LensGhostProjectionOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->lampObject = NULL;
+ this->cameraObject = NULL;
+ this->system = NULL;
+ this->quality = COM_QUALITY_HIGH;
+ this->setComplex(false);
+}
+
+LensGhostOperation::LensGhostOperation(): LensGhostProjectionOperation()
+{
+ this->setComplex(true);
+
+}
+
+void LensGhostProjectionOperation::initExecution()
+{
+ if (this->cameraObject != NULL && this->lampObject != NULL) {
+ if (lampObject == NULL || cameraObject == NULL) {
+ visualLampPosition[0] = 0;
+ visualLampPosition[1] = 0;
+ visualLampPosition[2] = 0;
+ }
+ else {
+ /* too simple, better to return the distance on the view axis only
+ * return len_v3v3(ob->obmat[3], cam->dof_ob->obmat[3]); */
+ float matt[4][4], imat[4][4], obmat[4][4];
+
+ copy_m4_m4(obmat, cameraObject->obmat);
+ normalize_m4(obmat);
+ invert_m4_m4(imat, obmat);
+ mult_m4_m4m4(matt, imat, lampObject->obmat);
+
+ visualLampPosition[0] = (float)(matt[3][0]);
+ visualLampPosition[1] = (float)(matt[3][1]);
+ visualLampPosition[2] = (float)fabs(matt[3][2]);
+ }
+ }
+ this->lamp = (Lamp*)lampObject->data;
+
+ this->step = this->quality==COM_QUALITY_LOW?64:this->quality==COM_QUALITY_MEDIUM?128:256;
+ this->bokehReader = this->getInputSocketReader(1);
+
+#define MM *0.001f
+#define CM *0.01f
+#define NM *0.000000001
+#define RED 650 NM
+#define GREEN 510 NM
+#define BLUE 475 NM
+#define AIR 1.000293f
+#define GLASS 1.5200f
+#define TEST 0.000002f
+ // determine interfaces
+ LensSystem *system = new LensSystem();
+ system->addInterface(new FlatInterface(0.0f,0.0f, 6.5 CM, 30 MM)); //ENTRANCE
+ system->addInterface(new SphereInterface(0.0f,0.0f, -3 CM, 8 CM, 3 CM, AIR, GLASS , 0.f));
+ system->addInterface(new SphereInterface(0.0f,0.0f, -4 CM, 8 CM, 3 CM, GLASS, AIR, GREEN));
+ system->addInterface(new FlatInterface(0.0f,0.0f, 3.0 CM, 15 MM)); // BOKEH
+ system->addInterface(new SphereInterface(0.0f,0.0f, 6 CM, 3 CM, 2 CM, AIR, GLASS, 0.0f));
+ system->addInterface(new SphereInterface(0.0f,0.0f, 5.5 CM, 3 CM, 2 CM, GLASS, AIR, 0.f));
+ system->addInterface(new FlatInterface(0.0f,0.0f,0 CM, 30 MM)); // SENSOR
+ system->bokehIndex = 3;
+
+ // determine interfaces
+// LensSystem *system = new LensSystem();
+// system->addInterface(new FlatInterface(0.0f,0.0f, 6.5 CM, 30 MM)); //ENTRANCE
+// system->addInterface(new SphereInterface(0.0f,0.0f, 14 CM, 8 CM, 6 CM, AIR, GLASS , 0.0f));
+// system->addInterface(new SphereInterface(0.0f,0.0f, 12 CM, 8 CM, 6 CM, GLASS, AIR, GREEN));
+// system->addInterface(new FlatInterface(0.0f,0.0f, 3.0 CM, 30 MM)); // BOKEH
+// system->addInterface(new SphereInterface(0.0f,0.0f, 1 CM, 3 CM, 2 CM, AIR, GLASS, GREEN));
+// system->addInterface(new SphereInterface(0.0f,0.0f, -2 CM, 3 CM, 2 CM, GLASS, AIR, RED));
+// system->addInterface(new FlatInterface(0.0f,0.0f,0 CM, 20 MM)); // SENSOR
+// system->bokehIndex = 3;
+#undef CM
+#undef MM
+ // determine bounces
+ system->updateBounces(step);
+ this->system = system;
+}
+
+void LensGhostOperation::initExecution()
+{
+ LensGhostProjectionOperation::initExecution();
+ LensSystem *system = (LensSystem*)this->system;
+ LensInterface *interface1 = system->interfaces[0];
+
+ // for every herz
+ float HERZ[3]={650 NM,510 NM,475 NM}; /// @todo use 7 for high quality?
+ for (int iw = 0 ; iw < 3 ; iw ++) {
+ float wavelength = HERZ[iw];
+ // for every bounce
+ for (int ib = 0 ; ib < system->bounces.size() ; ib++) {
+ Bounce *bounce = system->bounces[ib];
+ // based on quality setting the number of iteration will be different (128^2, 64^2, 32^2)
+ for (int xi = 0 ; xi < step ; xi ++) {
+ float x = -interface1->radius+xi*(interface1->radius*2/step);
+ for (int yi = 0 ; yi < step ; yi ++) {
+ float y = -interface1->radius+yi*(interface1->radius*2/step);
+ Ray r;
+ Ray result;
+ r.wavelength = wavelength;
+ r.intensity = this->lamp->energy;
+ r.uv[0] = 0.0f;
+ r.uv[1] = 0.0f;
+ r.position[0] = visualLampPosition[0];
+ r.position[1] = visualLampPosition[1];
+ r.position[2] = visualLampPosition[2];
+ r.direction[0] = interface1->position[0]+x - r.position[0];
+ r.direction[1] = interface1->position[1]+y - r.position[1];
+ r.direction[2] = interface1->position[2] - r.position[2];
+ normalize_v3(r.direction);
+ system->detectHit(&result, &r, bounce);
+ RayResult *res = bounce->getRayResult(xi, yi);
+ if (iw == 0) {
+ res->x = result.position[0];
+ res->y = result.position[1];
+ res->u = result.uv[0];
+ res->v = result.uv[1];
+ }
+ res->intensity[iw] = result.intensity;
+ if (result.valid) {
+ res->valid = true;
+ }
+ }
+ }
+ }
+ }
+#undef NM
+ const int width = this->getWidth();
+ const int height = this->getHeight();
+ const float width2 = width/2.0f;
+ const float height2 = height/2.0f;
+ float *data = new float[width*height*4];
+ for (int i = 0 ; i < width*height ; i ++) {
+ data[i*4+0] = 0.0f;
+ data[i*4+1] = 0.0f;
+ data[i*4+2] = 0.0f;
+ data[i*4+3] = 1.0f;
+ }
+ /// @todo every bounce creates own image. these images are added together at the end
+// LensSystem *system = (LensSystem*)this->system;
+ LensInterface * lens = system->interfaces[system->lensIndex];
+ for (int i = 0 ; i < system->bounces.size() ; i ++) {
+ Bounce *bounce = system->bounces[i];
+ for (int r = 0 ; r < bounce->rasterLength*bounce->rasterLength ; r ++) {
+ RayResult *result = &bounce->raster[r];
+// if (result->valid) {
+ float ru = result->x/lens->nominalRadius*width2+width2;
+ float rv = result->y/lens->nominalRadius*height2+height2;
+ result->screenX = ru;
+ result->screenY = rv;
+ result->hasIntensity = result->intensity[0]>0.0f &&result->intensity[1]>0.0f&& result->intensity[2]>0.0f;
+// }
+ }
+ }
+}
+
+void *LensGhostOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ vector<LensFace*>* result = new vector<LensFace*>();
+ LensSystem *system = (LensSystem*)this->system;
+ const float minx = rect->xmin;
+ const float miny = rect->ymin;
+ const float maxx = rect->xmax;
+ const float maxy = rect->ymax;
+ for (int i = 0 ; i < system->bounces.size() ; i ++) {
+ Bounce *bounce = system->bounces[i];
+ int faceX, faceY;
+ for (faceX = 0 ; faceX < bounce->rasterLength-1 ; faceX++) {
+ for (faceY = 0 ; faceY < bounce->rasterLength-1 ; faceY++) {
+ RayResult *vertex1 = bounce->getRayResult(faceX, faceY);
+ RayResult *vertex2 = bounce->getRayResult(faceX+1, faceY);
+ RayResult *vertex3 = bounce->getRayResult(faceX+1, faceY+1);
+ RayResult *vertex4 = bounce->getRayResult(faceX, faceY+1);
+ // early hit test
+ if (!((vertex1->screenX < minx && vertex2->screenX < minx && vertex3->screenX < minx && vertex4->screenX < minx) ||
+ (vertex1->screenX > maxx && vertex2->screenX > maxx && vertex3->screenX > maxx && vertex4->screenX > maxx) ||
+ (vertex1->screenY < miny && vertex2->screenY < miny && vertex3->screenY < miny && vertex4->screenY < miny) ||
+ (vertex1->screenY > maxy && vertex2->screenY > maxy && vertex3->screenY > maxy && vertex4->screenY > maxy))) {
+ int number = vertex1->hasIntensity + vertex2->hasIntensity + vertex3->hasIntensity + vertex4->hasIntensity;
+ if (number == 4) {
+ LensFace *face = new LensFace();
+ face->v1 = vertex1;
+ face->v2 = vertex2;
+ face->v3 = vertex3;
+ result->push_back(face);
+ face = new LensFace();
+ face->v1 = vertex3;
+ face->v2 = vertex4;
+ face->v3 = vertex1;
+ result->push_back(face);
+ }
+ else if (number == 3) {
+ LensFace *face = new LensFace();
+ if (!vertex1->hasIntensity) {
+ face->v1 = vertex2;
+ face->v2 = vertex3;
+ face->v3 = vertex4;
+ }
+ else if (!vertex2->hasIntensity) {
+ face->v1 = vertex1;
+ face->v2 = vertex3;
+ face->v3 = vertex4;
+ }
+ else if (!vertex3->hasIntensity) {
+ face->v1 = vertex1;
+ face->v2 = vertex2;
+ face->v3 = vertex4;
+ }
+ else {
+ face->v1 = vertex1;
+ face->v2 = vertex2;
+ face->v3 = vertex3;
+ }
+ result->push_back(face);
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+}
+
+void LensGhostOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+{
+ if (data) {
+ vector<LensFace*>* faces = (vector<LensFace*>*)data;
+ while (faces->size() != 0) {
+ LensFace *face = faces->back();
+ faces->pop_back();
+ delete face;
+ }
+ delete faces;
+ }
+}
+
+
+void LensGhostProjectionOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float bokeh[4];
+ LensSystem *system = (LensSystem*)this->system;
+ LensInterface *interface1 = system->interfaces[0];
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 0.0f;
+ const float width = this->getWidth();
+ const float height = this->getHeight();
+ const float size = min(height, width);
+ const float width2 = width/2;
+ const float height2 = height/2;
+ const float size2 = size/2;
+
+#define NM *0.000000001
+ float HERZ[3]={650 NM,510 NM,475 NM}; /// @todo use 7 for high quality?
+ float rx = ((x-width2)/size2) * interface1->radius;
+ float ry = ((y-height2)/size2) * interface1->radius;
+
+ for (int iw = 0 ; iw < 3 ; iw ++) {
+ float intensity = 0.0f;
+ float wavelength = HERZ[iw];
+ float colorcomponent = 0.0f;
+ if (iw ==0 ) colorcomponent = lamp->r;
+ if (iw ==1 ) colorcomponent = lamp->g;
+ if (iw ==2 ) colorcomponent = lamp->b;
+
+
+ // for every bounce
+ for (int ib = 0 ; ib < system->bounces.size() ; ib++) {
+ Bounce *bounce = system->bounces[ib];
+ // based on quality setting the number of iteration will be different (128^2, 64^2, 32^2)
+
+ Ray r;
+ Ray result;
+ r.wavelength = wavelength;
+ r.intensity = this->lamp->energy;
+ r.uv[0] = 0.0f;
+ r.uv[1] = 0.0f;
+ r.position[0] = visualLampPosition[0];
+ r.position[1] = visualLampPosition[1];
+ r.position[2] = visualLampPosition[2];
+ r.direction[0] = interface1->position[0]+rx - r.position[0];
+ r.direction[1] = interface1->position[1]+ry - r.position[1];
+ r.direction[2] = interface1->position[2] - r.position[2];
+ normalize_v3(r.direction);
+ system->detectHit(&result, &r, bounce);
+ if (result.valid) {
+ float u = ((result.uv[0]+1.0f)/2)*bokehReader->getWidth();
+ float v = ((result.uv[1]+1.0f)/2)*bokehReader->getHeight();
+
+ bokehReader->read(bokeh, u, v, sampler, inputBuffers);
+
+ intensity += result.intensity *bokeh[iw];
+ }
+ }
+ intensity = maxf(0.0f, intensity);
+ color[iw] = intensity*colorcomponent;
+ }
+ color[3] = 1.0f;
+#undef NM
+
+}
+
+
+
+void LensGhostOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ vector<LensFace*>* faces = (vector<LensFace*>*)data;
+#if 0 /* UNUSED */
+ const float bokehWidth = bokehReader->getWidth();
+ const float bokehHeight = bokehReader->getHeight();
+ float bokeh[4];
+#endif
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+
+ unsigned int index;
+ for (index = 0 ; index < faces->size() ; index ++) {
+ LensFace * face = faces->operator [](index);
+ RayResult *vertex1 = face->v1;
+ RayResult *vertex2 = face->v2;
+ RayResult *vertex3 = face->v3;
+ if (!((vertex1->screenX < x && vertex2->screenX < x && vertex3->screenX < x) ||
+ (vertex1->screenX > x && vertex2->screenX > x && vertex3->screenX > x) ||
+ (vertex1->screenY < y && vertex2->screenY < y && vertex3->screenY < y) ||
+ (vertex1->screenY > y && vertex2->screenY > y && vertex3->screenY > y))) {
+
+ const float v1[2] = {vertex1->screenX, vertex1->screenY};
+ const float v2[2] = {vertex2->screenX, vertex2->screenY};
+ const float v3[2] = {vertex3->screenX, vertex3->screenY};
+ const float co[2] = {x, y};
+ float weights[3];
+
+ barycentric_weights_v2(v1, v2, v3, co, weights);
+ if (weights[0]>=0.0f && weights[0]<=1.0f &&
+ weights[1]>=0.0f && weights[1]<=1.0f &&
+ weights[2]>=0.0f && weights[2]<=1.0f) {
+// const float u = (vertex1->u*weights[0]+vertex2->u*weights[1]+vertex3->u*weights[2]);
+// const float v = (vertex1->v*weights[0]+vertex2->v*weights[1]+vertex3->v*weights[2]);
+// const float tu = ((u+1.0f)/2.0f)*bokehWidth;
+// const float tv = ((v+1.0f)/2.0f)*bokehHeight;
+// bokehReader->read(bokeh, tu, tv, inputBuffers);
+
+// color[0] = max(color[0], bokeh[0]*(vertex1->intensity[0]*weights[0]+vertex2->intensity[0]*weights[1]+vertex3->intensity[0]*weights[2]));
+// color[1] = max(color[1], bokeh[1]*(vertex1->intensity[1]*weights[0]+vertex2->intensity[1]*weights[1]+vertex3->intensity[1]*weights[2]));
+// color[2] = max(color[2], bokeh[2]*(vertex1->intensity[2]*weights[0]+vertex2->intensity[2]*weights[1]+vertex3->intensity[2]*weights[2]));
+ color[0] = max(color[0], (vertex1->intensity[0]*weights[0]+vertex2->intensity[0]*weights[1]+vertex3->intensity[0]*weights[2]));
+ color[1] = max(color[1], (vertex1->intensity[1]*weights[0]+vertex2->intensity[1]*weights[1]+vertex3->intensity[1]*weights[2]));
+ color[2] = max(color[2], (vertex1->intensity[2]*weights[0]+vertex2->intensity[2]*weights[1]+vertex3->intensity[2]*weights[2]));
+ }
+ }
+ }
+}
+
+
+void LensGhostProjectionOperation::deinitExecution()
+{
+ if (this->system) delete (LensSystem*)this->system;
+ this->system = NULL;
+ this->bokehReader = NULL;
+}
+
+bool LensGhostProjectionOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti bokehInput;
+
+ NodeOperation *operation = this->getInputOperation(1);
+ bokehInput.xmax = operation->getWidth();
+ bokehInput.xmin = 0;
+ bokehInput.ymax = operation->getHeight();
+ bokehInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&bokehInput, readOperation, output) ) {
+ return true;
+ }
+
+ return NodeOperation::determineDependingAreaOfInterest(input, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_LensGhostOperation.h b/source/blender/compositor/operations/COM_LensGhostOperation.h
new file mode 100644
index 00000000000..5546ce96fd1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LensGhostOperation.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_LensGhostOperation_h
+#define _COM_LensGhostOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_lamp_types.h"
+#include "DNA_object_types.h"
+#include "DNA_camera_types.h"
+
+class LensGhostProjectionOperation : public NodeOperation {
+protected:
+ Object *lampObject;
+ Lamp *lamp;
+ Object *cameraObject;
+
+ void *system;
+ float visualLampPosition[3];
+ CompositorQuality quality;
+ int step;
+ SocketReader * bokehReader;
+
+public:
+ LensGhostProjectionOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ void setLampObject(Object *lampObject) {this->lampObject = lampObject;}
+ void setCameraObject(Object *cameraObject) {this->cameraObject = cameraObject;}
+
+ void setQuality(CompositorQuality quality) {this->quality = quality;}
+};
+
+class LensGhostOperation : public LensGhostProjectionOperation {
+public:
+ LensGhostOperation();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_LensGlowImageOperation.cpp b/source/blender/compositor/operations/COM_LensGlowImageOperation.cpp
new file mode 100644
index 00000000000..ee0a02e5fae
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LensGlowImageOperation.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_LensGlowImageOperation.h"
+#include "BLI_math.h"
+
+LensGlowImageOperation::LensGlowImageOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
+void LensGlowImageOperation::initExecution()
+{
+ this->scale = 1/20000.0f;
+}
+void LensGlowImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ const float cs_r = 1.f, cs_g = 1.f, cs_b = 1.f;
+ const float v = 2.f*(y / (float)512.0f) - 1.f;
+ const float u = 2.f*(x / (float)512.0f) - 1.f;
+ const float r = (u*u + v*v)*scale;
+ const float d = -sqrtf(sqrtf(sqrtf(r)))*9.f;
+ const float w = (0.5f + 0.5f*cos((double)u*M_PI))*(0.5f + 0.5f*cos((double)v*M_PI));
+ color[0] = expf(d*cs_r) * w;
+ color[1] = expf(d*cs_g) * w;
+ color[2] = expf(d*cs_b) * w;
+ color[3] = 1.0f;
+}
+
+void LensGlowImageOperation::deinitExecution()
+{
+}
+
+void LensGlowImageOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ resolution[0] = 512;
+ resolution[1] = 512;
+}
diff --git a/source/blender/compositor/operations/COM_LensGlowImageOperation.h b/source/blender/compositor/operations/COM_LensGlowImageOperation.h
new file mode 100644
index 00000000000..424b4d4fc3d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LensGlowImageOperation.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_LensGlowImageOperation_h
+#define _COM_LensGlowImageOperation_h
+#include "COM_NodeOperation.h"
+
+
+class LensGlowImageOperation : public NodeOperation {
+private:
+ float scale;
+
+public:
+ LensGlowImageOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_LensGlowOperation.cpp b/source/blender/compositor/operations/COM_LensGlowOperation.cpp
new file mode 100644
index 00000000000..492dc715f10
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LensGlowOperation.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_LensGlowOperation.h"
+#include "BLI_math.h"
+
+LensGlowOperation::LensGlowOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputProgram = NULL;
+ this->lamp = NULL;
+}
+void LensGlowOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void LensGlowOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+// const float emit100 = this->lamp->energy*100;
+// const float emit200 = emit100*2;
+// const float deltaX = 160-x;
+// const float deltaY = 100-y;
+// const float distance = deltaX * deltaX + deltaY*deltaY;
+
+// float glow = (emit100-(distance))/(emit200);
+// if (glow<0) glow=0;
+
+// color[0] = glow*lamp->r;
+// color[1] = glow*lamp->g;
+// color[2] = glow*lamp->b;
+// color[3] = 1.0f;
+}
+
+void LensGlowOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_LensGlowOperation.h b/source/blender/compositor/operations/COM_LensGlowOperation.h
new file mode 100644
index 00000000000..77e13e88418
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LensGlowOperation.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_LensGlowOperation_h
+#define _COM_LensGlowOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_lamp_types.h"
+
+class LensGlowOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+ Lamp *lamp;
+
+public:
+ LensGlowOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setLamp(Lamp *lamp) {this->lamp = lamp;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp b/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp
new file mode 100644
index 00000000000..f206bf4df8e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_LuminanceMatteOperation.h"
+#include "BLI_math.h"
+
+LuminanceMatteOperation::LuminanceMatteOperation(): NodeOperation()
+{
+ addInputSocket(COM_DT_COLOR);
+ addOutputSocket(COM_DT_VALUE);
+
+ inputImageProgram = NULL;
+}
+
+void LuminanceMatteOperation::initExecution()
+{
+ this->inputImageProgram = this->getInputSocketReader(0);
+}
+
+void LuminanceMatteOperation::deinitExecution()
+{
+ this->inputImageProgram = NULL;
+}
+
+void LuminanceMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inColor[4];
+
+ const float high=this->settings->t1;
+ const float low=this->settings->t2;
+
+ float alpha;
+
+ this->inputImageProgram->read(inColor, x, y, sampler, inputBuffers);
+
+ /* one line thread-friend algorithm:
+ outputValue[0] = max(inputValue[3], min(high, max(low, ((inColor[0]-low)/(high-low))))
+ */
+
+ /* test range*/
+ if (inColor[0] > high) {
+ alpha=1.f;
+ }
+ else if (inColor[0] < low) {
+ alpha=0.f;
+ }
+ else {/*blend */
+ alpha=(inColor[0]-low)/(high-low);
+ }
+
+
+ /* store matte(alpha) value in [0] to go with
+ * COM_SetAlphaOperation and the Value output
+ */
+
+ /* don't make something that was more transparent less transparent */
+ if (alpha<inColor[3]) {
+ outputValue[0]=alpha;
+ }
+ else {
+ /* leave now it was before */
+ outputValue[0]=inColor[3];
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_LuminanceMatteOperation.h b/source/blender/compositor/operations/COM_LuminanceMatteOperation.h
new file mode 100644
index 00000000000..1c2cd2dca51
--- /dev/null
+++ b/source/blender/compositor/operations/COM_LuminanceMatteOperation.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_LuminanceMatteOperation_h
+#define _COM_LuminanceMatteOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class LuminanceMatteOperation : public NodeOperation {
+private:
+ NodeChroma *settings;
+ SocketReader *inputImageProgram;
+public:
+ /**
+ * Default constructor
+ */
+ LuminanceMatteOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setSettings(NodeChroma *nodeChroma) {this->settings = nodeChroma;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MapUVOperation.cpp b/source/blender/compositor/operations/COM_MapUVOperation.cpp
new file mode 100644
index 00000000000..7b393cc04a8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MapUVOperation.cpp
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_MapUVOperation.h"
+#include "BLI_math.h"
+
+MapUVOperation::MapUVOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->alpha = 0.f;
+ this->setComplex(true);
+
+ this->inputUVProgram = NULL;
+ this->inputColorProgram = NULL;
+}
+
+void MapUVOperation::initExecution()
+{
+ this->inputColorProgram = this->getInputSocketReader(0);
+ this->inputUVProgram = this->getInputSocketReader(1);
+}
+
+void MapUVOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputUV[4];
+ float uv_a[4], uv_b[4];
+ float u,v;
+
+ float dx, dy;
+ float uv_l, uv_r;
+ float uv_u, uv_d;
+
+ this->inputUVProgram->read(inputUV, x, y, sampler, inputBuffers);
+ if (inputUV[2] == 0.f) {
+ color[0] = 0.f;
+ color[1] = 0.f;
+ color[2] = 0.f;
+ color[3] = 0.f;
+ return;
+ }
+ /* adaptive sampling, red (U) channel */
+ this->inputUVProgram->read(uv_a, x-1, y, COM_PS_NEAREST, inputBuffers);
+ this->inputUVProgram->read(uv_b, x+1, y, COM_PS_NEAREST, inputBuffers);
+ uv_l = uv_a[2]!=0.f? fabs(inputUV[0] - uv_a[0]) : 0.f;
+ uv_r = uv_b[2]!=0.f? fabs(inputUV[0] - uv_b[0]) : 0.f;
+
+ dx = 0.5f * (uv_l + uv_r);
+
+ /* adaptive sampling, green (V) channel */
+ this->inputUVProgram->read(uv_a, x, y-1, COM_PS_NEAREST, inputBuffers);
+ this->inputUVProgram->read(uv_b, x, y+1, COM_PS_NEAREST, inputBuffers);
+ uv_u = uv_a[2]!=0.f? fabs(inputUV[1] - uv_a[1]) : 0.f;
+ uv_d = uv_b[2]!=0.f? fabs(inputUV[1] - uv_b[1]) : 0.f;
+
+ dy = 0.5f * (uv_u + uv_d);
+
+ /* more adaptive sampling, red and green (UV) channels */
+ this->inputUVProgram->read(uv_a, x-1, y-1, COM_PS_NEAREST, inputBuffers);
+ this->inputUVProgram->read(uv_b, x-1, y+1, COM_PS_NEAREST, inputBuffers);
+ uv_l = uv_a[2]!=0.f? fabsf(inputUV[0] - uv_a[0]) : 0.f;
+ uv_r = uv_b[2]!=0.f? fabsf(inputUV[0] - uv_b[0]) : 0.f;
+ uv_u = uv_a[2]!=0.f? fabsf(inputUV[1] - uv_a[1]) : 0.f;
+ uv_d = uv_b[2]!=0.f? fabsf(inputUV[1] - uv_b[1]) : 0.f;
+
+ dx+= 0.25f * (uv_l + uv_r);
+ dy+= 0.25f * (uv_u + uv_d);
+
+ this->inputUVProgram->read(uv_a, x+1, y-1, COM_PS_NEAREST, inputBuffers);
+ this->inputUVProgram->read(uv_b, x+1, y+1, COM_PS_NEAREST, inputBuffers);
+ uv_l = uv_a[2]!=0.f? fabsf(inputUV[0] - uv_a[0]) : 0.f;
+ uv_r = uv_b[2]!=0.f? fabsf(inputUV[0] - uv_b[0]) : 0.f;
+ uv_u = uv_a[2]!=0.f? fabsf(inputUV[1] - uv_a[1]) : 0.f;
+ uv_d = uv_b[2]!=0.f? fabsf(inputUV[1] - uv_b[1]) : 0.f;
+
+ dx+= 0.25f * (uv_l + uv_r);
+ dy+= 0.25f * (uv_u + uv_d);
+
+ /* UV to alpha threshold */
+ const float threshold = this->alpha * 0.05f;
+ float alpha = 1.0f - threshold * (dx + dy);
+ if (alpha < 0.f) alpha = 0.f;
+ else alpha *= inputUV[2];
+
+ /* should use mipmap */
+ dx = min(dx, 0.2f);
+ dy = min(dy, 0.2f);
+
+
+ /* EWA filtering */
+ u = inputUV[0] * inputColorProgram->getWidth();
+ v = inputUV[1] * inputColorProgram->getHeight();
+
+ this->inputColorProgram->read(color, u, v, dx, dy, inputBuffers);
+
+ /* "premul" */
+ if (alpha < 1.0f) {
+ color[0]*= alpha;
+ color[1]*= alpha;
+ color[2]*= alpha;
+ color[3]*= alpha;
+ }
+}
+
+void MapUVOperation::deinitExecution()
+{
+ this->inputUVProgram = NULL;
+ this->inputColorProgram = NULL;
+}
+
+bool MapUVOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti colorInput;
+ rcti uvInput;
+ NodeOperation *operation=NULL;
+
+ /* the uv buffer only needs a 3x3 buffer. The image needs whole buffer */
+
+ operation = getInputOperation(0);
+ colorInput.xmax = operation->getWidth();
+ colorInput.xmin = 0;
+ colorInput.ymax = operation->getHeight();
+ colorInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&colorInput, readOperation, output)) {
+ return true;
+ }
+
+ operation = getInputOperation(1);
+ uvInput.xmax = input->xmax + 1;
+ uvInput.xmin = input->xmin - 1;
+ uvInput.ymax = input->ymax + 1;
+ uvInput.ymin = input->ymin - 1;
+ if (operation->determineDependingAreaOfInterest(&uvInput, readOperation, output)) {
+ return true;
+ }
+
+ return false;
+}
+
diff --git a/source/blender/compositor/operations/COM_MapUVOperation.h b/source/blender/compositor/operations/COM_MapUVOperation.h
new file mode 100644
index 00000000000..4d7bc814dc2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MapUVOperation.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_MapUVOperation_h
+#define _COM_MapUVOperation_h
+#include "COM_NodeOperation.h"
+
+
+class MapUVOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputUVProgram;
+ SocketReader *inputColorProgram;
+
+ float alpha;
+
+public:
+ MapUVOperation();
+
+ /**
+ * we need a 3x3 differential filter for UV Input and full buffer for the image
+ */
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setAlpha(float alpha) { this->alpha = alpha; }
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MapValueOperation.cpp b/source/blender/compositor/operations/COM_MapValueOperation.cpp
new file mode 100644
index 00000000000..bf6d29c0456
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MapValueOperation.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MapValueOperation.h"
+
+MapValueOperation::MapValueOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputOperation = NULL;
+}
+
+void MapValueOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void MapValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float src[4];
+ inputOperation->read(src, x, y, sampler, inputBuffers);
+ TexMapping *texmap = this->settings;
+ float value = (src[0] + texmap->loc[0])*texmap->size[0];
+ if (texmap->flag & TEXMAP_CLIP_MIN)
+ if (value<texmap->min[0])
+ value = texmap->min[0];
+ if (texmap->flag & TEXMAP_CLIP_MAX)
+ if (value>texmap->max[0])
+ value = texmap->max[0];
+
+ outputValue[0] = value;
+}
+
+void MapValueOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_MapValueOperation.h b/source/blender/compositor/operations/COM_MapValueOperation.h
new file mode 100644
index 00000000000..ac320256fe4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MapValueOperation.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MapValueOperation_h
+#define _COM_MapValueOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_texture_types.h"
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MapValueOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputOperation;
+ TexMapping * settings;
+public:
+ /**
+ * Default constructor
+ */
+ MapValueOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ /**
+ * @brief set the TexMapping settings
+ */
+ void setSettings(TexMapping *settings) {this->settings = settings;}
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MathBaseOperation.cpp b/source/blender/compositor/operations/COM_MathBaseOperation.cpp
new file mode 100644
index 00000000000..3a287cb7239
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MathBaseOperation.cpp
@@ -0,0 +1,261 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MathBaseOperation.h"
+extern "C" {
+#include "BLI_math.h"
+}
+
+MathBaseOperation::MathBaseOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputValue1Operation = NULL;
+ this->inputValue2Operation = NULL;
+}
+
+void MathBaseOperation::initExecution()
+{
+ this->inputValue1Operation = this->getInputSocketReader(0);
+ this->inputValue2Operation = this->getInputSocketReader(1);
+}
+
+
+void MathBaseOperation::deinitExecution()
+{
+ this->inputValue1Operation = NULL;
+ this->inputValue2Operation = NULL;
+}
+
+void MathAddOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = inputValue1[0] + inputValue2[0];
+}
+
+void MathSubtractOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = inputValue1[0] - inputValue2[0];
+}
+
+void MathMultiplyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = inputValue1[0] * inputValue2[0];
+}
+
+void MathDivideOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ if (inputValue2[0]==0) /* We don't want to divide by zero. */
+ outputValue[0] = 0.0;
+ else
+ outputValue[0] = inputValue1[0] / inputValue2[0];
+}
+
+void MathSineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = sin(inputValue1[0]);
+}
+
+void MathCosineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = cos(inputValue1[0]);
+}
+
+void MathTangentOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = tan(inputValue1[0]);
+}
+
+void MathArcSineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ if (inputValue1[0] <= 1 && inputValue1[0] >= -1 )
+ outputValue[0] = asin(inputValue1[0]);
+ else
+ outputValue[0] = 0.0;
+}
+
+void MathArcCosineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ if (inputValue1[0] <= 1 && inputValue1[0] >= -1 )
+ outputValue[0] = acos(inputValue1[0]);
+ else
+ outputValue[0] = 0.0;
+}
+
+void MathArcTangentOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = atan(inputValue1[0]);
+}
+
+void MathPowerOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ if (inputValue1[0] >= 0) {
+ outputValue[0] = pow(inputValue1[0], inputValue2[0]);
+ }
+ else {
+ float y_mod_1 = fmod(inputValue2[0], 1);
+ /* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */
+ if (y_mod_1 > 0.999 || y_mod_1 < 0.001) {
+ outputValue[0] = pow(inputValue1[0], (float)floor(inputValue2[0] + 0.5));
+ }
+ else {
+ outputValue[0] = 0.0;
+ }
+ }
+}
+
+void MathLogarithmOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ if (inputValue1[0] > 0 && inputValue2[0] > 0)
+ outputValue[0] = log(inputValue1[0]) / log(inputValue2[0]);
+ else
+ outputValue[0] = 0.0;
+}
+
+void MathMinimumOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = min(inputValue1[0], inputValue2[0]);
+}
+
+void MathMaximumOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = max(inputValue1[0], inputValue2[0]);
+}
+
+void MathRoundOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = round(inputValue1[0]);
+}
+
+void MathLessThanOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = inputValue1[0]<inputValue2[0]?1.0f:0.0f;
+}
+
+void MathGreaterThanOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputValue1[4];
+ float inputValue2[4];
+
+ inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
+ inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+
+ outputValue[0] = inputValue1[0]>inputValue2[0]?1.0f:0.0f;
+}
+
+
diff --git a/source/blender/compositor/operations/COM_MathBaseOperation.h b/source/blender/compositor/operations/COM_MathBaseOperation.h
new file mode 100644
index 00000000000..87f8a304158
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MathBaseOperation.h
@@ -0,0 +1,150 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MathBaseOperation_h
+#define _COM_MathBaseOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MathBaseOperation : public NodeOperation {
+protected:
+ /**
+ * Prefetched reference to the inputProgram
+ */
+ SocketReader * inputValue1Operation;
+ SocketReader * inputValue2Operation;
+
+protected:
+ /**
+ * Default constructor
+ */
+ MathBaseOperation();
+public:
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) = 0;
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+};
+
+class MathAddOperation: public MathBaseOperation {
+public:
+ MathAddOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathSubtractOperation: public MathBaseOperation {
+public:
+ MathSubtractOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathMultiplyOperation: public MathBaseOperation {
+public:
+ MathMultiplyOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathDivideOperation: public MathBaseOperation {
+public:
+ MathDivideOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathSineOperation: public MathBaseOperation {
+public:
+ MathSineOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathCosineOperation: public MathBaseOperation {
+public:
+ MathCosineOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathTangentOperation: public MathBaseOperation {
+public:
+ MathTangentOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+class MathArcSineOperation: public MathBaseOperation {
+public:
+ MathArcSineOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathArcCosineOperation: public MathBaseOperation {
+public:
+ MathArcCosineOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathArcTangentOperation: public MathBaseOperation {
+public:
+ MathArcTangentOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathPowerOperation: public MathBaseOperation {
+public:
+ MathPowerOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathLogarithmOperation: public MathBaseOperation {
+public:
+ MathLogarithmOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathMinimumOperation: public MathBaseOperation {
+public:
+ MathMinimumOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathMaximumOperation: public MathBaseOperation {
+public:
+ MathMaximumOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathRoundOperation: public MathBaseOperation {
+public:
+ MathRoundOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathLessThanOperation: public MathBaseOperation {
+public:
+ MathLessThanOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+class MathGreaterThanOperation: public MathBaseOperation {
+public:
+ MathGreaterThanOperation() : MathBaseOperation() {}
+ void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_MixAddOperation.cpp b/source/blender/compositor/operations/COM_MixAddOperation.cpp
new file mode 100644
index 00000000000..a4f601ae9e6
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixAddOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixAddOperation.h"
+
+MixAddOperation::MixAddOperation(): MixBaseOperation()
+{
+}
+
+void MixAddOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float inputValue[4];
+
+ inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
+ inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+
+
+ float value = inputValue[0];
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ outputValue[0] = inputColor1[0]+value*inputColor2[0];
+ outputValue[1] = inputColor1[1]+value*inputColor2[1];
+ outputValue[2] = inputColor1[2]+value*inputColor2[2];
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixAddOperation.h b/source/blender/compositor/operations/COM_MixAddOperation.h
new file mode 100644
index 00000000000..99a6af67d7d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixAddOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixAddOperation_h
+#define _COM_MixAddOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixAddOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixAddOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixBaseOperation.cpp b/source/blender/compositor/operations/COM_MixBaseOperation.cpp
new file mode 100644
index 00000000000..49ae67a06f7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixBaseOperation.cpp
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixBaseOperation.h"
+
+MixBaseOperation::MixBaseOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputValueOperation = NULL;
+ this->inputColor1Operation = NULL;
+ this->inputColor2Operation = NULL;
+ this->setUseValueAlphaMultiply(false);
+}
+
+void MixBaseOperation::initExecution()
+{
+ this->inputValueOperation = this->getInputSocketReader(0);
+ this->inputColor1Operation = this->getInputSocketReader(1);
+ this->inputColor2Operation = this->getInputSocketReader(2);
+}
+
+void MixBaseOperation::executePixel(float *outputColor, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+ outputColor[0] = valuem*(inputColor1[0])+value*(inputColor2[0]);
+ outputColor[1] = valuem*(inputColor1[1])+value*(inputColor2[1]);
+ outputColor[2] = valuem*(inputColor1[2])+value*(inputColor2[2]);
+ outputColor[3] = inputColor1[3];
+}
+
+void MixBaseOperation::deinitExecution()
+{
+ this->inputValueOperation = NULL;
+ this->inputColor1Operation = NULL;
+ this->inputColor2Operation = NULL;
+}
+
+void MixBaseOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ InputSocket *socket;
+ unsigned int tempPreferredResolution[] = {0,0};
+ unsigned int tempResolution[2];
+
+ socket = this->getInputSocket(1);
+ socket->determineResolution(tempResolution, tempPreferredResolution);
+ if ((tempResolution[0] != 0) && (tempResolution[1] != 0)) {
+ this->setResolutionInputSocketIndex(1);
+ }
+ else {
+ socket = this->getInputSocket(2);
+ tempPreferredResolution[0] = 0;
+ tempPreferredResolution[1] = 0;
+ socket->determineResolution(tempResolution, tempPreferredResolution);
+ if ((tempResolution[0] != 0) && (tempResolution[1] != 0)) {
+ this->setResolutionInputSocketIndex(2);
+ }
+ else {
+ this->setResolutionInputSocketIndex(0);
+ }
+ }
+ NodeOperation::determineResolution(resolution, preferredResolution);
+}
+
diff --git a/source/blender/compositor/operations/COM_MixBaseOperation.h b/source/blender/compositor/operations/COM_MixBaseOperation.h
new file mode 100644
index 00000000000..b9bb94d58d8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixBaseOperation.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixBaseOperation_h
+#define _COM_MixBaseOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixBaseOperation : public NodeOperation {
+protected:
+ /**
+ * Prefetched reference to the inputProgram
+ */
+ SocketReader *inputValueOperation;
+ SocketReader *inputColor1Operation;
+ SocketReader *inputColor2Operation;
+ bool valueAlphaMultiply;
+public:
+ /**
+ * Default constructor
+ */
+ MixBaseOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ void setUseValueAlphaMultiply(const bool value) {this->valueAlphaMultiply = value;}
+ bool useValueAlphaMultiply() {return this->valueAlphaMultiply;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixBlendOperation.cpp b/source/blender/compositor/operations/COM_MixBlendOperation.cpp
new file mode 100644
index 00000000000..579f15bcc27
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixBlendOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixBlendOperation.h"
+
+MixBlendOperation::MixBlendOperation(): MixBaseOperation()
+{
+}
+
+void MixBlendOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float inputValue[4];
+ float value;
+
+ inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
+ inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+ value = inputValue[0];
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+ outputValue[0] = valuem*(inputColor1[0])+value*(inputColor2[0]);
+ outputValue[1] = valuem*(inputColor1[1])+value*(inputColor2[1]);
+ outputValue[2] = valuem*(inputColor1[2])+value*(inputColor2[2]);
+ outputValue[3] = inputColor1[3];
+}
diff --git a/source/blender/compositor/operations/COM_MixBlendOperation.h b/source/blender/compositor/operations/COM_MixBlendOperation.h
new file mode 100644
index 00000000000..da3342c0e4a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixBlendOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixBlendOperation_h
+#define _COM_MixBlendOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixBlendOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixBlendOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixBurnOperation.cpp b/source/blender/compositor/operations/COM_MixBurnOperation.cpp
new file mode 100644
index 00000000000..7cad107c5e9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixBurnOperation.cpp
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixBurnOperation.h"
+
+MixBurnOperation::MixBurnOperation(): MixBaseOperation()
+{
+}
+
+void MixBurnOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+ float tmp;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ tmp = valuem + value*inputColor2[0];
+ if (tmp <= 0.0f)
+ outputValue[0] = 0.0f;
+ else {
+ tmp = 1.0f - (1.0f - inputColor1[0]) / tmp;
+ if (tmp < 0.0f)
+ outputValue[0] = 0.0f;
+ else if (tmp > 1.0f)
+ outputValue[0] = 1.0f;
+ else
+ outputValue[0] = tmp;
+ }
+
+ tmp = valuem + value*inputColor2[1];
+ if (tmp <= 0.0f)
+ outputValue[1] = 0.0f;
+ else {
+ tmp = 1.0f - (1.0f - inputColor1[1]) / tmp;
+ if (tmp < 0.0f)
+ outputValue[1] = 0.0f;
+ else if (tmp > 1.0f)
+ outputValue[1] = 1.0f;
+ else
+ outputValue[1] = tmp;
+ }
+
+ tmp = valuem + value*inputColor2[2];
+ if (tmp <= 0.0f)
+ outputValue[2] = 0.0f;
+ else {
+ tmp = 1.0f - (1.0f - inputColor1[2]) / tmp;
+ if (tmp < 0.0f)
+ outputValue[2] = 0.0f;
+ else if (tmp > 1.0f)
+ outputValue[2] = 1.0f;
+ else
+ outputValue[2] = tmp;
+ }
+
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixBurnOperation.h b/source/blender/compositor/operations/COM_MixBurnOperation.h
new file mode 100644
index 00000000000..ff7de119605
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixBurnOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixBurnOperation_h
+#define _COM_MixBurnOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixBurnOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixBurnOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixColorOperation.cpp b/source/blender/compositor/operations/COM_MixColorOperation.cpp
new file mode 100644
index 00000000000..e14b10b305e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixColorOperation.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixColorOperation.h"
+
+extern "C" {
+ #include "BLI_math.h"
+}
+
+MixColorOperation::MixColorOperation(): MixBaseOperation()
+{
+}
+
+void MixColorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ float colH,colS,colV;
+ rgb_to_hsv(inputColor2[0], inputColor2[1], inputColor2[2], &colH, &colS, &colV);
+ if (colS!=0.0f) {
+ float rH,rS,rV;
+ float tmpr,tmpg,tmpb;
+ rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
+ hsv_to_rgb(colH , colS, rV, &tmpr, &tmpg, &tmpb);
+ outputValue[0] = valuem*(inputColor1[0]) + value*tmpr;
+ outputValue[1] = valuem*(inputColor1[1]) + value*tmpg;
+ outputValue[2] = valuem*(inputColor1[2]) + value*tmpb;
+ }
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixColorOperation.h b/source/blender/compositor/operations/COM_MixColorOperation.h
new file mode 100644
index 00000000000..1a98e847ccd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixColorOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixColorOperation_h
+#define _COM_MixColorOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixColorOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixColorOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixDarkenOperation.cpp b/source/blender/compositor/operations/COM_MixDarkenOperation.cpp
new file mode 100644
index 00000000000..666db9d8f32
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDarkenOperation.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixDarkenOperation.h"
+
+MixDarkenOperation::MixDarkenOperation(): MixBaseOperation()
+{
+}
+
+void MixDarkenOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+ float tmp;
+ tmp=inputColor2[0]+((1.0f-inputColor2[0])*valuem);
+ if (tmp < inputColor1[0]) outputValue[0] = tmp;
+ else outputValue[0] = inputColor1[0];
+ tmp=inputColor2[1]+((1.0f-inputColor2[1])*valuem);
+ if (tmp < inputColor1[1]) outputValue[1] = tmp;
+ else outputValue[1] = inputColor1[1];
+ tmp=inputColor2[2]+((1.0f-inputColor2[2])*valuem);
+ if (tmp < inputColor1[2]) outputValue[2] = tmp;
+ else outputValue[2] = inputColor1[2];
+
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixDarkenOperation.h b/source/blender/compositor/operations/COM_MixDarkenOperation.h
new file mode 100644
index 00000000000..b1792d4930e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDarkenOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixDarkenOperation_h
+#define _COM_MixDarkenOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixDarkenOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixDarkenOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp b/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp
new file mode 100644
index 00000000000..497bb9c2bb5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixDifferenceOperation.h"
+#include "BLI_math.h"
+
+MixDifferenceOperation::MixDifferenceOperation(): MixBaseOperation()
+{
+}
+
+void MixDifferenceOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+ outputValue[0] = valuem*inputColor1[0] + value*fabsf(inputColor1[0]-inputColor2[0]);
+ outputValue[1] = valuem*inputColor1[1] + value*fabsf(inputColor1[1]-inputColor2[1]);
+ outputValue[2] = valuem*inputColor1[2] + value*fabsf(inputColor1[2]-inputColor2[2]);
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixDifferenceOperation.h b/source/blender/compositor/operations/COM_MixDifferenceOperation.h
new file mode 100644
index 00000000000..554d7b2f1fe
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDifferenceOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixDifferenceOperation_h
+#define _COM_MixDifferenceOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixDifferenceOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixDifferenceOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixDivideOperation.cpp b/source/blender/compositor/operations/COM_MixDivideOperation.cpp
new file mode 100644
index 00000000000..c522fcf225a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDivideOperation.cpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixDivideOperation.h"
+
+MixDivideOperation::MixDivideOperation(): MixBaseOperation()
+{
+}
+
+void MixDivideOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ if (inputColor2[0] != 0.0f)
+ outputValue[0] = valuem*(inputColor1[0]) + value*(inputColor1[0])/inputColor2[0];
+ else
+ outputValue[0] = 0.0f;
+ if (inputColor2[1] != 0.0f)
+ outputValue[1] = valuem*(inputColor1[1]) + value*(inputColor1[1])/inputColor2[1];
+ else
+ outputValue[1] = 0.0f;
+ if (inputColor2[2] != 0.0f)
+ outputValue[2] = valuem*(inputColor1[2]) + value*(inputColor1[2])/inputColor2[2];
+ else
+ outputValue[2] = 0.0f;
+
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixDivideOperation.h b/source/blender/compositor/operations/COM_MixDivideOperation.h
new file mode 100644
index 00000000000..e9c4cf81cd3
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDivideOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixDivideOperation_h
+#define _COM_MixDivideOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixDivideOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixDivideOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixDodgeOperation.cpp b/source/blender/compositor/operations/COM_MixDodgeOperation.cpp
new file mode 100644
index 00000000000..10c04ba376b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDodgeOperation.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixDodgeOperation.h"
+
+MixDodgeOperation::MixDodgeOperation(): MixBaseOperation()
+{
+}
+
+void MixDodgeOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+ float tmp;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+
+ if (inputColor1[0] != 0.0f) {
+ tmp = 1.0f - value*inputColor2[0];
+ if (tmp <= 0.0f)
+ outputValue[0] = 1.0f;
+ else {
+ tmp = inputColor1[0] / tmp;
+ if (tmp > 1.0f)
+ outputValue[0] = 1.0f;
+ else
+ outputValue[0] = tmp;
+ }
+ }
+ else
+ outputValue[0] = 0.0f;
+
+ if (inputColor1[1] != 0.0f) {
+ tmp = 1.0f - value*inputColor2[1];
+ if (tmp <= 0.0f)
+ outputValue[1] = 1.0f;
+ else {
+ tmp = inputColor1[1] / tmp;
+ if (tmp > 1.0f)
+ outputValue[1] = 1.0f;
+ else
+ outputValue[1] = tmp;
+ }
+ }
+ else
+ outputValue[1] = 0.0f;
+
+ if (inputColor1[2] != 0.0f) {
+ tmp = 1.0f - value*inputColor2[2];
+ if (tmp <= 0.0f)
+ outputValue[2] = 1.0f;
+ else {
+ tmp = inputColor1[2] / tmp;
+ if (tmp > 1.0f)
+ outputValue[2] = 1.0f;
+ else
+ outputValue[2] = tmp;
+ }
+ }
+ else
+ outputValue[2] = 0.0f;
+
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixDodgeOperation.h b/source/blender/compositor/operations/COM_MixDodgeOperation.h
new file mode 100644
index 00000000000..6baa73e8f6f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixDodgeOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixDodgeOperation_h
+#define _COM_MixDodgeOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixDodgeOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixDodgeOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixHueOperation.cpp b/source/blender/compositor/operations/COM_MixHueOperation.cpp
new file mode 100644
index 00000000000..de376f3500c
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixHueOperation.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixHueOperation.h"
+
+extern "C" {
+ #include "BLI_math.h"
+}
+
+MixHueOperation::MixHueOperation(): MixBaseOperation()
+{
+}
+
+void MixHueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ float colH,colS,colV;
+ rgb_to_hsv(inputColor2[0], inputColor2[1], inputColor2[2], &colH, &colS, &colV);
+ if (colS!=0.0f) {
+ float rH,rS,rV;
+ float tmpr,tmpg,tmpb;
+ rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
+ hsv_to_rgb(colH , rS, rV, &tmpr, &tmpg, &tmpb);
+ outputValue[0] = valuem*(inputColor1[0]) + value*tmpr;
+ outputValue[1] = valuem*(inputColor1[1]) + value*tmpg;
+ outputValue[2] = valuem*(inputColor1[2]) + value*tmpb;
+ }
+ outputValue[3] = inputColor1[3];
+}
diff --git a/source/blender/compositor/operations/COM_MixHueOperation.h b/source/blender/compositor/operations/COM_MixHueOperation.h
new file mode 100644
index 00000000000..d3d1717f448
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixHueOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixHueOperation_h
+#define _COM_MixHueOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixHueOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixHueOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixLightenOperation.cpp b/source/blender/compositor/operations/COM_MixLightenOperation.cpp
new file mode 100644
index 00000000000..bc3e5090bd8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixLightenOperation.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixLightenOperation.h"
+
+MixLightenOperation::MixLightenOperation(): MixBaseOperation()
+{
+}
+
+void MixLightenOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float tmp;
+ tmp=value * inputColor2[0];
+ if (tmp > inputColor1[0]) outputValue[0] = tmp;
+ else outputValue[0] = inputColor1[0];
+ tmp=value * inputColor2[1];
+ if (tmp > inputColor1[1]) outputValue[1] = tmp;
+ else outputValue[1] = inputColor1[1];
+ tmp=value * inputColor2[2];
+ if (tmp > inputColor1[2]) outputValue[2] = tmp;
+ else outputValue[2] = inputColor1[2];
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixLightenOperation.h b/source/blender/compositor/operations/COM_MixLightenOperation.h
new file mode 100644
index 00000000000..73ac3e6e165
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixLightenOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixLightenOperation_h
+#define _COM_MixLightenOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixLightenOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixLightenOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp b/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp
new file mode 100644
index 00000000000..b68064f0e47
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixLinearLightOperation.h"
+
+MixLinearLightOperation::MixLinearLightOperation(): MixBaseOperation()
+{
+}
+
+void MixLinearLightOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ if (inputColor2[0] > 0.5f)
+ outputValue[0] = inputColor1[0] + value*(2.0f*(inputColor2[0]-0.5f));
+ else
+ outputValue[0] = inputColor1[0] + value*(2.0f*(inputColor2[0]) - 1.0f);
+ if (inputColor2[1] > 0.5f)
+ outputValue[1] = inputColor1[1] + value*(2.0f*(inputColor2[1]-0.5f));
+ else
+ outputValue[1] = inputColor1[1] + value*(2.0f*(inputColor2[1]) - 1.0f);
+ if (inputColor2[2] > 0.5f)
+ outputValue[2] = inputColor1[2] + value*(2.0f*(inputColor2[2]-0.5f));
+ else
+ outputValue[2] = inputColor1[2] + value*(2.0f*(inputColor2[2]) - 1.0f);
+
+ outputValue[3] = inputColor1[3];
+}
diff --git a/source/blender/compositor/operations/COM_MixLinearLightOperation.h b/source/blender/compositor/operations/COM_MixLinearLightOperation.h
new file mode 100644
index 00000000000..7e26b25e5c0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixLinearLightOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixLinearLightOperation_h
+#define _COM_MixLinearLightOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixLinearLightOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixLinearLightOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp b/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp
new file mode 100644
index 00000000000..fdf8c1ca51b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixMultiplyOperation.h"
+
+MixMultiplyOperation::MixMultiplyOperation(): MixBaseOperation()
+{
+}
+
+void MixMultiplyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float inputValue[4];
+
+ inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
+ inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+
+ float value = inputValue[0];
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+ outputValue[0] = inputColor1[0] *(valuem+value*inputColor2[0]);
+ outputValue[1] = inputColor1[1] *(valuem+value*inputColor2[1]);
+ outputValue[2] = inputColor1[2] *(valuem+value*inputColor2[2]);
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixMultiplyOperation.h b/source/blender/compositor/operations/COM_MixMultiplyOperation.h
new file mode 100644
index 00000000000..5d4468e7271
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixMultiplyOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixMultiplyOperation_h
+#define _COM_MixMultiplyOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixMultiplyOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixMultiplyOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixOverlayOperation.cpp b/source/blender/compositor/operations/COM_MixOverlayOperation.cpp
new file mode 100644
index 00000000000..0025daeb3f5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixOverlayOperation.cpp
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixOverlayOperation.h"
+
+MixOverlayOperation::MixOverlayOperation(): MixBaseOperation()
+{
+}
+
+void MixOverlayOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+
+ float valuem = 1.0f - value;
+
+ if (inputColor1[0] < 0.5f) {
+ outputValue[0] = inputColor1[0] * (valuem + 2.0f*value*inputColor2[0]);
+ }
+ else {
+ outputValue[0] = 1.0f - (valuem + 2.0f*value*(1.0f - inputColor2[0])) * (1.0f - inputColor1[0]);
+ }
+ if (inputColor1[1] < 0.5f) {
+ outputValue[1] = inputColor1[1] * (valuem + 2.0f*value*inputColor2[1]);
+ }
+ else {
+ outputValue[1] = 1.0f - (valuem + 2.0f*value*(1.0f - inputColor2[1])) * (1.0f - inputColor1[1]);
+ }
+ if (inputColor1[2] < 0.5f) {
+ outputValue[2] = inputColor1[2] * (valuem + 2.0f*value*inputColor2[2]);
+ }
+ else {
+ outputValue[2] = 1.0f - (valuem + 2.0f*value*(1.0f - inputColor2[2])) * (1.0f - inputColor1[2]);
+ }
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixOverlayOperation.h b/source/blender/compositor/operations/COM_MixOverlayOperation.h
new file mode 100644
index 00000000000..dd1d16a53d3
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixOverlayOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixOverlayOperation_h
+#define _COM_MixOverlayOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixOverlayOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixOverlayOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixSaturationOperation.cpp b/source/blender/compositor/operations/COM_MixSaturationOperation.cpp
new file mode 100644
index 00000000000..f6f6ec73c6e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixSaturationOperation.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixSaturationOperation.h"
+
+extern "C" {
+ #include "BLI_math.h"
+}
+
+MixSaturationOperation::MixSaturationOperation(): MixBaseOperation()
+{
+}
+
+void MixSaturationOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ float rH,rS,rV;
+ rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
+ if (rS!=0.0f) {
+ float colH,colS,colV;
+ rgb_to_hsv(inputColor2[0], inputColor2[1], inputColor2[2], &colH, &colS, &colV);
+ hsv_to_rgb(rH , (valuem*rS+value*colS), rV, &outputValue[0], &outputValue[1], &outputValue[2]);
+ }
+ outputValue[3] = inputColor1[3];
+}
diff --git a/source/blender/compositor/operations/COM_MixSaturationOperation.h b/source/blender/compositor/operations/COM_MixSaturationOperation.h
new file mode 100644
index 00000000000..7e746c02e09
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixSaturationOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixSaturationOperation_h
+#define _COM_MixSaturationOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixSaturationOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixSaturationOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixScreenOperation.cpp b/source/blender/compositor/operations/COM_MixScreenOperation.cpp
new file mode 100644
index 00000000000..a1a98bd82a2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixScreenOperation.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixScreenOperation.h"
+
+MixScreenOperation::MixScreenOperation(): MixBaseOperation()
+{
+}
+
+void MixScreenOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float valuev[4];
+
+ inputValueOperation->read(valuev, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ float value = valuev[0];
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ outputValue[0] = 1.0f - (valuem + value*(1.0f-inputColor2[0])) *(1.0f-inputColor1[0]);
+ outputValue[1] = 1.0f - (valuem + value*(1.0f-inputColor2[1])) *(1.0f-inputColor1[1]);
+ outputValue[2] = 1.0f - (valuem + value*(1.0f-inputColor2[2])) *(1.0f-inputColor1[2]);
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixScreenOperation.h b/source/blender/compositor/operations/COM_MixScreenOperation.h
new file mode 100644
index 00000000000..6522907f295
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixScreenOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixScreenOperation_h
+#define _COM_MixScreenOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixScreenOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixScreenOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp b/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp
new file mode 100644
index 00000000000..ea6a3ddd498
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixSoftLightOperation.h"
+
+MixSoftLightOperation::MixSoftLightOperation(): MixBaseOperation()
+{
+}
+
+void MixSoftLightOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])\
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+ float scr, scg, scb;
+
+ /* first calculate non-fac based Screen mix */
+ scr = 1.0f - (1.0f - inputColor2[0]) * (1.0f - inputColor1[0]);
+ scg = 1.0f - (1.0f - inputColor2[1]) * (1.0f - inputColor1[1]);
+ scb = 1.0f - (1.0f - inputColor2[2]) * (1.0f - inputColor1[2]);
+
+ outputValue[0] = valuem*(inputColor1[0]) + value*(((1.0f - inputColor1[0]) * inputColor2[0] * (inputColor1[0])) + (inputColor1[0] * scr));
+ outputValue[1] = valuem*(inputColor1[1]) + value*(((1.0f - inputColor1[1]) * inputColor2[1] * (inputColor1[1])) + (inputColor1[1] * scg));
+ outputValue[2] = valuem*(inputColor1[2]) + value*(((1.0f - inputColor1[2]) * inputColor2[2] * (inputColor1[2])) + (inputColor1[2] * scb));
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixSoftLightOperation.h b/source/blender/compositor/operations/COM_MixSoftLightOperation.h
new file mode 100644
index 00000000000..fcbd8dab8b8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixSoftLightOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixSoftLightOperation_h
+#define _COM_MixSoftLightOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixSoftLightOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixSoftLightOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixSubtractOperation.cpp b/source/blender/compositor/operations/COM_MixSubtractOperation.cpp
new file mode 100644
index 00000000000..57320dcd611
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixSubtractOperation.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixSubtractOperation.h"
+
+MixSubtractOperation::MixSubtractOperation(): MixBaseOperation()
+{
+}
+
+void MixSubtractOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ outputValue[0] = inputColor1[0]-value*(inputColor2[0]);
+ outputValue[1] = inputColor1[1]-value*(inputColor2[1]);
+ outputValue[2] = inputColor1[2]-value*(inputColor2[2]);
+ outputValue[3] = inputColor1[3];
+}
+
diff --git a/source/blender/compositor/operations/COM_MixSubtractOperation.h b/source/blender/compositor/operations/COM_MixSubtractOperation.h
new file mode 100644
index 00000000000..441857a8aca
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixSubtractOperation.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixSubtractOperation_h
+#define _COM_MixSubtractOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixSubtractOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixSubtractOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MixValueOperation.cpp b/source/blender/compositor/operations/COM_MixValueOperation.cpp
new file mode 100644
index 00000000000..8c43bb6af8c
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixValueOperation.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MixValueOperation.h"
+
+extern "C" {
+ #include "BLI_math.h"
+}
+
+MixValueOperation::MixValueOperation(): MixBaseOperation()
+{
+}
+
+void MixValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float inputColor1[4];
+ float inputColor2[4];
+ float value;
+
+ inputValueOperation->read(&value, x, y, sampler, inputBuffers);
+ inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
+ inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+
+ if (this->useValueAlphaMultiply()) {
+ value *= inputColor2[3];
+ }
+ float valuem = 1.0f - value;
+
+ float rH,rS,rV;
+ float colH,colS,colV;
+ rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
+ rgb_to_hsv(inputColor2[0], inputColor2[1], inputColor2[2], &colH, &colS, &colV);
+ hsv_to_rgb(rH , rS, (valuem*rV+value*colV), &outputValue[0], &outputValue[1], &outputValue[2]);
+ outputValue[3] = inputColor1[3];
+}
diff --git a/source/blender/compositor/operations/COM_MixValueOperation.h b/source/blender/compositor/operations/COM_MixValueOperation.h
new file mode 100644
index 00000000000..89461b3ba40
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MixValueOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MixValueOperation_h
+#define _COM_MixValueOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MixValueOperation : public MixBaseOperation {
+public:
+ /**
+ * Default constructor
+ */
+ MixValueOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
new file mode 100644
index 00000000000..a81288be3f7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MovieClipAttributeOperation.h"
+extern "C" {
+ #include "BKE_tracking.h"
+}
+MovieClipAttributeOperation::MovieClipAttributeOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_VALUE);
+ this->valueSet = false;
+ this->framenumber = 0;
+ this->attribute = MCA_X;
+}
+
+void MovieClipAttributeOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ if (!valueSet) {
+ float loc[2], scale, angle;
+ loc[0] = 0.0f;
+ loc[1] = 0.0f;
+ scale = 1.0f;
+ angle = 0.0f;
+ if (clip) {
+ BKE_tracking_stabilization_data(&clip->tracking, framenumber, getWidth(), getHeight(), loc, &scale, &angle);
+ }
+ switch (this->attribute) {
+ case MCA_SCALE:
+ this->value = scale;
+ break;
+ case MCA_ANGLE:
+ this->value = angle;
+ break;
+ case MCA_X:
+ this->value = loc[0];
+ break;
+ case MCA_Y:
+ this->value = loc[1];
+ break;
+ }
+ valueSet = true;
+ }
+ outputValue[0] = this->value;
+}
+
+void MovieClipAttributeOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ resolution[0] = preferredResolution[0];
+ resolution[1] = preferredResolution[1];
+}
+
diff --git a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h
new file mode 100644
index 00000000000..aca2ec2eff7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MovieClipAttributeOperation_h
+#define _COM_MovieClipAttributeOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_movieclip_types.h"
+
+typedef enum MovieClipAttribute {
+ MCA_SCALE,
+ MCA_X,
+ MCA_Y,
+ MCA_ANGLE
+} MovieClipAttribute;
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class MovieClipAttributeOperation : public NodeOperation {
+private:
+ MovieClip * clip;
+ float value;
+ bool valueSet;
+ int framenumber;
+ MovieClipAttribute attribute;
+public:
+ /**
+ * Default constructor
+ */
+ MovieClipAttributeOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ void setMovieClip(MovieClip *clip) {this->clip = clip;}
+ void setFramenumber(int framenumber) {this->framenumber = framenumber;}
+ void setAttribute(MovieClipAttribute attribute) {this->attribute = attribute;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_MovieClipOperation.cpp b/source/blender/compositor/operations/COM_MovieClipOperation.cpp
new file mode 100644
index 00000000000..b565e48345c
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MovieClipOperation.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MovieClipOperation.h"
+
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "BLI_math.h"
+extern "C" {
+ #include "BKE_movieclip.h"
+ #include "IMB_imbuf.h"
+}
+#include "BKE_image.h"
+
+MovieClipOperation::MovieClipOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+ this->movieClip = NULL;
+ this->movieClipBuffer = NULL;
+ this->movieClipUser = NULL;
+ this->movieClipwidth = 0;
+ this->movieClipheight = 0;
+ this->framenumber = 0;
+}
+
+
+void MovieClipOperation::initExecution()
+{
+ if (this->movieClip) {
+ BKE_movieclip_user_set_frame(this->movieClipUser, this->framenumber);
+ ImBuf *ibuf;
+ ibuf = BKE_movieclip_get_ibuf(this->movieClip, this->movieClipUser);
+ if (ibuf) {
+ this->movieClipBuffer = ibuf;
+ if (ibuf->rect_float == NULL || ibuf->userflags&IB_RECT_INVALID) {
+ IMB_float_from_rect(ibuf);
+ ibuf->userflags&= ~IB_RECT_INVALID;
+ }
+ }
+ }
+}
+
+void MovieClipOperation::deinitExecution()
+{
+ if (this->movieClipBuffer) {
+ IMB_freeImBuf(this->movieClipBuffer);
+
+ this->movieClipBuffer = NULL;
+ }
+}
+
+void MovieClipOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ ImBuf *ibuf;
+
+ resolution[0] = 0;
+ resolution[1] = 0;
+
+ if (this->movieClip) {
+ ibuf = BKE_movieclip_get_ibuf(this->movieClip, this->movieClipUser);
+ if (ibuf) {
+ resolution[0] = ibuf->x;
+ resolution[1] = ibuf->y;
+
+ IMB_freeImBuf(ibuf);
+ }
+ }
+}
+
+void MovieClipOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ if (this->movieClipBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 0.0f;
+ }
+ else {
+ switch (sampler) {
+ case COM_PS_NEAREST:
+ neareast_interpolation_color(this->movieClipBuffer, NULL, color, x, y);
+ break;
+ case COM_PS_BILINEAR:
+ bilinear_interpolation_color(this->movieClipBuffer, NULL, color, x, y);
+ break;
+ case COM_PS_BICUBIC:
+ bicubic_interpolation_color(this->movieClipBuffer, NULL, color, x, y);
+ break;
+ }
+ }
+}
diff --git a/source/blender/compositor/operations/COM_MovieClipOperation.h b/source/blender/compositor/operations/COM_MovieClipOperation.h
new file mode 100644
index 00000000000..f52a9973fc5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MovieClipOperation.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+
+#ifndef _COM_ImageOperation_h
+#define _COM_ImageOperation_h
+
+#include "COM_NodeOperation.h"
+#include "DNA_scene_types.h"
+#include "DNA_movieclip_types.h"
+#include "BLI_listbase.h"
+#include "IMB_imbuf_types.h"
+
+/**
+ * Base class for all renderlayeroperations
+ *
+ * @todo: rename to operation.
+ */
+class MovieClipOperation : public NodeOperation {
+protected:
+ MovieClip *movieClip;
+ MovieClipUser *movieClipUser;
+ ImBuf *movieClipBuffer;
+ int movieClipheight;
+ int movieClipwidth;
+ int framenumber;
+
+ /**
+ * Determine the output resolution. The resolution is retrieved from the Renderer
+ */
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+public:
+ MovieClipOperation();
+
+ void initExecution();
+ void deinitExecution();
+ void setMovieClip(MovieClip *image) {this->movieClip = image;}
+ void setMovieClipUser(MovieClipUser *imageuser) {this->movieClipUser = imageuser;}
+
+ void setFramenumber(int framenumber) {this->framenumber = framenumber;}
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp b/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp
new file mode 100644
index 00000000000..ebea9e8b4a2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_MovieDistortionOperation.h"
+
+extern "C" {
+ #include "BKE_tracking.h"
+ #include "BKE_movieclip.h"
+ #include "BLI_linklist.h"
+}
+
+
+vector<DistortionCache*> s_cache;
+
+
+MovieDistortionOperation::MovieDistortionOperation(bool distortion) : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+ this->movieClip = NULL;
+ this->cache = NULL;
+ this->distortion = distortion;
+}
+void MovieDistortionOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ if (this->movieClip) {
+ MovieClipUser clipUser = {0};
+ int calibration_width, calibration_height;
+
+ BKE_movieclip_user_set_frame(&clipUser, this->framenumber);
+ BKE_movieclip_get_size(this->movieClip, &clipUser, &calibration_width, &calibration_height);
+
+ for (int i = 0 ; i < s_cache.size() ; i ++) {
+ DistortionCache *c = (DistortionCache*)s_cache[i];
+ if (c->isCacheFor(this->movieClip, this->width, this->height,
+ calibration_width, calibration_height, this->distortion))
+ {
+ this->cache = c;
+ return;
+ }
+ }
+ DistortionCache *newC = new DistortionCache(this->movieClip, this->width, this->height,
+ calibration_width, calibration_height, this->distortion);
+ s_cache.push_back(newC);
+ this->cache = newC;
+ }
+ else {
+ this->cache = NULL;
+ }
+}
+
+void MovieDistortionOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+ this->movieClip = NULL;
+}
+
+
+void MovieDistortionOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+
+ if (this->cache != NULL) {
+ float u, v;
+ this->cache->getUV(&this->movieClip->tracking, x, y, &u, &v);
+ this->inputOperation->read(color, u, v, sampler, inputBuffers);
+ }
+ else {
+ this->inputOperation->read(color, x, y, sampler, inputBuffers);
+ }
+}
+
+bool MovieDistortionOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmax = input->xmax + 100;
+ newInput.xmin = input->xmin - 100;
+ newInput.ymax = input->ymax + 100;
+ newInput.ymin = input->ymin - 100;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_MovieDistortionOperation.h b/source/blender/compositor/operations/COM_MovieDistortionOperation.h
new file mode 100644
index 00000000000..f583493340b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MovieDistortionOperation.h
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_MovieDistortionOperation_h_
+#define _COM_MovieDistortionOperation_h_
+
+#include "COM_NodeOperation.h"
+#include "DNA_movieclip_types.h"
+extern "C" {
+ #include "BKE_tracking.h"
+}
+
+class DistortionCache {
+private:
+ float k1;
+ float k2;
+ float k3;
+ float principal_x;
+ float principal_y;
+ float pixel_aspect;
+ int width;
+ int height;
+ int calibration_width;
+ int calibration_height;
+ bool inverted;
+ float *buffer;
+ int *bufferCalculated;
+public:
+ DistortionCache(MovieClip *movieclip, int width, int height, int calibration_width, int calibration_height, bool inverted) {
+ this->k1 = movieclip->tracking.camera.k1;
+ this->k2 = movieclip->tracking.camera.k2;
+ this->k3 = movieclip->tracking.camera.k3;
+ this->principal_x = movieclip->tracking.camera.principal[0];
+ this->principal_y = movieclip->tracking.camera.principal[1];
+ this->pixel_aspect = movieclip->tracking.camera.pixel_aspect;
+ this->width = width;
+ this->height = height;
+ this->calibration_width = calibration_width;
+ this->calibration_height = calibration_height;
+ this->inverted = inverted;
+ this->bufferCalculated = new int[this->width*this->height];
+ this->buffer = new float[this->width*this->height*2];
+ for (int i = 0 ; i < this->width*this->height ; i ++) {
+ this->bufferCalculated[i] = 0;
+ }
+ }
+ bool isCacheFor(MovieClip *movieclip, int width, int height, int calibration_width, int claibration_height, bool inverted) {
+ return this->k1 == movieclip->tracking.camera.k1 &&
+ this->k2 == movieclip->tracking.camera.k2 &&
+ this->k3 == movieclip->tracking.camera.k3 &&
+ this->principal_x == movieclip->tracking.camera.principal[0] &&
+ this->principal_y == movieclip->tracking.camera.principal[1] &&
+ this->pixel_aspect == movieclip->tracking.camera.pixel_aspect &&
+ this->inverted == inverted &&
+ this->width == width &&
+ this->height == height &&
+ this->calibration_width == calibration_width &&
+ this->calibration_height == calibration_height;
+ }
+
+ void getUV(MovieTracking *trackingData, int x, int y, float *u, float*v) {
+ if (x<0 || x >= this->width || y <0 || y >= this->height) {
+ *u = x;
+ *v = y;
+ } else {
+
+ int offset = y * this->width + x;
+ int offset2 = offset*2;
+ if (!bufferCalculated[offset]) {
+ //float overscan = 0.0f;
+ float w = (float)this->width/* / (1 + overscan) */;
+ float h = (float)this->height/* / (1 + overscan) */;
+ float aspx = (float)w / this->calibration_width;
+ float aspy = (float)h / this->calibration_height;
+ float in[2];
+ float out[2];
+
+ in[0] = (x /* - 0.5 * overscan * w */) / aspx;
+ in[1] = (y /* - 0.5 * overscan * h */) / aspy / this->pixel_aspect;
+
+ if (inverted) {
+ BKE_tracking_invert_intrinsics(trackingData, in, out);
+ } else {
+ BKE_tracking_apply_intrinsics(trackingData, in, out);
+ }
+
+ buffer[offset2] = out[0] * aspx /* + 0.5 * overscan * w */;
+ buffer[offset2+1] = (out[1] * aspy /* + 0.5 * overscan * h */) * this->pixel_aspect;
+
+ bufferCalculated[offset] = 1;
+ }
+ *u = buffer[offset2];
+ *v = buffer[offset2+1];
+ }
+ }
+};
+
+class MovieDistortionOperation: public NodeOperation {
+private:
+ DistortionCache *cache;
+ SocketReader *inputOperation;
+ MovieClip * movieClip;
+
+protected:
+ bool distortion;
+ int framenumber;
+
+public:
+ MovieDistortionOperation(bool distortion);
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setMovieClip(MovieClip *clip) {this->movieClip = clip;}
+ void setFramenumber(int framenumber) {this->framenumber = framenumber;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp b/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp
new file mode 100644
index 00000000000..f95dd12a81a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#include "COM_MultilayerImageOperation.h"
+extern "C" {
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+MultilayerBaseOperation::MultilayerBaseOperation(int pass): BaseImageOperation()
+{
+ this->passId = pass;
+}
+ImBuf *MultilayerBaseOperation::getImBuf()
+{
+ RenderPass *rpass;
+ rpass = (RenderPass *)BLI_findlink(&this->renderlayer->passes, this->passId);
+ if (rpass) {
+ this->imageUser->pass = this->passId;
+ BKE_image_multilayer_index(image->rr, this->imageUser);
+ return BaseImageOperation::getImBuf();
+ }
+ return NULL;
+}
+
+void MultilayerColorOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ int yi = y;
+ int xi = x;
+ if (this->imageBuffer == NULL || xi < 0 || yi < 0 || xi >= this->getWidth() || yi >= this->getHeight() ) {
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 0.0f;
+ }
+ else {
+ if (this->numberOfChannels == 4) {
+ switch (sampler) {
+ case COM_PS_NEAREST:
+ neareast_interpolation_color(this->buffer, NULL, color, x, y);
+ break;
+ case COM_PS_BILINEAR:
+ bilinear_interpolation_color(this->buffer, NULL, color, x, y);
+ break;
+ case COM_PS_BICUBIC:
+ bicubic_interpolation_color(this->buffer, NULL, color, x, y);
+ break;
+ }
+ }
+ else {
+ int offset = (yi*this->getWidth()+xi)*3;
+ color[0] = this->imageBuffer[offset];
+ color[1] = this->imageBuffer[offset+1];
+ color[2] = this->imageBuffer[offset+2];
+ }
+ }
+}
+
+void MultilayerValueOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ int yi = y;
+ int xi = x;
+ if (this->imageBuffer == NULL || xi < 0 || yi < 0 || xi >= this->getWidth() || yi >= this->getHeight() ) {
+ color[0] = 0.0f;
+ }
+ else {
+ float result = this->imageBuffer[yi*this->getWidth()+xi];
+ color[0] = result;
+ }
+}
+
+void MultilayerVectorOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ int yi = y;
+ int xi = x;
+ if (this->imageBuffer == NULL || xi < 0 || yi < 0 || xi >= this->getWidth() || yi >= this->getHeight() ) {
+ color[0] = 0.0f;
+ }
+ else {
+ int offset = (yi*this->getWidth()+xi)*3;
+ color[0] = this->imageBuffer[offset];
+ color[1] = this->imageBuffer[offset+1];
+ color[2] = this->imageBuffer[offset+2];
+ }
+}
diff --git a/source/blender/compositor/operations/COM_MultilayerImageOperation.h b/source/blender/compositor/operations/COM_MultilayerImageOperation.h
new file mode 100644
index 00000000000..809253e532a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_MultilayerImageOperation.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+
+#ifndef _COM_MultilayerImageOperation_h
+#define _COM_MultilayerImageOperation_h
+
+#include "COM_ImageOperation.h"
+
+class MultilayerBaseOperation: public BaseImageOperation {
+private:
+ int passId;
+ RenderLayer *renderlayer;
+protected:
+ ImBuf *getImBuf();
+public:
+ /**
+ * Constructor
+ */
+ MultilayerBaseOperation(int pass);
+ void setRenderLayer(RenderLayer *renderlayer) {this->renderlayer = renderlayer;}
+};
+
+class MultilayerColorOperation: public MultilayerBaseOperation {
+public:
+ MultilayerColorOperation(int pass): MultilayerBaseOperation(pass) {
+ this->addOutputSocket(COM_DT_COLOR);
+ }
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+class MultilayerValueOperation: public MultilayerBaseOperation {
+public:
+ MultilayerValueOperation(int pass): MultilayerBaseOperation(pass) {
+ this->addOutputSocket(COM_DT_VALUE);
+ }
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+class MultilayerVectorOperation: public MultilayerBaseOperation {
+public:
+ MultilayerVectorOperation(int pass): MultilayerBaseOperation(pass) {
+ this->addOutputSocket(COM_DT_VECTOR);
+ }
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_NormalizeOperation.cpp b/source/blender/compositor/operations/COM_NormalizeOperation.cpp
new file mode 100644
index 00000000000..d144739f845
--- /dev/null
+++ b/source/blender/compositor/operations/COM_NormalizeOperation.cpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_NormalizeOperation.h"
+
+NormalizeOperation::NormalizeOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->imageReader = NULL;
+ this->cachedInstance = NULL;
+ this->setComplex(true);
+}
+void NormalizeOperation::initExecution()
+{
+ this->imageReader = this->getInputSocketReader(0);
+ NodeOperation::initMutex();
+}
+
+void NormalizeOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data)
+{
+ /* using generic two floats struct to store x: min y: mult */
+ NodeTwoFloats *minmult = (NodeTwoFloats *)data;
+
+ float output[4];
+ this->imageReader->read(output, x, y, inputBuffers, NULL);
+
+ color[0] = (output[0] - minmult->x) * minmult->y;
+}
+
+void NormalizeOperation::deinitExecution()
+{
+ this->imageReader = NULL;
+ if (this->cachedInstance) {
+ delete cachedInstance;
+ }
+ NodeOperation::deinitMutex();
+}
+
+bool NormalizeOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti imageInput;
+
+ NodeOperation *operation = getInputOperation(0);
+ imageInput.xmax = operation->getWidth();
+ imageInput.xmin = 0;
+ imageInput.ymax = operation->getHeight();
+ imageInput.ymin = 0;
+
+ if (operation->determineDependingAreaOfInterest(&imageInput, readOperation, output) ) {
+ return true;
+ }
+ return false;
+}
+
+/* The code below assumes all data is inside range +- this, and that input buffer is single channel */
+#define BLENDER_ZMAX 10000.0f
+
+void *NormalizeOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ BLI_mutex_lock(getMutex());
+
+ if (this->cachedInstance == NULL) {
+ MemoryBuffer *tile = (MemoryBuffer*)imageReader->initializeTileData(rect, memoryBuffers);
+ /* using generic two floats struct to store x: min y: mult */
+ NodeTwoFloats *minmult = new NodeTwoFloats();
+
+ float *buffer = tile->getBuffer();
+ int p = tile->getWidth() * tile->getHeight();
+ float *bc = buffer;
+
+ float minv = 1.0f+BLENDER_ZMAX;
+ float maxv = -1.0f-BLENDER_ZMAX;
+
+ float value;
+ while (p--) {
+ value=bc[0];
+ maxv = max(value, maxv);
+ minv = min(value, minv);
+ bc+=4;
+ }
+
+ minmult->x = minv;
+ /* The rare case of flat buffer would cause a divide by 0 */
+ minmult->y = ((maxv!=minv)? 1.0f/(maxv-minv):0.f);
+
+ this->cachedInstance = minmult;
+ }
+
+ BLI_mutex_unlock(getMutex());
+ return this->cachedInstance;
+}
+
+void NormalizeOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+{
+}
diff --git a/source/blender/compositor/operations/COM_NormalizeOperation.h b/source/blender/compositor/operations/COM_NormalizeOperation.h
new file mode 100644
index 00000000000..765b8847384
--- /dev/null
+++ b/source/blender/compositor/operations/COM_NormalizeOperation.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_NormalizeOperation_h
+#define _COM_NormalizeOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief base class of normalize, implementing the simple normalize
+ * @ingroup operation
+ */
+class NormalizeOperation : public NodeOperation {
+protected:
+ /**
+ * @brief Cached reference to the reader
+ */
+ SocketReader * imageReader;
+
+ /**
+ * @brief temporarily cache of the execution storage
+ * it stores x->min and y->mult
+ */
+ NodeTwoFloats * cachedInstance;
+
+public:
+ NormalizeOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_OpenCLKernels.cl b/source/blender/compositor/operations/COM_OpenCLKernels.cl
new file mode 100644
index 00000000000..40932e54bc7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_OpenCLKernels.cl
@@ -0,0 +1,10 @@
+/// This file contains all opencl kernels for node-operation implementations
+
+__kernel void testKernel(__global __write_only image2d_t output)
+{
+ int x = get_global_id(0);
+ int y = get_global_id(1);
+ int2 coords = {x, y};
+ float4 color = {0.0f, 1.0f, 0.0f, 1.0f};
+ write_imagef(output, coords, color);
+}
diff --git a/source/blender/compositor/operations/COM_OpenCLKernels.cl.cpp b/source/blender/compositor/operations/COM_OpenCLKernels.cl.cpp
new file mode 100644
index 00000000000..1024d460044
--- /dev/null
+++ b/source/blender/compositor/operations/COM_OpenCLKernels.cl.cpp
@@ -0,0 +1,15 @@
+/// @todo: this source needs to be generated from COM_OpenCLKernels.cl.
+/// not implemented yet. new data to h
+
+const char *sourcecode = "/// This file contains all opencl kernels for node-operation implementations \n" \
+"\n" \
+"__kernel void testKernel(__global __write_only image2d_t output)\n" \
+"{\n" \
+" int x = get_global_id(0);\n" \
+" int y = get_global_id(1);\n" \
+" int2 coords = {x, y}; \n" \
+" float4 color = {0.0f, 1.0f, 0.0f, 1.0f};\n" \
+" write_imagef(output, coords, color);\n" \
+"}\n" \
+"\0\n";
+
diff --git a/source/blender/compositor/operations/COM_OutputFileOperation.cpp b/source/blender/compositor/operations/COM_OutputFileOperation.cpp
new file mode 100644
index 00000000000..8d39e987bd4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_OutputFileOperation.cpp
@@ -0,0 +1,263 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#include "COM_OutputFileOperation.h"
+#include "COM_SocketConnection.h"
+#include <string.h>
+#include "BLI_listbase.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
+#include "DNA_scene_types.h"
+#include "BKE_image.h"
+#include "BKE_global.h"
+#include "BKE_main.h"
+
+extern "C" {
+ #include "MEM_guardedalloc.h"
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+static int get_datatype_size(DataType datatype)
+{
+ switch (datatype) {
+ case COM_DT_VALUE: return 1;
+ case COM_DT_VECTOR: return 3;
+ case COM_DT_COLOR: return 4;
+ default: return 0;
+ }
+}
+
+static float *init_buffer(unsigned int width, unsigned int height, DataType datatype)
+{
+ // When initializing the tree during initial load the width and height can be zero.
+ if (width != 0 && height != 0) {
+ int size = get_datatype_size(datatype);
+ return (float *)MEM_callocN(width*height*size*sizeof(float), "OutputFile buffer");
+ }
+ else
+ return NULL;
+}
+
+static void write_buffer_rect(rcti *rect, MemoryBuffer** memoryBuffers, const bNodeTree *tree,
+ SocketReader *reader, float *buffer, unsigned int width, DataType datatype)
+{
+ float color[4];
+ int i, size = get_datatype_size(datatype);
+
+ if (!buffer) return;
+ int x1 = rect->xmin;
+ int y1 = rect->ymin;
+ int x2 = rect->xmax;
+ int y2 = rect->ymax;
+ int offset = (y1*width + x1 ) * size;
+ int x;
+ int y;
+ bool breaked = false;
+
+ for (y = y1 ; y < y2 && (!breaked); y++) {
+ for (x = x1 ; x < x2 && (!breaked) ; x++) {
+ reader->read(color, x, y, COM_PS_NEAREST, memoryBuffers);
+
+ for (i=0; i < size; ++i)
+ buffer[offset+i] = color[i];
+ offset += size;
+
+ if (tree->test_break && tree->test_break(tree->tbh))
+ breaked = true;
+ }
+ offset += (width-(x2-x1)) * size;
+ }
+}
+
+
+OutputSingleLayerOperation::OutputSingleLayerOperation(
+ const Scene *scene, const bNodeTree *tree, DataType datatype, ImageFormatData *format, const char *path)
+{
+ this->scene = scene;
+ this->tree = tree;
+
+ this->addInputSocket(datatype);
+
+ this->outputBuffer = NULL;
+ this->datatype = datatype;
+ this->imageInput = NULL;
+
+ this->format = format;
+ BLI_strncpy(this->path, path, sizeof(this->path));
+}
+
+void OutputSingleLayerOperation::initExecution()
+{
+ this->imageInput = getInputSocketReader(0);
+ this->outputBuffer = init_buffer(this->getWidth(), this->getHeight(), this->datatype);
+}
+
+void OutputSingleLayerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers)
+{
+ write_buffer_rect(rect, memoryBuffers, this->tree, imageInput, this->outputBuffer, this->getWidth(), this->datatype);
+}
+
+void OutputSingleLayerOperation::deinitExecution()
+{
+ if (this->getWidth() * this->getHeight() != 0) {
+
+ int size = get_datatype_size(this->datatype);
+ ImBuf *ibuf = IMB_allocImBuf(this->getWidth(), this->getHeight(), size*8, 0);
+ Main *bmain = G.main; /* TODO, have this passed along */
+ char filename[FILE_MAX];
+
+ ibuf->channels = size;
+ ibuf->rect_float = this->outputBuffer;
+ ibuf->mall |= IB_rectfloat;
+ ibuf->dither = scene->r.dither_intensity;
+
+ if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ ibuf->profile = IB_PROFILE_LINEAR_RGB;
+
+ BKE_makepicstring(filename, this->path, bmain->name, this->scene->r.cfra, this->format->imtype,
+ (this->scene->r.scemode & R_EXTENSION), true);
+
+ if (0 == BKE_imbuf_write(ibuf, filename, this->format))
+ printf("Cannot save Node File Output to %s\n", filename);
+ else
+ printf("Saved: %s\n", filename);
+
+ IMB_freeImBuf(ibuf);
+ }
+ this->outputBuffer = NULL;
+ this->imageInput = NULL;
+}
+
+
+OutputOpenExrLayer::OutputOpenExrLayer(const char *name, DataType datatype)
+{
+ BLI_strncpy(this->name, name, sizeof(this->name));
+ this->datatype = datatype;
+ /* these are created in initExecution */
+ this->outputBuffer = 0;
+ this->imageInput = 0;
+}
+
+OutputOpenExrMultiLayerOperation::OutputOpenExrMultiLayerOperation(
+ const Scene *scene, const bNodeTree *tree, const char *path, char exr_codec)
+{
+ this->scene = scene;
+ this->tree = tree;
+
+ BLI_strncpy(this->path, path, sizeof(this->path));
+ this->exr_codec = exr_codec;
+}
+
+void OutputOpenExrMultiLayerOperation::add_layer(const char *name, DataType datatype)
+{
+ this->addInputSocket(datatype);
+ layers.push_back(OutputOpenExrLayer(name, datatype));
+}
+
+void OutputOpenExrMultiLayerOperation::initExecution()
+{
+ for (int i=0; i < layers.size(); ++i) {
+ layers[i].imageInput = getInputSocketReader(i);
+ layers[i].outputBuffer = init_buffer(this->getWidth(), this->getHeight(), layers[i].datatype);
+ }
+}
+
+void OutputOpenExrMultiLayerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers)
+{
+ for (int i=0; i < layers.size(); ++i) {
+ write_buffer_rect(rect, memoryBuffers, this->tree, layers[i].imageInput, layers[i].outputBuffer, this->getWidth(), layers[i].datatype);
+ }
+}
+
+void OutputOpenExrMultiLayerOperation::deinitExecution()
+{
+ unsigned int width = this->getWidth();
+ unsigned int height = this->getHeight();
+ if (width != 0 && height != 0) {
+ Main *bmain = G.main; /* TODO, have this passed along */
+ char filename[FILE_MAX];
+ void *exrhandle = IMB_exr_get_handle();
+
+ BKE_makepicstring(filename, this->path, bmain->name, this->scene->r.cfra, R_IMF_IMTYPE_MULTILAYER,
+ (this->scene->r.scemode & R_EXTENSION), true);
+ BLI_make_existing_file(filename);
+
+ for (int i=0; i < layers.size(); ++i) {
+ char channelname[EXR_TOT_MAXNAME];
+ BLI_strncpy(channelname, layers[i].name, sizeof(channelname)-2);
+ char *channelname_ext = channelname + strlen(channelname);
+
+ float *buf = layers[i].outputBuffer;
+
+ /* create channels */
+ switch (layers[i].datatype) {
+ case COM_DT_VALUE:
+ strcpy(channelname_ext, ".V");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 1, width, buf);
+ break;
+ case COM_DT_VECTOR:
+ strcpy(channelname_ext, ".X");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 3, 3*width, buf);
+ strcpy(channelname_ext, ".Y");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 3, 3*width, buf+1);
+ strcpy(channelname_ext, ".Z");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 3, 3*width, buf+2);
+ break;
+ case COM_DT_COLOR:
+ strcpy(channelname_ext, ".R");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 4, 4*width, buf);
+ strcpy(channelname_ext, ".G");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 4, 4*width, buf+1);
+ strcpy(channelname_ext, ".B");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 4, 4*width, buf+2);
+ strcpy(channelname_ext, ".A");
+ IMB_exr_add_channel(exrhandle, 0, channelname, 4, 4*width, buf+3);
+ break;
+ default:
+ break;
+ }
+
+ }
+
+ /* when the filename has no permissions, this can fail */
+ if (IMB_exr_begin_write(exrhandle, filename, width, height, this->exr_codec)) {
+ IMB_exr_write_channels(exrhandle);
+ }
+ else {
+ /* TODO, get the error from openexr's exception */
+ /* XXX nice way to do report? */
+ printf("Error Writing Render Result, see console\n");
+ }
+
+ IMB_exr_close(exrhandle);
+ for (int i=0; i < layers.size(); ++i) {
+ if (layers[i].outputBuffer) {
+ MEM_freeN(layers[i].outputBuffer);
+ layers[i].outputBuffer = NULL;
+ }
+
+ layers[i].imageInput = NULL;
+ }
+ }
+}
diff --git a/source/blender/compositor/operations/COM_OutputFileOperation.h b/source/blender/compositor/operations/COM_OutputFileOperation.h
new file mode 100644
index 00000000000..0e37432ca5b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_OutputFileOperation.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Lukas Tönne
+ */
+
+#ifndef _COM_OutputFileOperation_h
+#define _COM_OutputFileOperation_h
+#include "COM_NodeOperation.h"
+#include "BLI_rect.h"
+#include "BKE_utildefines.h"
+
+#include "intern/openexr/openexr_multi.h"
+
+/* Writes the image to a single-layer file. */
+class OutputSingleLayerOperation : public NodeOperation {
+private:
+ const Scene *scene;
+ const bNodeTree *tree;
+
+ ImageFormatData *format;
+ char path[FILE_MAX];
+
+ float *outputBuffer;
+ DataType datatype;
+ SocketReader *imageInput;
+
+public:
+ OutputSingleLayerOperation(const Scene *scene, const bNodeTree *tree, DataType datatype, ImageFormatData *format, const char *path);
+
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers);
+ bool isOutputOperation(bool rendering) const {return true;}
+ void initExecution();
+ void deinitExecution();
+ const int getRenderPriority() const {return 7;}
+};
+
+/* extra info for OpenEXR layers */
+struct OutputOpenExrLayer {
+ OutputOpenExrLayer(const char *name, DataType datatype);
+
+ char name[EXR_TOT_MAXNAME-2];
+ float *outputBuffer;
+ DataType datatype;
+ SocketReader *imageInput;
+};
+
+/* Writes inputs into OpenEXR multilayer channels. */
+class OutputOpenExrMultiLayerOperation : public NodeOperation {
+private:
+ typedef std::vector<OutputOpenExrLayer> LayerList;
+
+ const Scene *scene;
+ const bNodeTree *tree;
+
+ char path[FILE_MAX];
+ char exr_codec;
+ LayerList layers;
+
+public:
+ OutputOpenExrMultiLayerOperation(const Scene *scene, const bNodeTree *tree, const char *path, char exr_codec);
+
+ void add_layer(const char *name, DataType datatype);
+
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers);
+ bool isOutputOperation(bool rendering) const {return true;}
+ void initExecution();
+ void deinitExecution();
+ const int getRenderPriority() const {return 7;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_PreviewOperation.cpp b/source/blender/compositor/operations/COM_PreviewOperation.cpp
new file mode 100644
index 00000000000..a7b6fc93b25
--- /dev/null
+++ b/source/blender/compositor/operations/COM_PreviewOperation.cpp
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_PreviewOperation.h"
+#include "COM_SocketConnection.h"
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "BKE_image.h"
+#include "WM_api.h"
+#include "WM_types.h"
+#include "PIL_time.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_color.h"
+#include "COM_defines.h"
+#include "BLI_math.h"
+extern "C" {
+ #include "MEM_guardedalloc.h"
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+
+PreviewOperation::PreviewOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
+ this->outputBuffer = NULL;
+ this->input = NULL;
+ this->divider = 1.0f;
+ this->node = NULL;
+ this->priority = 0;
+}
+
+void PreviewOperation::initExecution()
+{
+ this->input = getInputSocketReader(0);
+ if (!this->node->preview) {
+ this->node->preview = (bNodePreview*)MEM_callocN(sizeof(bNodePreview), "node preview");
+ }
+ else {
+ if (this->getWidth() == (unsigned int)this->node->preview->xsize && this->getHeight() == (unsigned int)this->node->preview->ysize) {
+ this->outputBuffer = this->node->preview->rect;
+ }
+ }
+
+ if (this->outputBuffer == NULL) {
+ this->outputBuffer = (unsigned char*)MEM_callocN(sizeof(unsigned char)*4*getWidth()*getHeight(), "PreviewOperation");
+ if (this->node->preview->rect) {
+ MEM_freeN(this->node->preview->rect);
+ }
+ this->node->preview->xsize = getWidth();
+ this->node->preview->ysize = getHeight();
+ this->node->preview->rect = outputBuffer;
+ }
+}
+
+void PreviewOperation::deinitExecution()
+{
+ this->outputBuffer = NULL;
+ this->input = NULL;
+}
+
+void PreviewOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+{
+ int offset;
+ float color[4];
+ for (int y = rect->ymin ; y < rect->ymax ; y++) {
+ offset = (y * getWidth() + rect->xmin)*4;
+ for (int x = rect->xmin ; x < rect->xmax ; x++) {
+ float rx = floor(x/divider);
+ float ry = floor(y/divider);
+
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ input->read(color, rx, ry, COM_PS_NEAREST, memoryBuffers);
+ linearrgb_to_srgb_v4(color, color);
+ F4TOCHAR4(color, outputBuffer+offset);
+ offset +=4;
+ }
+ }
+}
+bool PreviewOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmin = input->xmin/divider;
+ newInput.xmax = input->xmax/divider;
+ newInput.ymin = input->ymin/divider;
+ newInput.ymax = input->ymax/divider;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+void PreviewOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ NodeOperation::determineResolution(resolution, preferredResolution);
+ int width = resolution[0];
+ int height = resolution[1];
+ this->divider = 0.0f;
+ if (width > height) {
+ divider = COM_PREVIEW_SIZE / (width-1);
+ }
+ else {
+ divider = COM_PREVIEW_SIZE / (height-1);
+ }
+ width = width * divider;
+ height = height * divider;
+
+ resolution[0] = width;
+ resolution[1] = height;
+}
+
+const int PreviewOperation::getRenderPriority() const
+{
+ return this->priority;
+}
diff --git a/source/blender/compositor/operations/COM_PreviewOperation.h b/source/blender/compositor/operations/COM_PreviewOperation.h
new file mode 100644
index 00000000000..8450b7fc556
--- /dev/null
+++ b/source/blender/compositor/operations/COM_PreviewOperation.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_PreviewOperation_h
+#define _COM_PreviewOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_image_types.h"
+#include "BLI_rect.h"
+
+class PreviewOperation : public NodeOperation {
+protected:
+ unsigned char *outputBuffer;
+
+ /**
+ * @brief holds reference to the SDNA bNode, where this nodes will render the preview image for
+ */
+ bNode *node;
+ const bNodeTree *tree;
+ SocketReader *input;
+ float divider;
+ int priority;
+
+public:
+ PreviewOperation();
+ bool isOutputOperation(bool rendering) const {return true;}
+ void initExecution();
+ void deinitExecution();
+ const int getRenderPriority() const;
+
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void setbNode(bNode *node) { this->node = node;}
+ void setbNodeTree(const bNodeTree *tree) { this->tree = tree;}
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void setPriority(int priority) { this->priority = priority; }
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp
new file mode 100644
index 00000000000..7695e0f63c2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ProjectorLensDistortionOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+ProjectorLensDistortionOperation::ProjectorLensDistortionOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+ this->inputProgram = NULL;
+}
+void ProjectorLensDistortionOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ kr = 0.25f*MAX2(MIN2(this->dispersion, 1.f), 0.f);
+ kr2 = kr * 20;
+}
+
+void *ProjectorLensDistortionOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ void *buffer = inputProgram->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void ProjectorLensDistortionOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float inputValue[4];
+ const float height = this->getHeight();
+ const float width = this->getWidth();
+ const float v = (y + 0.5f)/height;
+ const float u = (x + 0.5f)/width;
+ MemoryBuffer * inputBuffer = (MemoryBuffer*)data;
+ inputBuffer->readCubic(inputValue, (u*width + kr2) - 0.5f, v*height - 0.5f);
+ color[0] = inputValue[0];
+ inputBuffer->read(inputValue, x, y);
+ color[1] = inputValue[1];
+ inputBuffer->readCubic(inputValue, (u*width - kr2) - 0.5f, v*height - 0.5f);
+ color[2] = inputValue[2];
+ color[3] = 1.0f;
+}
+
+void ProjectorLensDistortionOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
+
+bool ProjectorLensDistortionOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ newInput.ymax = input->ymax;
+ newInput.ymin = input->ymin;
+ newInput.xmin = input->xmin-kr2-2;
+ newInput.xmax = input->xmax+kr2+2;
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h
new file mode 100644
index 00000000000..c8788e100c8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ProjectorLensDistortionOperation_h
+#define _COM_ProjectorLensDistortionOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+class ProjectorLensDistortionOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+
+ NodeLensDist * data;
+
+ float dispersion;
+ float kr, kr2;
+public:
+ ProjectorLensDistortionOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeLensDist *data) {this->data = data;}
+ void setDispertion(float dispersion) {this->dispersion = dispersion;}
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_QualityStepHelper.cpp b/source/blender/compositor/operations/COM_QualityStepHelper.cpp
new file mode 100644
index 00000000000..f2d700292a4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_QualityStepHelper.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_QualityStepHelper.h"
+
+QualityStepHelper::QualityStepHelper()
+{
+ this->quality = COM_QUALITY_HIGH;
+ this->step = 1;
+ this->offsetadd = 4;
+}
+
+void QualityStepHelper::initExecution(QualityHelper helper)
+{
+ switch (helper) {
+ case COM_QH_INCREASE:
+ switch (this->quality) {
+ case COM_QUALITY_HIGH:
+ default:
+ this->step = 1;
+ this->offsetadd = 4;
+ break;
+ case COM_QUALITY_MEDIUM:
+ this->step = 2;
+ this->offsetadd = 8;
+ break;
+ case COM_QUALITY_LOW:
+ this->step = 3;
+ this->offsetadd = 12;
+ break;
+ }
+ break;
+ case COM_QH_MULTIPLY:
+ switch (this->quality) {
+ case COM_QUALITY_HIGH:
+ default:
+ this->step = 1;
+ this->offsetadd = 4;
+ break;
+ case COM_QUALITY_MEDIUM:
+ this->step = 2;
+ this->offsetadd = 8;
+ break;
+ case COM_QUALITY_LOW:
+ this->step = 4;
+ this->offsetadd = 16;
+ break;
+ }
+ break;
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_QualityStepHelper.h b/source/blender/compositor/operations/COM_QualityStepHelper.h
new file mode 100644
index 00000000000..80b25684c5e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_QualityStepHelper.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_QualityStepHelper_h
+#define _COM_QualityStepHelper_h
+#include "COM_defines.h"
+
+typedef enum QualityHelper {
+ COM_QH_INCREASE,
+ COM_QH_MULTIPLY
+} QualityHelper;
+
+class QualityStepHelper {
+private:
+ CompositorQuality quality;
+ int step;
+ int offsetadd;
+
+protected:
+ /**
+ * Initialize the execution
+ */
+ void initExecution(QualityHelper helper);
+
+ inline int getStep() const {return this->step;}
+ inline int getOffsetAdd() const {return this->offsetadd;}
+
+public:
+ QualityStepHelper();
+
+
+ void setQuality(CompositorQuality quality) {this->quality = quality;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.cpp b/source/blender/compositor/operations/COM_ReadBufferOperation.cpp
new file mode 100644
index 00000000000..d7f95c10cfb
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ReadBufferOperation.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ReadBufferOperation.h"
+#include "COM_WriteBufferOperation.h"
+#include "COM_defines.h"
+
+ReadBufferOperation::ReadBufferOperation():NodeOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+ this->offset = 0;
+}
+
+void *ReadBufferOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ return getInputMemoryBuffer(memoryBuffers);
+}
+
+void ReadBufferOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ if (this->memoryProxy != NULL) {
+ WriteBufferOperation * operation = memoryProxy->getWriteBufferOperation();
+ operation->determineResolution(resolution, preferredResolution);
+ operation->setResolution(resolution);
+
+ /// @todo: may not occur!, but does with blur node
+ if (memoryProxy->getExecutor()) memoryProxy->getExecutor()->setResolution(resolution);
+ }
+}
+void ReadBufferOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ MemoryBuffer *inputBuffer = inputBuffers[this->offset];
+ if (inputBuffer) {
+ if (sampler == COM_PS_NEAREST) {
+ inputBuffer->read(color, x, y);
+ }
+ else {
+ inputBuffer->readCubic(color, x, y);
+ }
+ }
+}
+
+void ReadBufferOperation::executePixel(float *color, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[])
+{
+ MemoryBuffer *inputBuffer = inputBuffers[this->offset];
+ if (inputBuffer) {
+ inputBuffer->readEWA(color, x, y, dx, dy);
+ }
+}
+
+bool ReadBufferOperation::determineDependingAreaOfInterest(rcti * input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this==readOperation) {
+ BLI_init_rcti(output, input->xmin, input->xmax, input->ymin, input->ymax);
+ return true;
+ }
+ return false;
+}
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.h b/source/blender/compositor/operations/COM_ReadBufferOperation.h
new file mode 100644
index 00000000000..d58d131264b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ReadBufferOperation.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ReadBufferOperation_h
+#define _COM_ReadBufferOperation_h
+
+#include "COM_NodeOperation.h"
+#include "COM_MemoryProxy.h"
+
+class ReadBufferOperation: public NodeOperation {
+private:
+ MemoryProxy *memoryProxy;
+ unsigned int offset;
+public:
+ ReadBufferOperation();
+ int isBufferOperation() {return true;}
+ void setMemoryProxy(MemoryProxy *memoryProxy) {this->memoryProxy = memoryProxy;}
+ MemoryProxy *getMemoryProxy() {return this->memoryProxy;}
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void executePixel(float *color, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[]);
+ const bool isReadBufferOperation() const {return true;}
+ void setOffset(unsigned int offset) {this->offset = offset;}
+ unsigned int getOffset() {return this->offset;}
+ bool determineDependingAreaOfInterest(rcti * input, ReadBufferOperation *readOperation, rcti *output);
+ MemoryBuffer *getInputMemoryBuffer(MemoryBuffer** memoryBuffers) {return memoryBuffers[offset];}
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersAOOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersAOOperation.cpp
new file mode 100644
index 00000000000..dad082cf0ca
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersAOOperation.cpp
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersAOOperation.h"
+
+RenderLayersAOOperation::RenderLayersAOOperation() :RenderLayersBaseProg(SCE_PASS_AO, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
+
diff --git a/source/blender/compositor/operations/COM_RenderLayersAOOperation.h b/source/blender/compositor/operations/COM_RenderLayersAOOperation.h
new file mode 100644
index 00000000000..71b0b885e81
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersAOOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersAOOperation_h
+#define _COM_RenderLayersAOOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersAOOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersAOOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp
new file mode 100644
index 00000000000..ccb7dd91c04
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersAlphaProg.h"
+
+RenderLayersAlphaProg::RenderLayersAlphaProg() :RenderLayersBaseProg(SCE_PASS_COMBINED, 4)
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
+
+void RenderLayersAlphaProg::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ int ix = x;
+ int iy = y;
+ float * inputBuffer = this->getInputBuffer();
+
+ if (inputBuffer == NULL || ix < 0 || iy < 0 || ix >= (int)this->getWidth() || iy >= (int)this->getHeight() ) {
+ output[0] = 0.0f;
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 0.0f;
+ }
+ else {
+ unsigned int offset = (iy*this->getWidth()+ix) * 4;
+ output[0] = inputBuffer[offset+3];
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 0.0f;
+ }
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h
new file mode 100644
index 00000000000..da808f49fdf
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersAlphaProg_h
+#define _COM_RenderLayersAlphaProg_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersAlphaProg : public RenderLayersBaseProg {
+public:
+ RenderLayersAlphaProg();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp b/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp
new file mode 100644
index 00000000000..35c8753ded6
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersBaseProg.h"
+
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+ #include "RE_shader_ext.h"
+ #include "RE_render_ext.h"
+}
+
+RenderLayersBaseProg::RenderLayersBaseProg(int renderpass, int elementsize): NodeOperation()
+{
+ this->renderpass = renderpass;
+ this->setScene(NULL);
+ this->inputBuffer = NULL;
+ this->elementsize = elementsize;
+}
+
+
+void RenderLayersBaseProg::initExecution()
+{
+ Scene * scene = this->getScene();
+ Render *re = (scene)? RE_GetRender(scene->id.name): NULL;
+ RenderResult *rr = NULL;
+
+ if (re)
+ rr = RE_AcquireResultRead(re);
+
+ if (rr) {
+ SceneRenderLayer *srl = (SceneRenderLayer*)BLI_findlink(&scene->r.layers, getLayerId());
+ if (srl) {
+
+ RenderLayer *rl = RE_GetRenderLayer(rr, srl->name);
+ if (rl && rl->rectf) {
+ this->inputBuffer = RE_RenderLayerGetPass(rl, renderpass);
+
+ if (this->inputBuffer == NULL || renderpass == SCE_PASS_COMBINED) {
+ this->inputBuffer = rl->rectf;
+ }
+ }
+ }
+ }
+ if (re) {
+ RE_ReleaseResult(re);
+ re = NULL;
+ }
+}
+
+void RenderLayersBaseProg::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ int ix = x;
+ int iy = y;
+
+ if (inputBuffer == NULL || ix < 0 || iy < 0 || ix >= (int)this->getWidth() || iy >= (int)this->getHeight() ) {
+ output[0] = 0.0f;
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 0.0f;
+ }
+ else {
+ unsigned int offset = (iy*this->getWidth()+ix) * elementsize;
+ if (elementsize == 1) {
+ output[0] = inputBuffer[offset];
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 0.0f;
+ }
+ else if (elementsize == 3) {
+ output[0] = inputBuffer[offset];
+ output[1] = inputBuffer[offset+1];
+ output[2] = inputBuffer[offset+2];
+ output[3] = 1.0f;
+ }
+ else {
+ output[0] = inputBuffer[offset];
+ output[1] = inputBuffer[offset+1];
+ output[2] = inputBuffer[offset+2];
+ output[3] = inputBuffer[offset+3];
+ }
+ }
+}
+
+void RenderLayersBaseProg::deinitExecution()
+{
+ this->inputBuffer = NULL;
+}
+
+void RenderLayersBaseProg::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ Scene *sce = this->getScene();
+ Render *re = (sce) ? RE_GetRender(sce->id.name) : NULL;
+ RenderResult *rr = NULL;
+
+ resolution[0] = 0;
+ resolution[1] = 0;
+
+ if (re)
+ rr = RE_AcquireResultRead(re);
+
+ if (rr) {
+ SceneRenderLayer *srl = (SceneRenderLayer*)BLI_findlink(&sce->r.layers, getLayerId());
+ if (srl) {
+ RenderLayer *rl = RE_GetRenderLayer(rr, srl->name);
+ if (rl && rl->rectf) {
+ resolution[0]=rl->rectx;
+ resolution[1]=rl->recty;
+ }
+ }
+ }
+
+ if (re)
+ RE_ReleaseResult(re);
+
+}
+
diff --git a/source/blender/compositor/operations/COM_RenderLayersBaseProg.h b/source/blender/compositor/operations/COM_RenderLayersBaseProg.h
new file mode 100644
index 00000000000..64e2496621f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersBaseProg.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+
+#ifndef _COM_RenderLayersBaseProg_h
+#define _COM_RenderLayersBaseProg_h
+
+#include "COM_NodeOperation.h"
+#include "DNA_scene_types.h"
+#include "BLI_listbase.h"
+#include "BKE_image.h"
+extern "C" {
+ #include "RE_pipeline.h"
+ #include "RE_shader_ext.h"
+ #include "RE_render_ext.h"
+ #include "MEM_guardedalloc.h"
+}
+
+/**
+ * Base class for all renderlayeroperations
+ *
+ * @todo: rename to operation.
+ */
+class RenderLayersBaseProg : public NodeOperation {
+private:
+ /**
+ * Reference to the scene object.
+ */
+ Scene *scene;
+
+ /**
+ * layerId of the layer where this operation needs to get its data from
+ */
+ short layerId;
+
+ /**
+ * cached instance to the float buffer inside the layer
+ */
+ float *inputBuffer;
+
+ /**
+ * renderpass where this operation needs to get its data from
+ */
+ int renderpass;
+
+ int elementsize;
+
+protected:
+ /**
+ * Constructor
+ */
+ RenderLayersBaseProg(int renderpass, int elementsize);
+
+ /**
+ * Determine the output resolution. The resolution is retrieved from the Renderer
+ */
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ /**
+ * retrieve the reference to the float buffer of the renderer.
+ */
+ inline float *getInputBuffer() {return this->inputBuffer;}
+
+public:
+ /**
+ * setter for the scene field. Will be called from
+ * @see RenderLayerNode to set the actual scene where
+ * the data will be retrieved from.
+ */
+ void setScene(Scene *scene) {this->scene = scene;}
+ Scene *getScene() {return this->scene;}
+ void setLayerId(short layerId) {this->layerId = layerId;}
+ short getLayerId() {return this->layerId;}
+ void initExecution();
+ void deinitExecution();
+ void executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersColorOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersColorOperation.cpp
new file mode 100644
index 00000000000..aee68afe55d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersColorOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersColorOperation.h"
+
+RenderLayersColorOperation::RenderLayersColorOperation() :RenderLayersBaseProg(SCE_PASS_RGBA, 4)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersColorOperation.h b/source/blender/compositor/operations/COM_RenderLayersColorOperation.h
new file mode 100644
index 00000000000..4f4dfbfb6f3
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersColorOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersColorOperation_h
+#define _COM_RenderLayersColorOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersColorOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersColorOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersCyclesOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersCyclesOperation.cpp
new file mode 100644
index 00000000000..fc1df884181
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersCyclesOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersCyclesOperation.h"
+
+RenderLayersCyclesOperation::RenderLayersCyclesOperation(int pass) :RenderLayersBaseProg(pass, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersCyclesOperation.h b/source/blender/compositor/operations/COM_RenderLayersCyclesOperation.h
new file mode 100644
index 00000000000..baa53c7388b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersCyclesOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersCyclesOperation_h
+#define _COM_RenderLayersCyclesOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersCyclesOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersCyclesOperation(int pass);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersDepthProg.cpp b/source/blender/compositor/operations/COM_RenderLayersDepthProg.cpp
new file mode 100644
index 00000000000..985b1c1bee8
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersDepthProg.cpp
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersDepthProg.h"
+
+RenderLayersDepthProg::RenderLayersDepthProg() :RenderLayersBaseProg(SCE_PASS_Z, 1)
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
+
diff --git a/source/blender/compositor/operations/COM_RenderLayersDepthProg.h b/source/blender/compositor/operations/COM_RenderLayersDepthProg.h
new file mode 100644
index 00000000000..fdbe25c818e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersDepthProg.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersDepthProg_h
+#define _COM_RenderLayersDepthProg_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersDepthProg : public RenderLayersBaseProg {
+public:
+ RenderLayersDepthProg();
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.cpp
new file mode 100644
index 00000000000..ad73490b92d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersDiffuseOperation.h"
+
+RenderLayersDiffuseOperation::RenderLayersDiffuseOperation() :RenderLayersBaseProg(SCE_PASS_DIFFUSE, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.h b/source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.h
new file mode 100644
index 00000000000..8c20d6f497d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersDiffuseOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersDiffuseOperation_h
+#define _COM_RenderLayersDiffuseOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersDiffuseOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersDiffuseOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersEmitOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersEmitOperation.cpp
new file mode 100644
index 00000000000..7537e2d10fc
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersEmitOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersEmitOperation.h"
+
+RenderLayersEmitOperation::RenderLayersEmitOperation() :RenderLayersBaseProg(SCE_PASS_EMIT, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersEmitOperation.h b/source/blender/compositor/operations/COM_RenderLayersEmitOperation.h
new file mode 100644
index 00000000000..c003cb2f87b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersEmitOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersEmitOperation_h
+#define _COM_RenderLayersEmitOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersEmitOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersEmitOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.cpp
new file mode 100644
index 00000000000..0ace9a7c58f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersEnvironmentOperation.h"
+
+RenderLayersEnvironmentOperation::RenderLayersEnvironmentOperation() :RenderLayersBaseProg(SCE_PASS_ENVIRONMENT, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.h b/source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.h
new file mode 100644
index 00000000000..b9310a1778b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersEnvironmentOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersEnvironmentOperation_h
+#define _COM_RenderLayersEnvironmentOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersEnvironmentOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersEnvironmentOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersImageProg.cpp b/source/blender/compositor/operations/COM_RenderLayersImageProg.cpp
new file mode 100644
index 00000000000..264e2f0fd79
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersImageProg.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersImageProg.h"
+
+RenderLayersColourProg::RenderLayersColourProg() :RenderLayersBaseProg(SCE_PASS_COMBINED, 4)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersImageProg.h b/source/blender/compositor/operations/COM_RenderLayersImageProg.h
new file mode 100644
index 00000000000..b6ddac425cb
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersImageProg.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersColourProg_h
+#define _COM_RenderLayersColourProg_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+/// @TODO rename to image operation
+class RenderLayersColourProg : public RenderLayersBaseProg {
+public:
+ RenderLayersColourProg();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersIndirectOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersIndirectOperation.cpp
new file mode 100644
index 00000000000..645f9768eb2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersIndirectOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersIndirectOperation.h"
+
+RenderLayersIndirectOperation::RenderLayersIndirectOperation() :RenderLayersBaseProg(SCE_PASS_INDIRECT, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersIndirectOperation.h b/source/blender/compositor/operations/COM_RenderLayersIndirectOperation.h
new file mode 100644
index 00000000000..d64207a4355
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersIndirectOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersIndirectOperation_h
+#define _COM_RenderLayersIndirectOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersIndirectOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersIndirectOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.cpp
new file mode 100644
index 00000000000..e5cef7753f2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersMaterialIndexOperation.h"
+
+RenderLayersMaterialIndexOperation::RenderLayersMaterialIndexOperation() :RenderLayersBaseProg(SCE_PASS_INDEXMA, 1)
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.h b/source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.h
new file mode 100644
index 00000000000..d06568f5a10
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersMaterialIndexOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersMaterialIndexOperation_h
+#define _COM_RenderLayersMaterialIndexOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersMaterialIndexOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersMaterialIndexOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersMistOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersMistOperation.cpp
new file mode 100644
index 00000000000..fae6c73f747
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersMistOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersMistOperation.h"
+
+RenderLayersMistOperation::RenderLayersMistOperation() :RenderLayersBaseProg(SCE_PASS_MIST, 1)
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersMistOperation.h b/source/blender/compositor/operations/COM_RenderLayersMistOperation.h
new file mode 100644
index 00000000000..8c0ee9bfcab
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersMistOperation.h
@@ -0,0 +1,11 @@
+#ifndef _COM_RenderLayersMistOperation_h
+#define _COM_RenderLayersMistOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersMistOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersMistOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersNormalOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersNormalOperation.cpp
new file mode 100644
index 00000000000..67ea4d68204
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersNormalOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersNormalOperation.h"
+
+RenderLayersNormalOperation::RenderLayersNormalOperation() :RenderLayersBaseProg(SCE_PASS_NORMAL, 3)
+{
+ this->addOutputSocket(COM_DT_VECTOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersNormalOperation.h b/source/blender/compositor/operations/COM_RenderLayersNormalOperation.h
new file mode 100644
index 00000000000..39b2040863a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersNormalOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersNormalOperation_h
+#define _COM_RenderLayersNormalOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersNormalOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersNormalOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.cpp
new file mode 100644
index 00000000000..821ff447112
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersObjectIndexOperation.h"
+
+RenderLayersObjectIndexOperation::RenderLayersObjectIndexOperation() :RenderLayersBaseProg(SCE_PASS_INDEXOB, 1)
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.h b/source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.h
new file mode 100644
index 00000000000..e8a1602cbfc
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersObjectIndexOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersObjectIndexOperation_h
+#define _COM_RenderLayersObjectIndexOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersObjectIndexOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersObjectIndexOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersReflectionOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersReflectionOperation.cpp
new file mode 100644
index 00000000000..e53144d3501
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersReflectionOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersReflectionOperation.h"
+
+RenderLayersReflectionOperation::RenderLayersReflectionOperation() :RenderLayersBaseProg(SCE_PASS_REFLECT, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersReflectionOperation.h b/source/blender/compositor/operations/COM_RenderLayersReflectionOperation.h
new file mode 100644
index 00000000000..3dc7148930b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersReflectionOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersReflectionOperation_h
+#define _COM_RenderLayersReflectionOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersReflectionOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersReflectionOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersRefractionOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersRefractionOperation.cpp
new file mode 100644
index 00000000000..6e333175220
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersRefractionOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersRefractionOperation.h"
+
+RenderLayersRefractionOperation::RenderLayersRefractionOperation() :RenderLayersBaseProg(SCE_PASS_REFRACT, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersRefractionOperation.h b/source/blender/compositor/operations/COM_RenderLayersRefractionOperation.h
new file mode 100644
index 00000000000..02ac7aa14f4
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersRefractionOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersRefractionOperation_h
+#define _COM_RenderLayersRefractionOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersRefractionOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersRefractionOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersShadowOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersShadowOperation.cpp
new file mode 100644
index 00000000000..ce492d54a79
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersShadowOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersShadowOperation.h"
+
+RenderLayersShadowOperation::RenderLayersShadowOperation() :RenderLayersBaseProg(SCE_PASS_SHADOW, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersShadowOperation.h b/source/blender/compositor/operations/COM_RenderLayersShadowOperation.h
new file mode 100644
index 00000000000..af35915c2ee
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersShadowOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersShadowOperation_h
+#define _COM_RenderLayersShadowOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersShadowOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersShadowOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersSpecularOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersSpecularOperation.cpp
new file mode 100644
index 00000000000..7b7d223680c
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersSpecularOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersSpecularOperation.h"
+
+RenderLayersSpecularOperation::RenderLayersSpecularOperation() :RenderLayersBaseProg(SCE_PASS_SPEC, 3)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersSpecularOperation.h b/source/blender/compositor/operations/COM_RenderLayersSpecularOperation.h
new file mode 100644
index 00000000000..fc7d77976a3
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersSpecularOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersSpecularOperation_h
+#define _COM_RenderLayersSpecularOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersSpecularOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersSpecularOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersSpeedOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersSpeedOperation.cpp
new file mode 100644
index 00000000000..213d044a9bd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersSpeedOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersSpeedOperation.h"
+
+RenderLayersSpeedOperation::RenderLayersSpeedOperation() :RenderLayersBaseProg(SCE_PASS_VECTOR, 4)
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersSpeedOperation.h b/source/blender/compositor/operations/COM_RenderLayersSpeedOperation.h
new file mode 100644
index 00000000000..d341aa43950
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersSpeedOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersSpeedOperation_h
+#define _COM_RenderLayersSpeedOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersSpeedOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersSpeedOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersUVOperation.cpp b/source/blender/compositor/operations/COM_RenderLayersUVOperation.cpp
new file mode 100644
index 00000000000..e3917d7796b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersUVOperation.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RenderLayersUVOperation.h"
+
+RenderLayersUVOperation::RenderLayersUVOperation() :RenderLayersBaseProg(SCE_PASS_UV, 3)
+{
+ this->addOutputSocket(COM_DT_VECTOR);
+}
diff --git a/source/blender/compositor/operations/COM_RenderLayersUVOperation.h b/source/blender/compositor/operations/COM_RenderLayersUVOperation.h
new file mode 100644
index 00000000000..3068372a66c
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RenderLayersUVOperation.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RenderLayersUVOperation_h
+#define _COM_RenderLayersUVOperation_h
+
+#include "COM_RenderLayersBaseProg.h"
+
+class RenderLayersUVOperation : public RenderLayersBaseProg {
+public:
+ RenderLayersUVOperation();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_RotateOperation.cpp b/source/blender/compositor/operations/COM_RotateOperation.cpp
new file mode 100644
index 00000000000..313e49d8609
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RotateOperation.cpp
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_RotateOperation.h"
+#include "BLI_math.h"
+
+RotateOperation::RotateOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->imageSocket = NULL;
+ this->degreeSocket = NULL;
+ this->doDegree2RadConversion = false;
+}
+void RotateOperation::initExecution()
+{
+ this->imageSocket = this->getInputSocketReader(0);
+ this->degreeSocket = this->getInputSocketReader(1);
+ this->centerX = this->getWidth()/2.0;
+ this->centerY = this->getHeight()/2.0;
+ float degree[4];
+ this->degreeSocket->read(degree, 0, 0, COM_PS_NEAREST, NULL);
+ double rad;
+ if (this->doDegree2RadConversion) {
+ rad = DEG2RAD(degree[0]);
+ }
+ else {
+ rad = degree[0];
+ }
+ this->cosine = cos(rad);
+ this->sine = sin(rad);
+}
+
+void RotateOperation::deinitExecution()
+{
+ this->imageSocket = NULL;
+ this->degreeSocket = NULL;
+}
+
+
+void RotateOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ const float dy = y - this->centerY;
+ const float dx = x - this->centerX;
+ const float nx = this->centerX+(this->cosine*dx + this->sine*dy);
+ const float ny = this->centerY+(-this->sine*dx + this->cosine*dy);
+ this->imageSocket->read(color, nx, ny, sampler, inputBuffers);
+}
+
+bool RotateOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ const float dxmin = input->xmin - this->centerX;
+ const float dymin = input->ymin - this->centerY;
+ const float dxmax = input->xmax - this->centerX;
+ const float dymax = input->ymax - this->centerY;
+
+ const float x1 = this->centerX+(this->cosine*dxmin + this->sine*dymin);
+ const float x2 = this->centerX+(this->cosine*dxmax + this->sine*dymin);
+ const float x3 = this->centerX+(this->cosine*dxmin + this->sine*dymax);
+ const float x4 = this->centerX+(this->cosine*dxmax + this->sine*dymax);
+ const float y1 = this->centerY+(-this->sine*dxmin + this->cosine*dymin);
+ const float y2 = this->centerY+(-this->sine*dxmax + this->cosine*dymin);
+ const float y3 = this->centerY+(-this->sine*dxmin + this->cosine*dymax);
+ const float y4 = this->centerY+(-this->sine*dxmax + this->cosine*dymax);
+ const float minx = min(x1, min(x2, min(x3, x4)));
+ const float maxx = max(x1, max(x2, max(x3, x4)));
+ const float miny = min(y1, min(y2, min(y3, y4)));
+ const float maxy = max(y1, max(y2, max(y3, y4)));
+
+ newInput.xmax = ceil(maxx)+1;
+ newInput.xmin = floor(minx)-1;
+ newInput.ymax = ceil(maxy)+1;
+ newInput.ymin = floor(miny)-1;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_RotateOperation.h b/source/blender/compositor/operations/COM_RotateOperation.h
new file mode 100644
index 00000000000..9965d1021da
--- /dev/null
+++ b/source/blender/compositor/operations/COM_RotateOperation.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_RotateOperation_h_
+#define _COM_RotateOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class RotateOperation: public NodeOperation {
+private:
+ SocketReader *imageSocket;
+ SocketReader *degreeSocket;
+ float centerX;
+ float centerY;
+ float cosine;
+ float sine;
+ bool doDegree2RadConversion;
+public:
+ RotateOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void initExecution();
+ void deinitExecution();
+ void setDoDegree2RadConversion(bool abool) {this->doDegree2RadConversion = abool;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_ScaleOperation.cpp b/source/blender/compositor/operations/COM_ScaleOperation.cpp
new file mode 100644
index 00000000000..ca2095c3170
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ScaleOperation.cpp
@@ -0,0 +1,212 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ScaleOperation.h"
+
+ScaleOperation::ScaleOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+ this->inputXOperation = NULL;
+ this->inputYOperation = NULL;
+}
+void ScaleOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ this->inputXOperation = this->getInputSocketReader(1);
+ this->inputYOperation = this->getInputSocketReader(2);
+ this->centerX = this->getWidth()/2.0;
+ this->centerY = this->getHeight()/2.0;
+}
+
+void ScaleOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+ this->inputXOperation = NULL;
+ this->inputYOperation = NULL;
+}
+
+
+void ScaleOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float scaleX[4];
+ float scaleY[4];
+
+ this->inputXOperation->read(scaleX, x, y, sampler, inputBuffers);
+ this->inputYOperation->read(scaleY, x, y, sampler, inputBuffers);
+
+ const float scx = scaleX[0];
+ const float scy = scaleY[0];
+
+ float nx = this->centerX+ (x - this->centerX) / scx;
+ float ny = this->centerY+ (y - this->centerY) / scy;
+ this->inputOperation->read(color, nx, ny, sampler, inputBuffers);
+}
+
+bool ScaleOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ float scaleX[4];
+ float scaleY[4];
+
+ this->inputXOperation->read(scaleX, 0, 0, COM_PS_NEAREST, NULL);
+ this->inputYOperation->read(scaleY, 0, 0, COM_PS_NEAREST, NULL);
+
+ const float scx = scaleX[0];
+ const float scy = scaleY[0];
+
+ newInput.xmax = this->centerX+ (input->xmax - this->centerX) / scx;
+ newInput.xmin = this->centerX+ (input->xmin - this->centerX) / scx;
+ newInput.ymax = this->centerY+ (input->ymax - this->centerY) / scy;
+ newInput.ymin = this->centerY+ (input->ymin - this->centerY) / scy;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+
+
+// SCALE ABSOLUTE
+ScaleAbsoluteOperation::ScaleAbsoluteOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+ this->inputXOperation = NULL;
+ this->inputYOperation = NULL;
+}
+void ScaleAbsoluteOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ this->inputXOperation = this->getInputSocketReader(1);
+ this->inputYOperation = this->getInputSocketReader(2);
+ this->centerX = this->getWidth()/2.0;
+ this->centerY = this->getHeight()/2.0;
+}
+
+void ScaleAbsoluteOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+ this->inputXOperation = NULL;
+ this->inputYOperation = NULL;
+}
+
+
+void ScaleAbsoluteOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float scaleX[4];
+ float scaleY[4];
+
+ this->inputXOperation->read(scaleX, x, y, sampler, inputBuffers);
+ this->inputYOperation->read(scaleY, x, y, sampler, inputBuffers);
+
+ const float scx = scaleX[0]; // target absolute scale
+ const float scy = scaleY[0]; // target absolute scale
+ const float width = this->getWidth();
+ const float height = this->getHeight();
+ //div
+ float relativeXScale = scx/width;
+ float relativeYScale = scy/height;
+
+ float nx = this->centerX+ (x - this->centerX) / relativeXScale;
+ float ny = this->centerY+ (y - this->centerY) / relativeYScale;
+ this->inputOperation->read(color, nx, ny, sampler, inputBuffers);
+}
+
+bool ScaleAbsoluteOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ float scaleX[4];
+ float scaleY[4];
+
+ this->inputXOperation->read(scaleX, 0, 0, COM_PS_NEAREST, NULL);
+ this->inputYOperation->read(scaleY, 0, 0, COM_PS_NEAREST, NULL);
+
+ const float scx = scaleX[0];
+ const float scy = scaleY[0];
+ const float width = this->getWidth();
+ const float height = this->getHeight();
+ //div
+ float relateveXScale = scx/width;
+ float relateveYScale = scy/height;
+
+ newInput.xmax = this->centerX+ (input->xmax - this->centerX) / relateveXScale;
+ newInput.xmin = this->centerX+ (input->xmin - this->centerX) / relateveXScale;
+ newInput.ymax = this->centerY+ (input->ymax - this->centerY) / relateveYScale;
+ newInput.ymin = this->centerY+ (input->ymin - this->centerY) / relateveYScale;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+
+
+// Absolute fixed siez
+ScaleFixedSizeOperation::ScaleFixedSizeOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+}
+void ScaleFixedSizeOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ this->relX = inputOperation->getWidth() / (float)this->newWidth;
+ this->relY = inputOperation->getHeight() / (float)this->newHeight;
+}
+
+void ScaleFixedSizeOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
+
+void ScaleFixedSizeOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ this->inputOperation->read(color, x*relX, y*relY, sampler, inputBuffers);
+}
+
+bool ScaleFixedSizeOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmax = input->xmax *relX;
+ newInput.xmin = input->xmin *relX;
+ newInput.ymax = input->ymax *relY;
+ newInput.ymin = input->ymin *relY;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+
+void ScaleFixedSizeOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ unsigned int nr[2];
+ nr[0] = newWidth;
+ nr[1] = newHeight;
+ NodeOperation::determineResolution(resolution, nr);
+ resolution[0] = newWidth;
+ resolution[1] = newHeight;
+}
diff --git a/source/blender/compositor/operations/COM_ScaleOperation.h b/source/blender/compositor/operations/COM_ScaleOperation.h
new file mode 100644
index 00000000000..3e075249fa1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ScaleOperation.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ScaleOperation_h_
+#define _COM_ScaleOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class ScaleOperation: public NodeOperation {
+private:
+ SocketReader *inputOperation;
+ SocketReader *inputXOperation;
+ SocketReader *inputYOperation;
+ float centerX;
+ float centerY;
+public:
+ ScaleOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+};
+
+class ScaleAbsoluteOperation: public NodeOperation {
+ SocketReader *inputOperation;
+ SocketReader *inputXOperation;
+ SocketReader *inputYOperation;
+ float centerX;
+ float centerY;
+public:
+ ScaleAbsoluteOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+};
+
+class ScaleFixedSizeOperation: public NodeOperation {
+ SocketReader *inputOperation;
+ int newWidth;
+ int newHeight;
+ float relX;
+ float relY;
+public:
+ ScaleFixedSizeOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+ void setNewWidth(int width) {this->newWidth = width;}
+ void setNewHeight(int height) {this->newHeight = height;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
new file mode 100644
index 00000000000..4442fd9075e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
@@ -0,0 +1,172 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ScreenLensDistortionOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+extern "C" {
+ #include "BLI_rand.h"
+}
+
+ScreenLensDistortionOperation::ScreenLensDistortionOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+ this->inputProgram = NULL;
+}
+void ScreenLensDistortionOperation::initExecution()
+{
+ this->inputProgram = this->getInputSocketReader(0);
+ kg = MAX2(MIN2(this->distortion, 1.f), -0.999f);
+ // smaller dispersion range for somewhat more control
+ const float d = 0.25f*MAX2(MIN2(this->dispersion, 1.f), 0.f);
+ kr = MAX2(MIN2((kg+d), 1.f), -0.999f);
+ kb = MAX2(MIN2((kg-d), 1.f), -0.999f);
+ maxk = MAX3(kr, kg, kb);
+ sc = (this->data->fit && (maxk > 0.f)) ? (1.f/(1.f + 2.f*maxk)) : (1.f/(1.f + maxk));
+ drg = 4.f*(kg - kr);
+ dgb = 4.f*(kb - kg);
+
+ kr4 = kr*4;
+ kg4 = kg*4.f;
+ kb4 *= kb*4.f;
+ cx = 0.5f*(float)getWidth();
+ cy = 0.5f*(float)getHeight();
+
+}
+
+void *ScreenLensDistortionOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ void *buffer = inputProgram->initializeTileData(NULL, memoryBuffers);
+ return buffer;
+}
+
+void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ const float height = this->getHeight();
+ const float width = this->getWidth();
+ MemoryBuffer *buffer = (MemoryBuffer*)data;
+
+ int dr = 0, dg = 0, db = 0;
+ float d, t, ln[6] = {0, 0, 0, 0, 0, 0};
+ float tc[4] = {0, 0, 0, 0};
+ const float v = sc*((y + 0.5f) - cy)/cy;
+ const float u = sc*((x + 0.5f) - cx)/cx;
+ int sta = 0, mid = 0, end = 0;
+
+ if ((t = 1.f - kr4*(u*u + v*v)) >= 0.f) {
+ d = 1.f/(1.f + sqrtf(t));
+ ln[0] = (u*d + 0.5f)*width - 0.5f, ln[1] = (v*d + 0.5f)*height - 0.5f;
+ sta = 1;
+ }
+ if ((t = 1.f - kg4*(u*u + v*v)) >= 0.f) {
+ d = 1.f/(1.f + sqrtf(t));
+ ln[2] = (u*d + 0.5f)*width - 0.5f, ln[3] = (v*d + 0.5f)*height - 0.5f;
+ mid = 1;
+ }
+ if ((t = 1.f - kb4*(u*u + v*v)) >= 0.f) {
+ d = 1.f/(1.f + sqrtf(t));
+ ln[4] = (u*d + 0.5f)*width - 0.5f, ln[5] = (v*d + 0.5f)*height - 0.5f;
+ end = 1;
+ }
+
+ if (sta && mid && end) {
+ float jit = this->data->jit;
+ float z;
+ float color[4];
+ {
+ // RG
+ const int dx = ln[2] - ln[0], dy = ln[3] - ln[1];
+ const float dsf = sqrtf((float)dx*dx + dy*dy) + 1.f;
+ const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf);
+ const float sd = 1.f/(float)ds;
+
+ for (z=0; z<ds; ++z) {
+ const float tz = ((float)z + (jit ? BLI_frand() : 0.5f))*sd;
+ t = 1.f - (kr4 + tz*drg)*(u*u + v*v);
+ d = 1.f / (1.f + sqrtf(t));
+ const float nx = (u*d + 0.5f)*getWidth() - 0.5f;
+ const float ny = (v*d + 0.5f)*getHeight() - 0.5f;
+ buffer->readCubic(color, nx, ny);
+ tc[0] += (1.f-tz)*color[0], tc[1] += tz*color[1];
+ dr++, dg++;
+ }
+ }
+ {
+ // GB
+ const int dx = ln[4] - ln[2], dy = ln[5] - ln[3];
+ const float dsf = sqrtf((float)dx*dx + dy*dy) + 1.f;
+ const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf);
+ const float sd = 1.f/(float)ds;
+
+ for (z=0; z<ds; ++z) {
+ const float tz = ((float)z + (jit ? BLI_frand() : 0.5f))*sd;
+ t = 1.f - (kg4 + tz*dgb)*(u*u + v*v);
+ d = 1.f / (1.f + sqrtf(t));
+ const float nx = (u*d + 0.5f)*getWidth() - 0.5f;
+ const float ny = (v*d + 0.5f)*getHeight() - 0.5f;
+ buffer->readCubic(color, nx, ny);
+ tc[1] += (1.f-tz)*color[1], tc[2] += tz*color[2];
+ dg++, db++;
+ }
+
+ }
+ if (dr) outputColor[0] = 2.f*tc[0] / (float)dr;
+ if (dg) outputColor[1] = 2.f*tc[1] / (float)dg;
+ if (db) outputColor[2] = 2.f*tc[2] / (float)db;
+
+ /* set alpha */
+ outputColor[3] = 1.0f;
+ }
+ else {
+ outputColor[0] = 0.0f;
+ outputColor[1] = 0.0f;
+ outputColor[2] = 0.0f;
+ outputColor[3] = 0.0f;
+ }
+}
+
+void ScreenLensDistortionOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
+
+void ScreenLensDistortionOperation::determineUV(float result[2], float x, float y) const
+{
+ const float v = sc*((y + 0.5f) - cy)/cy;
+ const float u = sc*((x + 0.5f) - cx)/cx;
+ const float t = ABS(MIN3(kr, kg, kb)*4);
+ float d = 1.f/(1.f + sqrtf(t));
+ result[0] = (u*d + 0.5f)*getWidth() - 0.5f;
+ result[1] = (v*d + 0.5f)*getHeight() - 0.5f;
+}
+
+bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ newInput.xmin = 0;
+ newInput.ymin = 0;
+ newInput.ymax = inputProgram->getHeight();
+ newInput.xmax = inputProgram->getWidth();
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h
new file mode 100644
index 00000000000..d2db55ea214
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ScreenLensDistortionOperation_h
+#define _COM_ScreenLensDistortionOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+class ScreenLensDistortionOperation : public NodeOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *inputProgram;
+
+ NodeLensDist * data;
+
+ float dispersion;
+ float distortion;
+ float kr, kg, kb;
+ float kr4, kg4, kb4;
+ float maxk;
+ float drg;
+ float dgb;
+ float sc, cx, cy;
+public:
+ ScreenLensDistortionOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeLensDist *data) {this->data = data;}
+ void setDispertion(float dispersion) {this->dispersion = dispersion;}
+ void setDistortion(float distortion) {this->distortion = distortion;}
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+private:
+ void determineUV(float *result, float x, float y) const;
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp b/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp
new file mode 100644
index 00000000000..680e1648ebd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SeparateChannelOperation.h"
+
+SeparateChannelOperation::SeparateChannelOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->inputOperation = NULL;
+}
+void SeparateChannelOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void SeparateChannelOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
+
+void SeparateChannelOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float input[4];
+ this->inputOperation->read(input, x, y, sampler, inputBuffers);
+ color[0] = input[this->channel];
+}
diff --git a/source/blender/compositor/operations/COM_SeparateChannelOperation.h b/source/blender/compositor/operations/COM_SeparateChannelOperation.h
new file mode 100644
index 00000000000..3c1eed4bdd9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SeparateChannelOperation.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SeparateChannelOperation_h_
+#define _COM_SeparateChannelOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class SeparateChannelOperation: public NodeOperation {
+private:
+ SocketReader *inputOperation;
+ int channel;
+public:
+ SeparateChannelOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ void setChannel(int channel) {this->channel = channel;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_SetAlphaOperation.cpp b/source/blender/compositor/operations/COM_SetAlphaOperation.cpp
new file mode 100644
index 00000000000..0aefb075b64
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetAlphaOperation.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SetAlphaOperation.h"
+
+SetAlphaOperation::SetAlphaOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->inputColor = NULL;
+ this->inputAlpha = NULL;
+}
+
+void SetAlphaOperation::initExecution()
+{
+ this->inputColor = getInputSocketReader(0);
+ this->inputAlpha = getInputSocketReader(1);
+}
+
+void SetAlphaOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float alphaInput[4];
+
+ this->inputColor->read(outputValue, x, y, sampler, inputBuffers);
+ this->inputAlpha->read(alphaInput, x, y, sampler, inputBuffers);
+
+ outputValue[3] = alphaInput[0];
+}
+
+void SetAlphaOperation::deinitExecution()
+{
+ this->inputColor = NULL;
+ this->inputAlpha = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_SetAlphaOperation.h b/source/blender/compositor/operations/COM_SetAlphaOperation.h
new file mode 100644
index 00000000000..3d9caabf880
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetAlphaOperation.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SetAlphaOperation_h
+#define _COM_SetAlphaOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class SetAlphaOperation : public NodeOperation {
+private:
+ SocketReader *inputColor;
+ SocketReader *inputAlpha;
+
+public:
+ /**
+ * Default constructor
+ */
+ SetAlphaOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_SetColorOperation.cpp b/source/blender/compositor/operations/COM_SetColorOperation.cpp
new file mode 100644
index 00000000000..50ff2a87a72
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetColorOperation.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SetColorOperation.h"
+
+SetColorOperation::SetColorOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
+
+void SetColorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ outputValue[0] = this->channel1;
+ outputValue[1] = this->channel2;
+ outputValue[2] = this->channel3;
+ outputValue[3] = this->channel4;
+}
+
+void SetColorOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ resolution[0] = preferredResolution[0];
+ resolution[1] = preferredResolution[1];
+}
diff --git a/source/blender/compositor/operations/COM_SetColorOperation.h b/source/blender/compositor/operations/COM_SetColorOperation.h
new file mode 100644
index 00000000000..dad3cfd7fc9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetColorOperation.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SetColorOperation_h
+#define _COM_SetColorOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class SetColorOperation : public NodeOperation {
+private:
+ float channel1;
+ float channel2;
+ float channel3;
+ float channel4;
+
+public:
+ /**
+ * Default constructor
+ */
+ SetColorOperation();
+
+ const float getChannel1() {return this->channel1;}
+ void setChannel1(float value) {this->channel1 = value;}
+ const float getChannel2() {return this->channel2;}
+ void setChannel2(float value) {this->channel2 = value;}
+ const float getChannel3() {return this->channel3;}
+ void setChannel3(float value) {this->channel3 = value;}
+ const float getChannel4() {return this->channel4;}
+ void setChannel4(float value) {this->channel4 = value;}
+ void setChannels(float value[4]) {this->channel1 = value[0];this->channel2 = value[1];this->channel3 = value[2];this->channel4 = value[3];}
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ const bool isSetOperation() const {return true;}
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_SetSamplerOperation.cpp b/source/blender/compositor/operations/COM_SetSamplerOperation.cpp
new file mode 100644
index 00000000000..8974554e700
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetSamplerOperation.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SetSamplerOperation.h"
+
+SetSamplerOperation::SetSamplerOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+}
+
+void SetSamplerOperation::initExecution()
+{
+ this->reader = this->getInputSocketReader(0);
+}
+void SetSamplerOperation::deinitExecution()
+{
+ this->reader = NULL;
+}
+
+void SetSamplerOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ reader->read(output, x, y, this->sampler, inputBuffers);
+}
diff --git a/source/blender/compositor/operations/COM_SetSamplerOperation.h b/source/blender/compositor/operations/COM_SetSamplerOperation.h
new file mode 100644
index 00000000000..49bbae7e4ff
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetSamplerOperation.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SetSamplerOperation_h
+#define _COM_SetSamplerOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output Sampler.
+ * it assumes we are in sRGB colour space.
+ */
+class SetSamplerOperation : public NodeOperation {
+private:
+ PixelSampler sampler;
+ SocketReader *reader;
+public:
+ /**
+ * Default constructor
+ */
+ SetSamplerOperation();
+
+ void setSampler(PixelSampler sampler) {this->sampler = sampler;}
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void initExecution();
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_SetValueOperation.cpp b/source/blender/compositor/operations/COM_SetValueOperation.cpp
new file mode 100644
index 00000000000..abd4acafea6
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetValueOperation.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SetValueOperation.h"
+
+SetValueOperation::SetValueOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
+
+void SetValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ outputValue[0] = this->value;
+}
+
+void SetValueOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ resolution[0] = preferredResolution[0];
+ resolution[1] = preferredResolution[1];
+}
diff --git a/source/blender/compositor/operations/COM_SetValueOperation.h b/source/blender/compositor/operations/COM_SetValueOperation.h
new file mode 100644
index 00000000000..25810cd7ee5
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetValueOperation.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SetValueOperation_h
+#define _COM_SetValueOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class SetValueOperation : public NodeOperation {
+private:
+ float value;
+
+public:
+ /**
+ * Default constructor
+ */
+ SetValueOperation();
+
+ const float getValue() {return this->value;}
+ void setValue(float value) {this->value = value;}
+
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ const bool isSetOperation() const {return true;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_SetVectorOperation.cpp b/source/blender/compositor/operations/COM_SetVectorOperation.cpp
new file mode 100644
index 00000000000..70477de0514
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetVectorOperation.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SetVectorOperation.h"
+#include "COM_defines.h"
+
+SetVectorOperation::SetVectorOperation(): NodeOperation()
+{
+ this->addOutputSocket(COM_DT_VECTOR);
+}
+
+void SetVectorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ outputValue[0] = this->x;
+ outputValue[1] = this->y;
+ outputValue[2] = this->z;
+ outputValue[3] = this->w;
+}
+
+void SetVectorOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ if (preferredResolution[0] == 0 ||preferredResolution[1]==0) {
+ resolution[0] = COM_DEFAULT_RESOLUTION_WIDTH;
+ resolution[1] = COM_DEFAULT_RESOLUTION_HEIGHT;
+ }
+ else {
+ resolution[0] = preferredResolution[0];
+ resolution[1] = preferredResolution[1];
+ }
+}
diff --git a/source/blender/compositor/operations/COM_SetVectorOperation.h b/source/blender/compositor/operations/COM_SetVectorOperation.h
new file mode 100644
index 00000000000..9b5dd3ce674
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SetVectorOperation.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SetVectorOperation_h
+#define _COM_SetVectorOperation_h
+#include "COM_NodeOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class SetVectorOperation : public NodeOperation {
+private:
+ float x;
+ float y;
+ float z;
+ float w;
+
+public:
+ /**
+ * Default constructor
+ */
+ SetVectorOperation();
+
+ const float getX() {return this->x;}
+ void setX(float value) {this->x = value;}
+ const float getY() {return this->y;}
+ void setY(float value) {this->y = value;}
+ const float getZ() {return this->z;}
+ void setZ(float value) {this->z = value;}
+ const float getW() {return this->w;}
+ void setW(float value) {this->w = value;}
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ const bool isSetOperation() const {return true;}
+
+ void setVector(float vector[3]) {
+ setX(vector[0]);
+ setY(vector[1]);
+ setZ(vector[2]);
+ }
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_SocketProxyOperation.cpp b/source/blender/compositor/operations/COM_SocketProxyOperation.cpp
new file mode 100644
index 00000000000..6ed877523d1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SocketProxyOperation.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SocketProxyOperation.h"
+
+SocketProxyOperation::SocketProxyOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR/*|COM_DT_VECTOR|COM_DT_VALUE*/);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->inputOperation = NULL;
+}
+
+void SocketProxyOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+}
+
+void SocketProxyOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+}
+
+void SocketProxyOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ this->inputOperation->read(color, x, y, sampler, inputBuffers);
+}
diff --git a/source/blender/compositor/operations/COM_SocketProxyOperation.h b/source/blender/compositor/operations/COM_SocketProxyOperation.h
new file mode 100644
index 00000000000..a86134c1ea9
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SocketProxyOperation.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SocketProxyOperation_h_
+#define _COM_SocketProxyOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class SocketProxyOperation: public NodeOperation {
+private:
+ SocketReader *inputOperation;
+public:
+ SocketProxyOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_SplitViewerOperation.cpp b/source/blender/compositor/operations/COM_SplitViewerOperation.cpp
new file mode 100644
index 00000000000..4601bebb49f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SplitViewerOperation.cpp
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_SplitViewerOperation.h"
+#include "COM_SocketConnection.h"
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "BKE_image.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_color.h"
+#include "BLI_math_vector.h"
+
+extern "C" {
+ #include "MEM_guardedalloc.h"
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+
+SplitViewerOperation::SplitViewerOperation() : ViewerBaseOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR);
+ this->image1Input = NULL;
+ this->image2Input = NULL;
+}
+
+void SplitViewerOperation::initExecution()
+{
+ // When initializing the tree during initial load the width and height can be zero.
+ this->image1Input = getInputSocketReader(0);
+ this->image2Input = getInputSocketReader(1);
+ ViewerBaseOperation::initExecution();
+}
+
+void SplitViewerOperation::deinitExecution()
+{
+ this->image1Input = NULL;
+ this->image2Input = NULL;
+ ViewerBaseOperation::deinitExecution();
+}
+
+
+void SplitViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers)
+{
+ float *buffer = this->outputBuffer;
+ unsigned char *bufferDisplay = this->outputBufferDisplay;
+
+ if (!buffer) return;
+ int x1 = rect->xmin;
+ int y1 = rect->ymin;
+ int x2 = rect->xmax;
+ int y2 = rect->ymax;
+ int offset = (y1*this->getWidth() + x1 ) * 4;
+ int x;
+ int y;
+ int perc = xSplit?this->splitPercentage*getWidth()/100.0f:this->splitPercentage*getHeight()/100.0f;
+ for (y = y1 ; y < y2 ; y++) {
+ for (x = x1 ; x < x2 ; x++) {
+ bool image1;
+ float srgb[4];
+ image1 = xSplit?x>perc:y>perc;
+ if (image1) {
+ image1Input->read(&(buffer[offset]), x, y, COM_PS_NEAREST, memoryBuffers);
+ }
+ else {
+ image2Input->read(&(buffer[offset]), x, y, COM_PS_NEAREST, memoryBuffers);
+ }
+ /// @todo: linear conversion only when scene color management is selected, also check predivide.
+ if (this->doColorManagement) {
+ if (this->doColorPredivide) {
+ linearrgb_to_srgb_predivide_v4(srgb, buffer+offset);
+ }
+ else {
+ linearrgb_to_srgb_v4(srgb, buffer+offset);
+ }
+ }
+ else {
+ copy_v4_v4(srgb, buffer+offset);
+ }
+
+ F4TOCHAR4(srgb, bufferDisplay+offset);
+
+ offset +=4;
+ }
+ offset += (this->getWidth()-(x2-x1))*4;
+ }
+ updateImage(rect);
+}
+
diff --git a/source/blender/compositor/operations/COM_SplitViewerOperation.h b/source/blender/compositor/operations/COM_SplitViewerOperation.h
new file mode 100644
index 00000000000..2c3163f0b0a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_SplitViewerOperation.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_SplitViewerOperation_h
+#define _COM_SplitViewerOperation_h
+#include "COM_ViewerBaseOperation.h"
+#include "DNA_image_types.h"
+#include "BLI_rect.h"
+
+class SplitViewerOperation : public ViewerBaseOperation {
+private:
+ SocketReader *image1Input;
+ SocketReader *image2Input;
+
+ float splitPercentage;
+ bool xSplit;
+public:
+ SplitViewerOperation();
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers);
+ void initExecution();
+ void deinitExecution();
+ void setSplitPercentage(float splitPercentage) {this->splitPercentage = splitPercentage;}
+ void setXSplit(bool xsplit) {this->xSplit = xsplit;}
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_TextureOperation.cpp b/source/blender/compositor/operations/COM_TextureOperation.cpp
new file mode 100644
index 00000000000..0d85f71c691
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TextureOperation.cpp
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TextureOperation.h"
+
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+
+TextureBaseOperation::TextureBaseOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_VECTOR);//offset
+ this->addInputSocket(COM_DT_VECTOR);//size
+ this->texture = NULL;
+ this->inputSize = NULL;
+ this->inputOffset = NULL;
+ this->scene = NULL;
+}
+TextureOperation::TextureOperation() : TextureBaseOperation()
+{
+ this->addOutputSocket(COM_DT_COLOR);
+}
+TextureAlphaOperation::TextureAlphaOperation() : TextureBaseOperation()
+{
+ this->addOutputSocket(COM_DT_VALUE);
+}
+
+void TextureBaseOperation::initExecution()
+{
+ this->inputOffset = getInputSocketReader(0);
+ this->inputSize = getInputSocketReader(1);
+}
+void TextureBaseOperation::deinitExecution()
+{
+ this->inputSize = NULL;
+ this->inputOffset = NULL;
+}
+
+void TextureBaseOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+{
+ if (preferredResolution[0] == 0 || preferredResolution[1] == 0) {
+ int width = this->scene->r.xsch*this->scene->r.size/100;
+ int height = this->scene->r.ysch*this->scene->r.size/100;
+ resolution[0] = width;
+ resolution[1] = height;
+ }
+ else {
+ resolution[0] = preferredResolution[0];
+ resolution[1] = preferredResolution[1];
+ }
+}
+
+void TextureAlphaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ TextureBaseOperation::executePixel(color, x, y, sampler, inputBuffers);
+ color[0] = color[3];
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 0.0f;
+}
+
+void TextureBaseOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL};
+ float textureSize[4];
+ float textureOffset[4];
+ float vec[3];
+ int retval;
+ const float cx = this->getWidth()/2;
+ const float cy = this->getHeight()/2;
+ const float u = (cx-x)/this->getWidth()*2;
+ const float v = (cy-y)/this->getHeight()*2;
+
+ this->inputSize->read(textureSize, x, y, sampler, inputBuffers);
+ this->inputOffset->read(textureOffset, x, y, sampler, inputBuffers);
+
+ vec[0] = textureSize[0]*(u + textureOffset[0]);
+ vec[1] = textureSize[1]*(v + textureOffset[1]);
+ vec[2] = textureSize[2]*textureOffset[2];
+
+ retval = multitex_ext(this->texture, vec, NULL, NULL, 0, &texres);
+
+ if (texres.talpha)
+ color[3] = texres.ta;
+ else
+ color[3] = texres.tin;
+
+ if ((retval & TEX_RGB)) {
+ color[0] = texres.tr;
+ color[1] = texres.tg;
+ color[2] = texres.tb;
+ }
+ else color[0] = color[1] = color[2] = color[3];
+}
diff --git a/source/blender/compositor/operations/COM_TextureOperation.h b/source/blender/compositor/operations/COM_TextureOperation.h
new file mode 100644
index 00000000000..de42b144730
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TextureOperation.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+
+#ifndef _COM_TextureOperation_h
+#define _COM_TextureOperation_h
+
+#include "COM_NodeOperation.h"
+#include "DNA_scene_types.h"
+#include "DNA_texture_types.h"
+#include "BLI_listbase.h"
+extern "C" {
+ #include "RE_pipeline.h"
+ #include "RE_shader_ext.h"
+ #include "RE_render_ext.h"
+ #include "MEM_guardedalloc.h"
+}
+
+/**
+ * Base class for all renderlayeroperations
+ *
+ * @todo: rename to operation.
+ */
+class TextureBaseOperation : public NodeOperation {
+private:
+ Tex *texture;
+ const Scene *scene;
+ SocketReader *inputSize;
+ SocketReader *inputOffset;
+
+protected:
+
+ /**
+ * Determine the output resolution. The resolution is retrieved from the Renderer
+ */
+ void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+
+ /**
+ * Constructor
+ */
+ TextureBaseOperation();
+
+public:
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void setTexture(Tex *texture) {this->texture = texture;}
+ void initExecution();
+ void deinitExecution();
+ void setScene(const Scene *scene) {this->scene = scene;}
+};
+
+class TextureOperation:public TextureBaseOperation {
+public:
+ TextureOperation();
+
+};
+class TextureAlphaOperation:public TextureBaseOperation {
+public:
+ TextureAlphaOperation();
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_TonemapOperation.cpp b/source/blender/compositor/operations/COM_TonemapOperation.cpp
new file mode 100644
index 00000000000..56830f4970d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TonemapOperation.cpp
@@ -0,0 +1,171 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TonemapOperation.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+
+
+TonemapOperation::TonemapOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->imageReader = NULL;
+ this->data = NULL;
+ this->cachedInstance = NULL;
+ this->setComplex(true);
+}
+void TonemapOperation::initExecution()
+{
+ this->imageReader = this->getInputSocketReader(0);
+ NodeOperation::initMutex();
+}
+
+void TonemapOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data)
+{
+ AvgLogLum * avg = (AvgLogLum*)data;
+
+ float output[4];
+ this->imageReader->read(output, x, y, inputBuffers, NULL);
+ output[0] *= avg->al;
+ output[1] *= avg->al;
+ output[2] *= avg->al;
+ float dr = output[0] + this->data->offset;
+ float dg = output[1] + this->data->offset;
+ float db = output[2] + this->data->offset;
+ output[0] /= ((dr == 0.f) ? 1.f : dr);
+ output[1] /= ((dg == 0.f) ? 1.f : dg);
+ output[2] /= ((db == 0.f) ? 1.f : db);
+ const float igm = avg->igm;
+ if (igm != 0.f) {
+ output[0] = pow((double)MAX2(output[0], 0.), (double)igm);
+ output[1] = pow((double)MAX2(output[1], 0.), (double)igm);
+ output[2] = pow((double)MAX2(output[2], 0.), (double)igm);
+ }
+
+ color[0] = output[0];
+ color[1] = output[1];
+ color[2] = output[2];
+ color[3] = output[3];
+}
+void PhotoreceptorTonemapOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data)
+{
+ AvgLogLum * avg = (AvgLogLum*)data;
+ NodeTonemap *ntm = this->data;
+
+ const float f = exp((double)-this->data->f);
+ const float m = (ntm->m > 0.f) ? ntm->m : (0.3f + 0.7f*pow((double)avg->auto_key, 1.4));
+ const float ic = 1.f - ntm->c, ia = 1.f - ntm->a;
+
+ float output[4];
+ this->imageReader->read(output, x, y, inputBuffers, NULL);
+
+ const float L = 0.212671f*output[0] + 0.71516f*output[1] + 0.072169f*output[2];
+ float I_l = output[0] + ic*(L - output[0]);
+ float I_g = avg->cav[0] + ic*(avg->lav - avg->cav[0]);
+ float I_a = I_l + ia*(I_g - I_l);
+ output[0] /= (output[0] + pow((double)f*I_a, (double)m));
+ I_l = output[1] + ic*(L - output[1]);
+ I_g = avg->cav[1] + ic*(avg->lav - avg->cav[1]);
+ I_a = I_l + ia*(I_g - I_l);
+ output[1] /= (output[1] + pow((double)f*I_a,(double)m));
+ I_l = output[2] + ic*(L - output[2]);
+ I_g = avg->cav[2] + ic*(avg->lav - avg->cav[2]);
+ I_a = I_l + ia*(I_g - I_l);
+ output[2] /= (output[2] + pow((double)f*I_a, (double)m));
+
+ color[0] = output[0];
+ color[1] = output[1];
+ color[2] = output[2];
+ color[3] = output[3];
+}
+
+void TonemapOperation::deinitExecution()
+{
+ this->imageReader = NULL;
+ if (this->cachedInstance) {
+ delete cachedInstance;
+ }
+ NodeOperation::deinitMutex();
+}
+
+bool TonemapOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti imageInput;
+
+ NodeOperation *operation = getInputOperation(0);
+ imageInput.xmax = operation->getWidth();
+ imageInput.xmin = 0;
+ imageInput.ymax = operation->getHeight();
+ imageInput.ymin = 0;
+ if (operation->determineDependingAreaOfInterest(&imageInput, readOperation, output) ) {
+ return true;
+ }
+ return false;
+}
+
+void *TonemapOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ BLI_mutex_lock(getMutex());
+ if (this->cachedInstance == NULL) {
+ MemoryBuffer *tile = (MemoryBuffer*)imageReader->initializeTileData(rect, memoryBuffers);
+ AvgLogLum *data = new AvgLogLum();
+
+ float * buffer = tile->getBuffer();
+
+ float lsum = 0;
+ int p = tile->getWidth() * tile->getHeight();
+ float *bc = buffer;
+ float avl, maxl = -1e10f, minl = 1e10f;
+ const float sc = 1.f/(p);
+ float Lav = 0.f;
+ float cav[4] = {0.0f,0.0f,0.0f,0.0f};
+ while (p--) {
+ float L = 0.212671f*bc[0] + 0.71516f*bc[1] + 0.072169f*bc[2];
+ Lav += L;
+ cav[0] += bc[0];
+ cav[1] += bc[1];
+ cav[2] += bc[2];
+ lsum += (float)log((double)MAX2(L, 0.0) + 1e-5);
+ maxl = (L > maxl) ? L : maxl;
+ minl = (L < minl) ? L : minl;
+ bc+=4;
+ }
+ data->lav = Lav * sc;
+ data->cav[0] = cav[0]*sc;
+ data->cav[1] = cav[1]*sc;
+ data->cav[2] = cav[2]*sc;
+ maxl = log((double)maxl + 1e-5); minl = log((double)minl + 1e-5f); avl = lsum*sc;
+ data->auto_key = (maxl > minl) ? ((maxl - avl) / (maxl - minl)) : 1.f;
+ float al = exp((double)avl);
+ data->al = (al == 0.f) ? 0.f : (this->data->key / al);
+ data->igm = (this->data->gamma==0.f) ? 1 : (1.f / this->data->gamma);
+ this->cachedInstance = data;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->cachedInstance;
+}
+
+void TonemapOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+{
+}
diff --git a/source/blender/compositor/operations/COM_TonemapOperation.h b/source/blender/compositor/operations/COM_TonemapOperation.h
new file mode 100644
index 00000000000..e7ea4f039f2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TonemapOperation.h
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_TonemapOperation_h
+#define _COM_TonemapOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief temporarily storage during execution of Tonemap
+ * @ingroup operation
+ */
+typedef struct AvgLogLum {
+ float al;
+ float auto_key;
+ float lav;
+ float cav[4];
+ float igm;
+} AvgLogLum;
+
+/**
+ * @brief base class of tonemap, implementing the simple tonemap
+ * @ingroup operation
+ */
+class TonemapOperation : public NodeOperation {
+protected:
+ /**
+ * @brief Cached reference to the reader
+ */
+ SocketReader * imageReader;
+
+ /**
+ * @brief settings of the Tonemap
+ */
+ NodeTonemap * data;
+
+ /**
+ * @brief temporarily cache of the execution storage
+ */
+ AvgLogLum * cachedInstance;
+
+public:
+ TonemapOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setData(NodeTonemap *data) {this->data = data;}
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+
+};
+
+/**
+ * @brief class of tonemap, implementing the photoreceptor tonemap
+ * most parts have already been done in TonemapOperation
+ * @ingroup operation
+ */
+
+class PhotoreceptorTonemapOperation : public TonemapOperation {
+public:
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void * data);
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_TranslateOperation.cpp b/source/blender/compositor/operations/COM_TranslateOperation.cpp
new file mode 100644
index 00000000000..6d2fdfc11d0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TranslateOperation.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_TranslateOperation.h"
+
+TranslateOperation::TranslateOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->inputOperation = NULL;
+ this->inputXOperation = NULL;
+ this->inputYOperation = NULL;
+}
+void TranslateOperation::initExecution()
+{
+ this->inputOperation = this->getInputSocketReader(0);
+ this->inputXOperation = this->getInputSocketReader(1);
+ this->inputYOperation = this->getInputSocketReader(2);
+
+ float tempDelta[4];
+ this->inputXOperation->read(tempDelta, 0, 0, COM_PS_NEAREST, NULL);
+ this->deltaX = tempDelta[0];
+ this->inputYOperation->read(tempDelta, 0, 0, COM_PS_NEAREST, NULL);
+ this->deltaY = tempDelta[0];
+}
+
+void TranslateOperation::deinitExecution()
+{
+ this->inputOperation = NULL;
+ this->inputXOperation = NULL;
+ this->inputYOperation = NULL;
+}
+
+
+void TranslateOperation::executePixel(float *color,float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ this->inputOperation->read(color, x-this->getDeltaX(), y-this->getDeltaY(), sampler, inputBuffers);
+}
+
+bool TranslateOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ newInput.xmax = input->xmax - this->getDeltaX();
+ newInput.xmin = input->xmin - this->getDeltaX();
+ newInput.ymax = input->ymax - this->getDeltaY();
+ newInput.ymin = input->ymin - this->getDeltaY();
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_TranslateOperation.h b/source/blender/compositor/operations/COM_TranslateOperation.h
new file mode 100644
index 00000000000..eab3391041e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TranslateOperation.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_TranslateOperation_h_
+#define _COM_TranslateOperation_h_
+
+#include "COM_NodeOperation.h"
+
+class TranslateOperation: public NodeOperation {
+private:
+ SocketReader *inputOperation;
+ SocketReader*inputXOperation;
+ SocketReader*inputYOperation;
+ float deltaX;
+ float deltaY;
+public:
+ TranslateOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ void initExecution();
+ void deinitExecution();
+
+ float getDeltaX() {return this->deltaX;}
+ float getDeltaY() {return this->deltaY;}
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
new file mode 100644
index 00000000000..f14de097dfd
--- /dev/null
+++ b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_VariableSizeBokehBlurOperation.h"
+#include "BLI_math.h"
+
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+VariableSizeBokehBlurOperation::VariableSizeBokehBlurOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE); // do not resize the bokeh image.
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+
+ this->inputProgram = NULL;
+ this->inputBokehProgram = NULL;
+ this->inputSizeProgram = NULL;
+ this->maxBlur = 32.0f;
+ this->threshold = 0.0f;
+}
+
+
+void VariableSizeBokehBlurOperation::initExecution()
+{
+ this->inputProgram = getInputSocketReader(0);
+ this->inputBokehProgram = getInputSocketReader(1);
+ this->inputSizeProgram = getInputSocketReader(2);
+ QualityStepHelper::initExecution(COM_QH_INCREASE);
+}
+
+void VariableSizeBokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float tempColor[4];
+ float readColor[4];
+ float bokeh[4];
+ tempColor[0] = 0;
+ tempColor[1] = 0;
+ tempColor[2] = 0;
+ tempColor[3] = 0;
+ float tempSize[4];
+ float overallmultiplyerr = 0;
+ float overallmultiplyerg = 0;
+ float overallmultiplyerb = 0;
+
+ int miny = y - maxBlur;
+ int maxy = y + maxBlur;
+ int minx = x - maxBlur;
+ int maxx = x + maxBlur;
+ {
+ inputProgram->read(readColor, x, y, COM_PS_NEAREST, inputBuffers);
+ tempColor[0] += readColor[0];
+ tempColor[1] += readColor[1];
+ tempColor[2] += readColor[2];
+ overallmultiplyerr += 1;
+ overallmultiplyerg += 1;
+ overallmultiplyerb += 1;
+
+ for (int ny = miny ; ny < maxy ; ny += QualityStepHelper::getStep()) {
+ for (int nx = minx ; nx < maxx ; nx += QualityStepHelper::getStep()) {
+ if (nx >=0 && nx < this->getWidth() && ny >= 0 && ny < getHeight()) {
+ inputSizeProgram->read(tempSize, nx, ny, COM_PS_NEAREST, inputBuffers);
+ float size = tempSize[0];
+ size += this->threshold;
+ float dx = nx - x;
+ float dy = ny - y;
+ if (nx == x && ny == y) {
+ /* pass */
+ }
+ else if (size>= fabs(dx) && size >= fabs(dy)) {
+ float u = 256 + dx*256/size;
+ float v = 256 + dy*256/size;
+ inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST, inputBuffers);
+ inputProgram->read(readColor, nx, ny, COM_PS_NEAREST, inputBuffers);
+ tempColor[0] += bokeh[0] * readColor[0];
+ tempColor[1] += bokeh[1] * readColor[1];
+ tempColor[2] += bokeh[2]* readColor[2];
+ overallmultiplyerr += bokeh[0];
+ overallmultiplyerg += bokeh[1];
+ overallmultiplyerb += bokeh[2];
+ }
+ }
+ }
+ }
+ color[0] = tempColor[0]*(1.0/overallmultiplyerr);
+ color[1] = tempColor[1]*(1.0/overallmultiplyerg);
+ color[2] = tempColor[2]*(1.0/overallmultiplyerb);
+ color[3] = 1.0f;
+ }
+
+}
+
+void VariableSizeBokehBlurOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+ this->inputBokehProgram = NULL;
+ this->inputSizeProgram = NULL;
+}
+
+bool VariableSizeBokehBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ rcti bokehInput;
+
+ newInput.xmax = input->xmax + maxBlur+2;
+ newInput.xmin = input->xmin - maxBlur+2;
+ newInput.ymax = input->ymax + maxBlur-2;
+ newInput.ymin = input->ymin - maxBlur-2;
+ bokehInput.xmax = 512;
+ bokehInput.xmin = 0;
+ bokehInput.ymax = 512;
+ bokehInput.ymin = 0;
+
+ NodeOperation *operation = getInputOperation(2);
+ if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
+ return true;
+ }
+ operation = getInputOperation(1);
+ if (operation->determineDependingAreaOfInterest(&bokehInput, readOperation, output) ) {
+ return true;
+ }
+ operation = getInputOperation(0);
+ if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
+ return true;
+ }
+ return false;
+}
diff --git a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
new file mode 100644
index 00000000000..9c2c4b4bf68
--- /dev/null
+++ b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_BokehVariableSizeBokehBlurOperation_h
+#define _COM_VariableSizeBokehBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_QualityStepHelper.h"
+
+class VariableSizeBokehBlurOperation : public NodeOperation, public QualityStepHelper {
+private:
+ int maxBlur;
+ float threshold;
+ SocketReader *inputProgram;
+ SocketReader *inputBokehProgram;
+ SocketReader *inputSizeProgram;
+
+public:
+ VariableSizeBokehBlurOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+ void setMaxBlur(int maxRadius) {this->maxBlur = maxRadius;}
+
+ void setThreshold(float threshold) {this->threshold = threshold;}
+
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_VectorBlurOperation.cpp b/source/blender/compositor/operations/COM_VectorBlurOperation.cpp
new file mode 100644
index 00000000000..e6305dc26a2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_VectorBlurOperation.cpp
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_VectorBlurOperation.h"
+#include "BLI_math.h"
+
+// use the implementation of blender internal renderer to calculate the vector blur.
+extern "C" {
+ #include "RE_pipeline.h"
+}
+
+VectorBlurOperation::VectorBlurOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE); // ZBUF
+ this->addInputSocket(COM_DT_COLOR); //SPEED
+ this->addOutputSocket(COM_DT_COLOR);
+ this->settings = NULL;
+ this->cachedInstance = NULL;
+ this->inputImageProgram = NULL;
+ this->inputSpeedProgram = NULL;
+ this->inputZProgram = NULL;
+ setComplex(true);
+}
+void VectorBlurOperation::initExecution()
+{
+ initMutex();
+ this->inputImageProgram = getInputSocketReader(0);
+ this->inputZProgram = getInputSocketReader(1);
+ this->inputSpeedProgram = getInputSocketReader(2);
+ this->cachedInstance = NULL;
+ QualityStepHelper::initExecution(COM_QH_INCREASE);
+
+}
+
+void VectorBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+{
+ float *buffer = (float*) data;
+ int index = (y*this->getWidth() + x) * COM_NUMBER_OF_CHANNELS;
+ color[0] = buffer[index];
+ color[1] = buffer[index+1];
+ color[2] = buffer[index+2];
+ color[3] = buffer[index+3];
+}
+
+void VectorBlurOperation::deinitExecution()
+{
+ deinitMutex();
+ this->inputImageProgram = NULL;
+ this->inputSpeedProgram = NULL;
+ this->inputZProgram = NULL;
+ if (this->cachedInstance) {
+ delete cachedInstance;
+ this->cachedInstance = NULL;
+ }
+}
+void *VectorBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+{
+ if (this->cachedInstance) return this->cachedInstance;
+
+ BLI_mutex_lock(getMutex());
+ if (this->cachedInstance == NULL) {
+ MemoryBuffer *tile = (MemoryBuffer*)inputImageProgram->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *speed = (MemoryBuffer*)inputSpeedProgram->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *z = (MemoryBuffer*)inputZProgram->initializeTileData(rect, memoryBuffers);
+ float *data = new float[this->getWidth()*this->getHeight()*COM_NUMBER_OF_CHANNELS];
+ memcpy(data, tile->getBuffer(),this->getWidth()*this->getHeight()*COM_NUMBER_OF_CHANNELS*sizeof(float));
+ this->generateVectorBlur(data, tile, speed, z);
+ this->cachedInstance = data;
+ }
+ BLI_mutex_unlock(getMutex());
+ return this->cachedInstance;
+}
+
+bool VectorBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this->cachedInstance == NULL) {
+ rcti newInput;
+ newInput.xmax = this->getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = this->getHeight();
+ newInput.ymin = 0;
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+ else {
+ return false;
+ }
+}
+
+void VectorBlurOperation::generateVectorBlur(float *data, MemoryBuffer *inputImage, MemoryBuffer *inputSpeed, MemoryBuffer *inputZ)
+{
+ float *zbuf = inputZ->convertToValueBuffer();
+ NodeBlurData blurdata;
+ blurdata.samples = this->settings->samples/QualityStepHelper::getStep();
+ blurdata.maxspeed = this->settings->maxspeed;
+ blurdata.minspeed = this->settings->minspeed;
+ blurdata.curved = this->settings->curved;
+ blurdata.fac = this->settings->fac;
+ RE_zbuf_accumulate_vecblur(&blurdata, this->getWidth(), this->getHeight(), data, inputImage->getBuffer(), inputSpeed->getBuffer(), zbuf);
+ delete zbuf;
+ return;
+}
diff --git a/source/blender/compositor/operations/COM_VectorBlurOperation.h b/source/blender/compositor/operations/COM_VectorBlurOperation.h
new file mode 100644
index 00000000000..2c45628726d
--- /dev/null
+++ b/source/blender/compositor/operations/COM_VectorBlurOperation.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_VectorBlurOperation_h
+#define _COM_VectorBlurOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_node_types.h"
+#include "COM_QualityStepHelper.h"
+
+class VectorBlurOperation : public NodeOperation, public QualityStepHelper {
+private:
+ /**
+ * @brief Cached reference to the inputProgram
+ */
+ SocketReader * inputImageProgram;
+ SocketReader * inputSpeedProgram;
+ SocketReader * inputZProgram;
+
+ /**
+ * @brief settings of the glare node.
+ */
+ NodeBlurData * settings;
+
+ float *cachedInstance;
+
+public:
+ VectorBlurOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+
+ void setVectorBlurSettings(NodeBlurData * settings) {this->settings = settings;}
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+protected:
+
+ void generateVectorBlur(float *data, MemoryBuffer *inputImage, MemoryBuffer *inputSpeed, MemoryBuffer *inputZ);
+
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_VectorCurveOperation.cpp b/source/blender/compositor/operations/COM_VectorCurveOperation.cpp
new file mode 100644
index 00000000000..e9045b126e2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_VectorCurveOperation.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_VectorCurveOperation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ #include "BKE_colortools.h"
+#ifdef __cplusplus
+}
+#endif
+
+VectorCurveOperation::VectorCurveOperation(): CurveBaseOperation()
+{
+ this->addInputSocket(COM_DT_VECTOR);
+ this->addOutputSocket(COM_DT_VECTOR);
+
+ this->inputProgram = NULL;
+}
+void VectorCurveOperation::initExecution()
+{
+ CurveBaseOperation::initExecution();
+ this->inputProgram = this->getInputSocketReader(0);
+}
+
+void VectorCurveOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float input[4];
+
+
+ this->inputProgram->read(input, x, y, sampler, inputBuffers);
+
+ curvemapping_evaluate_premulRGBF(this->curveMapping, output, input);
+ output[3] = input[3];
+}
+
+void VectorCurveOperation::deinitExecution()
+{
+ this->inputProgram = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_VectorCurveOperation.h b/source/blender/compositor/operations/COM_VectorCurveOperation.h
new file mode 100644
index 00000000000..759e265220f
--- /dev/null
+++ b/source/blender/compositor/operations/COM_VectorCurveOperation.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_VectorCurveOperation_h
+#define _COM_VectorCurveOperation_h
+#include "COM_NodeOperation.h"
+#include "COM_CurveBaseOperation.h"
+
+class VectorCurveOperation : public CurveBaseOperation {
+private:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader * inputProgram;
+public:
+ VectorCurveOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *Vector, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp b/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
new file mode 100644
index 00000000000..44b4c26fb64
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ViewerBaseOperation.h"
+#include "COM_SocketConnection.h"
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "BKE_image.h"
+#include "WM_api.h"
+#include "WM_types.h"
+#include "PIL_time.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_color.h"
+
+extern "C" {
+ #include "MEM_guardedalloc.h"
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+
+ViewerBaseOperation::ViewerBaseOperation() : NodeOperation()
+{
+ this->setImage(NULL);
+ this->setImageUser(NULL);
+ this->outputBuffer = NULL;
+ this->outputBufferDisplay = NULL;
+ this->active = false;
+ this->doColorManagement = true;
+}
+
+void ViewerBaseOperation::initExecution()
+{
+ // When initializing the tree during initial load the width and height can be zero.
+ initImage();
+}
+
+void ViewerBaseOperation::initImage()
+{
+ Image *anImage = this->image;
+ ImBuf *ibuf = BKE_image_acquire_ibuf(anImage, this->imageUser, &this->lock);
+
+ if (!ibuf) return;
+ if (ibuf->x != (int)getWidth() || ibuf->y != (int)getHeight()) {
+ imb_freerectImBuf(ibuf);
+ imb_freerectfloatImBuf(ibuf);
+ IMB_freezbuffloatImBuf(ibuf);
+ ibuf->x = getWidth();
+ ibuf->y = getHeight();
+ imb_addrectImBuf(ibuf);
+ imb_addrectfloatImBuf(ibuf);
+ anImage->ok = IMA_OK_LOADED;
+ }
+
+ /* now we combine the input with ibuf */
+ this->outputBuffer = ibuf->rect_float;
+ this->outputBufferDisplay = (unsigned char*)ibuf->rect;
+
+ BKE_image_release_ibuf(this->image, this->lock);
+}
+void ViewerBaseOperation:: updateImage(rcti *rect)
+{
+ /// @todo: introduce new event to update smaller area
+ WM_main_add_notifier(NC_WINDOW|ND_DRAW, NULL);
+}
+
+void ViewerBaseOperation::deinitExecution()
+{
+ this->outputBuffer = NULL;
+}
+
+const int ViewerBaseOperation::getRenderPriority() const
+{
+ if (this->isActiveViewerOutput()) {
+ return 8;
+ }
+ else {
+ return 0;
+ }
+}
diff --git a/source/blender/compositor/operations/COM_ViewerBaseOperation.h b/source/blender/compositor/operations/COM_ViewerBaseOperation.h
new file mode 100644
index 00000000000..58101911550
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ViewerBaseOperation.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ViewerBaseOperation_h
+#define _COM_ViewerBaseOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_image_types.h"
+#include "BLI_rect.h"
+
+class ViewerBaseOperation : public NodeOperation {
+protected:
+ float *outputBuffer;
+ unsigned char *outputBufferDisplay;
+ Image * image;
+ ImageUser * imageUser;
+ void *lock;
+ bool active;
+ const bNodeTree *tree;
+ float centerX;
+ float centerY;
+ OrderOfChunks chunkOrder;
+ bool doColorManagement;
+ bool doColorPredivide;
+
+public:
+ bool isOutputOperation(bool rendering) const {return true;}
+ void initExecution();
+ void deinitExecution();
+ void setImage(Image *image) {this->image = image;}
+ void setImageUser(ImageUser *imageUser) {this->imageUser = imageUser;}
+ const bool isActiveViewerOutput() const {return active;}
+ void setActive(bool active) {this->active = active;}
+ void setbNodeTree(const bNodeTree *tree) {this->tree = tree;}
+ void setCenterX(float centerX) {this->centerX = centerX;}
+ void setCenterY(float centerY) {this->centerY = centerY;}
+ void setChunkOrder(OrderOfChunks tileOrder) {this->chunkOrder = tileOrder;}
+ float getCenterX() { return this->centerX; }
+ float getCenterY() { return this->centerY; }
+ OrderOfChunks getChunkOrder() { return this->chunkOrder; }
+ const int getRenderPriority() const;
+ void setColorManagement(bool doColorManagement) {this->doColorManagement = doColorManagement;}
+ void setColorPredivide(bool doColorPredivide) {this->doColorPredivide = doColorPredivide;}
+ bool isViewerOperation() {return true;}
+
+protected:
+ ViewerBaseOperation();
+ void updateImage(rcti*rect);
+
+private:
+ void initImage();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ViewerOperation.cpp b/source/blender/compositor/operations/COM_ViewerOperation.cpp
new file mode 100644
index 00000000000..22e6511fbe7
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ViewerOperation.cpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ViewerOperation.h"
+#include "COM_SocketConnection.h"
+#include "BLI_listbase.h"
+#include "DNA_scene_types.h"
+#include "BKE_image.h"
+#include "WM_api.h"
+#include "WM_types.h"
+#include "PIL_time.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_color.h"
+#include "BLI_math_vector.h"
+
+extern "C" {
+ #include "MEM_guardedalloc.h"
+ #include "IMB_imbuf.h"
+ #include "IMB_imbuf_types.h"
+}
+
+
+ViewerOperation::ViewerOperation() : ViewerBaseOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+
+ this->imageInput = NULL;
+ this->alphaInput = NULL;
+}
+
+void ViewerOperation::initExecution()
+{
+ // When initializing the tree during initial load the width and height can be zero.
+ this->imageInput = getInputSocketReader(0);
+ this->alphaInput = getInputSocketReader(1);
+ ViewerBaseOperation::initExecution();
+}
+
+void ViewerOperation::deinitExecution()
+{
+ this->imageInput = NULL;
+ this->alphaInput = NULL;
+ ViewerBaseOperation::deinitExecution();
+}
+
+
+void ViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers)
+{
+ float *buffer = this->outputBuffer;
+ unsigned char *bufferDisplay = this->outputBufferDisplay;
+ if (!buffer) return;
+ const int x1 = rect->xmin;
+ const int y1 = rect->ymin;
+ const int x2 = rect->xmax;
+ const int y2 = rect->ymax;
+ const int offsetadd = (this->getWidth()-(x2-x1))*4;
+ int offset = (y1*this->getWidth() + x1 ) * 4;
+ float alpha[4], srgb[4];
+ int x;
+ int y;
+ bool breaked = false;
+
+ for (y = y1 ; y < y2 && (!breaked) ; y++) {
+ for (x = x1 ; x < x2; x++) {
+ imageInput->read(&(buffer[offset]), x, y, COM_PS_NEAREST, memoryBuffers);
+ if (alphaInput != NULL) {
+ alphaInput->read(alpha, x, y, COM_PS_NEAREST, memoryBuffers);
+ buffer[offset+3] = alpha[0];
+ }
+ /// @todo: linear conversion only when scene color management is selected, also check predivide.
+ if (this->doColorManagement) {
+ if (this->doColorPredivide) {
+ linearrgb_to_srgb_predivide_v4(srgb, buffer+offset);
+ }
+ else {
+ linearrgb_to_srgb_v4(srgb, buffer+offset);
+ }
+ }
+ else {
+ copy_v4_v4(srgb, buffer+offset);
+ }
+
+ F4TOCHAR4(srgb, bufferDisplay+offset);
+
+ offset +=4;
+ }
+ if (tree->test_break && tree->test_break(tree->tbh)) {
+ breaked = true;
+ }
+
+ offset += offsetadd;
+ }
+ updateImage(rect);
+}
diff --git a/source/blender/compositor/operations/COM_ViewerOperation.h b/source/blender/compositor/operations/COM_ViewerOperation.h
new file mode 100644
index 00000000000..4ffae31c131
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ViewerOperation.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ViewerOperation_h
+#define _COM_ViewerOperation_h
+#include "COM_NodeOperation.h"
+#include "DNA_image_types.h"
+#include "BLI_rect.h"
+#include "COM_ViewerBaseOperation.h"
+
+class ViewerOperation : public ViewerBaseOperation {
+private:
+ SocketReader *imageInput;
+ SocketReader *alphaInput;
+
+public:
+ ViewerOperation();
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers);
+ void initExecution();
+ void deinitExecution();
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_WriteBufferOperation.cpp b/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
new file mode 100644
index 00000000000..3af914f8d0e
--- /dev/null
+++ b/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
@@ -0,0 +1,169 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_WriteBufferOperation.h"
+#include "COM_defines.h"
+#include "COM_MemoryManager.h"
+#include <stdio.h>
+
+/// @TODO: writebuffers don't have an actual data type set.
+WriteBufferOperation::WriteBufferOperation() :NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->memoryProxy = new MemoryProxy();
+ this->memoryProxy->setWriteBufferOperation(this);
+ this->memoryProxy->setExecutor(NULL);
+ this->tree = NULL;
+}
+WriteBufferOperation::~WriteBufferOperation()
+{
+ if (this->memoryProxy) {
+ delete this->memoryProxy;
+ this->memoryProxy = NULL;
+ }
+}
+
+void WriteBufferOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ input->read(color, x, y, sampler, inputBuffers);
+}
+void WriteBufferOperation::initExecution()
+{
+ this->input = this->getInputOperation(0);
+ MemoryManager::addMemoryProxy(this->memoryProxy);
+}
+void WriteBufferOperation::deinitExecution()
+{
+ this->input = NULL;
+}
+
+
+void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers)
+{
+ MemoryBuffer *memoryBuffer = MemoryManager::getMemoryBuffer(this->getMemoryProxy(), tileNumber);
+ float *buffer = memoryBuffer->getBuffer();
+ if (this->input->isComplex()) {
+ void *data = this->input->initializeTileData(rect, memoryBuffers);
+ int x1 = rect->xmin;
+ int y1 = rect->ymin;
+ int x2 = rect->xmax;
+ int y2 = rect->ymax;
+ int offset4 = 0;
+ int x;
+ int y;
+ bool breaked = false;
+ for (y = y1 ; y < y2 && (!breaked) ; y++) {
+ for (x = x1 ; x < x2; x++) {
+ input->read(&(buffer[offset4]), x, y, memoryBuffers, data);
+ offset4 +=4;
+
+ }
+ if (tree->test_break && tree->test_break(tree->tbh)) {
+ breaked = true;
+ }
+
+ }
+ if (data) {
+ this->input->deinitializeTileData(rect, memoryBuffers, data);
+ data = NULL;
+ }
+ }
+ else {
+ int x1 = rect->xmin;
+ int y1 = rect->ymin;
+ int x2 = rect->xmax;
+ int y2 = rect->ymax;
+ int offset4 = 0;
+ int x;
+ int y;
+ bool breaked = false;
+ for (y = y1 ; y < y2 && (!breaked) ; y++) {
+ for (x = x1 ; x < x2 ; x++) {
+ input->read(&(buffer[offset4]), x, y, COM_PS_NEAREST, memoryBuffers);
+ offset4 +=4;
+ }
+ if (tree->test_break && tree->test_break(tree->tbh)) {
+ breaked = true;
+ }
+ }
+ }
+ memoryBuffer->setCreatedState();
+}
+
+void WriteBufferOperation::executeOpenCLRegion(cl_context context, cl_program program, cl_command_queue queue, rcti *rect, unsigned int chunkNumber, MemoryBuffer** inputMemoryBuffers)
+{
+ MemoryBuffer *outputMemoryBuffer = MemoryManager::getMemoryBuffer(this->getMemoryProxy(), chunkNumber);
+ float *outputFloatBuffer = outputMemoryBuffer->getBuffer();
+ cl_int error;
+ /*
+ * 1. create cl_mem from outputbuffer
+ * 2. call NodeOperation (input) executeOpenCLChunk(.....)
+ * 3. schedule readback from opencl to main device (outputbuffer)
+ * 4. schedule native callback
+ *
+ * note: list of cl_mem will be filled by 2, and needs to be cleaned up by 4
+ */
+ // STEP 1
+ const unsigned int outputBufferWidth = outputMemoryBuffer->getWidth();
+ const unsigned int outputBufferHeight = outputMemoryBuffer->getHeight();
+
+ const cl_image_format imageFormat = {
+ CL_RGBA,
+ CL_FLOAT
+ };
+
+ cl_mem clOutputBuffer = clCreateImage2D(context, CL_MEM_WRITE_ONLY|CL_MEM_USE_HOST_PTR, &imageFormat, outputBufferWidth, outputBufferHeight, 0, outputFloatBuffer, &error);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+
+ // STEP 2
+ list<cl_mem> * clMemToCleanUp = new list<cl_mem>();
+ clMemToCleanUp->push_back(clOutputBuffer);
+ list<cl_kernel> *clKernelsToCleanUp = new list<cl_kernel>();
+
+ this->input->executeOpenCL(context, program, queue, outputMemoryBuffer, clOutputBuffer, inputMemoryBuffers, clMemToCleanUp, clKernelsToCleanUp);
+
+ // STEP 3
+
+ size_t origin[3] = {0,0,0};
+ size_t region[3] = {outputBufferWidth,outputBufferHeight,1};
+
+ error = clEnqueueBarrier(queue);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ error = clEnqueueReadImage(queue, clOutputBuffer, CL_TRUE, origin, region, 0, 0, outputFloatBuffer, 0, NULL, NULL);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ // STEP 4
+
+ while (clMemToCleanUp->size()>0) {
+ cl_mem mem = clMemToCleanUp->front();
+ error = clReleaseMemObject(mem);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ clMemToCleanUp->pop_front();
+ }
+
+ while (clKernelsToCleanUp->size()>0) {
+ cl_kernel kernel = clKernelsToCleanUp->front();
+ error = clReleaseKernel(kernel);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ clKernelsToCleanUp->pop_front();
+ }
+ delete clKernelsToCleanUp;
+}
diff --git a/source/blender/compositor/operations/COM_WriteBufferOperation.h b/source/blender/compositor/operations/COM_WriteBufferOperation.h
new file mode 100644
index 00000000000..b17122d68f0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_WriteBufferOperation.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_WriteBufferOperation_h_
+#define _COM_WriteBufferOperation_h_
+
+#include "COM_NodeOperation.h"
+#include "COM_MemoryProxy.h"
+#include "COM_SocketReader.h"
+/**
+ * @brief Operation to write to a tile
+ * @ingroup Operation
+ */
+class WriteBufferOperation: public NodeOperation {
+ MemoryProxy *memoryProxy;
+ NodeOperation *input;
+ const bNodeTree * tree;
+public:
+ WriteBufferOperation();
+ ~WriteBufferOperation();
+ int isBufferOperation() {return true;}
+ MemoryProxy *getMemoryProxy() {return this->memoryProxy;}
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ const bool isWriteBufferOperation() const {return true;}
+
+ void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer** memoryBuffers);
+ void initExecution();
+ void deinitExecution();
+ void setbNodeTree(const bNodeTree *tree) {this->tree = tree;}
+ void executeOpenCLRegion(cl_context context, cl_program program, cl_command_queue queue, rcti *rect, unsigned int chunkNumber, MemoryBuffer** memoryBuffers);
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_ZCombineOperation.cpp b/source/blender/compositor/operations/COM_ZCombineOperation.cpp
new file mode 100644
index 00000000000..7f32bac2e64
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ZCombineOperation.cpp
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_ZCombineOperation.h"
+#include "BLI_utildefines.h"
+
+ZCombineOperation::ZCombineOperation(): NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+
+ this->image1Reader = NULL;
+ this->depth1Reader = NULL;
+ this->image2Reader = NULL;
+ this->depth2Reader = NULL;
+
+}
+
+void ZCombineOperation::initExecution()
+{
+ this->image1Reader = this->getInputSocketReader(0);
+ this->depth1Reader = this->getInputSocketReader(1);
+ this->image2Reader = this->getInputSocketReader(2);
+ this->depth2Reader = this->getInputSocketReader(3);
+}
+
+void ZCombineOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float depth1[4];
+ float depth2[4];
+
+ this->depth1Reader->read(depth1, x, y, sampler, inputBuffers);
+ this->depth2Reader->read(depth2, x, y, sampler, inputBuffers);
+ if (depth1[0]<depth2[0]) {
+ this->image1Reader->read(color, x, y, sampler, inputBuffers);
+ }
+ else {
+ this->image2Reader->read(color, x, y, sampler, inputBuffers);
+ }
+}
+void ZCombineAlphaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+{
+ float depth1[4];
+ float depth2[4];
+ float color1[4];
+ float color2[4];
+
+ this->depth1Reader->read(depth1, x, y, sampler, inputBuffers);
+ this->depth2Reader->read(depth2, x, y, sampler, inputBuffers);
+ if (depth1[0]<depth2[0]) {
+ this->image1Reader->read(color1, x, y, sampler, inputBuffers);
+ this->image2Reader->read(color2, x, y, sampler, inputBuffers);
+ }
+ else {
+ this->image1Reader->read(color2, x, y, sampler, inputBuffers);
+ this->image2Reader->read(color1, x, y, sampler, inputBuffers);
+ }
+ float fac = color1[3];
+ float ifac = 1.0f-fac;
+ color[0] = color1[0]+ifac*color2[0];
+ color[1] = color1[1]+ifac*color2[1];
+ color[2] = color1[2]+ifac*color2[2];
+ color[3] = MAX2(color1[3], color2[3]);
+}
+
+void ZCombineOperation::deinitExecution()
+{
+ this->image1Reader = NULL;
+ this->depth1Reader = NULL;
+ this->image2Reader = NULL;
+ this->depth2Reader = NULL;
+}
diff --git a/source/blender/compositor/operations/COM_ZCombineOperation.h b/source/blender/compositor/operations/COM_ZCombineOperation.h
new file mode 100644
index 00000000000..f9de916fce0
--- /dev/null
+++ b/source/blender/compositor/operations/COM_ZCombineOperation.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_ZCombineOperation_h
+#define _COM_ZCombineOperation_h
+#include "COM_MixBaseOperation.h"
+
+
+/**
+ * this program converts an input colour to an output value.
+ * it assumes we are in sRGB colour space.
+ */
+class ZCombineOperation : public NodeOperation {
+protected:
+ SocketReader *image1Reader;
+ SocketReader *depth1Reader;
+ SocketReader *image2Reader;
+ SocketReader *depth2Reader;
+public:
+ /**
+ * Default constructor
+ */
+ ZCombineOperation();
+
+ void initExecution();
+ void deinitExecution();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+class ZCombineAlphaOperation: public ZCombineOperation {
+ void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+};
+
+#endif
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index 2e683d4d57b..c4fca2d4ea5 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -146,18 +146,39 @@ static void acf_generic_dataexpand_backdrop(bAnimContext *ac, bAnimListElem *ale
glRectf(offset, yminc, v2d->cur.xmax + EXTRA_SCROLL_PAD, ymaxc);
}
+/* helper method to test if group colors should be drawn */
+static short acf_show_channel_colors(bAnimContext *ac)
+{
+ short showGroupColors = 0;
+
+ if (ac->sl) {
+ switch (ac->spacetype) {
+ case SPACE_ACTION:
+ {
+ SpaceAction *saction = (SpaceAction *)ac->sl;
+ showGroupColors = !(saction->flag & SACTION_NODRAWGCOLORS);
+ }
+ break;
+ case SPACE_IPO:
+ {
+ SpaceIpo *sipo = (SpaceIpo *)ac->sl;
+ showGroupColors = !(sipo->flag & SIPO_NODRAWGCOLORS);
+ }
+ break;
+ }
+ }
+
+ return showGroupColors;
+}
+
/* get backdrop color for generic channels */
static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, float r_color[3])
{
bAnimChannelType *acf = ANIM_channel_get_typeinfo(ale);
- SpaceAction *saction = NULL;
bActionGroup *grp = NULL;
short indent = (acf->get_indent_level) ? acf->get_indent_level(ac, ale) : 0;
+ short showGroupColors = acf_show_channel_colors(ac);
- /* get context info needed... */
- if ((ac->sl) && (ac->spacetype == SPACE_ACTION))
- saction = (SpaceAction *)ac->sl;
-
if (ale->type == ANIMTYPE_FCURVE) {
FCurve *fcu = (FCurve *)ale->data;
grp = fcu->grp;
@@ -167,9 +188,7 @@ static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, floa
* - use 3 shades of color group/standard color for 3 indention level
* - only use group colors if allowed to, and if actually feasible
*/
- if ( (saction && !(saction->flag & SACTION_NODRAWGCOLORS)) &&
- ((grp) && (grp->customCol)) )
- {
+ if (showGroupColors && (grp) && (grp->customCol)) {
unsigned char cp[3];
if (indent == 2) {
@@ -730,13 +749,30 @@ static bAnimChannelType ACF_OBJECT =
/* Group ------------------------------------------- */
/* get backdrop color for group widget */
-static void acf_group_color(bAnimContext *UNUSED(ac), bAnimListElem *ale, float r_color[3])
+static void acf_group_color(bAnimContext *ac, bAnimListElem *ale, float r_color[3])
{
- /* highlight only for action group channels */
- if (ale->flag & AGRP_ACTIVE)
- UI_GetThemeColorShade3fv(TH_GROUP_ACTIVE, 10, r_color);
- else
- UI_GetThemeColorShade3fv(TH_GROUP, 20, r_color);
+ bActionGroup *agrp = (bActionGroup *)ale->data;
+ short showGroupColors = acf_show_channel_colors(ac);
+
+ if (showGroupColors && agrp->customCol) {
+ unsigned char cp[3];
+
+ /* highlight only for active */
+ if (ale->flag & AGRP_ACTIVE)
+ copy_v3_v3_char((char *)cp, agrp->cs.active);
+ else
+ copy_v3_v3_char((char *)cp, agrp->cs.solid);
+
+ /* copy the colors over, transforming from bytes to floats */
+ rgb_uchar_to_float(r_color, cp);
+ }
+ else {
+ /* highlight only for active */
+ if (ale->flag & AGRP_ACTIVE)
+ UI_GetThemeColorShade3fv(TH_GROUP_ACTIVE, 10, r_color);
+ else
+ UI_GetThemeColorShade3fv(TH_GROUP, 20, r_color);
+ }
}
/* backdrop for group widget */
@@ -2968,7 +3004,7 @@ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poi
Scene *scene = CTX_data_scene(C);
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
- short flag = 0, done = 0;
+ short flag = 0, done = FALSE;
float cfra;
/* get current frame */
@@ -3006,7 +3042,7 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi
Scene *scene = CTX_data_scene(C);
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
- short flag = 0, done = 0;
+ short flag = 0, done = FALSE;
float cfra;
/* get current frame */
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index df8c1d29079..159c4681951 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -840,7 +840,7 @@ static short rearrange_animchannel_islands(ListBase *list, AnimChanRearrangeFp r
{
ListBase islands = {NULL, NULL};
Link *channel, *chanNext = NULL;
- short done = 0;
+ short done = FALSE;
/* don't waste effort on an empty list */
if (list->first == NULL)
@@ -866,7 +866,7 @@ static short rearrange_animchannel_islands(ListBase *list, AnimChanRearrangeFp r
/* perform rearranging */
if (rearrange_func(&islands, island)) {
island->flag |= REORDER_ISLAND_MOVED;
- done = 1;
+ done = TRUE;
}
}
}
diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index 0514700e120..ddc4f4d943c 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -191,7 +191,7 @@ static void draw_cfra_number(Scene *scene, View2D *v2d, float cfra, short time)
*/
if (time)
ANIM_timecode_string_from_frame(&numstr[4], scene, 0, time, FRA2TIME(cfra));
- else
+ else
ANIM_timecode_string_from_frame(&numstr[4], scene, 1, time, cfra);
slen = (short)UI_GetStringWidth(numstr) - 1;
diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c
index 0cc92394a40..416df6bccba 100644
--- a/source/blender/editors/animation/drivers.c
+++ b/source/blender/editors/animation/drivers.c
@@ -141,7 +141,7 @@ short ANIM_add_driver(ReportList *reports, ID *id, const char rna_path[], int ar
PropertyRNA *prop;
FCurve *fcu;
int array_index_max;
- int done = 0;
+ int done = FALSE;
/* validate pointer first - exit if failure */
RNA_id_pointer_create(id, &id_ptr);
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c
index 7ce2988b067..4ccdc610cae 100644
--- a/source/blender/editors/armature/editarmature.c
+++ b/source/blender/editors/armature/editarmature.c
@@ -276,7 +276,7 @@ EditBone *make_boneList(ListBase *edbo, ListBase *bones, EditBone *parent, Bone
else {
/* if the bone is not selected, but connected to its parent
* copy the parents tip selection state */
- if (eBone->parent && (eBone->flag & BONE_CONNECTED)) {
+ if (eBone->parent && (eBone->flag & BONE_CONNECTED)) {
/* selecting with the mouse gives this behavior */
if (eBone->parent->flag & BONE_TIPSEL) {
eBone->flag |= BONE_ROOTSEL;
@@ -3325,9 +3325,9 @@ static int armature_extrude_exec(bContext *C, wmOperator *op)
for (ebone = arm->edbo->first; ((ebone) && (ebone != first)); ebone = ebone->next) {
if (EBONE_VISIBLE(arm, ebone)) {
/* we extrude per definition the tip */
- do_extrude = 0;
+ do_extrude = FALSE;
if (ebone->flag & (BONE_TIPSEL | BONE_SELECTED))
- do_extrude = 1;
+ do_extrude = TRUE;
else if (ebone->flag & BONE_ROOTSEL) {
/* but, a bone with parent deselected we do the root... */
if (ebone->parent && (ebone->parent->flag & BONE_TIPSEL)) ;
@@ -3361,7 +3361,7 @@ static int armature_extrude_exec(bContext *C, wmOperator *op)
totbone++;
newbone = MEM_callocN(sizeof(EditBone), "extrudebone");
- if (do_extrude == 1) {
+ if (do_extrude == TRUE) {
copy_v3_v3(newbone->head, ebone->tail);
copy_v3_v3(newbone->tail, newbone->head);
newbone->parent = ebone;
@@ -3653,7 +3653,7 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(op))
ebo->parent = child;
if ((child) && equals_v3v3(ebo->head, child->tail))
ebo->flag |= BONE_CONNECTED;
- else
+ else
ebo->flag &= ~BONE_CONNECTED;
/* get next bones
diff --git a/source/blender/editors/armature/editarmature_retarget.c b/source/blender/editors/armature/editarmature_retarget.c
index 80f8c61694c..d90bd96a6f1 100644
--- a/source/blender/editors/armature/editarmature_retarget.c
+++ b/source/blender/editors/armature/editarmature_retarget.c
@@ -733,7 +733,7 @@ static void RIG_reconnectControlBones(RigGraph *rg)
/* DO SOME MAGIC HERE */
for (pchan = rg->ob->pose->chanbase.first; pchan; pchan = pchan->next) {
- for (con = pchan->constraints.first; con; con = con->next) {
+ for (con = pchan->constraints.first; con; con = con->next) {
bConstraintTypeInfo *cti = constraint_get_typeinfo(con);
ListBase targets = {NULL, NULL};
bConstraintTarget *ct;
@@ -858,7 +858,7 @@ static void RIG_reconnectControlBones(RigGraph *rg)
/* DO SOME MAGIC HERE */
for (pchan = rg->ob->pose->chanbase.first; pchan; pchan = pchan->next) {
- for (con = pchan->constraints.first; con; con = con->next) {
+ for (con = pchan->constraints.first; con; con = con->next) {
bConstraintTypeInfo *cti = constraint_get_typeinfo(con);
ListBase targets = {NULL, NULL};
bConstraintTarget *ct;
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c
index b975d156868..ab96656406e 100644
--- a/source/blender/editors/armature/meshlaplacian.c
+++ b/source/blender/editors/armature/meshlaplacian.c
@@ -1393,7 +1393,8 @@ static void meshdeform_bind_floodfill(MeshDeformBind *mdb)
if (b != -1) {
if (tag[b] == MESHDEFORM_TAG_UNTYPED ||
- (tag[b] == MESHDEFORM_TAG_BOUNDARY && !mdb->boundisect[a][i - 1])) {
+ (tag[b] == MESHDEFORM_TAG_BOUNDARY && !mdb->boundisect[a][i - 1]))
+ {
tag[b] = MESHDEFORM_TAG_EXTERIOR;
stack[stacksize++] = b;
}
diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c
index e9c960c4080..df970171a54 100644
--- a/source/blender/editors/armature/poseobject.c
+++ b/source/blender/editors/armature/poseobject.c
@@ -1136,7 +1136,7 @@ static bPoseChannel *pose_bone_do_paste(Object *ob, bPoseChannel *chan, short se
/* quat/euler to axis angle */
if (chan->rotmode > 0)
eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->eul, chan->rotmode);
- else
+ else
quat_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->quat);
}
else {
@@ -1451,7 +1451,7 @@ static int pose_group_assign_exec(bContext *C, wmOperator *op)
ScrArea *sa = CTX_wm_area(C);
Object *ob;
bPose *pose;
- short done = 0;
+ short done = FALSE;
/* since this call may also be used from the buttons window, we need to check for where to get the object */
if (sa->spacetype == SPACE_BUTS)
@@ -1476,7 +1476,7 @@ static int pose_group_assign_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones)
{
pchan->agrp_index = pose->active_group;
- done = 1;
+ done = TRUE;
}
CTX_DATA_END;
@@ -1514,7 +1514,7 @@ static int pose_group_unassign_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa = CTX_wm_area(C);
Object *ob;
- short done = 0;
+ short done = FALSE;
/* since this call may also be used from the buttons window, we need to check for where to get the object */
if (sa->spacetype == SPACE_BUTS)
@@ -1531,7 +1531,7 @@ static int pose_group_unassign_exec(bContext *C, wmOperator *UNUSED(op))
{
if (pchan->agrp_index) {
pchan->agrp_index = 0;
- done = 1;
+ done = TRUE;
}
}
CTX_DATA_END;
diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c
index 316c4699c0b..a629312e732 100644
--- a/source/blender/editors/armature/reeb.c
+++ b/source/blender/editors/armature/reeb.c
@@ -1818,7 +1818,7 @@ int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold))
static void filterGraph(ReebGraph *rg, short options, float threshold_internal, float threshold_external)
{
- int done = 1;
+ int done = TRUE;
calculateGraphLength(rg);
@@ -1833,7 +1833,7 @@ static void filterGraph(ReebGraph *rg, short options, float threshold_internal,
if (threshold_internal > 0 || threshold_external > 0) {
/* filter until there's nothing more to do */
while (done == 1) {
- done = 0; /* no work done yet */
+ done = FALSE; /* no work done yet */
done = filterInternalExternalReebGraph(rg, threshold_internal, threshold_external);
}
@@ -1860,7 +1860,7 @@ static void finalizeGraph(ReebGraph *rg, char passes, char method)
sortArcs(rg);
- for (i = 0; i < passes; i++) {
+ for (i = 0; i < passes; i++) {
postprocessGraph(rg, method);
}
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index 7afba049232..aa29100ccbe 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -270,7 +270,7 @@ void printknots(Object *obedit)
int a, num;
for (nu = editnurb->first; nu; nu = nu->next) {
- if (isNurbsel(nu) && nu->type == CU_NURBS) {
+ if (isNurbsel(nu) && nu->type == CU_NURBS) {
if (nu->knotsu) {
num = KNOTSU(nu);
for (a = 0; a < num; a++) printf("knotu %d: %f\n", a, nu->knotsu[a]);
diff --git a/source/blender/editors/datafiles/blender_icons.png.c b/source/blender/editors/datafiles/blender_icons.png.c
index 85e469717de..860c225ffc1 100644
--- a/source/blender/editors/datafiles/blender_icons.png.c
+++ b/source/blender/editors/datafiles/blender_icons.png.c
@@ -1,7089 +1,7101 @@
/* DataToC output of file <blender_icons_png> */
-int datatoc_blender_icons_png_size= 226647;
-char datatoc_blender_icons_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,
-128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,
-112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8,
- 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,
-140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,
-231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10,
- 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,
-192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,
-128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,
-148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216,
- 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35,
- 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113,
- 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,
-145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112,
- 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15,
- 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,
-103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,
-146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243,
- 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,
-246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37,
- 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192,
- 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176,
- 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9,
- 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81,
- 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71,
- 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,
-140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,
-203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30,
- 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,
-196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,
-164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,
-228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229,
- 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,
-131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,
-151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199,
- 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,
-166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83,
- 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,
-198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,
-169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,
-239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,
-189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,
-174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253,
- 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,
-195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163,
- 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61,
- 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133,
- 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,
-182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,
-141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,
-103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203,
- 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,
-105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67,
- 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,
-222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37,
- 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,
-130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,
-195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,
-103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75,
- 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,
-167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,
-103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132,
- 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,
-103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,
-232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,
-255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86,
- 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11,
- 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,
-216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,
-151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,
-188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,
-213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109,
- 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,
-190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,
-225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252,
- 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,
-219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,
-229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,
-123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,
-126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,
-127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62,
- 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,
-209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,
-119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,
-252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0,
- 0, 13,213, 0, 0, 13,213, 1, 61,214, 88,241, 0, 0, 0, 7,116, 73, 77, 69, 7,220, 3, 15, 13, 43, 47, 99,146, 79, 17, 0,
- 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,197, 3,125,187,183,215,239,114,233, 61, 16,146, 64, 32,148,132, 80, 20,
-144, 94, 5,162,168, 8, 2, 34, 69, 44,136, 40,160, 40,168,136, 72, 87,233, 42, 32, 42, 77, 65,176, 1, 1, 41,145, 18, 72, 2,
-132, 38, 61, 65, 18, 72, 35,237, 82,175,183,221,223, 31,201,157,151,203,181, 64,162, 63,116,223,247,237,119,119,123,187,111,103,
-103,103,102,223,188,105, 0, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22,255,106, 36, 38, 38,
- 50, 13, 56,124,160,187,156,181, 91,159,255,119,206, 38,188,119,166, 17, 57,251,212,114,126,244,144,132,179,207,255, 43,167,249,
-126, 27,192, 59,176, 33,233,168,177,226,211, 42,156, 76, 99,135,179,169, 56, 27, 43, 31,217, 9, 39,211, 4,207,253,163,135, 36,
-156,125,254,223, 56,109,211,143,155,188, 13,226,116, 51, 77, 53, 52,156, 76, 99,135,179,169, 56, 31, 52, 31, 57, 9, 39,243,160,
-105,201,193,179,255, 8,255, 33, 80, 77, 40,178,220, 70, 66, 66, 2, 97,197, 79,252,191,114, 90,199,131,153,191, 49,195,218,136,
- 56,222,216,156, 54,241,217, 88,248, 40, 33, 33,129, 72, 76, 76, 60, 1,160, 79, 99,222,123, 99, 60,119,155,123,109, 20,222,251,
- 16, 89, 13,226,108,172,116,223,212,156,141,149,151,108, 57, 27, 35,221,219,123,238, 77,248,140, 26, 43,156,141,146,151,154, 34,
-205,219, 73, 63, 15,204,107,203,217, 24,121,201,150,179, 49,210,253,223,193,217, 24,121,201, 30,103, 99,164,123, 71,207,254,191,
-102, 80,145,255,176, 32,176,205,224,125,255,159, 5, 81, 83,137,205, 6, 56, 48,255, 56,103, 35, 63,163,143,106, 57, 27,179,118,
-211,183,177,158, 81, 83,164,119,107,206,198,226,183,229,105,140,231,100,143,243, 65,195,235, 32,156,141,126,239, 15,154,238,255,
- 46,206, 70,126, 70,141,146,151,108, 56,251, 54,114,101,160,175,213,239,143, 26,147,179,177,242,146,157,112, 62,240,115,178,199,
-249,160,225,117, 16,206, 70,191,247,198,120,135, 52, 21,239,191, 26, 77,213,124,214,216,156, 13,228,254, 87,113, 54,176,121,102,
- 96, 19, 60,251,127, 52,156,141,201,105, 27,198,198,108,238,105,202,112, 54, 38,103, 3,194,250,175,227,124,216,158,251,255, 99,
-124, 58,226,123,144,102, 41, 71,238,104, 83,132,179, 49, 57,221,228,254, 87,112, 62,192,179,255,215,129,250,127, 9,136, 57,226,
- 27,185,102,130, 70,118, 96,154, 82,184, 54,102, 56,251, 54,133, 67,216, 4,104,244,112,214,214,148,231, 55,193,189, 63, 44,113,
-202,230, 37, 54, 47,253,223,229, 37,155, 52,217,183, 17,157,162, 70,117,158,109, 57, 27,227, 26,214, 28,141,149, 70,155,250,222,
- 27, 51, 47, 53,197,179,103,241, 0, 46, 4,203,201,114,178,156, 44, 39,203,201,114,178,156,255, 89,206,127, 37, 72, 54, 10, 88,
-176, 96,193,130, 5, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22, 44, 88, 60, 84,112,216,190, 27, 18, 18,146, 40, 22,139, 91, 58,
-250, 95,169, 84,222,187,119,239, 94, 63, 54, 10,255, 57,176,207,136,197, 67, 4, 18,127, 57,232, 52, 0,166,118, 99,193,130, 5,
-139,127, 53, 28,118,134, 23, 8, 4,145, 55,110,220,136,166,105, 26, 38,147, 9, 70,163,209,242,169,211,233,208,187,119,239, 6,
-119,164, 15, 12, 12, 76,230,112, 56, 45, 26,114,142,201,100,202, 41, 42, 42,234,233,228,144, 84, 0,145, 4,241,151,102, 52,127,
-119,244, 9,160,192, 96, 48,116,114,198, 73, 16, 68,164, 45,159, 3, 46,243,119,167,156,158,158,158,231, 40,138, 10,179,199,229,
-232, 59, 77,211, 89, 37, 37, 37, 61,254,206,103,244, 95, 70, 96, 96, 96, 50, 69, 81, 13, 78,159,133,133,133, 14,211,103,112,112,
-240, 69,146, 36, 67, 26, 64,201,161,105, 58,227,222,189,123, 61,157, 8,145, 84, 0,145, 78,107, 80, 54,233,137, 32,136, 60,147,
-201,212,197, 85, 62,114,198,101, 39,141,186,226,180,136, 44,138,162,150, 5, 4, 4, 76, 85,169, 84, 26, 0, 12,135,195, 97,172,
-194, 6, 0, 48, 26,141, 37, 21, 21, 21, 29,216,148,200,130, 5,139,255,132,208,162,105,154,212,106,181,200,204,204, 4,195,216,
- 45,239, 77,247,113,189,232,243,191, 31, 9,240, 8, 8,132, 81,175,135,196,207,223,194, 93,116,253, 42,140, 6, 61,140, 58, 29,
-154,119,237,102, 14, 3,218,182,109,203,113,193, 25,182,124,249,242, 0, 15, 15, 15,104, 52, 26,104, 52, 26,104,181, 90,104, 52,
- 26,232,116, 58,232,116, 58,232,245,122,232,245,122, 24,141, 70,104,181, 90, 36, 37, 37,153, 12, 6,131, 83,206,197,139, 23, 7,
-200,100, 50, 11,159,121, 51,115,154,121, 13, 6, 3, 52, 26, 13,142, 30, 61,234,148,147,162,168,176,130,130,130, 0, 30,143, 7,
-134, 97, 64,211, 52, 24,134,169,179,217, 34, 42, 42, 74,239, 44,144, 77,244,140,254,203,136, 94,188, 99,127,128,167, 72, 0, 35,
- 77, 35, 33, 46,202,242, 71,214,215,187,193, 24, 77,160,141, 70,180,122,125,188,101,127, 76, 76,140,211,244,201, 48, 76,248,226,
- 29,251,189,220,229,148,203,229,234, 54,109,218, 20,160,198,109,118, 36,180,194,212,106,117, 64, 45,127, 61, 65, 68,146,100,157,
-237,208,161, 67, 72, 72, 72,112,117,239, 97, 51,103,206, 12, 48, 24, 12,208,233,116,208,106,181, 48, 24, 12, 48, 26,141,150,205,
-100, 50, 89, 54,157, 78,135, 51,103,206,184,235,100, 45, 31, 52,104,208,228,253,251,247, 75,126,253,245, 87, 73,139, 22, 45,192,
-227,241,192,225,112,192,225,112, 64,146, 36, 40,138,194,163,143, 62, 74,176, 73,144, 5, 11, 22,255, 25,161,165,213,106,179,227,
-227,227,153,218,239,161, 2,129,128,103, 83,203, 13,105,213,170, 85,134,237,121,174,154,171, 60, 2, 2, 49,183,153, 15, 0,224,
-195,187,114,203, 11,226,147, 30, 29, 45,199,124,156, 95, 9, 0, 16,137, 68, 32,172,171,209, 14, 32,145, 72, 48,104,208, 32,240,
-249,124,116,233,210, 5, 92, 46,215,238,198,227,241,192,229,114, 93, 70, 10, 65, 16,144, 74,165, 88,176, 96,129, 89, 36, 65, 34,
- 20, 96,122,143, 46, 16,130,193, 87, 87,111, 65, 71, 51,160, 40,202,178,185,195,201,227,241,112,229,202, 21, 80, 20, 5, 14,135,
- 99,249, 52,127,223,187,119, 47,158,125,246, 89, 80, 20, 5,145, 72, 4,184,152, 57,216,250, 25,233,116,186, 96, 62,159,175, 7,
- 96, 22,103, 60,130, 32,130,238,231, 25,253,151,225, 41, 18, 96,194,250, 95, 0, 0,185,171, 94,183, 60,187, 51,175,125,104, 57,
- 38,252,229,209, 32, 8, 2, 92, 46, 23, 36, 73, 54, 26,103, 89, 89,153,122,204,152, 49,167, 60, 60, 60, 14, 85, 85, 85,193,133,
-128, 67,110,110, 46, 40,138,114,152,222, 73,146,196,202,149, 43,241,231,159,127,186,117,239, 26,141, 6,155, 54,109,130,201,100,
-170,195,107,254,110,187,207, 77,145,181,104,240,224,193,227,247,239,223,239, 77, 16, 4, 62,255,252,115,240,120, 60, 12, 27, 54,
- 12,190,190,190, 56,124,248, 48,120, 60, 30,222,121,231, 29, 54,241,177, 96,193,194, 89,153,199, 5,208, 17,128,127,173,137, 80,
- 13,192,203,234,144,146,218, 79,127,243,111,130, 32,210,237,240,116,173, 61,166,132, 32,136,116,171,223, 58, 0,124, 59,251,229,
- 0, 68,181,155, 22, 53,238,127,123,171,235,152,207,131,163,235, 82, 64,205,250, 67, 0,142, 3,232,155,144,144,112, 2, 0, 10,
- 11, 11,135, 22, 22, 22, 2, 0, 34, 35, 35,111,100,100,100,180, 49,107,158,218,230, 41,158,209,104,140, 54, 55, 85,153,221,162,
-129, 3, 7, 58,173,225, 27,245,250,122, 2,196,158,150,178,215, 92,225, 72,192,232,245,122,140, 30, 61, 26, 0, 28,190,116,172,
- 55, 55,180, 27,116, 58, 29, 40,138, 66,235,102,254,152, 55, 36, 30,143, 48, 6, 40, 21, 4,140,149, 74,140,144, 26,112,163,109,
- 39,108,204, 41,193,221, 42, 5, 40,138,114,139,147,166,105,135, 34,139,195,225, 96,253,250,245, 24, 51,102, 12, 56, 28,142, 91,
-124,214,207, 40, 34, 34, 98,127, 70, 70,134, 47, 65, 16,218,218,103, 36, 48, 26,141, 50,163,209,232,107, 50,153,124, 27,242,140,
-254,203, 48,210,180,221,116,232, 40,205,186,243,156,220,225, 44, 43, 43, 83, 39, 36, 36,156, 22, 8, 4, 91, 3, 3, 3, 11,242,
-242,242, 92, 10, 45, 91,241, 99, 91,169, 88,177, 98, 5,214,174, 93,139,126,253,250,185, 21, 78,173, 86, 11,130, 32,176,113,227,
-198,122,255, 45, 92,184,176,222,245, 92,112, 18, 0,200,144,144,144,215, 14, 30, 60, 40, 51, 31,235,231,231, 7, 46,151,139, 14,
- 29, 58,192,195,195, 3,167, 78,157,130,201,100,114, 59, 95,178, 96,193,226,223, 11,123, 90,196, 10,189,231,206,157,219,101,217,
-178,101, 75,186,119,239,190, 51, 53, 53,117, 7, 65, 16,137, 86,101, 98, 66,109,249,154,104,254,205, 48, 76, 87,107,209, 83, 43,
-214,252, 9,130, 72, 52, 31,111,253,219,252,201, 48,204, 64, 0,124,243,239,185,115,231,182, 95,182,108,217,146, 57,115,230,188,
-183,116,233, 82,222,220,185,115, 99,151, 45, 91,182,196,124, 29,123,225,176,231,104, 57, 93,123,202,220, 68,117,243,230, 77, 71,
- 77, 84,214, 47, 0,167,165,165,196,207,223,226,100,125, 28,238,107,217,191, 32,175,194,242, 2, 91,215,185, 37, 36, 18, 9,134,
-124,252,169, 91, 78,145, 78,167, 67,113,113,177,197,101,112,181,185,203, 41, 22, 9,145, 52,179, 3,114,229,124,124,148, 86,134,
-253,151,254, 4,151,203,197,227,109, 59, 96, 40,207, 3, 31,132,243, 49,243,214, 29, 24, 24,247,250,244, 50, 12, 99, 87, 96,153,
-191,155,155, 80,220, 21, 90, 54,207, 40, 87,163,209,200, 51, 51, 51,213,116,205,139, 93,196, 48,140, 55, 65, 16,213,181, 46, 87,
-176,187,207,232,191,140,132,184, 40,139,235,116,198, 99,128,101,255,179,202, 43,150,103,242,214,250, 79, 0, 0,253, 58, 61,234,
- 50, 63,184,195, 41,151,203,213, 61, 7,244, 61, 97, 82,235,182,140, 31, 63, 62,251,216,177, 99, 34,119,194,106, 79,104,153, 93,
- 91,179,200,162, 40, 10, 58,157,206,173,123,215,233,116, 14,243, 7,143,199,187, 31, 71, 11, 74,165, 82,183,103,207, 30,172, 91,
-183, 14,190,190,190, 24, 60,120, 48,130,131,131,177,123,247,110, 48, 12,131,215, 95,127, 29, 34,145,200,236, 94,179, 9,144, 5,
-139,255, 54,156,105, 17,193,178,101,203,150,216, 10, 25,235,223,214, 2,202, 70, 76, 89,139,181,246, 46,222,255,137,182,226,201,
-124, 93,130, 32, 18,151, 46, 93,154,224, 34, 28, 37,142,132,150,211, 41,241,181, 90,109,118, 92, 92,156, 91,106, 66,165, 82, 21,
-186, 18, 27,246,106,245,214, 46,129, 84, 42,133, 68, 38, 5,233,102,185,107, 48, 24, 44, 66,229,200,145, 35, 16,137, 68, 24, 54,
-108,216, 3, 57, 90,122,189, 30,124, 30, 23,164, 95, 32, 38,172, 58, 6,121,181,218,242,130, 57,158,149,141, 11, 69,197,152,217,
-125, 0, 36,162, 98, 40,116, 58,183,156, 55,154,166,235,137, 44,138,162, 48,122,244,104,139,155, 96,221,111, 5, 78,154, 14,125,
-125,125,207, 81, 20, 21,102,245,140,132,145,145,145,192, 95,253,122, 8,154,166, 21, 94, 94, 94, 63, 3, 8, 97, 24, 38, 12,128,
-135, 59,207,136,133,253,244,105,187,159,182,113,170,238,135, 83, 46,151,171, 19, 18, 18, 78,155,212,186, 45,249,249,249,167, 1,
- 8, 31,121,228,145, 6, 11, 45,179,192,226,114,185, 88,185,114, 37,214,174, 93,107,249,223, 93,161,101, 52, 26,235, 8,168, 91,
-183,110,213,185,150,173,176,115,209,108,202,160,102,116, 33, 29, 25, 25,105, 57, 39, 40, 40, 8, 94, 94, 94,160,105, 26, 52, 77,
- 67, 40, 20, 66, 36, 18,129,199,227,177,137,142, 5, 11, 22,206,180,136,122,206,156, 57,239, 17, 4,145, 88,235, 44, 93,117, 34,
-168,236,105,143,174, 54, 98,173,196,193,113, 9,246,196,150,245,119, 51,230,206,157,219,222, 54, 28,246,154, 43, 45,165,170,205,
-180,251,117, 96,221, 68,213, 88, 47, 49,103, 47, 50,169,151, 12, 34,137, 4, 28, 14, 9,130, 32, 24, 87, 92,122,189,222, 82,240,
- 79,157, 58,213,105,191, 21,119,251, 83,233,245,122,144, 20, 7,247,130, 34, 96, 34, 79, 90,206, 53,111, 36,197,197,221,160, 54,
-224,220,188, 8,174,155, 47, 92, 91, 71,235,245,215, 95,199,166, 77,155, 64,146,164, 37, 78, 40,138, 66,171, 86,173,144,157,157,
-237,148,139,162,168,176,187,119,239, 6, 88,199,163, 89,196, 50, 12, 3,147,201,132,168,168, 40, 77,102,102,230,155,108,214,125,
- 48,145,229,104,191,201, 68,187,237,194,216, 59, 78, 46,151,171, 71,141, 26,117,162,178,178,114, 75,187,118,237,110,161,238, 20,
- 8, 46,249, 40,138,170, 35,176,204, 34,107,205,154, 53,117, 68,145,193, 96,112,171, 34, 96, 48, 24,234, 9,158,207, 62,251,172,
-206, 39, 0,244,232,209,195, 45,103, 24, 0, 67,146, 36,195,227,241, 48,104,208, 32,196,198,198,226,215, 95,127, 5, 77,211,152,
- 54,109, 26, 68, 34, 17, 86,175, 94, 13,163,209,136,229,203,151,179,142, 22, 11, 22, 44,156,105, 17,237,210,165, 75,175, 46, 93,
-186,212,226, 44,217, 58, 90, 14,222,187,195,107, 69,149,191, 89,164, 1,208,218, 19, 68,246, 92, 50, 91, 1,102,189,111,217,178,
-101, 75,108,195, 97,219, 92, 89, 71,104,253, 93, 40,188,118, 5,159, 62, 22, 15,160,110,115,225,250, 71,219, 64, 34,149, 64,226,
- 33,197,168,189, 39, 1,160,182,208,159,227,150,163,101, 22, 90,114,185,220,169,200,106,136,163, 69,242, 41,252, 24, 86, 14,134,
-207, 5,165, 51,212, 17, 90, 28,138,139, 92,223, 8,144, 92, 30, 40,147,209, 45, 78,134, 97,234, 53, 21, 78,156, 56, 17, 4, 65,
- 88, 70,136,197,197,197, 89,115, 17,174, 94,142,179,125,106,250,224,217, 54,199, 46, 47,213,176, 57,246,126,210,231,185,175,113,
-227,167,215, 0, 0, 61,149, 74,203,179, 88, 28,247,215,216,129, 85, 87, 78, 88,220,199,143,241,246,125,113,202,229,114,245, 35,
- 49,237, 79,243,124, 60,183,228,228,228,156, 6, 64, 62,247,220,115, 94,113,113,113,110,229, 73,243,224, 10, 91,145,101,237,100,
-153, 63, 93,140,176,181, 18,142, 38,183, 4,148,185, 25,209,141, 52,207,152,211,182, 76, 38,131, 84, 42,181,140,184, 21, 10,133,
- 16,139,197,150,254,157,110, 10, 55, 22, 44, 88,252,119,225,109, 22, 58,181, 98,169,142,211, 84,219,183, 42,193,250,183, 61,199,
-171,214,129, 74,118, 81,190,238,175, 21,104,118, 97,118,214,108,206, 73,116, 36,210, 40,179,130,180,254, 12, 10, 10,250, 77, 42,
-149, 70,184,123,247, 13, 25,197,102, 50,232,235, 57, 91, 4, 65, 64,234, 33,133, 72, 42,129,200, 67,234,208,245,114, 38,180,204,
- 78,145,249,165,179,117,235, 86, 72,165, 82, 76,154, 52,169,193,125,180, 44, 66,139, 71,226,176,224, 40, 56,124,170,142,200,162,
- 40, 10, 28, 46, 23,133,210, 96,144, 92, 46, 40,163,123, 46, 89,101,101, 37, 40,138,194,188,121,243, 44, 53,120,107,145,213,144,
-123,118, 6,146, 32,204,238,150,160,101,203,150,111, 19, 4, 17, 14,160,133, 82,169, 20,220,187,119,175, 63,155, 95,157, 40, 3,
-147,161,158, 11,229,200,125,189, 95, 78,179,147,197,243,241,220,210,166, 77, 27,139,147, 37, 22,139,205,163, 77, 93, 63, 99,146,
-180, 43,178,108, 71, 8, 82, 20, 85,147,150, 93,140,142,180,118,180,150, 46, 93,106,225,181,118,178,204,104, 72, 62, 50,135,245,
-196,137, 19,184,112,225, 2,166, 78,157, 10,145, 72,132,181,107,215,194,104, 52, 98,225,194,133, 16,137, 68,224,243,249,108,226,
- 99,193,130,117,179,234,104, 17, 27,148,216,244,131, 34,108, 68, 77,137, 61,129,101,221, 76,104,254, 78, 16,132,193, 14,175,206,
-166, 73,209,118,191,249, 83,190,116,233,210, 99,102, 39,203,106,127,157,112,184,116,180, 4, 2, 65, 68,102,102,166,101, 34, 76,
-103,159, 58,157, 14,253,250,245,115,219, 25, 51,143, 58,164, 40, 78, 29, 97, 33,246,144, 66, 44,243,128, 72, 42,181, 21, 28,132,
-171, 66,220, 92, 35,182, 22, 90,243,231,207, 7, 69, 81,216,180,105, 19, 0,224,237,183,223,118,187,143,150,153, 19, 38, 2,121,
-204,109,196,175,122, 22,186,239, 12, 40, 74,249, 3, 20, 69, 33,160,219, 80,208,143, 60, 11,149, 72, 10,202,100,116,123,212, 97,
- 89, 89, 25,178,179,179,193,225,112, 48,107,214,172, 58,115, 29,217,142,100, 59,114,228,136,203,123,183,231,100,205,207, 41,179,
-240,136, 68, 34,242,143, 63,254,136,160,105, 58, 82,173, 86,183,236,209,163, 7,205,102,101, 23,162,136, 54,186, 37,170,220, 77,
-159,182,156,230, 62, 89,149,149,149, 91,114,114,114,206, 0, 32,199,143, 31,239, 37, 22,139,241,205, 55,223,168, 0,240,119,239,
-222, 45,114, 37,138,204,233,198,149,200,226,114,185, 53,105,217,157,123,103,234, 78, 89,226,170, 99,188, 59,105,222, 28, 86,130,
- 32, 96, 50,153, 32, 18,137,234, 56, 89, 66,161, 16, 2,129,128, 77,120, 44, 88,176,112, 85,150,164,187, 93,142, 51, 76, 87, 43,
- 81,149,126, 63,188, 13,185,158, 43, 80,142,132,134, 86,171,197,245,235,215,221,229,113,123, 98,204,102, 93, 30,197,199,249,149,
- 32, 8, 2, 95,245,104, 7,137, 76, 10,177, 68,130,145,191,158,176, 20,220, 87,150,188, 13,129, 68,138,144, 94,131,221, 42,200,
-205, 77,135,214, 66,171,162,162, 2, 92, 46, 23,139, 22, 45, 2, 73,146, 88,190,124, 57, 66, 67, 67,113,239,222, 61,236,222,189,
-219, 45, 71,139, 99,226, 32,248,133, 24,136, 39,122, 66,246, 66,111,120, 15,154,143,124, 29,133, 84,141, 24,189, 53,215,192, 63,
-188, 6, 58,218,228,246, 8, 44,163,209,136, 19, 39, 78,216,118,120,183,244,169, 50, 26,141, 48, 24, 12,208,235,245, 88,190,124,
-185, 59, 35, 60,235, 61, 55,115, 28,214, 78,130,202,201,200,200,240,103, 24,198, 7,128, 39,128, 82, 54,187, 58, 71,112,183,215,
-225,223,229, 85, 0,192,222,165, 47, 90,246,207,187,242, 87,250, 92,249, 93,205, 2, 0,109, 90, 12,110, 16,167, 92, 46, 87, 63,
-222,175, 71,178,134,230,110,238,208,161, 67, 29, 39, 75, 40, 20, 18,181,191,221,178,203, 72,146, 4,135,195,169,215, 92,232, 72,
-108,185,211, 71,203,104, 52, 90, 38, 18,117,214,159,241,126, 28,173, 23, 95,124, 17,193,193,193, 22, 39,235,227,143, 63,134, 72,
- 36,194,220,185,115, 97, 48, 24,176,102,205, 26, 54,241,177, 96,193,226,111, 23,101,127, 7,236,150,164, 26,141,230, 78,108,108,
- 44, 28,252, 23, 42, 20, 10,185, 54, 55, 21,210,170, 85,171, 12, 59, 77,136, 3, 1, 36,217, 43,212, 9,130,128,135,204, 3, 66,
-169, 4, 98, 27, 23, 75,232, 33,131, 64, 42, 5,201,179, 91,152,215,227, 52,247, 45,177, 22, 90,230,173,178,178, 18, 92, 46, 23,
-235,214,173,131, 76, 38,131, 86,171,117,201,105,126,233,112, 56, 28,168,114,171,113, 99, 73, 18,248,194, 84,180, 28, 60, 6,193,
- 92, 17,120,167,126,134,218,100,112, 53, 97,105, 61,206,232,232,104,124,248,225,135,245,166,117,112,132,208,208, 80,151,247,110,
-235,100,173,108,215, 28, 60, 62, 15,111, 93,203,133, 86,171, 37,198,140, 25, 67, 3, 80, 3, 40, 81,171,213, 57,238,196,103, 35,
-224,161,231,116, 54, 42,214, 12,154, 49,217, 19, 48,118, 57,205, 78,150,134,230,110,206,206,206, 54, 59, 89,158, 98,177, 24, 27,
- 54,108, 80, 1, 32, 23, 46, 92, 40, 14, 15, 15,231,184,147,150, 56, 28, 14, 86,173, 90,101,183, 79,150, 61,209,213,144,124,100,
-125,110,159, 62,125,236, 78, 88,234, 64,188,213,227, 52,135,213,215,215,215,226,100,153, 76, 38,203,104, 67,243,236,243, 78, 42,
- 21,108,250,100, 57, 89,206,255, 14,231,191, 18,118, 75,224,123,247,238, 61,238,232,132,168,168,168,204,204,204,204, 86,230,165,
- 56,106, 11, 78,158, 70,163,137,238,209,163,135, 75,107,135,166,105, 8, 4, 2, 48, 12,131,254, 31, 46, 3, 65, 2, 36,234,190,
-196, 2, 30, 27, 0, 14,135, 2, 93,179,212,135,203, 81,135,106,181,186,206,203,193,222,166, 80, 40,160,213,106,221,158,205, 91,
-163,209,212,153,130,129, 96,104,220,253,125, 87,189,209,135,230,205,221,126, 59, 66,161,176, 78,211,143, 11,199,138,112,199,209,
-178,110,122,228,241,121,160,120, 92,179,163, 85,125,235,214,173, 81,108, 50,119, 31,230, 1, 11, 0,208,186,199, 48,208,180, 9,
-140,201, 84,103,153,164,152,136,199, 65, 51, 38,232, 13, 42,104,181, 90, 87,211,158, 16,165,165,165,234, 81,163, 70,157, 0,240,
-237,136, 17, 35, 50, 80, 51,187, 48, 35,149, 74, 5, 92, 46,151, 6, 80, 6,128, 41, 47, 47,247,204,207,207,167, 53, 26, 77,115,
- 87,225,220,191,127, 63,174, 95,191,142, 94,189,122,213, 89, 14,202,236,138, 90,207,238,238, 78,250, 52, 55,151,219,155, 17,222,
-145,144,115, 23, 28, 14, 7,158,158,158,224,241,120, 88,180,104, 17,120, 60, 30,196, 98, 49, 0, 96,205,154, 53,150,201, 87, 89,
-176, 96,193,226, 63, 35,180, 92,149,155, 78,154, 21,157, 54, 33, 26,141,198,188,240,240,240, 6, 93,204,100, 50, 21,185, 16,110,
-121,187,119,239,230, 89,187, 16,174, 62, 25,134, 41,114,241,178,205,219,187,119, 47,207,158,187,225,104,129,105, 87,156, 38,147,
- 41,175, 69,139, 22, 14, 29, 19,123, 48, 24, 12,249,174, 68,235,178, 18,117, 29,145,240,214,181, 92,135,107, 39,178,112,153,214,
-156,164,207,247,239, 55,125,222,106,221,186,117,190,151,151,215,129,192,192, 64,121, 74, 74,138,111,215,174, 93,125,173,143,233,
-218,181,107,176,205,105, 58, 56, 94,231, 16, 4, 65,228,141, 24, 49,194,110,154, 55,139, 38, 59,233, 51,207, 85,154, 63,123,246,
- 44,207,250,124, 71,252, 86,249, 40,207, 13,225,122, 55, 62, 62,158,180,230,113,148,246, 13, 6, 67, 9,155, 10, 89,176, 96,241,
-159, 23, 90,106,181, 58, 55, 54, 54,214,232,224,191, 28,103,231,202,229,242, 46,141,125, 3, 6,131,161,199,195,192, 89, 90, 90,
-218,168,247,110, 52, 26,243,106, 39, 40,117,122, 12,155,196,255,185,103, 4, 0,197,197,197,143, 0,128, 82,169,132,171,101,117,
- 26, 32, 8, 27, 61,125, 26,141,198, 30, 77, 17,167,101,101,101,221,217,148,197,130, 5, 11, 86,104, 53, 0,236, 98,196,255, 31,
-104, 10,209,202,130, 5, 11, 22, 44, 88,176,104, 92,144,108, 20,176, 96,193,130, 5, 11, 22, 44, 88, 52, 13, 8,212,140, 28,176,
-135,134,140, 38, 24,120, 31,215, 78, 98, 57, 89, 78,150,147,229,100, 57, 89, 78,150,243, 63,199,233,138,155, 29,205,216,196, 2,
-140,229,100, 57, 89, 78,150,147,229,100, 57, 89,206,255, 30,231,191, 18,108,211, 33, 11, 22, 44, 88,176, 96,193,130, 69, 19,129,
- 98,163,224, 31, 3, 7, 13,152, 81,223, 21, 24,134,241, 6,224,104,193, 56, 29, 65, 16,229,247,193, 73, 0,224,213,110,230,137,
-142, 12, 0,244, 0,244, 4, 65, 48,174, 57, 62, 34, 11, 10,188,219, 51, 38,110, 87,134, 32,184, 52,141, 75,205,155, 55,187, 72,
- 16, 67,117, 0, 32, 9,140,105, 43,149,136, 6,106,245,186, 8, 1,151,127,189, 66,169, 56,162, 45,206,188,195, 38, 15, 22, 44,
-254, 17, 60, 1, 96, 1,106,186,149, 44, 5,176,139,141, 18, 22, 44,154, 72,104, 73,165,210,115, 36, 73,134,185,154,159,199,140,
-218,181,204,242,202,203,203,187, 52,224,218,163,164, 82,105, 63, 46,151,251, 24, 0, 24, 12,134, 20,133, 66,113, 12,192,110, 0,
-198,251,188, 39, 25,128,209, 0,198,213,254,254,190,182,176,168,186, 79,190, 88, 79, 79,207,159,184, 92, 46, 83, 90, 90,218, 13,
- 0,124,125,125, 79, 27, 12, 6,162,170,170,106, 36,128,203, 13,228, 35,185, 92,238,202,110,221,186,245, 62,121,242,228,183, 0,
-214, 53,210,179, 20,144, 36,105, 87,160,208, 52,221,226, 62, 68, 22, 15,128,231,186,117,235,124,183,111,223, 30,159,151,151,215,
- 1, 0,194,194,194,174,140, 31, 63,254,226,244,233,211,229, 12,195, 84, 18, 4,161,119,198, 83, 80,224,221,190,184, 48,107,106,
- 81,241,245,209, 0, 16, 20,220, 97, 23,135, 67,242, 24,230,124,154,216,111,156, 95,171,150, 45, 94,221,249,205, 58, 94,139,136,
-102, 56,154,122,161,227,244, 55,223,107,159, 15,172, 96,197,214,223, 7, 15, 15,143,115, 36, 73,134, 57,203,227,246,242,188,201,
-100,202, 43, 43, 43,235,226,136,147,162,168, 48,103,229,133,189,125, 52, 77,103,149,150,150,218,157,106, 66, 38,147,165, 81, 20,
- 21,225, 46,151,249,211,104, 52,230, 57, 26,165, 43,147,201,206,113, 56,156, 48,103,247,105,239, 63,154,166,179, 74, 74, 74, 28,
-133,179,222,189, 55, 70, 56,239,135,211, 89, 56,205,229, 17,128, 53,190,190,190,143,202,229,242,231, 1,188, 87, 85, 85, 21,199,
-225,112,224,227,227,243,158, 78,167,251,211,211,211,243,235,202,202,202, 84, 0,111, 2, 96,215, 75,101,193,162,177, 32,147,201,
-138, 20, 10, 5, 99, 6, 77,211,140,193, 96, 96,180, 90, 45,163, 86,171, 25,165, 82,201, 40, 20, 10,166,170,170,138,169,172,172,
-100,228,114, 57,227,239,239,111, 59,121,163,163, 54,220, 14, 50,153, 44,115,217,178,101,218,236,236,108, 70,175,215, 51,122,189,
-158,185,115,231, 14,243,233,167,159,106,101, 50, 89, 38,128, 14, 14,206, 29,232,160,176, 24, 4, 96, 71,124,124,188,110,255,254,
-253,140, 70,163, 97,148, 74, 37,179,107,215, 46,166, 93,187,118, 58, 0, 59,106,143, 33,221,228, 4,128,158, 65, 65, 65,121,183,
-111,223, 54, 29, 57,114, 68,239,233,233,153,228,233,233,153,116,231,206, 29,211,237,219,183,105, 63, 63,191, 60, 0, 61, 27, 16,
- 78, 0,120,246,173,183,222, 42,186,115,231, 14,211,167, 79,159, 75, 86,251, 9,184, 94,231,110,160, 61, 39,139, 97,152, 32,134,
- 97,130, 81, 51,201,101,189,141, 97,152,224,218, 99,188,221,228,148,100,101,101, 53, 11, 12, 12, 92, 70, 16,132,206,150,143, 32,
- 8, 93, 96, 96,224,178,172,172,172,102, 12,195, 72,156,113,230,229,172,127,233,192,254, 1, 21,202,242,155,140,178,252, 38,243,
-237,230,190, 85,175, 76,127,126, 71,112, 84,167, 77, 94, 97,237,215, 93,191,121,107, 35,195, 48, 27,143,165,103,110,156,255,229,
-111, 27,159,158,190,122,131,111,120,252, 43, 13,136,207, 7, 1,203, 9,192,203,203,171, 80,169, 84, 50, 12,195, 48, 38,147,137,
-209,235,245,140, 86,171,101, 84, 42, 21,163, 80, 40,152,234,234,106, 75, 62,175,172,172,180,124, 15, 8, 8,112,152,223,189,189,
-189,139,212,106,117,157,178, 67,167,211, 89,202, 15,149, 74,197,168, 84, 42, 70,169, 84, 90, 54,133, 66,193,132,132,132,228, 58,
- 9,231, 61,115, 56,105,154,102,140, 70, 35,163,215,235, 45,188, 26,141,166,206,166,213,106, 25,173, 86,203,132,135,135,187, 29,
- 78,119, 56, 53, 26, 13, 19, 22, 22, 86,224,136,211,199,199,167, 72,163,209,212,225,180,190,127, 91, 94,243,239,160,160,160,194,
-134,112,186, 19, 78,103,241, 89,139,117, 25, 25, 25,140, 90,173,102, 66, 67, 67,229, 35, 71,142, 52,152, 76, 38,102,255,254,253,
- 76,124,124, 60,221,183,111, 95,125,105,105, 41, 51,105,210, 36,198, 73,165,144,205, 71, 44, 39,139,251,113,180, 8,130,128, 68,
- 34,193, 15, 63,252,224,112, 57, 14,235,239,205,155, 55,119,247,154, 93, 34, 34, 34, 78,156, 58,117, 74, 20, 28,252,215,132,216,
- 58,157, 14,222,222,222,152, 54,109, 26,255,137, 39,158,104, 53,120,240,224,211,119,239,222,237, 3,224,156, 11,190,103,252,253,
-253, 63,159, 55,111, 94,224,115,207, 61, 7, 95,223, 58,147,110, 99,212,168, 81, 24, 57,114, 36, 47, 35, 35, 99,204,214,173, 91,
-199,172, 95,191,190, 80,161, 80, 76, 7,240,179, 51, 82,145, 72, 52, 34, 36, 36,100,195,169, 83,167, 2, 2, 2, 2, 16, 25, 25,
- 73,190,243,206, 59,173,162,163,163, 69, 97, 97, 97,228,189,123,247,240,235,175,191,134,142, 29, 59,246,199,162,162,162, 87,245,
-122,253, 30, 55,238,157,239,235,235,251,222,171,175,190,234, 87, 85, 85,101, 60,127,254,124,166,121, 63,159,207, 95,216,189,123,
-247,174,199,143, 31,255, 14,192,215,247,227,100, 49, 12, 83,133,191,154,248,204, 48,152,255,119,199,217, 98, 24,134,127,233,210,
- 37,159,238,221,187,255,172,213,106, 59, 77,157, 58, 53,103,201,146, 37, 34,153, 76, 38, 3, 64, 84, 85, 85,149, 47, 88,176, 64,
-183,122,245,234,119,219,182,109, 59, 32, 45, 45,237, 25,134, 97, 12,181,130,172, 62, 31, 65, 88,194,147,155, 95,130, 19,169, 52,
-255,195,185,111,135,125,178, 56,226,110,250,181, 92,154, 18,201,176, 47,249, 42,138,228, 10,252,150,118, 13, 65,190, 30, 4, 79,
-192,109,239, 25,218,174, 79,101,254,181,100, 56,153, 33,157, 69,227,128, 32, 8,136,197, 98,236,219,183,175,222,210, 85,246,150,
-181,162, 40, 10, 94, 94, 94, 46, 87, 55, 16, 10,133, 56,114,228,136,221,181, 23,237, 45,233,227,233,233, 9,103,149, 13,130, 32,
- 32, 20, 10,145,146,146, 2,146, 36,237, 46, 13,100,187, 79, 34,145,128,116,178,214,149,153, 51, 57, 57,217, 37,151,249, 83, 42,
-149, 2, 53, 77,255,142, 51,165, 64,128, 83,167, 78, 57,188,103,219,239,210,218,245, 94, 93,113,166,164,164,212, 89,250,203,118,
- 73, 48,235,223, 18,137, 4,132, 11, 82,111,111,239,110, 97, 97, 97, 56,123,246, 44,118,239,222,237,211,190,125,123,220,186,117,
- 11, 4, 65, 96,201,146, 37, 68,187,118,237,184,133,133,133,232,213,171, 23,126,249,229,151, 30, 85, 85, 85,108,134, 97,241,143,
-128, 97, 24, 46,128,142, 0,252, 81,211,237,166, 26,128, 23,106, 86,210,224, 3,144, 3, 16,213,110, 90, 0, 10, 0,126,181,167,
-151,214,150, 45,214, 2,161,196,122,241,105,134, 97,186,214,114,155, 87,168,240,183, 58,214,124, 13,219,223,182,159,118,185, 41,
- 0, 72, 76, 76, 52,191,204,250, 38, 36, 36,156,176,190, 57,119, 68,150,121,157, 50, 59,121,218,118,136,166, 64, 34,145,252,116,
-250,244,105,145,191,255, 95,247,160,213,106, 81, 93, 93, 13,133, 66,129,234,234,106,120,120,120, 96,247,238,221,162, 1, 3, 6,
-252, 84, 93, 93, 29, 93, 27,105,142, 56, 87,221,187,119, 47,208,104, 52,130,207,183,223, 69,137, 36, 73,196,196,196,224,189,247,
-222,195,144, 33, 67,130,250,245,235,183,202, 70,104,213, 27, 74, 42, 22,139, 55,156, 63,127, 62, 64, 44, 22, 35, 51, 51, 19,121,
-121,121,120,235,173,183,154,209, 52,141,220,220, 92,220,186,117, 11,249,249,249,216,186,117,107,192, 83, 79, 61,181,193,142,208,
-178, 55, 60,117,234,204,153, 51,219,120,123,123,147,159,126,250,105,133, 82,169,252,162,118,255,135,107,215,174,125,161,119,239,
-222, 1, 83,166, 76, 97, 82, 82, 82,182,215, 62, 56,135,241,105,221, 39,171,182,153, 15,181,137,239,134,205, 57, 49, 86,255,131,
- 97,152, 32, 0, 90,130, 32, 42,236,112, 18, 0, 60, 7, 15, 30, 60, 75,171,213,118, 58,117,234,212,159,143, 61,246, 88, 56,128,
-123,230,196,231,233,233, 41, 89,181,106, 85, 96, 66, 66, 66, 70,255,254,253, 59, 13, 30, 60,120, 86, 73, 73,201, 18,134, 97, 74,
-172,250,108, 89, 56,105, 26,151,130,130, 59,236, 74, 78,155, 62,250,120,138,142,247,246,155,243,115,154, 55,107, 81,121, 41,179,
-204,116, 45,171, 4,213,106, 35,158,238, 95,179,128,121,183, 14,205,241,249, 15,167, 48,109,198,251,220,159,119,109, 27,249, 39,
- 3,137,162,224,218,126, 39,241,249,160, 96, 57, 97,105, 98, 2,151,203,197,208,161, 67, 65, 16, 68,189,181, 60,185, 92, 46,210,
-210,210,208,191,127,127,112,185, 92,188,248,226,139,110,113, 82, 20,133,193,131, 7, 91,214, 81,180,230,179, 21, 13, 14, 52, 65,
-146, 77, 97, 11,138,162, 64,146,164,195,133,180,109, 57, 93,149, 75,230,112, 58,227,178,254,207, 85, 56,107,151, 60,114, 91,100,
-185,203,105, 14, 39, 69, 81,232,209,163, 7, 46, 94,188,232, 84,116, 57,208,151,117,238,189,188,188,124, 66,116,116,116,242,186,
-117,235,124, 0, 64, 46,151, 91, 22,188,231,112, 56,184,121,243, 38,116, 58, 29, 62,250,232, 35,125, 85, 85,213, 20, 54, 31,177,
-156, 77,201,233, 76,139, 0,232, 61,119,238,220, 46,203,150, 45, 91,210,189,123,247,157,169,169,169, 59, 8,130, 72,100, 24, 38,
-193,252, 57,119,238,220,246,203,150, 45, 91, 50,103,206,156,247,150, 46, 93,122,149, 32,136, 68, 0,176,253, 93, 91,150, 36,216,
-136, 56,127, 51, 79,109,158,171,115,172,189,223,182,159,246,184,235, 56, 90, 9, 9, 9, 68,237, 77, 18,214,133,154,187, 66,203,
-157,181,251, 40,138,122,125,201,146, 37,129,206, 68,150, 66,161, 64, 65, 65, 1,194,195,195,241,226,139, 47, 6,174, 91,183,238,
-117,163,209,248,153, 19, 90, 30,135,195,193,217,179,103, 81, 92, 92,140,216,216, 88, 68, 68, 68,212, 57,224,246,237,219, 56,112,
-224, 0, 42, 42, 42,208,185,115,103,160,166,115,183, 93,196,197,197,125, 20, 19, 19, 51,152, 36, 73,163, 72, 36,194,165, 75,151,
-208,169, 83, 39,252,240,195, 15,104,222,188, 57,196, 98, 49, 50, 50, 50, 16, 27, 27,139, 19, 39, 78,192,223,223, 31,241,241,241,
-198,170,170,170,147,101,101,101,199,238,222,189,251,145,163,112,134,134,134,206,127,229,149, 87,248, 5, 5, 5,244,150, 45, 91,
- 78, 1, 56, 5,224,245,247,223,127,127,242,144, 33, 67, 2, 46, 92,184, 80,153,158,158,126,198,129,200,114,199,201, 50,218,190,
-148, 76, 38,147, 86,173, 86,235,180, 90,173,129, 36,201, 59, 4, 65,232, 76, 38, 83,180, 35, 19, 98,226,196,137, 81,165,165,165,
-211,102,204,152,145, 93, 43,178,110,162,166, 3, 60, 0,192,104, 52,106, 21, 10, 69, 85,247,238,221,195,199,142, 29,251,231,142,
- 29, 59,166, 77,156, 56,113,247,150, 45, 91, 20, 0,212,182,132,205,155, 55,187,200,225,144, 60,101,181, 79,214,143,187,191,158,
-121, 96,239,235,205,114,115,243, 91,249,250,249, 43,121, 82,255,130,221,223,111, 62, 7, 64, 87, 80, 82,133,203,183, 11,193,229,
-114,112, 61,183, 18,189, 31, 31,197,253, 51,115,113, 79, 0,251,217,186, 92,211, 87, 22,205,139, 80, 31, 63,126,220,169,163,149,
-150,150, 6, 46,151, 11,145, 72,132,213,171, 87, 59, 37, 53, 11, 3,179, 91,228, 74,204,152, 23, 71,119,230, 62,209, 52,109, 89,
-232,221,118,251,226,139, 47, 48, 99,198,140, 58,215,168, 21, 27,132, 43, 78, 71,225, 11,111,209, 2,197, 69, 69,117,246,185,179,
- 40,189,201,100, 2,151,203,197,166, 77,155,144,144,144,128,196,196, 68,167,159, 67,135, 14, 5, 73,146,140, 59,241,217,163, 71,
- 15,232,245,122, 75,152,111,222,188,105,151,119,253,250,245,174,130,249, 4,128, 5,157, 58,117,146,245,235,215, 15,201,201,201,
- 24, 57,114,164, 86,175,215,103, 2,192,240,225,195, 91,175, 91,183,142,127,254,252,121,248,250,250,114,115,114,114,190, 5,219,
- 65,158, 69, 19,195,158, 22, 49,191,243,150, 45, 91,182,196, 86,196, 88,195,252, 63, 65, 16,137, 75,151, 46, 77,176, 22, 69,214,
-191,205,174,147,141,136,107,111,237, 72, 89,139, 40, 71, 2,202,230,125,107,125,124,137, 93,161, 85,123, 99,125,173, 93, 32,115,
-225,235, 74,100, 57,169, 57,214,129,167,167,231,176,167,159,126,218, 34,114, 52, 26,141, 69, 96,153, 69,150,249,119, 70, 70, 6,
-186,116,233,194,243,244,244, 28, 38,151,203, 63,115, 67,196, 33, 36, 36, 4,165,165,165,184,114,229, 10,194,195,195, 97, 48, 24,
-112,232,208, 33, 84, 86, 86,130,203,229,130,199,227, 65,175,119,218,119, 27, 49, 49, 49, 67,183,111,223,222,101,219,182,109,229,
-230, 26,221,247,223,127, 15,134, 97,224,239,239, 15,149, 74,133,162,162, 34, 28, 59,118, 12, 70,163, 17, 82,169, 20,145,145,145,
-252, 17, 35, 70,244, 92,176, 96, 1,215,137,208,234, 49,114,228, 72, 79,153, 76,134, 55,223,124,147,209,235,245, 75,107,247,205,
-159, 62,125,186,239,157, 59,119,116, 47,189,244,210, 89,189, 94,255,169,217, 76,180, 22, 56, 14, 30,172, 67, 39,203, 96, 48,152,
-227, 52, 91,161, 80,192,207,207, 47,220,218,217,114, 36, 6, 83, 82, 82,122, 0,224, 44, 92,184, 80, 8,160,200, 58, 12, 58,157,
- 14, 10,133, 2, 74,165,210, 80, 89, 89, 89, 60,123,246,108,227,142, 29, 59, 56,181,231, 92,183, 39,180, 8, 98,168, 78, 38, 19,
-243, 25,134,243,254,198,141, 27,165, 67,134, 12, 33,165, 82, 41,170,171,171,101,191, 29, 60, 40, 29,208,175,103,228,146,101,159,
- 28,150,133,197, 22,165, 92,202, 66,126, 97, 37,116, 6, 3, 34,131, 61,107,252, 48, 22, 77,142,218,129, 44, 22, 71,203, 90, 84,
- 36, 39, 39,227,241,199, 31,183,228,117, 30,143, 87,199,249,114,197, 73, 81, 20, 30,127,252,241,122, 14,207,241,227,199,237,186,
- 79,174, 96, 45,138,108,197,145, 61, 1, 70,146,164,203, 5,214,205,110,158, 61,177,101,237,234,219,136, 55, 87,205, 28,160, 40,
- 10,211,167, 79, 7,151,203,197, 59,239,188, 3,138,162, 16, 31, 31, 15,138,162,208,189,123,119,112,185, 92,244,239,223,191,193,
-247,126,250,244,105,116,234,212,201, 18,166,248,248,120,116,237,218, 21, 20, 69,161, 87,175, 94,224,114,185, 24, 60,120,176, 59,
-156,239, 85, 87, 87,199, 73, 50, 7, 8,223, 0, 0, 32, 0, 73, 68, 65, 84,165, 82,100,100,100,128,195,225,128, 32,136, 91, 0,
-226, 0, 32, 56, 56,248, 79,149, 74, 21,165,209,104,240,202, 43,175, 16, 58,157, 46,246,157,119,222,121, 95,163,209,176, 66,139,
- 69,147,193, 86,139, 88, 65, 61,103,206,156,247, 8,130, 72, 52, 59, 84,182,206,147,189,223,118,202, 38,179, 3,149, 94,155, 87,
-187,218,136,184, 18,130, 32,210, 25,134, 25,238,232, 92, 0, 58, 27, 97, 85,167,233,208,186,217,208,165,163,101, 46,124,221, 21,
- 90,174,160,209,104, 58, 6, 4, 4, 56, 20, 89,214,159, 58,157, 14, 17, 17, 17,208,104, 52, 29, 27,250,210, 8, 14, 14,134, 94,
-175,199,215, 95,127, 13, 30,143, 7, 30,239, 47,125,161,211, 57, 55,139,174, 93,187,150,125,250,244,233, 78,157, 59,119,246,254,
-229,151, 95, 74,250,244,233,227, 63,100,200, 16,136, 68, 34,168,213,106, 24, 12, 6,116,235,214, 13, 49, 49, 49,200,203,203,195,
-111,191,253, 86, 26, 29, 29,237,119,230,204, 25,186,176,176,240,174, 19,234, 65, 3, 6, 12, 0, 65, 16, 56,120,240, 96, 41,128,
-116,129, 64,112, 96,241,226,197,222, 58,157,142, 30, 63,126,124, 78, 89, 89,217, 12, 0,122, 62,159,191,182, 79,159, 62,221,147,
-146,146,190,163,105,122,117, 67, 19,170,109,220, 42,149, 74, 8,133, 66,119,166,146,224,150,149,149,117, 0, 0,137, 68,226, 3,
-224, 79, 75, 10, 87,171,235,136, 97,157, 78,167,241,241,241,145, 0, 64,237, 57, 92, 7,156,254, 70, 35,126,188,123, 55,203,195,
-186,255,156,151,151, 23,198,141, 29, 75, 62,214,163, 7, 63,174, 99,199,193, 31,172,216,246, 67,136,175, 76, 23, 25,226, 11,131,
-201,128,164,195,135,104,134, 54, 28,102,139,157,191, 71,104,153,197,134,173,163,197,229,114,113,226,196,137,122,251,120, 60, 30,
-190,250,234, 43,183,132,129, 89, 84, 57,106, 58,179,105,234, 34, 92, 9, 24, 46,151, 11, 14,135,131, 77,155, 54,129,166,105,204,
-156, 57,179, 78,115,162, 53,191, 91,118,158,149, 8,140,153, 79, 3,208, 33,111,165,192,114,190,109,120,107,207,113,203, 37, 91,
-183,110,157, 91,142,214,240,225,195, 93, 10, 87,235, 22, 6,235,112, 93,188,120,209, 46,239,198,141, 27, 93,198,167,201,100,194,
-254,253,251, 45, 34,213,140, 15, 62,248,224, 21, 62,159, 31,120,242,228, 73, 20, 22, 22, 66,169, 84, 66,161, 80,160, 91,183,110,
-145, 36, 73, 94, 42, 44, 44,188,115,253,250,245,167,217,220,195,226,111,116,180,180, 75,151, 46,189,186,116,233, 82,187,142,149,
-173,179,228,204,121, 50, 11,172, 90, 65,228,111, 22,111,168,233, 86,147,238,234, 92, 0,124,219,166, 67,167, 70,144,141,138, 92,
- 96,175,240,117,167,249,208, 77, 59,157, 34, 8, 2, 26,141,198,174,192,178, 22, 7,122,189, 30,101,101,101, 48,153, 76,247, 61,
-215,151,189,154,172, 43,161,117,229,202,149, 73,147, 39, 79, 46,240,244,244,140, 43, 41, 41, 41,166,105,186,127, 90, 90,154, 63,
- 69, 81,144,201,100,144,201,100, 56,112,224, 0,196, 98, 49,166, 79,159, 94,108, 50,153,146, 61, 60, 60,124,213,106,245, 31,133,
-133,133, 31, 56, 84, 48, 92,238,224, 94,189,122,225,252,249,243, 40, 47, 47, 63, 2, 32,254,249,231,159,127,188, 89,179,102,196,
-226,197,139, 53,183,111,223, 94, 13,160, 88, 34,145,108,223,190,125,123,191,206,157, 59,123,140, 31, 63, 30, 39, 78,156,216, 8,
- 64,227,238, 61, 43,149,202, 58, 2,171,170,170, 10,213,213,213,144, 72, 36, 70, 55,227,140,139,191, 70, 24,130, 97, 24,203,179,
-169,117,179,204,207,135,161, 40,202, 60,170,209,145,200,130, 68, 34, 89,184,109,219, 54,145,237, 32, 5,147,201,132,162,162, 34,
-200,100, 50,204,251,224, 3,222,199,111, 77,233,196,145, 6,166,145, 36, 1,157,158,169, 96,104,221, 33,101,209,115, 39,129,143,
-216,146,231,111,128, 89, 24, 60,249,228,147,245,154, 11,121, 60, 30,142, 28, 57,130,167,158,122,202, 82,113,233,220,185,179,203,
-202,149, 89, 24, 60,241,196, 19, 22,103,232,208,161, 67,118,155,253,204,142,148, 59,130,208,124,236, 27,111,188, 1,138,162,240,
-249,231,159, 99,214,172, 89, 32, 73, 18, 43, 87,174, 4, 73,146,248,240,195, 15,221, 22,153,214, 2,230,206, 39, 53,159, 97,179,
-170, 32, 95, 31, 8, 0,240,144,201,204, 55,212,160,178,135,162, 40,139,147,213,177, 99, 71,112,185, 92,116,239,222, 29, 20, 69,
- 89,156,172, 97,195,134, 89,199, 35,227, 14, 39, 69, 81,200,204,204,180,132,185,123,247,238,117,156, 44,138,162, 48,124,248,112,
-119,130,185,196,203,203,107, 65, 76, 76, 76,219, 85,171, 86,113, 57, 28, 14, 6, 12, 24,208, 58, 40, 40,232,174,209,104,244, 93,
-184,112,161,216,206, 57, 34, 0,113,109,219,182,149,176,185,134, 69, 19, 58, 90, 11,236,252,229,109,221,231,170, 1, 21,201, 68,
-235,227,205, 28,182,226,168,214, 33, 75,118,197,101,239, 92, 87,160,204, 10,210,153,165,238,142,208,170,181,157,157, 94, 76, 44,
- 22, 95, 46, 46, 46,238, 46, 18,137,234,136, 44,123,130,139,195,225,160,176,176, 16, 98,177,248,178, 86,171,109,180,135,232,170,
-233, 16,128,230,214,173, 91,111, 89,253, 30, 56,108,216,176, 45, 71,142, 28, 9, 78, 74, 74,194,153, 51,103,224,239,239,143,117,
-235,214,221, 43, 42, 42,154, 4,224, 72,105,105,169,203,235, 70, 69, 69,117,144, 74,165, 72, 73, 73, 1,128, 19, 0,166, 76,155,
- 54,141, 48, 24, 12, 88,191,126,189, 18,192, 65, 47, 47,175,253,187,119,239,238, 20, 23, 23,199, 79, 74, 74,170, 58,115,230,204,
-239,110,138, 44, 19, 77,211,245, 4,150,117,156,122,120,120,184,227,104, 25, 60, 61, 61,175, 84, 85, 85,141, 82,171,213, 85, 2,
-129,192,163,170,170, 74,107, 45,176,204,252, 20, 69,113, 51, 51, 51, 11, 0, 68,122,122,122, 94,129,131,102, 78,138,162, 6, 12,
- 24, 48,128,178,125, 6, 69, 69, 69, 40, 44, 44,132, 94,175, 71,231,206,157, 9, 14, 97,224,148,231, 94,182,153,214,129, 21, 89,
-127,147,163,197,152,243,186,121,148,160,189,145,134,135, 14, 29,178,252, 38, 73, 18,155, 55,111,118, 75, 20, 29, 57,114,196,105,
-135,117,155,166, 67,151,214,184,249,248, 47,191,252, 18, 12,195, 88,156, 44,146, 36, 49,103,206, 28, 8, 4, 2, 44, 94,188, 24,
-115,230,204, 1, 69, 81, 46,155, 14,173, 5, 76,139,119, 84,214,149,163,154, 76, 81,219, 31,138, 32, 8,107,177, 69,184, 43,222,
-156,185,121,238,180, 4, 88,115,154,207, 19, 10,133, 14, 59,194,219,112, 58,187,192, 62, 0, 89,193,193,193, 41,221,187,119,247,
- 60,119,238, 28, 86,174, 92,201,211,106,181,205,147,146,146, 44,215,181, 23, 95, 74,165, 82,196,230, 28, 22, 77,225,102, 57,249,
-187,196,166,127, 21, 97,221,140,231,228,211,246,120, 88,237,179,230, 45, 33, 8,194, 96,231,122, 37,118,196,149,237, 53,172,143,
- 41,113,232,104,185, 42, 44, 92, 9, 46,119, 28, 45,149, 74,245,251,193,131, 7,187,142, 29, 59,150,114,214,108,168, 84, 42, 17,
- 24, 24,136,171, 87,175, 26, 85, 42,213,239,110, 56,101,141, 41,180,108,145, 84, 92, 92,204, 49, 24, 12,104,213,170, 21, 66, 67,
- 67,161,209,104, 80, 81, 81,193, 1,112,196, 77, 14,158, 68, 34,225, 0, 64, 69, 69, 5, 80, 51,212,180,117,116,116, 52,206,159,
- 63,143,178,178,178,159, 1, 12, 89,176, 96, 65,231,110,221,186,241,126,248,225, 7,213,212,169, 83,127, 54, 24, 12,110, 41, 13,
-154,166,117, 70,163, 49,130, 36, 73,125, 69, 69, 69,190,117,124, 6, 6, 6,250, 72, 36, 18,162,168,168,200,224,142,208,138,139,
-139, 59,155,147,147,131,133, 11, 23,150, 44, 89,178, 36,186,186,186,186,188,178,178,210,104, 45,182, 52, 26, 13,233,231,231, 39,
- 88,191,126,189, 8, 0,226,226,226,206, 58, 18, 90, 74,165,178,153, 88,252, 87,197, 88,171,213,162,176,176, 16,133,133,133, 40,
- 42, 42, 66,117,117, 53, 34, 35, 35,161, 82,169,194,217, 98,230, 31, 19, 90,117,154,207,172,243,183,245,139,188, 33,121,221, 90,
-192, 60,249,228,147,150,190, 93,102,135,204,188,253,248,227,143,182, 29,204,221, 18, 90, 95,126,249, 37,222,120,227, 13, 8,133,
- 66,172, 90,181,170, 78,211,161,173, 56,160,105,154,112,231,222, 35,222, 85,163,112,173, 15,184, 92, 46,124,167, 22,213,105,162,
-179, 35, 56,220, 10,231,146, 37, 75, 26,165,233,208,154, 51, 60,188, 38,171,108,218,180, 9,163, 70,141,194,201,147, 39,239,187,
-233,176,125,251,246,223, 39, 38, 38,122, 94,187,118, 13, 85, 85, 85, 40, 41, 41,129, 86,171, 69, 94, 94,158,195, 86,129,218,178,
- 92,200,230, 28, 22,127,115, 57,149,254,119,242, 54,230,245, 40, 23, 47,112,183,133,150, 59,142,150, 86,171, 93,245,230,155,111,
- 78, 27, 56,112,160,143,135,135, 7, 10, 10, 10,234,137, 44,133, 66, 1,169, 84, 10,181, 90,141,189,123,247, 86,105,181,218, 85,
-174,196,129,193, 96, 64, 64, 64, 0, 74, 75, 75, 65, 59,232, 63, 77,146, 36, 68, 34, 17, 20, 10, 5,224,162,147,185,189, 23,134,
- 94,175,135,193, 96,128,193, 96,128, 94,175,119, 89, 75,182, 53,243, 36, 18,137, 89,120, 0,128, 50, 36, 36,164,149, 80, 40, 68,
-118,118, 54, 80, 51,178,111,224,227,143, 63,206,149,203,229,204, 75, 47,189,116,138, 97,152, 87,224,124,118,124, 93,114,114,114,
- 4, 0,136, 68,162, 12, 0,200,203,203, 51, 84, 84, 84,212,113, 10,197, 98, 49,243,212, 83, 79, 5, 51, 12,131,228,228,228, 8,
- 30,143,199,192,241,168, 70,205,158, 61,123,174,121,122,122,238, 88,182,108,217,216,132,132,132,171, 29, 58,116,136, 80, 42,149,
-197,106,181, 90,173,209,104, 24, 14,135,195,243,246,246, 22, 30, 62,124,248,207,180,180,180,129, 50,153,108,199,158, 61,123,174,
- 57,114,222, 36, 18, 73,158, 74,165,106, 97,126,166,214, 34,171,176,176, 16, 12,195, 32, 43, 43, 11, 98,177, 56,199, 85,179, 46,
-139,166,131,185, 82,101,235,188,216,238,115, 87,100, 89, 11,131,195,135, 15, 59,157, 67,203, 93, 78,107, 81, 52,107,214, 44,172,
- 93,187,182,158,163,181,120,241, 98, 0,192, 7, 31,124,224,118, 31, 45,179,123, 85,184,214, 7, 65,111,148,213, 9, 59, 0, 16,
-230,240, 53, 44,207,131,162, 40, 44, 92,184,176, 94, 39,117,235,166, 61, 55,155,248,234,132,179,184,184, 24, 20, 69,193,199,199,
- 7,227,198,141,195,224,193,131, 45, 77,144, 13,229,189,113,227, 70,202,187,239,190, 27,219,190,125,123, 44, 90,180,168,204,203,
-203,203,227,229,151, 95,166, 42, 42, 42, 8,103,142, 22, 43,180, 88,176,104, 4,161,101,206, 96,238,142, 58,116, 80, 88, 14, 68,
-221,185, 54, 42, 85, 42,213,184, 65,131, 6,253,178,107,215, 46, 81, 84, 84, 20,110,220,184,129,178,178, 50,232,116, 58,240,120,
- 60, 4, 7, 7,163,162,162, 2,155, 55,111, 86,171, 84,170,113, 0, 42, 93,112,190,223,165, 75,151, 13,159,125,246,153, 48, 62,
- 62, 30,101,101,101, 80, 40, 20, 22, 33, 68, 16, 4,100, 50, 25, 68, 34, 17,206,158, 61,139, 67,135, 14,169, 1,188,239,130,211,
-158,154,131, 94,175,183, 8, 46, 55,132,150, 53,167,196,236,234,168, 84, 42, 0, 48, 52,107,214, 44, 8, 0,178,178,178, 0,224,
- 78,100,100,228,130,168,168, 40, 98,251,246,237, 12,195, 48,135, 28,136, 44, 11, 39, 65, 16,101, 12,195,148, 3, 8,210,233,116,
- 60, 0,168,172,172,212,251,249,249, 5, 8, 4, 2, 90, 36, 18,209, 66,161,144, 46, 40, 40, 48, 26,141, 70, 30, 0,244,234,213,
- 75, 7,160,208,102,141, 66,107, 78,154, 97,152,170,141, 27, 55, 46, 24, 63,126,124,247, 30, 61,122,180,127,237,181,215,174,188,
-244,210, 75,100,104,104,168,119,117,117,181,230,214,173, 91,229, 43, 86,172,168, 62,125,250,244, 64, 46,151,123,119,227,198,141,
- 11, 0, 84, 17, 4, 65,219,227, 52, 26,141,191, 39, 37, 37, 77, 74, 72, 72,160,242,243,243, 81, 84, 84,100, 17, 89, 69, 69, 69,
-136,137,137, 65, 90, 90,154, 73,175,215, 39, 53, 32, 62, 27, 11, 44,103, 77, 37,132, 49,231,117, 71, 2,203, 92,153,114,151,211,
- 90, 20,141, 26, 53,170,142,139,197,227,241,240,211, 79, 63,217, 45, 55,236,228,171, 58,247,110, 61,199,215,187,239,190, 91, 71,
-180,205,155, 55,207, 97,113,230, 42, 62,205, 60,149,155, 66,235,142, 58,116,144,207,157,133,211, 92,118,114,185, 92,204,155, 55,
-207,109, 71, 11,245,251,104,213,227, 52,223,123,159, 62,125,160, 82,169, 44, 66,214,145,163,229, 42, 62, 77, 38,211, 27,107,215,
-174,101,100, 50,217,163, 85, 85, 85,207,231,228,228,108, 85,169, 84,143, 84, 86, 86, 58,117,180,180, 90,173,128,205, 71, 44, 39,
-154,102,126,174,255,142,208,170,125, 73,162, 89,179,102,117,214,206, 34, 73,178,206,214,144,126, 6,181, 56,156,153,153,249,204,
- 99,143, 61,246,221, 27,111,188,225, 17, 31, 31,207,109,209,162, 5,148, 74, 37,178,179,179,113,245,234, 85,227,158, 61,123,170,
- 84, 42,213,243, 0,220, 25,117,182,237,218,181,107,135,134, 12, 25,242, 97,183,110,221, 94,157, 63,127, 62,167,117,235,214,168,
-172,172,132,183,183, 55, 2, 2, 2,112,243,230, 77,236,221,187,215, 84, 90, 90,186, 1,192,199,176,211,134,234,170,194,175,215,
-235, 49,102,204, 24,208, 52,141,213,171, 87,195,157, 5,149,173,160,215,235,245, 12, 0,162,182, 63,151,170,118,118,105,220,186,
-117, 11, 0,238, 70, 68, 68,120, 0, 64, 82, 82, 18,129,154,249,181,220,169,225, 51, 12,195, 88,156,173,152,152,152,108,219,194,
-209,236,100,153, 93, 48, 87,225, 38, 8, 66,195, 48, 76,177, 74,165, 26, 50,107,214,172, 15,191,252,242,203,177, 95,126,249,101,
-189,227,100, 50,217,142,149, 43, 87,126, 60,122,244,232, 98,130, 32, 28,246, 35, 83, 42,149, 31, 76,152, 48, 97,244,229,203,151,
- 61,132, 66, 33,148, 74, 37,228,114, 57,244,122, 61, 34, 35, 35, 81, 92, 92,140,109,219,182, 85,171,213,234,143,216,236,248,207,
-192, 90, 24, 56,114,181,220, 16, 89, 14, 93,157,125,251,246,217,157,163,170,161,156,182, 98,195,221,185,173,156, 85,138,204,211,
-210,216,155, 50,162,129,229, 90, 61, 94,138,162,240,233,167,159, 90, 38,109,181,231,100, 53,196,209, 50,115,250,248,248,212,216,
-228, 98, 49,104,154,198,240,225,195, 31,132,151, 6, 48,221,106,198,247, 37,179,103,207, 94, 16, 19, 19,211, 26,128,192, 58, 14,
- 26,232,226,179, 96,193,194,149,208, 50,153, 76,121,109,218,180,169, 83,192,185, 90,204,212, 96, 48,228,185,121,221, 67, 74,165,
- 50,114,229,202,149,111, 74, 36,146,129, 42,149, 42,182,182,224,184,172, 84, 42,147,180, 90,237, 26, 52,108, 17,232, 18, 0,175,
-159, 62,125,122,245,144, 33, 67, 22,247,239,223,255,217,183,222,122,139, 96, 24, 6,235,215,175,103,110,223,190,253, 99,173,139,
-117,251,126, 34,201,199,199,231,218,230,205,155, 3,127,249,229, 23, 24, 12, 6,172, 89,179, 6, 30, 30, 30,215,202,202,202,220,
-165, 40, 62,122,244,232,150, 30, 61,122,188,144,150,150,182, 13,192, 31, 39, 78,156,216,218,179,103,207, 9,105,105,105,223, 3,
-184,122,236,216,177,173,221,186,117,155,144,158,158,190, 27,192,197, 6, 20,190, 22,103,203,104,180,223,210,232,192,201,114,198,
- 89,197, 48,140,126,242,228,201,111,141, 30, 61,250,235,244,244,244, 71, 42, 42, 42, 98, 1,192,203,203,235,114,215,174, 93,207,
-238,218,181,235,102,173,147,229,170,179,126,137, 82,169,124, 42, 54, 54,246,231, 69,139, 22, 73,218,183,111, 79,181,106,213, 10,
-119,238,220,193,149, 43, 87,140,223,126,251,173, 66,173, 86, 63, 9,160,156,205,142,255,156,208, 98, 24, 6, 94, 94, 94,117, 42,
- 81,230, 33,255, 13,109, 46,180,126, 49,155,151,234,177,229,117,196,233,108,218, 4, 51,164, 82,169,101,114, 83,119,186, 44,208,
-180,243,249,216, 24,134,177,112,154, 55, 55, 68,150,203, 17,130,181, 75,224,184,205,233,206,244, 14, 18,137, 4, 6,131,193,194,
-235,198,200,207,134,170,197,125, 0,246, 25, 12,134, 91, 0, 90,178,226,138, 5,139, 38, 20, 90,229,229,229, 93,154,248,218, 85,
- 90,173,246, 99,173, 86,251,177,121,135, 70,163,121, 80,206,219, 0, 70, 31, 61,122,244,179,163, 71,143,154,219, 17, 22,194,245,
-122,137, 78,113,227,198,141, 4, 46,151,251,213,142, 29, 59,186, 49, 12, 3, 79, 79,207,211,119,238,220,121,185, 33, 28, 38,147,
-105,114, 90, 90,218, 52,212,246,101,210,235,245,147, 83, 82, 82,222, 68,205,122, 76, 48,153, 76,147,207,156, 57, 99,249,221,192,
- 23, 37,195, 48,140,150, 97,152, 16, 7,135,104, 27,232,192,153,157, 45,221,174, 93,187, 20, 0, 46,225,175,121,178, 12,181,155,
-198,166,185,208, 25,142, 41,149,202, 86,243,230,205, 91,194,225,112, 6, 40,149,202, 80,137, 68,146,107, 52, 26,127, 87,169, 84,
-239,163,102,141, 42, 22,255, 16,116, 58, 93,126,155, 54,109, 40,123, 21, 40,103, 47,114,103, 21, 43,147,201,148, 23, 29, 29,237,
-178,114,102,135, 51,223,137,104,184, 27, 25, 25, 73,186,203,101,134, 94,175, 47,118, 22,206,200,200, 72, 52,148,211,213,189, 71,
- 68, 68,216,189,119, 23,130,208,225,189, 27,141,198,251,226,116, 22,159,206,160, 86,171,203,253,253,253, 21, 26,141,134,171,213,
-106,185, 70,163,177,142,253, 40, 18,137, 74,212,106, 53,155,121, 88,176,120, 16,161,245,144,227, 28,106,150,151,104, 44,104, 47,
- 95,190,252,130,197,158, 42, 46,190, 95, 30, 91, 37,169,112,241,187, 33,194,168,209, 29,161, 90, 33,165,106, 36,186, 82,133, 66,
-241,146,249,135,185, 15, 8,139,127, 30,114,185,252,209,198,230, 44, 43, 43,107,244,138, 90,105,105,105,247, 38,184,247, 46,255,
- 85, 78,103, 40, 40, 40,120,212,133, 16, 99, 51, 14, 11, 22,110,130,100,163,128, 5, 11, 22, 44, 88,176, 96,193,162,105, 64,160,
-102,228,128, 61, 52,100, 52,193,192,251,184,118, 18,203,201,114,178,156, 44, 39,203,201,114,178,156,255, 57, 78, 87,220,236,104,
-198, 38, 22, 96, 44,231,255, 63, 39, 7, 0, 33, 18,137, 8,161, 80, 72,136,197, 98,130,141, 79,150,147,229,100, 57, 89, 78,150,
-147, 69,125,252,227,125,180,252,253,253,147, 41,138,138, 86, 42,149,202,234,234,234, 40, 15, 15,143,219, 18,137, 68, 98, 52, 26,
- 51, 75, 74, 74,122, 63, 32,253,100,129, 64, 48, 51, 46, 46,174,221,205,155, 55, 51,170,170,170, 86, 0,248, 6,246, 71, 12,113,
-109,246, 19, 0,226,155, 55,111,190, 85, 40, 20,138, 51, 50, 50,230, 0,248,222,141,120, 36,224, 98, 68,146, 53,188, 37, 60, 46,
-106,250,147,245, 5,112, 28,192,190,114,165,222,240, 32, 55,125,191,156, 82,169,212,167,101,203,150,235, 35, 34, 35, 35, 25, 64,
-203, 48, 53,243, 15, 25, 13,122,222,213, 43, 87,146,239,220,185,179,161,127,255,254, 95,135,133,133, 5,114,185, 92,131,121,212,
-151, 74,165,226,109,219,182,173, 21,155,157, 88,176, 96,193,130, 5, 11, 55,133,150,164, 57,218,240, 37,196, 54,147, 1,106,163,
-150,153,170,204,197, 13,105, 51,244, 96,128, 23, 24, 32,130,228,144,254, 38, 19, 93, 72,107, 8, 35,215, 32,138, 38, 25, 74, 88,
- 85, 85, 21,218,224, 0, 80, 84,116, 65, 65, 65, 64, 72, 72,136,121,241, 99,137,249,247, 3,128, 0,240,197, 43,175,188, 50,245,
-213, 87, 95,133,183,183, 55, 12, 6, 67,235,157, 59,119,110,154, 55,111, 94,119, 0, 47,218, 17, 67, 12,234, 78, 18,218, 58, 54,
- 54,118,127,106,106,170,111, 69, 69, 5, 58,119,238,188,162,184,184,216,145,208, 50, 54, 52,128,222, 18, 94, 27, 0, 47, 6,121,
- 9, 38,125, 51,171,191,119,139, 1,175,225,202,143, 11,166, 77,255,230,114, 57,128,205, 0,190, 41, 87,234,111,254, 93,156, 30,
- 30, 30, 1,109,162,163,119,253,248,243,207,189, 79, 31, 59, 6, 31, 1, 31, 18, 17, 31, 96,128,192, 86,109,240,218,236,217,198,
- 71, 30,121,164,223,119,223,125, 23,151,158,158,142,208,208, 80,136, 68, 34,136,197, 98,200,229,114,108,219,182,237,190,211, 17,
- 77,211,247, 0, 28, 37,141,216,167, 40,192, 45, 54, 91,178, 96,193,130, 5,139,127,189,208, 98,104,172, 88,125, 96,114,231, 43,
-101,191,225,139,103, 10,151,138,194, 96,236, 49, 34,250,233,132,137,157,224,233, 47,134, 80, 74,161, 66, 94,213,225,230,133, 92,
- 28,223,253, 39,188, 13,173,145,246,251,249,235, 42,149,170,237,253, 4, 68, 44, 22,139,131,131,131,139,196,214, 11,227,221, 31,
-132, 0, 86,188,250,234,171, 83,223,121,231, 29,252,254,251,239,216,179,103, 15,198,143, 31,143, 25, 51,102, 64, 42,149, 78,154,
- 49, 99, 70, 26,128,175,157,112,180,142,141,141, 61,149,154,154,234,171, 86,171,113,229,202, 21,148,149,149,253,209, 88,145,238,
- 45,225, 45, 91,255,114,220,187,221,158,158, 14,255,246,131, 64,144, 53,143,161,215,236,189,184,248,166,218, 59, 47,229,187,183,
-246,252,248,253, 91,203,247,220, 90, 94,174,212,207,249, 59, 56,163,162,162,214,237,250,233,167,222, 97, 97, 97,216,159,125, 27,
- 45, 35,130,209,172, 77, 39, 84,102,223, 70,201,221, 44,232,244,122,244,237,219, 55,238,212,169, 83, 40, 40, 40,128,159,159, 31,
- 52, 26, 13,210,211,211, 33, 20, 58, 94,141,163, 1,233,104,200,177, 93,183,150,223, 58, 95,178, 76,153,131, 15, 1,152,216,236,
-249,175, 65,235,102,205,154,253, 44, 18,137,100, 25, 25, 25, 31, 0,216,210,132,215, 26,215,173, 91,183, 53,151, 46, 93,186,160,
-213,106,223, 4,144,193, 70, 63, 11, 22, 44,254, 73, 56, 27,117, 24,236,239,239, 7,191, 72, 46,188,125, 36, 67,151,255,244,252,
-211,175, 45, 29, 0, 94, 84, 62,202,164,103,112,151,249, 29, 26,223,155,104, 51,132,135,183,191,233, 7,223,238,114,192, 71, 85,
-128,112, 8, 28, 17,250,248,248,252, 28, 16, 16,144,106,189, 25,141, 70,225,156, 57,115, 76, 25, 25, 25,146,130,130,130,128,140,
-140, 12,201,156, 57,115, 76, 70,163, 81,232, 31,232,115,193,163, 57, 47, 47,162,183,168, 68,210, 28,175,187,112,176, 62, 11, 10,
- 10, 82,141, 29, 59, 86,221,161, 67,135,169, 12,195, 96,235,214,173,120,249,229,151,119,254,246,219,111, 17, 99,198,140,217,122,
-244,232, 81, 76,153, 50, 5, 94, 94, 94, 51,220, 21, 89, 23, 46, 92,192,132, 9, 19, 74,140, 70,227,140, 70,140,247,137,163, 86,
-156, 65,200, 35,207,130,195, 19, 89,214, 82, 35, 72, 18, 92,145, 12, 97,143, 61,143, 87, 22,127, 7, 0, 19,255, 46,206,200,168,
-168,150,231,146,147,241,237,194, 69,104, 29, 16,128,208,102,161,240,105,211, 1, 30,254,126,160, 40, 10, 12, 3,134,207,231,211,
-229,229,229,144,203,229,144,203,229,200,206,206,198,241,227,199,113,239,222, 61, 52, 70, 58,154,253,109,127, 50,225,181,182,239,
-137,155,225,160,179,116,196,226,225, 18, 89,177,177,177,167,110,220,184, 17,147,148,148, 20, 18, 26, 26,250, 73, 83, 94,172, 75,
-151, 46,203, 79,158, 60,233,115,240,224,193, 65, 65, 65, 65,201, 0, 90,223, 79,152,155, 55,111,126,189,117,235,214,121, 0,198,
- 53,114, 16, 39,118,239,222,189,140,207,231, 31,186,207,176,177, 96,241, 48,161, 3,128, 88, 86,104,185,129,197, 59,199, 82, 62,
-109,181,184, 82,126, 0,187, 62,249, 3,159, 12,189, 73, 47,238,158, 77,127,254,194, 13, 28,222,245, 7,138,241, 7,134,189,214,
- 18, 99, 63,232, 56, 80,108,194, 34,153, 76,118,193, 30, 15,143,199, 11,204,200,200,240,205,202,202,242,189,125,251,182,111,102,
-102,166,239,181,107,215,138, 42, 42, 42, 20,195,135, 15,167, 1, 96,248,240,225,244,221,156,187,170, 65, 79,247,161,195, 7,160,
-227,172,159,218,133,206, 73,236,228,231, 29, 44,152,235,232, 30, 56, 28,206,158, 47,191,252,242,173,220,220, 92,209,247,223,127,
-143,244,244,116, 68, 69, 69, 97,209,162,133,229, 35,122,180,237,245, 72,148,239, 42, 79, 17,247,179, 45, 91,182, 64, 44, 22,163,
- 99,199,142,142, 92,183, 22, 29, 58,116, 72, 49,139,172,139, 23, 47,226,249,231,159,215,203,229,242,171, 0,150, 1,216, 67,145,
- 68,178,191,167,164, 66, 34,160,238, 18, 4, 14,160,166,207, 87,120,195,163,158, 64,229,221, 75, 48,233,213,160, 4, 18,112,120,
- 66,144, 20, 31,101,183,210,144,241,235, 66, 84,100,221,207,194,225, 15,192, 73,146, 26, 79, 46, 23,113,126,190,136,141,136,132,
-143, 80, 6, 85,218, 49,160, 66, 1, 30, 79, 0,128,129, 64, 32, 64,117,117, 53, 46, 92,184,128,235,215,175,227,220,185,115, 56,
-123,246, 44,138,138,138,112,191,233,104, 73,143,108,173,163,116,196,150, 81,255, 14,145,149,154,154,234,171,209,104,112,227,198,
- 13,148,148,148, 92,108,202, 11,102,100,100,148,167,166,166, 34, 44, 44, 12,223,127,255,189,127, 68, 68,196,201, 6, 10,154,214,
-177,177,177,167,174, 95,191, 30,147,148,148, 20, 26, 16, 16,176,162, 49,195,247,200, 35,143, 44, 62,121,242,164,247,225,195,135,
- 7,251,251,251,223,175, 16,100,193,226,255, 25, 2, 0, 47, 16, 4,113,182, 67,135, 14,151,219,183,111,255, 7, 65, 16,105, 0,
- 70,225,223, 59,119,167, 83, 88,110, 58, 49, 49,241, 4, 0, 36, 36, 36,244,177, 61, 72, 17,112, 30,249,217, 69,216, 60,177,152,
- 86,151,160, 98,209,123,159,237, 57,127,250,226, 83,111,206,120,211,123,245,198,229,216,158,118, 0, 99, 86, 24,209,107,116, 59,
-156,217,159,243,214,196,126,115,241,214,140,217, 64,253, 33,154, 12, 73,146, 72, 73, 73,129,201,100,130, 78,167,131, 78,167, 67,
-187,118,237,202,142, 29, 59, 38, 5,128,204, 63, 51, 24,174,175, 78, 48,240, 29, 25,111,202,128, 24, 40,228,122,124,247,110, 38,
- 74,179,181, 63,214,114, 36,213,145, 7, 36,249,245,134, 13, 27,158,152, 50,101, 10,190,248,226, 11,236,220,185, 19, 79, 62,249,
- 36,158,123,238, 57,148,148,148,120,135,226, 30, 6,180,243, 11,233, 59,125, 67,159, 49, 99,198, 64,161, 80, 32, 61, 61,253,186,
- 77,184,146, 80,211, 25,254,245,227,199,143,251,168,213,106, 84, 87, 87,163,111,223,190,144,203,229, 60, 0,253,237,196,157, 39,
-128,230,106,181, 26, 45, 90,180,104, 93, 82, 82,210,195, 14,103, 61,120, 75,120, 22,113,171, 87,150, 67,175, 44, 7,135, 39,132,
-208, 59, 12, 87,191,155, 1,134,174,105, 49,243, 12,239,104,239,244, 38,227, 20, 11, 4, 72, 76, 77,193,241,196,125,104, 27, 25,
-137,158,177,177, 56,117,249, 10,120, 36,129,145,147, 38, 3, 52, 19,144,146,146, 66,148,148,148,224,242,229,203, 88,184,112, 33,
-114,114,114,112,224,192, 1,152, 76, 38,183,194,105,147,142, 84,139,222,251, 44,123,236,179,207,223, 60,120,228,183, 59,137,191,
-255, 52,104,123,218,209,248, 49, 43,140, 68,175,209,237,112,246, 64,206,204,108,162,252, 91,101, 46,110, 56,227,124, 64,176,156,
- 77,199,217,190,125,251,246,167, 83, 83, 83,197,106,181, 26,187,119,239,198,252,249,243, 13,122,189,158, 2,176,199,206,185,233,
- 0,190, 64,253,165,183,236,133, 83, 6, 96, 26,128,174,245,210,152, 66, 81,242,204, 51,207, 24, 22, 44, 88,192,125,252,241,199,
-177,111,223, 62,191,145, 35, 71, 94,204,200,200,136,199, 95,205,136, 73,174,132,225,125,116, 25,112, 43, 62,107,133, 96,112,104,
-104, 40,182,111,223,238, 63, 97,194,132,228,162,162,162,222,176,223,196,201,166, 37,150,243, 97,226,108, 1,224, 85,169, 84, 58,
-165,111,223,190,222, 79, 62,249, 36,124,125,125, 97, 52, 26,145,155,155,219, 45, 49, 49,177, 91,106,106,106,129, 78,167, 91, 11,
- 96, 19,128, 10,123,164,206,180,200, 67, 45,180, 18, 19, 19, 25,212,140, 80,179, 11,149, 73,142,248,224,161,232,246,187,148,172,
- 40,171,210, 47, 24,185,244,104, 69,142,254,169,175,190,250, 10,207, 61, 49, 1,251,126, 23,227,244,206,189, 24, 56,190, 16, 3,
- 39, 71,226,207,147,142,187, 69, 24, 12, 53,131,223,140, 70, 35, 12, 6, 3,244,122, 61,244,122, 61,196, 98, 49,174,221,188, 2,
-163,119, 9,231,249, 53,173, 56,161,109, 36, 72,221, 89,136, 3,171,115,116,138, 98,195, 92, 93, 57,126,170,103,223, 0, 95,175,
- 90,181,106,210,148, 41, 83,176, 96,193, 2,252,244,211, 79,204,138, 21, 43,136,121,243,230,161,188,188, 28,253,250,245,195, 43,
-147,159,199,181,184, 16,188, 59,127,177,108,212,168, 81,248,248,227,143,161, 84, 42, 87, 57, 8,158,151, 78,167,179, 44,118,155,
-151,231,122,233,198,156,156, 28, 48,206,151, 82,131,183,132, 39,244,146,240,150,112, 72,226, 57, 14, 1,127,131,137,193,241, 5,
-189,192,137, 25,137,249,107,119,194, 68, 51, 24,247,212, 32, 68, 42,170, 32, 18, 75,106, 20, 41,109,186, 47,206,232,161,111,130,
-228, 10, 97,210,107,176,101,203,102,236, 57, 84, 1,157,252, 14, 94,123, 60, 10,129, 78, 56,141, 70, 35,211,188,121, 27,180,108,
-175, 3, 35,224,225,216, 93, 45, 98,251, 36,224,198,181,219,200,175,212, 35, 46,182,125,139,201,147, 95,132, 64, 32,192,237,219,
-183,177,100,201, 18, 40,149, 74,119,215,133,179,151,142,164,171, 95, 91, 43,124,245,197,215,222,187,144,126, 49,119,235, 23,187,
-126,153,246,238,148,175, 79,239, 60, 24, 59,112,124, 33, 6, 76,138, 36, 55, 92, 42,127, 22,192, 2,182,130,248, 80, 98,195,153,
- 51,103,196, 42,149, 10,213,213,213,120,249,229,151, 49,109,218, 52,174,189, 74, 75,113,113, 49, 82, 82, 82,158,156, 62,125,250,
-152,194,194,194,222,112,190,238,165,119,167, 78,157, 82,143, 29, 59,214,218,195,195,195,178,147,166,105,232,245,122, 75,153,162,
-213,106,161,213,106, 33,147,201,144,154,154, 42,244,241,241,217, 5,231, 77, 24,127, 71,151, 1, 84, 85, 85, 61, 59,106,212,168,
-228,109,219,182,249, 71, 70, 70,226,251,239,191,247,127,241,197, 23, 79,222,189,123,183, 23,216,254,100, 44, 30, 94,204,121,230,
-153,103, 22, 7, 6, 6,146, 29, 58,116, 64,112,112, 48,180, 90, 45, 42, 43, 43,193, 48, 12,252,252,252, 48,105,210, 36, 60,245,
-212, 83, 33,201,201,201,203,143, 29, 59,182,160,188,188,124, 51,128, 53, 0, 50,173, 68,150, 83, 45,242,208, 59, 90, 9, 9, 9,
- 39,234,168, 24, 2,233,103,254, 56, 21, 43,140, 1, 8, 18,200, 37,143,129, 0,129, 10,131,158,103,168, 34,215, 30, 62,124,216,
- 91,169, 84, 66,161, 80, 96,104,223, 17,152,187,225, 23,244,124,190, 10,205,218,132, 96,245,135, 7, 12,174,132, 22, 77,211, 48,
- 26,141,168,174,174, 38, 79,156, 56,225, 23, 30,209,140,120,254,173, 33,152,254,125, 59,200, 2,120, 56,248,121, 14,202, 83, 67,
-148, 76,105,197, 29, 93,121,217, 86, 59,133,239,228,247,223,127,127,210, 27,111,188,129,229,203,151, 99,217,226,143, 79,135, 4,
- 5, 62, 18, 31, 31, 79,124,244,209, 71,152, 61,123, 54,194,195,195,193, 17,120,160,101,223,231, 49,107,214, 44,172, 93,187, 22,
- 95,173, 94,170,111,231, 35, 77,187, 86, 86,111,181, 27, 3,128, 69, 3, 6, 12,120,226,240,225,195, 62, 66,161, 16, 87,175, 94,
-197,248,241,207, 67,204, 5,184, 28, 18, 96,104, 48, 52, 13,130, 96,224, 47, 19,192, 91,196,129,191, 7, 23, 49,126,116,251,114,
- 70,218,250,106,153, 34,195,158, 32,242,245,224, 95,221,241,193,136,176,216, 73, 95,240, 40,129, 20,218,202, 66,252,182,102, 26,
- 22, 45,254, 26,167, 82, 79,163,162,162, 2,131, 7, 14,192,154, 81,126,127, 89,127, 78,196,155, 35,206, 27,187,222,195, 43, 83,
-167, 99,227,250,117, 32,185, 66,252,118,226, 28, 14, 31, 61,137,148,148, 20,188, 52,113, 44, 62,143, 46,116,200,105, 50, 25,224,
- 31, 16,142,199,250, 68, 65,234, 33, 5, 73, 0, 45, 34,252,225,231,155,135,160, 32, 2,105,167,143, 34, 57, 57, 25, 30, 30, 30,
-136,136,136,192,218,181,107,145,157,157,141,151, 95,126, 25,124, 62,223, 33,175,163,116,164, 32, 12, 32, 76,252, 86, 30, 30, 30,
- 59,116, 58,221, 42,189, 94,191,247,249, 81,147,119,188,188,228,231,118, 61,159,175,226, 52,107, 19, 2,130, 65, 31, 86,104, 61,
-180,144, 24, 12, 6,152,215,115,206,205,205,117,122,112, 92, 92, 28,182,108,217,210,110,226,196,137,201,133,133,133,143,193,254,
-162,242,178, 78,157, 58,165, 38, 39, 39,183,214,104, 52,200,202,202,114, 43, 32,181, 11, 35, 43,157, 28, 98,238, 50,224, 99,221,
-101,160,172,172,204,220,101,192, 30,202, 80,179,142,234, 93, 59,255,133, 3,120,179,182,134, 15, 59,194,242,234,248,241,227,123,
-110,223,190,157, 23, 21, 21,133,125,251,246,249,141, 26, 53, 42, 37, 35, 35,163, 43,128,108, 54,233,176,120, 8, 49,113,225,194,
-133,164,201,100, 66,105,105, 41,180, 90,109,189, 60,200, 48, 12,196, 98, 49,134, 14, 29,138, 33, 67,134, 8,206,159, 63, 63, 53,
- 41, 41,233,213,172,172,172,249,181,121,201,174, 22,249, 87, 9,173,122, 47, 94, 10,139, 62, 29,147,234, 37,144,146,177,160, 9,
- 47, 63,191, 0, 9,151,203, 37,188,196,129, 94,171, 86,206, 46,187,121,243,230,189, 93,187,118, 5,119,239,222, 29, 96,128, 78,
-205, 6, 67, 94,120, 26, 94, 92, 53, 74,229,165,142,230,145, 98,126, 61,176, 91, 82, 94, 94, 73,183,137,108,167, 86,169, 84,228,
-129, 3, 7,194,122,245,238,201,219,155,250, 29,241,236,178, 96,200, 2,120,248,109,237, 93, 92,252,222, 64, 79,155, 56,162,242,
-207, 75,107,170,237,213,112,121, 60,222,140, 55,222,120, 3, 59,119,238,196,156, 57,115,182, 60,213,173,229,160,103,134,245, 37,
- 83, 82, 82, 48, 98,196, 8,228,231,231,227,151, 95,126,193,252,249,243, 49, 97,194, 4,124,241,197, 23,184,240,227, 39,184,190,
-164, 43,111,238,206,219,215,232,155,196,240, 27,165,213, 7,109,104,179,111,220,184,241, 88,255,254,253, 79,238,221,187,215, 47,
- 38, 38, 6,219,182,109,199,204,215, 95,197,143, 11, 70, 33, 58, 80, 12,232, 21,160,117, 42, 16, 60, 17, 96, 80,131, 41,191, 11,
-189, 94, 45,125,119,199,237,235, 38, 59,156, 94, 18,222,146,239,223,127, 34,172,211,212,109, 60,243,190, 91,183,239, 96,237,241,
-114,156, 74, 61, 13,115, 19, 69, 72,128,183,109, 84, 57,124,104,246, 56, 9,146, 66,199,151,190,198,220,170, 4, 28,218,188, 4,
- 67, 95, 94, 8,121,105, 49, 82, 83, 83, 17, 26, 26,138,207, 55,110,198,140,233, 83, 97,162, 25, 71,207,156,215,166, 77, 36, 56,
-156, 2,240, 5, 52, 8, 0,122,125, 57,252,252, 40, 52,107,230, 7,128,176,184, 87, 4, 65, 96,216,176, 97,122,134, 97,138, 52,
- 26, 77,233,174, 93,187, 8,103,233,232,147,209,169,161,124, 49,249, 40, 1,210, 51, 32, 32,144, 16, 8, 5, 8,244,142,192, 7,
-111,190, 6,197, 11,234, 71,183,109,219,182,235,219,111,191, 45, 72, 77, 77,221, 78, 8,124,110,203, 11, 21,209, 94, 92, 53,192,
-144,205, 1,154, 45,194, 30, 78,140,126,228,145, 71, 46,254,246,219,111, 66, 62,159,143,189,123,247, 98,254,252,249,134,178,178,
-178,147,182,162, 39, 48, 48,176,253,214,173, 91, 35, 34, 35, 35,177,110,221,186,118, 35, 71,142,156, 6, 96,137, 29,206,105,199,
-142, 29,107,173,209,104,112,241,226, 69, 76,152, 48, 33,187,168,168,232,170,173,192,139,136,136,232,181, 98,197, 10,110,231,206,
-157, 81, 85, 85,133, 65,131, 6,169, 0,188,234, 36,172, 13,233, 50, 0,160,102,173, 63, 7, 93, 6,224,235,235,251, 77, 78, 78,
- 78, 63,145, 72,228, 52,130,244,122, 61,242,242,242,224,229,229,133,196,196, 68,159,150, 45, 91,126, 0, 96, 50,155,116, 88, 60,
-140,208,233,116,216,185,115, 39, 58,117,234,132,182,109,219, 66,161, 80, 88, 68,151, 78,167,131,209,248,215, 44, 72, 36, 73,162,
-107,215,174,136,142,142, 38,102,206,156, 57,206, 90,104,253, 27, 97,126,233, 46,176,109, 23,213,100, 35, 23,192, 56, 90, 36,120,
- 95, 40, 20,142, 14,111, 30,139, 54,109,218, 8,159,126,250,105,190, 78,167,147,158, 56,154,252,103,207,158, 61, 81, 86, 86, 22,
- 60,103,206,156,178,176,102, 97,116,242,164,114, 95,130, 41, 7, 71,199, 79, 1,234, 47, 58,170,229, 84, 55,223,251,231,242, 96,
- 0, 56,158, 22, 81,253,204,160,177,165, 28, 14,135, 58,125,227, 24,209,123, 6, 5,255, 22, 34,164,237, 46, 4, 63,187, 51, 34,
- 3, 43, 33,147,201, 28,206, 79,213,177, 99,199,118, 36, 73, 98,231,206,157, 0,240,193,141,236,194, 75,146, 35, 39, 62,219,179,
-120, 11,247,221,247, 63,196,220,185,115,241,210, 75, 47, 65,175,215, 99,249,242,229, 72, 77, 77,197,175,191, 28,135, 49,105, 46,
- 86, 60, 93, 70,190,252,157,230, 87,189,201,219,255,118,121,121,181, 13,117,198,173, 91,183,122, 13, 29, 58,244,228,238,221,187,
-253, 90,183,110,141, 21,107,191,196,248, 55,167,224,236,210, 65,128,200, 7,188,222,239,130,240, 10,175,145, 67,101, 89,192,225,
-119, 29,114,114, 72,226,185,216,137, 95, 88, 4, 81, 70, 70, 6,166,207,122, 7,191, 29, 60, 12,115, 19,197,204, 55,167, 99,235,
-218,143,161, 60,179, 1, 66,159,102,144, 4, 68,161,234,238, 37, 0,144,219, 28, 42, 43,123, 0, 0, 32, 0, 73, 68, 65, 84,187,
-119, 91, 78, 0, 80,203,239, 66,113,239, 38, 34,135,188,137, 15,198,141,199,208,151,129,181,139,222,193, 11, 19,198,224,243,141,
-155, 17, 25, 25,137,207,215,111,194,228,201,147,100, 85, 57,185,173, 97,211, 76,113, 46,253,194,141, 85,171, 23,138, 85, 42,165,
- 39,143,207, 15, 2,195, 32, 56, 56, 24, 85, 85,213, 48, 24, 12, 80, 42, 85, 32, 73, 18, 36, 73,130,195,225, 96,196,136, 17,188,
-228,228,228,102,127,252,241,135,127,173, 5, 28,109,109, 1,155,161,201,198,216,103,158,121,102,112, 96, 96, 32,233,235,235,139,
- 62,125,250,192,100, 50, 65,171,213,130,166,105,240,249, 38,139,165,124,242,228,201, 57,122, 83,184,113,203,132, 36, 13,135, 40,
-215, 82, 90, 97, 82,227,173,105,205,226,111, 70, 70,102,102,102,252,192,129, 3, 79,254,248,227,143,126,195,134, 13, 67,203,150,
- 45,185, 79, 63,253,180,191, 74,165, 26, 96,125, 96, 81, 81,145,247,132, 9, 19,206,229,230,230, 70,212,238,234,234,128,179,171,
-135,135, 7,178,178,178,204, 34,171,139,109, 37,140,207,231, 31,186,116,233, 18,151,207,231, 35, 61, 61, 29, 19, 39, 78, 44,205,
-206,206,118,213, 44,119, 95, 93, 6,104,154,214,218,251,143, 36, 73,193,249,243,231,225,106, 46, 64,146, 36,193,227,213,201,198,
- 21,108,178, 97,241,144,194,160,211,233,208,165, 75, 23,100,103,103,227,252,249,243, 22,193, 85, 90, 90,138,130,130,130, 58, 7,
-159, 61,123, 22, 23, 46, 92, 64,239,222,245,230, 36, 95,240,111,236,163,101,113, 34, 18, 19, 19,251,216,216,118,124,137, 68,114,
-246,185,231,158,107,246,244,211, 79,123,113, 56, 28,104, 52, 26, 24,141, 70,164,165,165,161,109,219,182,170,118,237,218, 85, 12,
- 31, 62,156, 40, 45, 45,237,127,245,234,213,172,210,210,210,120,153, 76,150,245,216, 99,143,105, 52, 26, 77, 61,165,229, 21, 69,
-233,150, 95,236,198, 3,128,228,237, 5,200,217,239,163, 48,168, 77,226,200,145,149,100,159, 9, 33,168, 42,214, 99,245,179, 55,
-240,235,166,163, 88,241,217, 10, 83,239,222,189,243, 22, 47, 94, 92, 80, 80, 80,240,152, 45,151,167,167,231,181,228,228,228,182,
- 71,143, 30,197,236,217,179,191, 51,153, 76,203,132, 92,206,193, 73, 47,189, 18,166,215,235,113,254,252,121,248,248,248, 32, 39,
- 39, 23,188,128, 56,196,246,123, 1,111,143,235,138, 56,239,114,232, 54, 15,198,141, 2, 53,198,239,210, 46,186, 89,172,156,231,
- 32,110, 90,135,134,134, 38,111,223,190,221, 63, 48, 48, 16,227,158, 25,134,180,247, 98,193, 27,186, 2,151, 74,196,248,236,251,
-115, 0,128,183,199,117,113,200,233, 45,225,145, 1, 50,190,225, 70,126, 53, 9, 0,119,238,220,193,132, 23,198,227,224,161, 26,
-145,117,241,226, 69,140, 27, 55, 14,237, 99,162, 33, 22,242,161,173, 44, 2,109, 50,224,110, 94, 33,242,203, 52,101, 70,154,190,
-202, 48,200,134, 85, 19,133, 45,231,221,187,119,177, 98,249, 98,220,186,126, 9,122, 69, 25,120, 18,111,164,157,191,130, 62,125,
-250,130,161,141, 40, 47,202, 69, 78,169, 10,155,183,108, 69, 84, 84, 20, 84, 42, 21, 70,141, 26, 85,230,164,153, 34,227,198,141,
- 27,209,107,215,174,197,252,249,243,241,203, 47,191,192,100, 50, 65, 32, 16,128,162, 40,240,249,124, 68, 69, 69,225,250,245,154,
-241, 4, 52, 77,227,252,249,243, 72, 74, 74, 98,108, 45, 96,107, 62,147,201,132,146,146, 18,232,116, 58,168, 84, 42,168,213,106,
- 48, 12, 3, 14,135, 3,134, 97, 44,181, 29, 14,135,131,172,172, 44, 92,190,124,153,217,183,111,223, 39, 12,195,204, 97,203,176,
-135, 26,173, 67, 66, 66,146,183,109,219,230, 31, 28, 28,140,126,253,250,229, 22, 22, 22, 54,183,115,220, 30,134, 97,158,204,202,
-202, 66, 84, 84,212, 94, 0, 35,238,231,152,240,240,240,146,244,244,116,191,107,215,174, 97,220,184,113, 37,181,125,190, 92,245,
-125,138,136,137,137, 73, 63,124,248,176, 15, 73,146,184,122,245, 42,198,141, 27,167, 47, 43, 43, 59, 5,199, 77,142,119, 80,211,
-191,228,174,157,255,194, 1,204, 3,224,227,224, 92, 73,116,116,116,207,115,231,206,241, 8,130,192,157, 59,119,204,121,178, 75,
- 45, 47, 11, 22, 15, 27,158, 10, 9, 9,249,118,218,180,105,158,221,186,117, 67, 94, 94, 30,242,243,243, 81, 94, 94,142,248,248,
-120,180,111,223, 30,183,111,223,198,161, 67,135,112,225,194, 5, 8, 4, 2,132,133,133, 65,186, 99, 39,190, 34,112, 13, 64,123,
- 39, 90,228,223, 35,180,108, 33, 16, 8, 62,152, 56,113,226,140,215, 94,123,205, 71, 32, 16,224,236,217,179,224,241,120,160,105,
- 26, 3, 6, 12, 64,118,118, 54, 70,140, 24, 81, 86, 88, 88,248, 52,128,147,238, 92, 76, 22, 44, 40, 28,254,126,112, 96,239,241,
- 53, 53,189,228,237, 5, 56,183,183, 24,179,118,117, 4,201, 33,240,205,244, 27, 48,101, 54,167, 91, 71,197, 48, 0,140,205,154,
- 53, 43,220,186,117,171, 93,161, 5, 96,242,148, 41, 83,190,153, 60,121, 50, 78,156, 56,129, 93,187,118, 97,216,176, 97, 24, 62,
-124, 56,190,253,246, 91,120,201, 79,227,147, 95,175, 97,236,135, 7,112, 53,171,198, 24,106, 31,233,139, 29, 31, 15,131,230,243,
-120, 48,165, 25, 72,216, 73,221, 56,246,167,194,209, 84, 15,100, 11,111,209, 79,126,254, 94, 79,105, 24, 30, 94,237, 46,198,139,
- 67,226,192, 31,181,189, 65,156,173,130,165,133,215,179, 10, 2, 41,129, 20,111,188,250, 34, 62, 90,242, 41, 76, 38, 19,170,171,
-171, 17, 22, 22,102, 91,163,173,135,218, 38,138, 52,235, 38, 10,107,206, 39,135, 63,142,157,187,127,134,187,205, 20,124, 62, 31,
- 90,173, 22, 45, 91,182,220, 12,251,205, 20, 25,151, 46, 93,138, 94,188,120, 49, 54,108,216,128,125,251,246,193,104, 52, 66, 32,
- 16, 64, 34,145, 64, 36, 18,193,207,207, 15,151, 47, 95,174,115, 82, 85, 85, 21,102,206,156,153,137,250,195,213, 51, 46, 93,186,
- 20,237,204, 82, 54,247,219,179, 36, 74,130, 64,101,101,165, 35, 62, 22, 15,161,216,226,241,120,171,253,253,253, 59,230,231,231,
-207, 66,253,165,172,188,159,125,246,217,171, 63,252,240, 67,240,157, 59,119,220, 18, 90,143, 61,246,152, 93, 71, 11,192,196,160,
-160,160,143,171,171,171, 43, 85, 42,213, 40,184,223,193,188,117,171, 86,173, 78,238,221,187,215, 79, 44, 22,227,250,245,235, 24,
- 63,126,124,137, 92, 46,239,141,198,237,164,222,186, 77,155, 54,167,206,158, 61,235,203,229,114,145,158,158,142, 9, 19, 38,148,
-178,157,225, 89,252, 11,224, 1, 96,118,100,100,228,219, 83,167, 78, 21,180,107,215, 14,121,121,121, 40, 41, 41, 65,121,121, 57,
- 78,159, 62, 13, 0, 8, 13, 13, 69,104,104, 40,110,222,188,137,148,148,148, 42,133, 66, 49, 25,192, 47,255,230,136,113,216, 71,
- 75, 44, 22, 63,247,194, 11, 47,248,152, 76, 38,244,238,221,187, 76,167,211,153,102,207,158,237, 31, 20, 20, 4, 15, 15, 15, 12,
- 26, 52,168,188,170,170,170, 59,224,254,146, 41, 2,147,236,110,241,239,193,210,100, 20,136,123,143, 15, 65,239,241, 33,232, 58,
- 34, 0, 36,135,192,229,195,114,240, 75, 91,170, 94,152, 50,165,178, 89,179,102, 6,146, 36,209,188,121,115,227,246,237,219, 29,
-117, 86,250,246,235,175,191,126,212, 96, 48,188,244,242,203, 47,163, 79,159, 62, 48, 26,141,216,190,125, 59,100,185, 7,176,240,
-249, 46,142, 3, 98, 50,128,224, 73, 16,232,105, 10,115, 36,178,218, 6, 74,191, 89,246,106,191,167, 6,117,240,197,222, 99, 23,
- 49,172, 13, 23,208, 85,223, 15,231,174, 43, 91,223,152, 26, 59,233, 75, 94,105, 81, 30, 26,169,137,194,194,169, 85, 85,163,145,
-155, 41, 12, 58,157, 14, 18,137, 4, 92, 46, 23, 2,129, 0, 70,163, 17, 4, 65, 32, 62, 62, 30,205,155, 55, 71, 78, 78,142, 59,
- 22,112, 99, 91,202, 44, 30, 94,100,232,245,250, 33,249,249,249,214,142,143,165,179,248,179,207, 62,219,101,251,246,237,193,133,
-133,133,248,227,143, 63,128,154,169, 30,236, 33,189,168,168,232, 73,177, 88,140,173, 91,183, 70, 76,152, 48,225,156, 85, 31, 45,
-115,231,244, 45,133,133,133, 91,238, 39,140,182, 93, 6,182,110,221,234, 63,106,212,168,221, 42,149,170, 67, 99, 69,132, 72, 36,
- 90,115,230,204, 25, 95, 46,151,139,180,180, 52,140, 27, 55,174,196,201,244, 14, 44, 88, 60, 76,168, 6, 48, 47, 43, 43,235,243,
-183,223,126,251,131,118,237,218,189, 58,101,202, 20,170,109,219,182,200,207,207, 71,118,118, 54, 90,182,108,137,220,220, 92,124,
-247,221,119,186,146,146,146,213,168, 25,108, 82,249,159,141, 49, 47, 47,175,187, 59,119,238,100,130,130,130, 44,253,132,124,124,
-124,138,230,207,159,207,200,229,114,198,215,215,183,192, 13,154, 58,171,123,135,132,132,156,184,120,241, 98, 86, 79, 95, 40,199,
-125, 17,193,124, 85,221,147,249,170,186, 39,179, 38,191, 27, 19,209,195,219,248,218,180,215,242, 62,255,252,243, 91, 27, 54,108,
-200,252, 31,123,215, 29, 30, 69,181,183,223,153,237, 37,189,147, 4, 18, 32,244,208,139, 32, 29,129, 32,132,122, 85,138,128,162,
-126, 72, 64, 44, 8, 4,244,114, 17,145, 4, 68,165,233, 5, 47,150, 0,210,171, 20,169, 66,128, 80, 36, 32, 37,161, 5, 18, 72,
-207,166,111,175,115,190, 63,178,179,110,194, 38,187, 27,192, 58,239,243,204, 51, 59,237,221,211,230,156,247,252,206,239,156, 89,
-187,118,237,157,252,252,252, 59,225,225,225,103,234,224,164, 2,228,130,189,221,219, 69,145,231, 7, 63, 71,122,182,141, 32, 97,
-222,162,156,107,241,145, 68,187, 44,130, 88,138,210,201,229,219, 69,100,220,191, 15,144,113,255, 62, 64, 46,223, 46, 34,150,194,
-235, 68,179, 64, 76,212,203,155,145,103, 26,251,220,114, 20,206, 86, 33,178, 37,251, 23, 12, 35,134, 29,147,201,182,184,182,164,
-117,176,236,102,125, 57,125,229, 66, 73,179, 6, 30,247,206, 38, 12, 50,156,223,183,142, 60,211,181, 19,201,201,201, 33,121,121,
-121,228,240,225,195,196,207,207,207, 0,224, 56,170,214, 22,114,180,125,129,223, 22, 68,125,132,243,226,143, 95,147,151,134,245,
- 37,189,163, 27,144,168, 16, 57, 35, 21,241,212, 0,246,219, 61,127,188,121,243,230, 6,165, 82, 73, 84, 42, 21,185,126,253, 58,
-105,209,162, 69, 9,126,155, 17, 53,208,129, 9,184,124,252,248,241,196, 17,146,147,147,201,181,107,215,200,212,169, 83, 73,231,
-206,157, 73,207,158, 61,201,184,113,227,200,255, 17, 16, 0, 55, 28,112,142, 10, 13, 13, 45, 95,178,100, 9, 57,121,242, 36,217,
-176, 97, 3, 89,178,100, 9,121,255,253,247,201,230,205,155,201,141, 27, 55,200,158, 61,123,156,241, 57, 10,231,147, 0,199,249,
-199,112, 30, 78, 75, 75,179,149, 41,139,197, 66,114,115,115,201,145, 35, 71, 72, 72, 72,200, 13, 84,173,147,229,136,211,171,117,
-235,214, 55,111,221,186, 69, 30, 62,124, 72,140, 70,163,141,227,230,205,155, 4,192,169, 39, 16,206, 22, 97, 97, 97, 69, 39, 79,
-158, 36,183,110,221, 34, 33, 33, 33,217, 79, 50,238,145,145,145, 69, 10,133,130,156, 56,113,130, 4, 6, 6, 22,161,110,139, 45,
- 87,150, 56,206,191, 50,103, 36,128,141,157, 59,119,182,172, 90,181,138,188,249,230,155, 36, 34, 34,194,130,170, 69,190,195,240,
- 15, 66,173, 22,173,242,242,242,136, 55,223,124,243,242,179,207, 62,219,181,160,160,128,237,141, 25,104,154, 38, 10,133,130, 49,
- 26,141,185,238,254,153,209,104, 44,184,126,253,122,192,138, 35,151,139,102, 47,154, 25,148,140, 60,217,179, 47,133, 96,239,178,
- 76,188,216,127, 74, 89,108,204, 40, 83,100,100,164,205,130,117,235,214, 45,232,245,122,109, 29,148,228,153, 38, 62,221,118,204,
-110,141,125,103,239, 98,209,181,226,239,229, 34,222,174, 93,151,203,246,207,237, 9, 24,183, 79, 64,251, 23, 54, 96,243,162,161,
- 0, 0,166,232, 6,140,219, 39,130,146, 5,224,116,174, 0, 21, 90,227, 1, 71,164, 77, 2,101,175, 14,108,198,199,222, 19,151,
-176,104,239,195,239, 45,132,212,155,179, 76,109,212, 1,136,158,178,250,124, 2,112,126,172,222,104, 9, 24,208,191, 31,246,253,
-184,159,110,213,170, 21, 54,109,218, 36,156, 56,113, 98,180, 59, 67, 20, 53, 57, 45, 12, 9,160,128, 98, 2,108, 17, 11,120,243,
-181, 6,139,142,109, 52,172,195, 20, 66, 7,195, 20,181,249,130,236,201,203,203, 59,113,225,194,133, 11,111,191,253,118, 11,137,
- 68, 66, 9, 4, 2, 88, 44, 22, 48, 12, 3,139,197,130,242,242,114,220,186,117, 11,141, 27, 55,182,153,128, 15,120,122, 84, 2,
-170,255,212,198, 55,127,254,124,155, 73,185, 99,199,142,200,201,201, 65, 86, 86, 22, 46, 95,190,108, 51, 41,187,200,199,225,175,
- 15,241,249,243,231, 33, 22,255,246,149,165,171, 87,175,226,173,183,222, 74,179,250, 84, 85,214,242, 92,101,122,122,122,207,161,
- 67,135,158, 94,181,106, 85,107,251, 33,231,147, 39, 79, 2,128,254, 73, 88,223,114,115,115,251,196,196,196,172,244,247,247,239,
- 80, 80, 80,176,224, 73, 70, 60, 43, 43,235,189,118,237,218, 45, 81, 42,149,149,110, 14,109,114,224,240, 87, 67, 22,128,137,169,
-169,169,203, 82, 83, 83, 63, 64,213, 84,250,197, 0,210,185,164,169, 5, 97, 97, 97,119,231,206,157,171,187,120,241,162, 37, 46,
- 46,174, 68, 46,151, 79,171,135,226,149, 6, 4, 4,108, 13, 10, 10, 74,241,247,247,191,228, 17, 44, 82,200, 27,210, 70,207, 64,
-113,129,143,143,207,245,160,160,160,115,246,223, 65,244,243,243,251, 25, 64,120, 93,156, 45,131,229,211, 95,232,232,159,219, 42,
- 68,182, 18, 85,159, 20,162, 90, 4,203, 14,239,158,224, 73, 52, 31,251, 17,205, 34, 47,162, 93,217,150,104, 87,182, 37,154,197,
-254, 68,187,162, 13,185,147,208,157,116,139,244,206,111, 26, 44, 15,248,189, 56, 89, 88, 87,113,111, 17, 25, 25,169,184,116,233,
- 18,201,202,202, 34, 7, 15, 30, 36, 50,153,236,122,125,123, 16,246, 43,195, 87, 75,108,169,244, 72,101,101, 37,209,233,116,228,
-196,137, 19, 36, 56, 56,216, 81, 15,186,174, 94, 73, 16,128,213,109,218,180, 49,173, 88,177,130,236,221,187,151,172, 89,179,134,
-140, 26, 53,138,204,153, 51,135,140, 29, 59,150, 4, 6, 6,234,173,230, 95,111, 23, 56,235,203,199,245, 28,255, 94,156, 17,214,
- 94,173,189,229,118,126, 13, 75, 86, 93,156, 94,214,251,107,179,252,114,121,196,113,114,156,127, 77,206,127, 46, 2, 3, 3, 63,
- 93,176, 96,129,250,167,159,126, 50,206,156, 57, 83,213,160, 65,131,211, 79, 40, 35,130, 0,116, 7,208,165,150, 74,182, 94,153,
-219,222,219,219,187, 69,144,236,231,185,207,249,145,203,115,155,144,138, 21, 29,136,230,171, 30,228,110, 66, 87,242,229,203,205,
- 73,135, 80,207,135,205, 3,101,109,255, 96,206,250, 12, 81,184, 85,176, 93, 28,166,112,133,211, 93, 19,240,211, 48, 41,115, 21,
- 26,199,201,113,114,156, 28, 39, 39,180,254,190,104,214,172, 89, 70,187,118,237,238,199,197,197,165,253, 69, 50,151,106, 25, 36,
- 31,219, 34, 72,190,187, 85,144,244, 94,155, 96, 89, 78,139, 32,217,177, 22,129,178,247, 59, 53,128,244, 79,194,217, 66, 36, 18,
- 29, 9, 13, 13, 85, 0,120,229, 41,164,231,132,144,144,144,135, 86,107, 89,139, 39,192, 25, 13, 96, 43,128, 45, 0, 90, 63,129,
-112,186,202,199, 85,104, 28, 39,199,201,113,114,156,156,208,250,123, 98,218,180,105,124,174,192,112,156, 28, 39,199,201,113,114,
-156, 28, 39,199,201, 9, 45,247, 65,213,145, 88,199,158,114,130, 31,227, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243, 31,199,
-233,140,251, 24, 56,112,202,156,227,228, 56, 57, 78,142,147,227,172,149,147,178,110,180,117, 99,143,255,204,113,167,254,196,113,
-255,167,112,254, 45,193,255,131,254,151,205, 8, 6,117,125, 61,153,195, 31, 9,251, 23,132,112,249,196,225, 79, 10, 15, 62,159,
-255,174, 72, 36,234,107, 54,155, 91, 3,128, 64, 32, 72,215,235,245,167,204,102,243, 23, 0, 84, 92, 18,253, 97,117, 7,207,174,
-177,181, 88, 55,252, 9,235, 18,123, 81,192, 60,102,187,244, 52,226,254, 79,230,252,219, 11,173, 14,114,185,252, 63, 34,145,168,
- 9, 69, 81, 22,181, 90,125, 77,175,215,175, 3,112,238, 49,255,243,155,224,224,224, 87, 74, 74, 74, 24,246, 35,197, 20, 69,129,
-166,105, 8, 4, 2,109, 69, 69,133, 87,125, 72, 3,219,142,122,159, 79, 81, 51, 45,196,178,174,232,250,190, 79,156,157,231, 80,
-247, 11, 35, 20, 10,199,248,249,249,249, 40, 20, 10, 66,211, 85,171, 71,240,120, 60,118,133,121,115, 69, 69,197,247,174,146,249,
-250,250, 94,244,243,243,243, 97,159,167, 40, 10, 37, 37, 37,229, 69, 69, 69,221, 0, 64, 34,145,156,149,203,229,254,124, 62, 31,
- 60, 30, 15, 60, 30, 15, 26,141,166,164,164,164,164,231,239, 25,105, 95, 95,223, 20,154,166,155,184,243, 12,195, 48,247,203,202,
-202,158,229,138, 76,117,108,223,190,157, 23, 19,246, 90, 20,159,104,219,211, 52,241,102, 24,170,194, 76, 73,175, 30,206,253, 38,
-195,149,231, 95,124,241, 69,139, 11,183,245,241,242,242,218,176,123,247,110,223, 78,157, 58,209,197,197,197,104,220,184, 49, 74,
- 75, 75,187, 37, 39, 39,119,126,237,181,215, 94, 83, 42,149,147, 0, 36,115, 57, 82, 55, 68, 34,209,138,224,224,224,215, 85, 42,
-149,134,162, 40, 66, 81, 20, 40,170,170,159, 85,115,111,177, 88,114, 74, 74, 74,186, 56,105,108, 5, 34,145,232,243,144,144,144,
-201, 26,141, 70, 99,229,115,200, 11, 0, 38,147, 41,167,184,184,184,139, 75,117,125, 96,224, 58,169, 84,250,178, 70,163, 81, 83,
- 20,197,216, 95, 35,132,216, 55,230,247,138,139,139,123, 59, 19, 6, 34,145,104,101,112,112,240,171,214,184,219,194,249,184,113,
- 15, 14, 14,158,172, 86,171, 93,226,172, 35,238,143,112, 62,141,112,254, 73, 57,255,254, 66,171, 99,199,142, 91, 46, 92,184,208,
- 92, 32, 16, 0, 0,116, 58, 93,187,213,171, 87, 79,154, 59,119,110, 34,128,121,245,252,191,164,222,189,123,143, 75, 78, 78,166,
-247,238,221, 75,119,237,218, 21, 20, 69,193, 98,177,192, 98,177,160,109,219,182,210,250, 70,196, 91, 46,139,191,124,244,107, 73,
-135,129,111,204, 44, 2, 62,113,118,190, 46,129, 9,224, 67, 0, 77,220, 12,130,194,154, 46,151,127,175, 70,252, 41, 9, 3, 74,
- 40, 20,254,171,119,239,222,222,199,142, 29,163,178,179,179, 41,169, 84,106, 91,172,212,100, 50,161, 77,155, 54,110, 89, 66,125,
-124,124,188,226,227,227,163,158,127,254,121,236,220,185, 19,147, 38, 77, 66,175, 94,189,238, 20, 21, 21, 1, 0,228,114,185,127,
- 90, 90, 90,115, 63, 63, 63,104, 52, 26, 84, 84, 84, 96,208,160, 65, 40, 41, 41,121,236, 2,238, 21,142, 38, 22, 1, 22, 7,134,
- 75, 7, 40, 30,104, 23,169, 31, 98, 77,109,247, 10, 4,130,240, 7, 15, 30, 4,137, 68, 34, 16, 66,192, 48,140,195, 61,251,219,
-104, 52,162, 77,155, 54,198,218,248,158,233, 24,190,152,162, 41,219,135,133,137,217, 82,122,225,106,222,135,143, 27, 39, 63, 63,
-191,203, 98,177, 56,216,169, 90,182,107,200,116, 58, 93, 97,105,105,105, 39, 39,143, 68, 2, 24,206,227,241,154,241,249,252,150,
- 0, 34,205,102,115, 48, 0, 8,133,194, 66, 30,143,151,101, 50,153,110, 25, 12,134,187, 0,126, 68, 29, 31, 64,142, 9,123, 45,
-138, 50,107, 94, 80,234,153,161,178,166,137, 45, 52,247,226,111,203,196,154,131, 49, 97,175,237,112, 85,108, 57,193,192,254,253,
-251,111,217,191,127,191, 68, 40, 20, 66,171,213,226,198,141, 27,240,246,246,134, 72, 36,194,200,145, 35,121, 61,123,246,244,239,
-215,175,223,206,219,183,111,143,135,123, 62, 31, 45, 0,108, 67,213, 7,165,223, 68,245, 47, 20,212, 7, 97, 0, 70,160,234,155,
-143,141,141, 70, 99, 49,128, 84,107,152,238, 0,136, 8, 12, 12,252,129, 97, 24,125, 73, 73,201,107,112,240,161,234,238,157, 27,
- 94,162,105, 58,156,181, 9, 48,196,146,115, 62, 53,231,137, 52, 80, 52, 77,175,140,141,141,125,117,199,142, 29,178,212,212, 84,
- 89,235,214,173,109, 29, 34,182,204,219,163,113,227,198,206,172, 26,124,154,166, 87,188,240,194, 11,227, 55,110,220, 40,123,240,
-224,129, 44, 52, 52,212,198,105, 47,182, 88, 56,251,132,152, 93,217,255,102,240,224,193, 19, 55,108,216, 32,216,183,111,159, 52,
- 32, 32, 0,254,254,254, 14,191, 25,219,179,103, 79,198,121,212,233,149, 35, 71,142,156,184,117,235, 86,217,133, 11, 23,100,109,
-219,182, 5,143,199,123,236,184,143, 26, 53,106,252,150, 45, 91,100,215,174, 93,147, 53,107,214, 12,172, 81,161, 38, 31, 77,211,
-104,216,176,161, 75,156, 35, 70,140, 24,191,109,219, 54,217,229,203,151,101, 45, 91,182,180,165, 39, 91, 39,213, 39,156,127,114,
-206,127,132, 69, 75,100, 52, 26,113,234,212, 41,208, 52, 13, 63, 63, 63,188,242,202, 43, 56,122,244,104,252,137, 19, 39,246,215,
-195,178,245,141, 85,100, 9, 0, 96,215,203,163,112, 95, 0,188, 85,100,128, 80, 40,196,189,123,247,192,227,241,220, 54, 45,138,
-197,226,201,132,144,127,107,114,127, 17,107,181, 38,232,242, 46,201,164, 82,169,173, 1,208,228, 89,207,231, 95,146, 73,165,210,
-123, 60, 30,239, 99,149, 74,149, 84, 27, 95,179,102,205, 54,221,184,113,163,149,179,143, 61,215,132, 70,163, 65,163, 70,141, 34,
- 74, 75, 75,155,253, 30,141,184, 51, 78,179,217, 12,137, 68, 2,214, 26,101, 48, 24,160, 82,169,156,113, 82, 66,161,112, 12, 43,
-178, 0, 96,243,230,205, 8, 9, 9, 65, 80, 80,144,237,163,210, 44,167,171,224,241,120,136,137,137,193,194,133, 11,145,152,152,
-136,217,179,103, 87,171,104, 5, 2, 1,252,252,252,240,211, 79, 63,193,203,203, 11, 17, 17, 17, 96, 5,126,173, 2, 42,130,166,
- 76, 38,134,214,230,193,177,229,163, 1,164, 82, 30,150, 70,245,242,121,115,216,187,145,252, 6,205,101, 88, 60,248,210, 60,245,
- 67,253,154,186,132,137, 80, 40,196,245,235,215, 31,169, 16, 28,222,207, 35, 48,136, 43,253, 26,247,145, 42, 28,137, 56,138,166,
-252,206, 93,122,104,179,208, 14, 25,208,138,255, 76, 39,254, 87,214,166, 18, 52, 13, 48, 76, 85,211, 73, 81, 32,102, 19, 83,118,
-233, 90,222, 2, 23,210, 51, 52, 43, 43, 43,200, 89, 26,177, 48,155,205, 8, 13, 13,229, 57,185,109,104,116,116,244,174,184,184,
- 56, 97,179,102,205, 40,161, 80, 8, 62,159, 15, 62,159,207, 10,244, 8, 66, 72, 4,195, 48,253, 10, 11, 11,201,234,213,171,151,
-157, 60,121,114, 52,128,131, 14, 43, 22,162,109,175,212, 51, 67, 79, 95, 65,183, 23, 6,206,197, 79,219,227,187,245,238,200,192,
- 83,166,205, 0, 80, 47,161,197,138, 13,139,153,161,238,100, 86,248,237,220,185,131,162,105, 90,175, 84, 42,193, 48, 12,122,246,
-236, 9,154,166,113,253,250,117,124,240,193, 7,216,181,107, 23,246,236,217, 35,237,220,185,243,183, 26,141,166, 53,170,190,197,
-230, 84,100, 69, 71, 71, 95,185,112,225,130,196,104, 52,162,123,247,238,231,111,223,190,221, 25,245, 91,193,221, 23,192,103,243,
-230,205,155, 24, 23, 23,199,243,241,241,129, 72, 36,130, 82,169, 68, 70, 70,198,228,239,191,255,158,172, 93,187,246, 75, 0,158,
- 89, 89, 89, 61, 46, 94,188,136,254,253,251,191, 13,224,221, 71, 21, 1, 47,252,236,197,204, 32,246,120, 68, 76, 59, 97,143, 46,
-116, 97,149, 21,167,230,221, 4,140,133,201,185,248,107,174, 43, 66,108,217,168, 81,163, 38,236,216,177,195, 3, 0,254,251,223,
-255, 98,204,152, 49,240,243,243,131, 76, 38,131, 80, 40,132, 64, 32,168,182,119,210,216,242, 0, 44, 27, 59,118,236, 11, 27, 55,
-110,244, 4,128,141, 27, 55, 98,212,168, 81,240,247,247,135,167,167, 39, 68, 34,145,237,123,175,110,118, 48,190,233,213,173,219,
-148, 13, 27, 54, 0, 0, 62,120,231, 29, 60,255,204, 51,240,144, 73, 33,147,138,192,166,133,136, 39,192,144,183,102, 58,213,151,
- 0,150,143, 25, 51,230,165,173, 91,183,122, 2, 64,106,106, 42,138,138,138, 16, 28, 28, 12,169, 84, 10,145, 72,100,139, 51, 69,
- 81,144, 74,165, 46,197,125,204,152, 49, 47,108,217,178,197, 19, 0,146,146,146, 16, 19, 19, 99,139,187, 88, 44,134, 80, 40,172,
-182,213, 20,157,142, 56, 71,143, 30,253,194,182,109,219, 60, 1,224,251,239,191,199,192,129, 3,225,235,235,107, 75, 79,150,203,
-157, 60,250,147,115,254, 51,132,214,149, 43, 87,254, 37,151,203, 19, 0, 4,138, 68, 34,159,241,227,199, 55,156, 50,101, 10,198,
-142, 29,139, 19, 39, 78, 76,117, 83,104, 81,193,193,193,175, 36, 39, 39,219, 90,104, 3,121, 68, 48,185,221,128, 91,241,239, 75,
- 83,167,134, 36,102,168,112,254,226, 45, 72, 64, 83, 23,151, 47, 15,212,221,189, 11,139,193,128, 69,247,148, 85,231,205,132, 58,
-245,222, 91, 33, 29, 86,124,249,111, 0, 73,117, 52,182, 98,189, 94,143, 59,119,238,184, 21,136,236,236,108, 71, 31,127,174,119,
- 35, 30, 17, 17, 81,215, 11,232,148,243,240,225,195,152, 53,107, 22,110,221,186, 5,246, 83, 37, 46,112, 82,126,126,126, 62,172,
-200, 98, 69,144, 84, 42,133, 64, 32,160,248,124, 62,197, 14,237, 89, 95, 46,151,132, 49, 77,211,216,180,105, 19,150, 46, 93,138,
- 57,115,230, 96,221,186,117,104,223,190,253,111,133,144,207, 71,101,101, 37,124,125,125,225,235,235, 91, 77, 32,214,134,202, 7,
- 12, 1, 28,139, 44,105, 35,132, 72,165,252,131, 99, 63,137,234,208,246, 57,127,168, 74,140,216, 52,247, 14,138, 51,245, 59,156,
-165, 39, 33, 4,237,219,183, 7, 69, 81, 54,161,193,110, 2,129, 0,124, 62, 31, 60, 62, 15, 58,170, 18, 77,122, 9,241,206,206,
- 86,210, 6,205,101, 82, 71, 34,174,102, 54,127,254,197, 42, 25, 24, 82,229, 4, 66, 24,128, 1, 8, 8, 24,194,160, 48, 55, 3,
-255, 89,248,169,203,173,143, 64, 32,192,221,187,119,109,225,102, 45,195,172, 48,178,183, 26, 68, 70, 70, 58, 45, 75, 66,161,240,
-163, 61,123,246,136, 54,109,218,132,173, 91,183,130,162, 40,136,197, 98,200,229,114,248,248,248,192,223,223,223,182,133,135,135,
- 83,223,126,251,173,176,125,251,246, 31, 85, 86, 86, 30,116,156,231,196, 91,214, 52,177,197, 11, 3,231, 2, 0, 94,152, 75, 80,
-118,231,147, 14,116,249, 2,239,250, 91, 94,170,196,198,226,197,139,241,241, 51,207, 64, 36, 18,145,138,138,114, 9,219,185,224,
-209, 60,164,165,221,192,138, 21, 43, 48, 97,194, 4,220,187,151, 65, 34, 34, 34,245,179,102,205,242, 72, 76, 76,124,199,104, 52,
- 46,114, 38,178,218,181,107,119, 38, 37, 37, 69,162,209,104,192, 48, 12, 14, 30, 60, 40, 27, 56,112,224,233,204,204,204,222,238,
-138,173,200,200,200,125, 41, 41, 41, 61, 3, 3, 3, 81, 81, 81,129,202,202, 74,152, 76, 38,240,120, 60, 68, 68, 68, 96,217,178,
-101,212,200,145, 35,103, 76,158, 60, 89, 39,149, 74, 89,203, 70,164, 35,174,154,239,247,234, 53, 95,249, 16, 82, 85,126, 8, 67,
-170,237, 75,139,178,240,206,123,174,125,189,170, 97,195,134,111,238,220,185,211,195,222,178,100, 47, 2,236, 69, 22,187, 57, 17,
- 6,116,163, 70,141,166,252,240,195, 15, 54,206,128,128,128,106,239, 15, 77,211, 56,125,250, 52, 18, 62,154, 7,223,192, 80,172,
- 90,243, 95,151,134, 11, 99, 98, 98, 94, 78, 74,250,173,234,110,215,180, 41,134,245,124, 6, 65, 1, 94, 8,240,245,172, 74, 39,
-134,194,213, 91,153, 78,219, 35, 0,116,195,134, 13, 95,219,190,125,187,135,125,135,144,141, 43,219,121,102,173,248, 6,131, 1,
- 93,186,116,113, 41,238,246,156,172,181,141, 21,109,108,122,178,255,195,190,175, 78,194, 57,133, 21,194, 86,193, 89,141, 67, 32,
- 16, 96,251, 79, 27,106,181,102,215,151,211,221,124,175,201,153,149,149,133, 37, 75,150,128,237,180,217,187, 10,133,133,133, 97,
-213,170, 85, 78,235,165, 26,239, 64, 87, 0,129,118,167, 12, 0, 68,118,123, 5, 69, 81,191, 56,184,143, 61, 47,176,142, 88, 5,
- 90,219, 14, 37, 0, 31, 7,124,181,241, 20, 91,219,188,192, 26,247, 87,251,159, 90,133,214,254,253,251,217,183,184, 95,108,108,
-236, 41,235,239,114,177, 88,156, 45,147,201, 66, 0, 40, 15, 30, 60,136,255,251,191,255,131,213,180, 58,194,219,219,251,134, 3,
-171,206, 21,189, 94, 63, 23, 64,161,245, 20,107,174,167, 75, 75, 75,153,163, 71,143,210, 27, 71, 15,134,129, 0, 29,255,157,128,
-152,216, 88, 28, 14, 19,129, 7,160,219,205, 98,200,100, 50,126,101,101,165,201,222,111,203,129,239,214,177, 26, 5,138, 39,225,
-243,209,253,204, 1,204, 58,115, 0,221,228, 34,148,236,216, 6,229,217,100,208, 52,133, 62,242, 0,204,158,112, 20,207,122,137,
- 33,210,171, 65,211,180,163,146,109,227,188,115,231,206,139, 94, 94, 94, 9, 53, 18,216, 21,220, 71,213,119,156, 80, 75, 56, 93,
-106,196,217,237,242,101,135, 35,144,181,114, 90,135,224, 32,151,203,113,252,248,113,219, 61,207, 61,247, 28,116, 58, 29,252,252,
-252, 92,226, 84, 40, 20, 36, 47, 47,143,218,184,113, 35, 4, 2, 1,252,253,253, 33,147,201,168, 13, 27, 54,204, 19, 10,133,225,
- 58,157,142, 49, 24, 12, 16,137, 68,171,216,252,225,243,249,234,202,202, 74,255,218, 56,121, 60, 30,226,226,226,240,254,251,239,
- 99,221,186,117,152, 58,117,234, 35, 22, 47,157, 78,135,128,128, 0,155,216,114,240, 2,186, 52,244, 35, 11, 67, 91,159, 96,209,
-145, 41,171, 90, 5,135,181,148, 35,101, 75, 1, 14,172,204,202, 81, 23, 90,190, 48,148, 97,167, 51, 78, 66, 8, 50, 50, 50,106,
- 21,195, 37,101,197,120,255,227, 55,209,241, 53, 57,106, 17,113,191,113, 50, 4, 55, 46, 31, 70,218,181, 99, 96, 44, 12, 44, 12,
- 1, 33, 22, 48,102, 32,245,232,249,230,249,247,243,194, 8, 72,149,235, 45, 0,113,133,202,220,215, 95,212, 18,192,222, 83, 37,
-134, 21,206,226,206,231,243,161,211,233,176,103,207, 30,220,188,121, 19, 7, 15, 30,132, 86,171, 69, 64, 64, 0,124,124,124,240,
-204, 51,207, 96,242,228,201,136,140,140,116,154,239,132,144,164,236,236,236,142,189,122,245,162,202,203,203, 81, 94, 94, 14,173,
- 86, 11,139,197, 2,179,217, 12, 62,159, 15,137, 68, 2,169, 84,138,224,224, 96,232,116, 58,162,215,235,147,106,227,100, 24,170,
- 66,115, 47,254,246, 79,219,227,187,189, 48,151, 96,199, 82, 10, 81,141,196,154,227,151, 60,167,236, 61, 51,123, 16, 0,194, 16,
-155,105,129,152, 44, 76,241,251,243, 62,155, 81, 87, 56,217, 60, 73, 73, 73,193,140, 25, 51, 96,177, 88, 40, 1,159, 15, 66, 8,
- 40,154,198,237,219,183,177,122,213,106,140, 27, 55, 14,205,162,162, 96, 48, 26,161, 82,169,208,191,127,127,193,170, 85,171,250,
-217, 9,173, 99,117,136, 44,127,173, 86, 11,165,178,202,248, 37, 18,137,176, 99,199,142,128,225,195,135, 39,231,229,229,213,245,
- 61,210, 71, 56, 61, 61, 61, 35,120, 60, 30,174, 95,191,142,181,107,215,226,248,241,227, 40, 44, 44, 44, 11, 13, 13,245,238,215,
-175, 31,253,206, 59,239,160, 99,199,142,248,238,187,239, 36,206, 56, 9, 33,200,186,115, 26, 89,119,207,128, 97,170,132,101,213,
-230,248,119, 29, 61,160,106,225, 84,171,213,186, 43, 87,174,120,172, 95,191, 30, 65, 65, 65,104,220,184, 49,100, 50, 25, 36, 18,
- 73,181, 70,214,190,225,117,246,110,106,181, 90, 93, 86, 86,150,199,150, 45, 91,224,239,239,143,200,200, 72,200,100, 50,136, 68,
- 34,240,249,124, 80, 20,133,141, 27, 55, 98,243,194, 9,200,186,117, 13,163,134, 13,114, 26, 78,153, 76,246,114, 82, 82, 82, 53,
- 19, 72,176,175, 47,248, 2, 26, 60, 1, 5,223,231, 70, 3, 0,202, 78,236,174,178, 85, 57,143, 59,165, 84, 42,117, 23, 46, 92,
-240,184,116,233, 18, 24,134, 65,100,100, 36, 52, 26, 13,188,188,188,108,241, 63,122,244, 40, 70,142, 28,137, 77,155, 54,161, 71,
-143, 30, 78,227,174, 82,169,116,215,174, 93,243,248,225,135, 31,224,231,231,135,134, 13, 27,218,226,206,110, 2,129, 0, 60, 30,
- 15, 77,154, 52, 65, 69, 69, 5, 60, 60, 60,156,230, 81,106,106,170,199, 15, 63,252, 0, 95, 95, 95,132,135,135,219, 44,110,172,
- 56, 90,250,213,194,106, 4, 18,170,193, 99,115,186,155,239, 53, 57, 71,141, 26,133,168,168, 40,120,121,121, 65, 46,151,219,184,
-235,226,172, 69,139,216,244, 54, 69, 81,251,237,222,137, 88,138,162,246,219,239,107,187,207,250,179,207,188,121,243,186, 36, 38,
- 38, 46,233,209,163,199,150,148,148,148,205,181,241,213,198, 51,111,222,188,232,196,196,196, 37,246,247, 59,248,159,218, 45, 90,
-177,177,177,148, 53,146, 20,128,198,157, 59,119,254,229,196,137, 19,126,158,158,158,182,155, 31, 62,124,136,242,242,114,120,122,
-122,122,125,254,249,231, 94,253,250,245, 67,112,112,176,173, 7,112,231,206,157, 54, 45, 90,180,168, 4, 80,211,110,203,208, 52,
-141,103,159,125, 22, 55,172,163, 29, 49,177,177, 8, 15, 15,183, 57,121, 72, 36, 18,204,152, 49,131,154, 53,107, 22,159,181,102,
- 16, 66,160,213,106,209,160, 65, 3,105, 93, 86, 8, 0,136,214, 22, 99,119,191, 62,160, 41, 64,115,249, 34,132, 34, 10, 52,143,
- 66, 39, 82,130, 67,253,251,128, 2, 96,248,245, 28, 92,176,194, 92, 6, 48,232,105,152, 15,157, 53,226, 14,226, 69,213,151,147,
-181,104,164,164,164,192, 98,177,184,202, 73,104,154,134, 92, 46, 71, 72, 72, 8,164, 82, 41,100, 50, 25,181,101,203,150, 15, 27,
- 55,110,220, 96,214,172, 89,116,101,101, 37,253,236,179,207, 98,204,152, 49,124,118,136, 51, 58, 58,218,105, 92, 78,157, 58,133,
-181,107,215, 98,234,212,169, 14, 45, 90, 20, 69, 33, 48, 48, 16, 94, 94, 94,245, 78, 95,113, 35, 68, 6,132, 75, 78, 77,255,174,
-173,143, 87,144, 16, 63,173,121,136,195,171,179,119,235,138,241, 57,204,184, 5,160,204, 85,139,150, 35, 1, 12, 30, 3,139, 95,
- 9, 94, 93,221, 28, 97, 45,189,145,178,165, 0, 7,191,120,104, 81, 41, 76,179, 29,136, 56, 48, 0,140,102, 19, 52, 42,173,109,
- 72,215, 98,177,224,218,201, 95,155,223,255,245, 78,244,254, 45,155, 4, 0,160, 59,185,187,218,160,231,152,175,182,181,232,235,
- 43,184,112,170,204,116,161,174, 50,207,231,243,241,202, 43,175, 32, 49, 49, 17, 47,191,252, 50, 14, 30, 60,136, 5, 11, 22,224,
-245,215, 95,127,196,170,229,172,231,104, 50,153,190,158, 52,105,210,212, 29, 59,118,180,156, 59,119, 46,205, 90,180,100, 50, 25,
- 40,138,130, 78,167,131, 94,175,135, 86,171,197,173, 91,183,152, 55,222,120,227,182,193, 96,248,186,214,225, 74, 74,122, 85, 38,
-214, 28,108, 26, 78, 71,169, 51, 63,245,236,245, 76,164,150,146,118,174, 24,221, 98, 32, 25,250, 74,164, 47, 8, 1, 97, 0,134,
- 0,122,189, 26, 51,102,188,205,115,165,172,103,221, 57,141, 43,151, 47, 66, 42, 21, 67,165, 84,193,194, 88, 64, 24, 2,177, 80,
-128, 15, 63,152,143,113,227,198, 35,170,105, 83, 88, 44, 22, 8, 5, 66,124,255,253,247,232,210,165, 11, 12, 6, 67,107, 23, 44,
- 89,254, 58,157, 14, 87,174, 92, 65,255,254,253,145,157,157,141,244,244,116, 52,111,222, 28, 27, 54,108, 8, 28, 63,126,124,114,
- 81, 81,145,203, 31,127,191,118,237,218,188, 14, 29, 58,172, 84,169, 84,165, 42,149,106, 37,128,205, 0,202, 51, 50, 50, 90,103,
-100,100,172, 62,124,248,112,239,255,252,231, 63,188, 26, 62, 58,188, 90, 34, 15,147,201, 12,173, 86, 95,167,192, 98,143, 9, 97,
- 92,122,103, 40,138, 34, 45, 91,182,196,240,225,195, 33, 16, 8, 32,147,201,224,225,225, 81,109,216,172,166,224,170, 43,139, 0,
- 48, 20, 69, 33, 52, 52, 20, 67,135, 14,133, 80, 40,172,198,201,150,195,161, 67,135, 98,230,162,127,227,235,153, 3,176,118, 82,
-115, 12, 92, 92,232,204, 53, 67,245,243,207, 63, 75,223,159, 58, 21, 29,154, 53, 67,128,151, 23, 26, 5, 7, 66, 42, 22, 65,104,
- 31, 38,202, 37, 35, 59, 1,192,240,120, 60,180,109,219, 22,133,133,133,200,204,204, 68,102,102, 38,104,154, 70,175, 94,189,108,
- 86,152,187,119,239, 98,209,162, 69,208,235,245, 46,199,189, 89,179,102, 24, 48, 96, 0, 68, 34, 17,100, 50, 89,181, 33, 67, 54,
- 77,149, 74, 37,162,162,162,176,119,239, 94,180,104,209,194, 41,103,171, 86,173,208,183,111,223,106,233, 41,149, 74,109,162, 8,
- 0,178, 47,168,108,255, 17, 22, 22,230, 22,231,145,139, 15,177,254,232,207,208, 27, 24, 84,106, 76,213,189, 48, 2,188,112,230,
-135,185, 46,197,157,229,252,223,255,254,135,242,242,114, 91,221,201,118,202, 89, 35, 74,195,134, 13,241,223,255, 58,182,100,214,
-208, 34,142,234,129, 88, 23,219, 91,246, 62,182,112,137, 19, 19, 19,151,212,124,222, 25,159,253,245, 26,207, 27,106,136,179, 66,
-183,134, 14,197, 98,241,252,159,127,254,217,175,162,162, 2,119,239,222, 5, 77,211,182, 49,117, 62,159, 15,163,209,136,123,157,
-170, 47, 17, 0, 0, 32, 0, 73, 68, 65, 84,247,238,193,207,207, 15, 69, 69, 69, 16,139,197,224,241,120, 48, 24, 12, 0,208,169,
-182, 6,156, 16,130,153,138, 42, 23,161,159, 66,133,200, 2, 48, 76, 81,245, 98,176, 14,241, 59,119,238,132,135,135, 7, 60, 61,
- 61,109,123,103,195, 72,215, 50, 51, 80, 40,160, 64,159, 59, 13,138, 6,104, 10,160,120, 0, 77, 19,208, 20, 5,250, 92, 50, 40,
- 10,144,251,251,186,219,118, 59,115,140,175,211, 1,222,157, 70,188,230,239,147, 39, 79,194, 85,206,168,168, 40,120,120,120,216,
-182,195,135, 15, 87,179,104, 89, 44, 22,248,251,251,187,194, 73,172,254, 56, 8, 10, 10,130, 64, 32,160, 54,108,216, 48,175, 73,
-147, 38, 13,222,123,239, 61,154,199,227,225,242,229,203, 72, 75, 75, 67,100,100,164,203, 62, 91,229,229,229,249,243,230,205,179,
-204,155, 87, 53,135, 34, 58, 58, 26,229,229,229, 69,182, 97,192,202,202,146,193,131, 7, 87,243,219, 40, 46, 46, 46,169,197,179,
- 66, 32, 15, 71, 44, 33,168,212,100,227,103, 54,204,222, 17,240, 22,120, 10,142,188,254,101, 43, 31,175, 32, 33, 14,173,122,128,
- 35, 95,230,236,212, 21,224, 67,171, 79, 16,227,106,166, 59, 26, 54,206, 45,200,198, 27, 31,142,198,164, 53,209, 96, 69, 28,239,
- 78,123,144,146,242, 82, 67, 89,105,146, 35, 17,199, 48, 12,204, 70, 51, 52, 58, 29, 84, 74,141,205, 58, 84,148, 87,232, 51,119,
-214,187,130,229, 51, 94, 5, 0,204, 90,177, 6,202,117,191, 85,100,187,103,141, 11, 26,253,217,214,120, 0, 35,235, 10,167, 74,
-165,130, 78,167, 67,211,166, 77,145,146,146, 2,165, 82,137, 33, 67,134,128,162, 40,219, 12, 81, 55, 96,200,205,205,237, 25, 27,
- 27,251,203, 23, 95,124,209,180,117,235,214,148, 90,173,134, 70,163,129,253,254,218,181,107,100,243,230,205,247, 53, 26,205,179,
- 86,211,185, 67, 28,206,253, 38, 35, 38,236,181, 29,199, 47,243, 98,131,162,110,123,229,150, 53, 53,151,228,138,213,149,218, 91,
- 58, 11, 73, 3,177, 0, 22, 48, 32,102, 6, 22,235,176,151, 11, 53, 39, 76, 38, 51, 44, 22, 6, 15, 31, 62, 68,122, 90, 26,218,
-181,109, 9,157,222, 12, 33, 95,128,153, 55,110,160,213,120,192, 32, 20,128, 97, 24, 80, 20,141,169, 83,167, 26,173, 67, 6,181,
- 66, 42,149,174, 62,115,230,140,191, 78,167, 67,106,106, 42, 38, 78,156,104, 40, 46, 46, 22, 1,192,203, 47,191,108,216,184,113,
-163, 40, 42, 42, 10, 27, 54,108, 8, 28, 51,102,204,118,181, 90,221,214,197, 52,221,148,159,159,191,169,230, 73,127,127,255, 85,
- 15, 31, 62,236,103,239,243, 99, 54,155,109,193,113, 24,117, 6, 48,153, 76,208,106,245,168,168, 80,194, 96, 52, 89,235, 76, 6,
- 22,139,217,186,103, 96,182,214,163, 34, 33,223,179, 83,219, 16, 21, 33, 4, 52, 69,149,167, 94, 47,104, 88,151,104,119, 52,196,
-229,162, 53,171, 38, 44,236, 44, 51,127,127,127, 8, 4, 2,108,218,180, 9, 87,207, 30,134,136, 71, 96, 49,155, 96, 54, 25, 97,
- 49, 25, 32,224,241,112,252,114, 38, 6,181,242,116, 73, 16, 6, 4, 4, 96, 88,143, 30,136,237,209,163,106,122, 27,159, 15, 15,
-177, 24, 50,161,164,202,146, 5,128, 88,104, 87, 23, 17, 96,216,112, 6, 7, 7,227,210,165, 75,152, 57,115, 38,150, 46, 93, 10,
-169, 84,106,155,253,124,243,230, 77,108,219,182, 13,131, 6, 13,114, 59,238,172, 5, 47, 62, 62, 30,121,121,121, 88,177, 98, 5,
- 58,119,238, 12,129, 64,128,242,242,114, 60,251,236,179, 40, 44, 44,116,137,211,126,120, 79, 36, 18, 85,179, 62,177, 2,208,221,
- 60,178,231,124,117, 84, 3,236, 59,187, 25, 20, 40,156,255,225,221,106,162,240,191, 91, 79,187,205,185, 96,193,130,106,225,116,
-197,154,229,178, 31, 82,117,171,147,211,251, 40,138, 74,101,141,173,241,241,241,243, 41,138,218, 31, 31, 31, 63, 63, 33, 33,225,
-134, 43,124,142,174, 83, 20,117,192, 42,194,134,217,157, 75,117, 75,104,201,100,178,110, 30, 30, 30,184,123,247, 46,134, 12, 25,
- 98, 40, 41, 41,185, 45, 16, 8,154, 23, 23, 23,139,139,138,138,160,209,104, 84, 31,127,252,113, 38, 0,105,247,238,221,163,142,
- 31, 63,142,236,236,108,108,220,184, 17, 0,118,215,230,167,195, 48,140,173, 80,212,236,182,241,120, 60,156, 59,119, 14,231,206,
- 85,119,253, 90,191,126,189,211, 6, 99,204,158, 31,113,249,242,101,216, 47, 15,192,254,182, 63, 39,145, 72,128,186,103,120, 84,
-131, 51,199,120,103, 14,240,174, 54,226,181, 85,128,174, 22,196,220,220,220, 90,159, 63,119,238, 92, 53,139,150, 51, 78, 30,143,
- 7,139,197, 2,169, 84, 74, 9,133, 66, 74, 40, 20,134,179, 34,139,199,227,217, 94, 24,177, 88, 12,177, 88, 92,173,151, 90, 27,
-242,242,242,250,231,229,229,213,122, 93,161, 80,244, 84, 40, 20, 46,197, 85, 22,134,143,158, 29,219, 96, 30, 0,156,221,154,255,
-157,230, 33, 94, 7, 0,194,167,118,189,250,121,139,168,192, 72, 41,206,109, 47,192,145, 47,115,246,232, 10,176,208, 58,164,203,
-184,154,230, 7,142,238,197,155, 83,167, 65,204,147,217,249,100,209, 40,231,101, 99,250,198, 22, 96, 69, 92,234, 70, 3,246,111,
-253, 8, 41, 71,159, 55,213,101, 41, 51,154, 76,208,106, 12, 80,170,180,248, 40,225,187,170,147, 31,225, 2,128, 11, 61,223,156,
-137,184,152, 65, 3,220, 29,166,102,211, 59, 40, 40, 8,167, 78,157, 2, 69, 81,216,190,125, 59,188,189,189, 17, 19, 19, 3, 47,
- 47, 47,196,199,199,227,197, 23, 95,116,183, 50,171, 40, 41, 41,233,249,206, 59,239,252,242,233,167,159, 54,106,216,176, 33, 12,
- 6, 3,140, 70, 35, 12, 6, 3, 50, 50, 50,176,121,243,230,108,141, 70,211, 19, 64,133, 51,178,195,185,223,100,236, 74,158,149,
- 55,112,236, 24,237,205,194,159, 80, 80, 80, 2,179, 57, 23,140,197, 12,163,217, 82,101,225, 51,155, 97, 54, 91, 32, 20,242,188,
- 62,253,228,221,163, 12, 8,104,154, 50, 0,120,190, 54,177, 17,209, 48, 8, 94,158, 94,104,221,170, 9, 78, 28, 90, 15,131,209,
- 12,163, 65, 13,227,244, 24,164,103, 29,135,229,254, 49, 88, 24, 11,206,164,164,233, 77, 22, 34,144, 74,229, 84,195, 6,158,188,
- 59,247,117, 14,195,233,227,227, 19,173, 80, 40,112,231,206, 29, 76,158, 60,185,160,164,164, 36, 29,192,115, 0, 80, 82, 82,114,
-102,226,196,137,173,147,146,146, 66, 26, 55,110, 12, 15, 15, 15, 47,181, 90,237, 44,234, 30, 0,226, 0, 12, 70,117, 7,252, 82,
- 0, 31,211, 52, 45, 78, 77, 77,125,100,166, 93,114,114, 50, 0, 92,112,220, 3,178, 90,180,116, 58, 40, 74,202,240,250,155, 31,
-254,214, 51, 2,169, 38, 46, 8, 8,166,189, 5, 9, 0, 20, 23,102,224,213,215,103,138,235, 84, 28, 12,227,176, 33,116,195, 71,
-167, 90, 71,141, 45,163, 30, 30, 30, 85,195,111,123, 55,227,192,103,111, 2, 22, 35,136, 73, 11, 24, 53,128, 81, 5,198,160, 1,
- 37,148, 2, 38,173, 75, 66,203,195,195, 3, 30, 82, 41,130,124,124, 64, 8, 1,159,199,131, 64,192, 7, 99, 2, 40, 11,101, 43,
- 35,140,197,165,178,110,235, 84, 74,165, 82,100,101,101, 33, 46, 46, 14, 70,163, 17,163, 70,141,130,193, 96,128, 78,167,131, 86,
-171, 69,147, 38, 77,160,209,104, 92,226, 99,103, 43,122,120,120, 64, 40, 20,226,221,119,223, 69,151, 46, 93,176,104,209, 34,204,
-153, 51, 7, 77,154, 52,193,180,105,211,176,121,243,102, 68, 71, 71, 59,227, 37,246,121,196,166, 39, 43,182,236,135,248, 0,184,
-157, 71, 53, 57, 41,138,174, 38,216,216,237,237, 73,207,185,205,153,152,152, 8,133, 66,241,136, 37,139,253, 29, 22, 22,134,175,
-190,250,170,190, 35, 67,172,245, 40,216,193,181, 97, 53, 45, 81,132,144,174, 86,223, 41,125, 66, 66,194,141,132,132,132, 88,138,
-162,246, 39, 36, 36,196,214,102,209,114,196,227,224,186,194,213, 48,243,107,140,141,246,179,191,200, 38,180,159,159, 31,175, 81,
-163, 70,180,151,151, 23,202,203,203, 17, 24, 24, 72, 20, 10,197, 88,153, 76,182,112,203,150, 45, 81, 42,149, 10, 55,111,222,196,
-170, 85,171, 46, 0, 88, 89,151,208, 58, 24,104, 53, 29, 91, 45, 89,246,199,195,135, 15, 71,227,198,141,171, 89,179,164, 82,105,
-157,133,135,189,102,107, 20,121, 60,180,104,209, 66,122,255,254,125,173, 80, 40, 68,120,120,184,180,160,160, 64, 43, 20, 10,221,
-158,233,226,204, 49,222,153, 3,188, 35,225,211,181,107,215,106, 22, 44,251,189,253,239,125,251,246, 57, 29, 58,100, 57, 91,183,
-110,109, 75, 47, 79, 79, 79,246, 89, 0,192,144, 33, 67,192, 48, 12, 2, 2, 2, 92,226,100, 69,173,213, 1, 30, 58,157,142, 81,
- 42,149,116,106,106, 42, 68, 34, 17, 60, 61, 61,109,190, 58, 18,137,196,102,205,252,189, 32, 16,209, 83,198,124, 80,101, 96,244,
-111, 40,126,117,239,178, 76, 80,192,229,161,111, 71,246,111,218,213, 27,149, 69, 70,236,255, 60,235,129,174, 4, 9, 0,110,185,
- 99,201,210,209,149, 94,235,206,188,131, 14, 47,139,208, 64,215, 11,159, 46,168, 42,202, 19,103,140,198,176,215,249, 96, 69, 28,
-125,167, 29,182,127, 55, 31,205,154, 53, 3, 33,132,170,189, 66, 96, 96, 48,153,160,213,106,161, 82, 85,173,155,153,113,189,250,
- 8,163, 81, 95, 89,255,180,176, 86,176,165,165,165, 56,124,248, 48,126,250,233, 39,116,233,210,197,161,168,118, 67,112, 41, 74,
- 75, 75,123,205,158, 61,251,252,226,197,139, 67,253,252,252, 96, 52, 26,241,240,225, 67,124,251,237,183,121, 26,141,166,151, 59,
- 21, 12, 8, 96, 50,153,161,211,232, 81, 81,169,196,194, 79,190,175,181,232, 1, 64,105,209, 45, 12, 31,241,162,168, 46,177,209,
- 48,204, 7,201,201,201, 24, 52,176, 23,134,141,156, 92,171,216,120,115, 70, 53,177, 33,172,163, 35,240, 94,175, 94,189, 62, 81,
- 42,149,229, 26,141,230, 69, 0,203,237,251, 83, 37, 37, 37,189, 71,140, 24,241,133,159,159, 95,231,162,162,162,249, 46,196, 58,
- 62, 43, 43,107,126, 68, 68, 68,181,147,122,189, 30, 17, 17, 17, 45,138,138,138, 38,244,233,211,231,223, 0,252,236, 46,123, 2,
- 56, 2,224,171,218,202, 18, 59,116,168, 82,105,225,229,211, 0,185,153,167,156, 6, 68,200,211,129, 48, 76,157,117, 8,219, 1,
-174,109,115, 50, 51,238,145,160,178,247,178, 13,246,243,255,154,132,231,227, 18, 33, 19, 0, 75, 94,237,137, 38, 62, 0,164,126,
- 16,246,153, 11,202,199,154, 70,113, 63,186, 68, 62,103,237, 90, 92,182,214,199,225,129,129,152, 61,118, 44,136, 9, 72, 73, 75,
-195,214,159,127,198,216,254,253, 33,147, 72, 92,238,176, 48, 12, 3,161, 80,136,140,140, 12,164,164,164,160, 85,171, 86,184,123,
-247,110,181,101, 40, 8, 33,174,198,223, 22,119,177, 88, 12,129, 64,128,130,130, 2,196,198,198, 66, 40,172, 26,198, 62,117,234,
- 20,102,207,158,141, 41, 83,166,160, 95,191,126, 72, 79, 79,119,137,147, 16,242,200,108,197,154,195,185,238,230, 81, 77,206,154,
-237,126,125,242,157,229, 92,188,120,177,195, 9, 21,174,112, 58,210, 34, 14,242, 46,213, 94, 12,177,150, 39,123, 97, 84,243, 24,
-128, 47,123, 46, 62, 62,126,190,171,207,217, 31,179, 22, 49,119,134, 48,109, 66, 43, 54, 54,182, 90,204, 75, 75, 75,207,159, 63,
-127,190,141, 92, 46,199,173, 91,183, 68, 94, 94, 94,109,216, 10,157,166,105,108,223,190,221,115,232,208,161, 71,151, 47, 95, 30,
-206, 48, 12, 10, 11, 11,241,254,251,239,171,204,102,243, 56, 0,230,218, 26,112,103,150,169, 31,127,124,244,101,219,187,119,175,
- 75, 67, 32,172,144,226,243,249,240,245,245,213,106,181, 90,200,100, 50,248,250,250,106, 53, 26, 13,228,114, 57, 59, 86, 76,227,
-183,153, 10,206,172, 79,206, 28,227,107, 58,192, 59, 69, 90, 90,154, 75,247, 89,135, 90, 93, 42,229, 89, 89, 89,181, 86, 36,167,
- 78,157, 2, 99,173,104, 93,229,180,246,242, 8, 43,252,100, 50, 25,252,252,252, 32, 22,139, 33,149, 74,171,137, 44,177, 88,236,
-244,197,113,182, 32,169, 68, 34,185, 40,151,203,125,216,235, 2,129, 0, 74,165,178,188,180,180,180,219, 35, 22, 34, 13,115, 48,
-121, 99,222,148, 62, 19, 67,209,103, 98, 40, 0,188,122,105, 95,209, 43,189, 95,174,114,254,220,185,248, 30, 81,230, 89, 18, 97,
- 66,154, 59, 34, 11, 0,136, 72, 47, 27,243, 65,135, 42,235,194,198,243,152,187,248, 29,180,107,213, 1, 62,207,230,162,105,215,
- 80, 84, 22, 25,241,235, 22, 11, 86,254,231,125,180,110,221,218,169,192,100, 64, 96, 54,154,161,213,234,160, 82,106,241,164, 97,
- 48, 24, 32, 22,139,177,121,243,102,244,236,217, 19,221,187,119,127, 68,100,213,211, 60,159, 83, 90, 90,218,111,229,202,149, 23,
- 62,255,252,115, 95,149, 74,133,239,190,251,174, 66,165, 82,245, 3,144,227, 86,154, 50, 4, 38,163, 17, 26,157, 30,106, 85, 85,
- 26,220,187,177,179,158, 61,217, 42,177,209,179, 91,115, 76,159,254, 38, 50,239,103, 64, 85,126,247,177,197, 6,128,205, 5, 5,
- 5,155,235,184,126,207,108, 54,199,178,235,190,185,128,103, 34, 34, 34, 80, 80, 80, 80,237,228,131, 7, 15, 96,177, 88,244,168,
- 90, 39,235, 53,123, 67, 50,106,153, 65,107,215,131,174,178,142,106,245, 80,169,170,172, 32, 58,117,241, 19, 41, 71,172,216,168,
-205, 39,171, 62,101,136,162, 40,155,211,247,140, 25, 51,112,237,234, 85, 60, 23, 90,137, 38, 33,158, 32,149,185, 16, 14,248, 15,
-126, 85, 72,177,252,139,131,110,115,111,179,115,129, 88,190,109,155,195,107,247, 70,142,116, 43,238,183,111,223,134, 84, 42,133,
-197, 98,121,164,189,113, 55,254,246, 2,230,139, 47,190,192,236,217,179,241,253,247,223,227,218,181,107,232,208,161, 3, 6, 14,
- 28,136,162,162, 34, 92,189,122, 21,122,189,222,229,112,218,251,205,221,190,159,134, 99, 41,135,240, 32, 39, 19,121, 5,217,245,
-206,119,123,206,154, 66,107,215,177, 43,248,215,160, 78,245,226, 92,184,112, 33,138,138,138,170, 89,178,236,235,165,218, 44, 90,
- 53,181, 72, 13, 20,215,240,133, 98,143, 13, 53, 68, 79,205,227,154,247, 3, 64, 17, 0,158,147,231,106, 30, 23, 39, 36, 36,156,
-100, 45, 97, 86, 94,158, 51,255,172, 90,135, 14, 1, 36,142, 28, 57,114,196,170, 85,171, 2, 37, 18,137,109, 6, 82,124,124, 60,
-102,207,158,141,166, 77,155, 34, 32, 32, 32,204,199,199, 7, 37, 37, 37, 88,186,116, 41,178,178,178,254, 15, 14, 22,218,171, 41,
-180,122,223, 87, 66, 36,250,173,195,202, 90,182, 0, 96,202,148, 41,143, 88,180,216, 12,170, 11, 38,147, 9,254,254,254,208,104,
- 52,224,241,120, 24, 53,106, 20,239,250,245,235,150,152,152, 24,140, 30, 61,154,119,245,234, 85,203,176, 97,195,192,227,241, 48,
- 96,192,128,202, 93,187,118,205, 2,240,153, 11, 98,235,137, 57,198,179,133,204,213,181,143, 92, 17,151,117,113, 82, 20, 5,141,
- 70, 3,190,117, 86,150,171,156,236,208,161,253, 11, 72,211, 52,124,124,124,108,149, 7,107,209, 98,133,150, 51, 94,103, 11,146,
-202,100, 50,175, 91,183,110, 69,177, 19, 47,138,139,139, 49, 96,192,128, 59,165,165,165,143,112,105,243, 49,127,207,146,204, 16,
- 0, 67, 88,177,213,117,100, 16, 69,243, 40, 92, 59, 82,130,171,135, 74, 47,155, 42,209, 27,192, 90, 0,255, 5,176, 20,192, 92,
- 0,211,236,142, 31, 58,172, 32,117, 66,125,242,198, 60, 25,203,155,188,241, 28,190,220,181, 23,239,110,173,114,220,223,245,201,
-125, 76,125,105, 33,218, 69,183,115,109, 45, 32, 6, 48,154, 45, 80,105,117, 80,105, 53,120, 82, 96,223,135,117,235,214, 33, 61,
- 61, 29, 58,157, 14,171, 87,175,182, 77, 42,176, 23, 89,143, 33,184, 50,164, 82, 41, 51,100,200, 16,156, 63,127, 30, 98,177,216,
-132,122,172,127,197, 16, 6, 70,179, 25, 58,173, 22, 42,231, 67,110, 78, 27, 48,163,201, 4,134,177,160,107,135,112, 92,191,118,
- 13,114, 94, 49,254,132,176,169,234,244,244,116, 24, 12, 6, 44, 90,180,200,242,203, 47,191,156, 68,213, 2,168,172, 5,111, 66,
-223,190,125, 63,150,203,229, 62, 7, 14, 28,120, 27,192,247,117,197,221,100,182,138,246,199, 76,199,218, 70, 4, 28,249,100,213,
-103,201, 29,251,134,149, 97, 24,252,223, 27,111, 96, 96,104, 37, 70,119, 14,132, 58,255, 14,100,222,129,160,124, 34,177,252,139,
-131,184,113,223,229, 69,137, 9, 0, 12,233, 59, 18,237, 91, 61,186, 60, 88,175,231,170,250,100,103,142, 95, 68, 97,113,158,219,
-113, 87,171,213,181, 90,174,220,176,104,217,222, 57, 54,253, 58,118,236,136,230,205,155,227,228,201,147,232,212,169, 19,238,222,
-189,139,187,119,239, 34, 43, 43, 11,215,174, 93, 67, 89, 89,153,219,121,180,231,200, 86,148, 41, 75, 33, 18,138, 80, 90, 94,140,
- 7,185,153, 8,246, 15,121,236,124,103,209,114,216, 66, 0, 64,104,160,183, 91, 66,203,158,115,217,178,101,143,136,247,122, 46,
-223,100,207,127,177,174, 99,119,159,255, 61, 81,155,208,202, 84, 40, 20,221,199,142, 29, 27, 15,160,171,245, 92, 5,128,109, 71,
-143, 30, 29, 25, 20, 20,212,191, 71,143, 30,124,145, 72,132,148,148, 20,236,218,181,235,123, 0, 91,235,250, 35,145, 72,164,141,
-140,140,148,178, 5,145,125, 17,189,188,188,120, 75,151, 46,165,214,175, 95, 95,171,149,203, 89, 6, 85, 84, 84, 64,173, 86,195,
-219,219, 27, 70,163, 17, 67,134, 12,177,164,167,167, 67, 40, 20, 98,196,136, 17,150,180,180, 52, 91, 70,255,239,127,255, 11,215,
-106,181,207,254,244,211, 79,131, 1,244,113, 35,173, 88,199,120, 15,184,232, 0, 95, 91, 47,207, 21,184, 58, 28, 87, 27,231,204,
-153, 51,235,197, 41, 20, 10,205,236,202,239, 52, 77,195,104, 52,162, 83,167, 78, 40, 42, 42,178,189, 52,114,185,220, 38,178, 92,
- 17, 90,206, 22, 36,229,243,249, 48, 24, 12,232,211,167, 15, 40,138,194,154, 53,107,234, 10,107,145, 54, 15,111,236, 89,146,249,
- 63, 86,108, 73, 60,248,208, 41,205, 56,241,101, 25, 12, 37,240, 26, 51,102,204,248,157, 59,119, 98,233,210,165,211,226,227,227,
-149, 47,188,240,194,180,237,219,183,219,142, 1,196, 59, 34,150, 18,239, 74,205,249,230,178,100,220,129,157,136, 3, 43,226, 42,
-110,120, 34, 89,119, 6, 87, 83,175, 3, 0,214,174, 93, 11,212, 53, 20,203, 48,148,135,135, 63, 66, 67, 91, 32, 48, 72, 7,198,
- 69,231, 17, 87, 49,103,206,156,106, 98,202,209,202,203,246, 67,140,245, 17, 54,246,251,122,113, 0,182, 33, 47,181, 90,247,216,
- 66,139, 21, 27, 62, 94, 66,132,133, 53, 64, 69,129,253,176, 62, 5,118,170, 82, 85,152, 73,189, 29,110, 89, 4, 5, 5,117, 47,
- 42, 42,218, 91,227,116, 41,128,143,235,232, 88,218, 50, 58, 59, 59, 27, 49, 49, 49, 56,116,232, 16,111,247,238,221,207,237,219,
-183, 47,237,206,157, 59,217,157, 58,117,106, 56,117,234, 84,113,159, 62,125, 80, 92, 92,140,206,157, 59,127,148,155,155, 91,135,
-208,178,166,163, 78, 15,181,250,201, 91, 71, 29, 89,179, 30,167, 97,100,211,125,193,130,127, 99, 96,131,114,140,234,224,141,164,
-253,103, 49,161,163, 20, 48,136,221,230, 99,195,226, 23,218, 24,145,209,221, 31,185, 46,246,170, 90,203, 53, 50,186, 59,232,236,
-187,110,199,221, 62,204, 53,203, 76,125,202,144,125,122,190,254,250,235,152, 59,119, 46, 6, 15, 30,140,187,119,239, 34, 57, 57,
- 25,119,239,222,197,204,153, 51, 17, 29, 29,141, 14, 29, 58,184,197,185,239,216, 14, 84,170, 42, 64, 83, 52, 74, 43, 74,160,211,
-107, 49,103,218,130,199,206,119, 91,227,127, 44,161,106,116,224,232,229,122,115,126,240,193, 7, 40, 40, 40,168,102,201,122, 28,
-191,172,191, 58,234, 90, 45, 45, 19,192,255, 57, 24,174,240, 92,180,104,209,160,128,128, 0, 80, 20,133, 47,190,248, 2,126,126,
-126, 61, 1,220, 48, 24, 12,197,106,181,122,182,157, 8, 25, 8,235, 90, 27,133,133,133, 14,231,237,171,213,106,227,160, 65,131,
- 4, 13, 26, 52,168, 54,219, 80, 46,151,215,102,221,177,113,178,215,204,102, 51,230,204,153,131, 37, 75,150,160, 81,163, 70, 24,
- 54,108, 24, 98, 99, 99, 65, 81, 20,134, 12, 25,130, 97,195,126, 27,202,245,241,241, 17, 30, 58,116,168, 47, 77,211,105,118, 13,
- 72, 53, 78, 71, 96, 29,227, 77, 38,147,171, 14,240,213, 56,217,194, 54,115,230, 76, 44, 89,178, 4,243,231,215,237,234, 81, 75,
- 35,254,212, 57, 75, 75, 75,171, 85,246, 50,153,108,205,232,209,163,249,217,217,217,213,196,149,253,230,160, 34,170,198,233,108,
- 65, 82, 30,143,135,224,224, 96, 44, 94,188, 24,254,254,254, 8, 9, 9,113,180,144,159, 61,103,158,189,216,122,246,165, 16,236,
- 93,150,137,231,187,141,197,237, 83, 43,245,110, 52, 16,213,194,105,177, 88,178,222,121,125,110,208,138,245, 75,121,172,216, 98,
- 69,220,233,175, 85, 88,149,248, 45,250,244,238, 99, 51,179, 39, 39, 39,155, 29, 88,121,108,156, 22,194,164,126,154,248,239, 94,
-223,109,220, 39, 16,139,128,115,201, 59, 81, 89, 86,125, 56, 73,111,252,109, 42,181,168,211,115, 48, 92, 62,238, 82, 89, 98,197,
-244,194,133, 11,177,112,225,194, 58, 35,185,110,221, 58,167,156,174,138, 46,119,210,211,106,210,162,100,114, 95, 72,228,161,104,
- 19,237, 11,134,152,221,173,163,108,156, 53,197, 70, 64,128, 63, 42, 10,170,203, 58,202,150, 70,117,106, 96,103,113,255,229,226,
-197,139, 35,252,253,253,145,147,147, 19, 40, 16, 8, 70, 84, 51, 87,105,181,136,140,140,108,161, 80, 40,158,117,198, 57,115,230,
- 76,253,135, 31,126, 40, 30, 55,110, 28, 70,143, 30,141,113,227,198,137,133, 66, 97, 51, 66, 8,140, 70, 35,114,114,114,112,252,
-248,113, 40, 20,138,155,117,133,147, 33,132,146,202,124, 32,145, 55, 64,155,182, 62, 96, 24,115,125,235,124,135,117, 72, 77,107,
-150,155, 34,203, 97,249, 4,128, 95,142,239,197,130,119,219,226,251, 3, 23,176,234, 34,208,222,167, 8,109, 2, 21, 96, 20, 55,
-241,254,132, 46, 88,254,195,165,170,119,233,148,211, 60, 34,117,149, 65,157,214,248, 88,113,183,183, 92,217,255,143, 11, 62, 90,
-143,112,178,157, 68,165, 82,137,242,242,114, 36, 37, 37,225,213, 87, 95, 69, 81, 81, 17,178,178,178,112,231,206, 29,108,217,178,
- 5, 50,153,172, 94,121, 52,235,141, 15,240,225,242,247, 64, 64,208, 50,170, 13,226,227, 22,162,107,251, 30,143,157,239, 53,225,
-130, 53,171, 86,206, 21, 43, 86,212,183, 44,253,227,132,150, 67, 4, 4, 4,140,235,219,183, 47,116, 58, 29, 2, 3, 3,145,149,
-149, 5,154,166,155, 2, 85, 67,120, 97, 97, 97,219, 20, 10, 69, 83, 87,249,120, 60, 30,204,102,179,205,247,135,221, 0, 96,248,
-240,225,248,241,199, 31,157,246, 40, 66, 66, 66,208,176, 97, 67,188,243,206, 59,143,204,114,176,159,233, 32,149, 74,113,224,192,
-129,130,210,210,210, 82, 66,136,194,157,120,179,142,241,103,206,156,113,217, 1,222, 30, 70,163, 49,251,206,157, 59, 13,214,173,
- 91,199,171,163,241,179,161,150, 70,252,169,115, 58,234,153, 18, 66,106, 21, 89,174, 44, 35,224,108, 65, 82, 62,159,143,219,183,
-111, 99,193,130, 5,160, 40, 10, 59,119,186,228,195,147,167,205,195, 27,187, 23,103, 46,221,147,144, 57,218, 84, 1,201, 73,245,
-202, 59, 0, 86,239,216,177,163, 3, 69, 81,236, 80,225,127,119,236,216,225,105,127, 92,171,169,172,168, 40,230,197, 23, 95, 60,
- 74, 81, 84, 83,221,201, 10, 79, 0, 34, 86,196,229, 94,211,169, 94,158,240,178,129,207,231, 91,126, 51, 88, 49, 89,133,133,133,
-207,215,198,119,253, 86,201,122,154,166,125,135, 63,223,171, 29, 40, 10, 70,195,163, 35,213, 30,101, 42,155,200, 26,253,217, 86,
-236,158, 53,214, 21,209,147,113,250,244,105,191,117,235,214,241, 93,201,247,211,167, 79,155, 9, 33,110, 15,251,177, 13,142,209,
-104,132, 86, 91, 63, 43, 10, 33, 36, 37,225,147, 15, 7,109,216,116, 80, 64, 81, 6,156, 59,181, 19, 21,229,142,221, 25, 68, 2,
- 62,214, 39,237, 50, 11, 5, 60,135, 78, 39, 79, 80,108, 56,195,151,163, 70,141, 26,183,122,245,234, 54,142, 46,186, 48, 9, 38,
- 75,167,211, 33, 55, 55, 23, 26,141,102,199,188,121,243,140, 7, 15, 30,124,109,204,152, 49,232,208,161, 3, 26, 52,104,128,252,
-252,124,100,100,100, 32, 41, 41,137,156, 61,123,118, 7,128,233, 78,210,113,111,226, 39, 31, 78, 78,250,225,160,136,166,140, 56,
-151,188, 19, 21, 53, 68,251,163,214,105, 1,190,249,126,151, 81, 40, 20,220,114,102, 45,178,183,102, 61,201,134,113,196,196, 56,
-140, 94,185, 10, 77,187,198, 32,113,233, 64,124,243,201,139,248,124,136, 16,198,237, 19,208,254,133, 13,216,188,104, 40, 0, 32,
-244, 27, 23,173, 37,124, 33, 30, 58,176, 88,149, 87, 72,172,226,198, 61,171, 41, 27,247,186, 44, 87,238, 90,180,104,154, 70,227,
-198,141,209,180,105, 83,244,236,217, 19,157, 58,117, 66,255,254,253,113,245,234, 85, 92,189,122, 21, 51,103,206,172, 75,100, 57,
-205,163,126,207, 14,194,133,222,183, 30, 59,111,106,230,251,147,128, 43,101, 41, 46, 46, 14, 0,254, 81,214, 45,183,133, 86,101,
-101,229, 85,134, 97,218,121,123,123,179, 22, 41,219,181, 7, 15, 30,128, 97, 24,141,187, 25, 99, 48, 24,216,197, 49,171,173,203,
-196, 58,199,215,245,226, 19, 66, 44,165,165,165,232,219,183, 47,122,247,238,109, 27, 62,177,223,236,132, 9,118,239,222, 13, 66,
- 72, 55,119,227,109,231, 24,175,130,155, 14,240,108, 35,222,167, 79,159,163,124, 62,223,165,175,104, 58,107,196,159, 22,167,163,
-252, 97, 24,166, 86,145,229, 74, 69,228,108, 65, 82, 62,159, 15,185, 92,142, 61,123,246, 32, 32, 32,192,157,224,229,233, 10, 48,
- 11,192,151,168,154,132,113, 23, 0, 59,141, 47,206,254,221,174,113, 92, 27,212, 10,133,130,237, 26,134,238, 94,156,185,116,239,
-210,204,129,140, 30, 59,117, 10,252, 0, 40, 47,194,137,211,114, 77, 92, 77, 87, 44,171,235,122, 95,127,209, 41, 0,129,163, 63,
-219,250,240, 84,137, 49, 98,244,103, 91, 31,236,158, 53,182, 81, 93,207, 20, 20, 20, 12, 30, 59,118,236, 33, 87,243,221,108, 54,
-103, 22, 20, 20, 60,239,110,153, 37,132,224,214,173, 91,204,235,175,191, 94,172, 80, 40, 94,172, 79, 5, 19,191, 96,213,231, 75,
- 62,154,225, 63,100, 80,247,174,160, 1, 67,237,206,191,132, 2, 8, 95,192,203,158, 61,127,197, 27, 47,190,248,226,239, 42, 54,
-106, 86,115, 5, 5, 5, 61,255,245,175,127, 77,199,111,174, 19,213,132, 20,106,153, 93,109,197,202,134, 13, 27,182,229,241,120,
- 98, 0, 11, 0, 60, 56,123,246,236,151,103,207,158, 29, 12,224, 25, 30,143,215,192, 98,177,228, 90, 59, 61, 91, 1,252,234,188,
- 28, 21, 77, 5, 97,194,135, 12,124, 38, 6, 20, 69, 12, 6,189,147, 14, 18, 8, 8, 33, 66,161,224,214, 47, 87,243,219,215,213,
-145,178,251, 2,199, 19,159, 65, 60,125,250,116, 76,159, 62,221, 86,158,214,172,233,141, 29,215,207,224,133,246, 57,208,127,221,
- 11,148, 87, 35,151, 59,124, 0,240,193,191, 95,127, 98, 97,179,143,187,189, 69,203,209,123,224,142,143, 22,143,199, 67,113,113,
- 49,110,223,190,141,194,194, 66,104, 52, 26,164,167,167,195,104, 52,162,172,172, 12,109,219,182,173,119, 56,159, 84, 30,253,145,
-156,255,196,225, 67,183,133,150,209,104,252, 79,227,198,141, 5, 18,137,164,141,197, 98, 1, 33, 4, 22,139,133, 88, 69,141,219,
-179,240, 4, 2,129,174,121,243,230,148,163,217, 9,236,111,185, 92,174,173,195, 90,146, 16, 25, 25, 57,143,162, 40, 94,109,189,
- 16,246, 55,195, 48, 22, 62,159,159, 80,207,180,122, 92,199,120,251, 70,252, 73,225,105,112,214,204, 31,117,171, 86,173,108, 95,
-180,175,185, 38,138,245, 99,171,106, 39,226,188,206, 5, 73,213,106,117,126, 76, 76,140,197,254,186,253,130,166,206, 52,172,117,
-123,210, 96, 69, 92, 99, 59, 17,103,121,226,255, 66,145, 7, 67,199,189, 22,113,170,196, 24, 1, 0,172,216, 2, 33, 15,234,120,
- 74, 91, 80, 80,208,247,105, 87, 14,247,239,223, 55, 60,243,204, 51,155,148, 74,101, 28,128,122,123,243,207,255,207,154,249, 79,
- 34, 60, 79, 75,108,212, 86,108, 1, 44,169,103, 80, 31,148,148,148, 12,168,113,238, 87, 86, 80,177,235,218,185, 29,255,155,197,
-207, 63,233, 60, 54,155,205, 57, 77,155, 54,117,203,114, 99, 50,153,114,156, 93,175,185, 70,152, 61,110,192, 27,243,207, 3, 85,
-147,191, 75, 92,226,212,233,116,165, 61,122,244, 16,184, 25,183, 34, 87,227,222,160, 65, 3,132,134,134,218,246, 44,106,158,119,
- 22, 78,179,217,156, 19, 30, 30,142,128,128,128, 90, 87,124,175,233,147,229, 10,231,147,206,163,186, 56, 67, 67, 55, 60,113,206,
-250,134,147,131,107, 24,200,113,114,156, 28,231, 95,150,147,199,165, 39,199,201,113,114,156,191, 35,231,223, 18,156,151, 26, 7,
- 14, 28,106,131,133, 75, 2, 14, 28, 56,112,120, 60, 80,117,168,210, 99,110,240,212, 71,217, 30,227, 56, 57, 78,142,147,227,228,
- 56, 57, 78,142,243, 31,199,233,140,251, 24, 56, 60, 85, 1,198,113,114,156, 28, 39,199,201,113,114,156, 28,231, 63,143,243,111,
- 9,110,232,144, 3, 7, 14, 28, 56,112,224,192,129, 19, 90, 28, 56,112,224,192,129, 3, 7, 14,156,208,226,192,129, 3, 7, 14,
- 28, 56,112,224,192, 9, 45, 14, 28, 56,112,224,192,129, 3, 7, 78,104,113,224,192,129, 3, 7, 14, 28, 56,112,224,192,129, 3,
- 7, 14, 28, 56,112,224, 80, 5, 10, 0,246,239,223,111,251, 32, 96,108,108, 44,197, 37, 11, 7, 14, 28, 56,112,224,192,225,247,
-196,223, 90,139,216, 71,142, 3, 7, 14, 28, 56,112,224,192,129,211, 34, 79, 6, 52, 39,182, 56,112,224,192,129, 3, 7, 14,156,
-216,226, 34,198,129, 3, 7, 14, 28, 56,112,224, 68,214, 95, 10,213, 44, 90,156,224,226,192,129, 3, 7, 14, 28, 56,252,145, 98,
-235, 47,170, 69,136,117,179, 63,230,192,129, 3, 7, 14, 28, 56,112,224,240,152, 2,171,174, 61, 7, 14, 28, 56,112,224,192,129,
- 3,135, 39, 36,184,216,223,191,155,208,226,190,108,206,113,114,156, 28, 39,199,201,113,114,156, 28,231, 63, 22,124, 46, 9, 56,
-112,224,192,129, 3, 7, 14, 28, 30, 27,246, 86, 44,138, 19, 90, 28, 56,112,224,192,129, 3, 7, 14, 79, 78,100, 81,142,142,185,
-111, 29,114,224,192,129, 3, 7, 14, 28, 56, 60, 37,112, 22, 45, 14, 28, 56,112,224,192,129, 3,135,199, 3, 5,110,232,144, 3,
- 7, 14, 28, 56,112,224,192,225,169,138, 45,135, 39,107,155, 57,112,204, 13,242,250,204, 62, 56,198,113,114,156, 28, 39,199,201,
-113,114,156, 28,231, 63,142,211, 25,247, 49,252,245,208, 23,192, 73, 0,253,172,251, 90,133,215,147, 6, 55,245,149,227,228, 56,
- 57, 78,142,147,227,228, 56, 57,206,191, 59,106, 93,168,148,115,134,231,224, 12,124,212, 61,196,236,236, 58, 7, 14, 28, 56,112,
-224,240, 79, 19, 91,196,190,145,116,132,102, 0,230, 3,240,182, 59,119, 17, 64, 66,141,251,126, 0, 32,179, 59, 86, 3, 88, 4,
-224,174,211,208, 16, 34,180,242,139,173, 27, 3, 64, 7, 64, 15, 64, 73, 81,148,137,203,179, 63, 28, 61, 0,196, 90,127,239, 7,
-112,206,205,235,127, 43, 52,104,208, 64,234,235,235, 59,248,242,229,203,162,244,244,116,156, 62,125,154,172, 95,191,222, 88, 86,
- 86,118, 36, 63, 63, 95,203, 21,151,191, 5, 98, 0,196, 91,127, 39, 2, 56,252,152,124,148, 76, 38,155, 41,151,203,135,138,197,
-226, 80,179,217, 76,105, 52,154, 60,181, 90,125,212,108, 54,127,102,173,247,220,197, 72, 63, 63,191,215, 90,182,108,217, 44, 43,
- 43, 43, 55, 47, 47,239, 7, 0,219, 1,188, 24, 26, 26, 58, 33, 50, 50, 50,236,214,173, 91,119, 75, 75, 75,191, 1,176,247, 15,
- 12, 39, 7, 14,255, 36, 80,117, 89, 35, 28, 97, 1, 33,100, 66, 53, 6,234, 81,142, 1, 3, 6,140, 56,114,228,136,140, 97, 24,
-176,155, 84, 42, 53, 3,120,197,137,200,242, 79, 73, 73,137,136,139,139, 27,157,151,151,215, 69,169, 84,118, 3, 0,153, 76,118,
- 33, 40, 40,232,151,149, 43, 87,110, 33,132,228, 80, 20,165,116, 51,162,124,129, 64,240,170,175,175,239, 80,179,217,220,137, 16,
- 2,129, 64,112,185,172,172,236,176,201,100,250, 6, 64,125,196,155,136,207,231, 79, 23,139,197, 49,102,179,185, 29, 0,240,249,
-252,107,122,189,254,176,217,108,254, 18,128,161, 30,156, 18,145, 72, 52,221,203,203,107,144,193, 96,104, 7, 0, 34,145,232, 90,
-101,101,229, 81,131,193,240,165, 85,112,254,209,224, 3,136, 37,132, 8, 0,128,199,227,141,236,214,173, 91, 4, 69, 81, 12, 69,
- 81,132, 16, 66, 93,184,112,161,163,197, 98,161,173,229, 35, 22,192, 47, 0,204,127,197, 55, 36, 32, 32, 96, 9,195, 48,161,117,
-102,154, 68,210,229,242,229,203, 45,183,109,219,102,249,250,235,175,203,167, 76,153,226, 17, 23, 23,199, 95,179,102,205,151,249,
-249,249,111,215,188,223,223,223,255,115,154,166, 3, 92,249,127,134, 97,138, 75, 74, 74,222,251,163,226, 63,121,178,174,154,185,
- 59, 41, 73, 18, 5, 32,167,158,229,251,233,113,234, 38, 19, 0, 72,146, 36, 69, 77,214, 77,206, 96,127, 63, 46,175, 29,226,191,
- 58,166,236, 67, 8, 48,125,144, 39,253,184, 66, 43, 44, 44, 44,105,242,228,201,227,218,181,107,199, 39,132,192,100, 50, 65,175,
-215,183, 60,119,238, 92,191,157, 59,119,118, 81, 42,149, 47,186, 73,249,198,220,185,115, 23,127,252,241,199, 1, 2,129,128, 50,
-153, 76, 81,219,182,109,235, 52,117,234,212,119,214,173, 91,215,240,165,151, 94,242,100,207, 47, 88,176,160,107, 98, 98, 98, 19,
- 0,159,253, 1,225,228,192,225,159,134,190,168,238,163,245, 17,128,133,117, 9, 45,185,181,241, 44,180, 90,178, 96,183,183,225,
-196,137, 19,251,248,124, 62,107,209,234,166, 86,171,131,107, 88,193, 28,137,172,200,137, 19, 39,246,216,177, 99,199,146,151, 94,
-122,169, 64, 38,147, 53, 31, 51,102,140,146,162, 40,222,182,109,219, 58, 54,109,218, 84, 58,124,248,240,137, 3, 6, 12,152, 69,
- 8, 57, 77, 81,148,194,197, 72,182,241,243,243,219,181,108,217,178,136,152,152, 24, 97, 64, 64, 0, 8, 33,200,203,203, 11, 59,
-112,224,192,144,143, 62,250,104, 86,105,105,233, 40, 0,105,110, 36, 92, 87,169, 84,186,227,163,143, 62,106, 48,100,200, 16,126,
- 72, 72, 8,116, 58, 29,210,211,211, 7, 30, 62,124,184,207,186,117,235,222,214,106,181, 47, 88, 5,134,171,232,230,237,237,189,
-243,187,185,115,131,187,191,250, 42,223,207,207, 15,132, 16, 40, 20,138,129,103, 54,108,232, 55,109,217,178,183, 43, 42, 42,254,
-229, 40,189,255, 72,136, 68, 34,122,227,198,141, 29, 68, 34, 17, 0,192, 96, 48, 32, 58, 58,154,250,187,188, 33, 20, 69,133,231,
-229,229,121, 11,133, 66,135,215, 45, 22, 11,250,244,233,211, 88, 40, 20,226,179,207, 62, 51, 21, 23, 23,119, 92,189,122,245,229,
-205,155, 55, 7,124,249,229,151, 47, 0,120, 68,104,209, 52, 29,144,147,147,227,144,211, 98,177,192,104, 52,194,108, 54,195, 96,
- 48,160,117,235,214,127,104,252,147,146, 36,225, 0,222,155, 60, 89,247,174,245,212,103, 0,102, 1,184,143,122,126,179,235, 41,
-112,218,151,183,207,237,126, 63,118, 88,237, 16, 1, 0, 7,175,234, 0,192,239,113,211, 85, 46,151,183, 26, 63,126, 60, 95,161,
- 80, 64, 32, 16,192,104, 52,162,160,160, 0,209,209,209,188, 77,155, 54,181,112,151, 47, 42, 42,106, 74, 98, 98, 98,224,193,131,
- 7,141, 27, 55,110, 52, 12, 26, 52, 72, 48,101,202, 20,175, 62,125,250,180, 14, 15, 15,167,191,253,246, 91,253,209,163, 71, 77,
- 19, 39, 78, 20, 37, 36, 36, 4, 30, 56,112, 96,120, 90, 90,218,103,191,119, 56, 57,112,248, 7,226, 36,126, 91,226,129,221,215,
- 41,180, 96, 39,174, 70, 2,128, 64, 32,232, 24, 28, 28,156,100, 54,155, 67,172, 86,157,130,194,194,194,207, 76, 38,211, 21,235,
-189,123, 25,134, 25,225,204,146, 53,113,226,196, 30,135, 14, 29, 90,126,238,220,185,138,146,146,146,144,125,251,246,233,102,205,
-154,149, 5, 0,247,239,223,111, 50,124,248,240,176, 25, 51,102,228, 12, 30, 60,120,101,255,254,253,223, 34,132, 28,165, 40, 74,
-237, 76,100, 69, 71, 71,167, 36, 39, 39,123,250,248,248, 84,187, 16, 25, 25,137,183,222,122, 75, 56, 98,196,136,166,207, 61,247,
-220,217,140,140,140,222, 0,174,187, 34,136,154, 53,107,118,236,196,137, 19, 30,190,190,190, 40, 47, 47, 71, 65, 65, 1, 52, 26,
- 13,188,188,188,240,210, 75, 47, 9,251,246,234,217,112,198,204,183,143,229,228,230, 14,116, 81,108,117,235,217,166,205,177,205,
- 9, 9, 30,166,135, 15, 33,149, 74,161, 82,169, 0, 0,158,158,158,232,210,184, 49,255,210,134, 13, 97, 19,230,204, 57,246,203,
-237,219, 3,255, 32,177, 37,182,238,245, 0,246,243,120,188,145, 34,145,136, 30, 57,114, 36,142, 29, 59, 70,233,116, 58,190,213,
-186, 99, 30, 57,114, 36,164, 82, 41, 12, 6,135,200,170, 5, 0, 0, 32, 0, 73, 68, 65, 84, 3,131,170,161, 67,243, 95,249, 45,
- 17,137, 68,200,200,200,168,118, 78,169, 84, 66,161, 80,160,164,164, 4,122,189, 30,229,229,229, 96, 24,134,146, 74,165, 10,134,
- 97, 64,211,116, 77, 1, 80, 13, 66,161, 16,183,111,223,174,118,206,108, 54, 67,173, 86, 67,175,215,195,104, 52, 66,169, 84, 74,
- 61, 61, 61,155, 5, 4, 4,228, 0,216, 91, 90, 90,250, 89, 97, 97,225,131,223, 57,250,197,172, 32, 74, 74,146,220, 3, 32,250,
- 51,114,218, 89,178,194,172,199,191, 62,161,176,178,120,184,255,138,174,145,213, 58,150,249, 4,248, 24, 0, 56,125,250, 52, 10,
- 11, 11, 81, 92, 92, 12,133, 66,129,240,240,112, 16, 66,220, 30,142,203,200,200,248,170,109,219,182,212,141, 27, 55, 14, 3, 88,
-179,109,219,182, 87, 74, 75, 75,227,103,207,158,237,247,233,167,159,150,206,153, 51, 39, 17,192,247,219,182,109,123,179, 85,171,
- 86, 67,111,222,188,185,238,143, 8, 39, 7, 14, 79, 26,132,144,174, 0, 2,217,186,197, 90,239,250,219, 29, 95,165, 40,202, 96,
-119,159,193, 90, 55,212,220,179, 96,143, 21, 20, 69,253, 98,247,156,130,162,168, 95,234, 27,204, 26,251,170, 78, 55, 0,236,223,
-191,159,176,155,163, 39,131,130,130,102, 14, 24, 48, 96,121,106,106,106,235,252,252,124,223,252,252,124,223,212,212,212,214, 3,
- 6, 12, 88, 30, 20, 20, 52,211, 46, 33,106, 62,122,204,238,154, 48, 37, 37, 37, 98,215,174, 93,137,199,142, 29,171,232,216,177,
-163,225,196,137, 19,230,193,131, 7, 23, 89, 27,104,243,224,193,131,139,126,254,249,103, 75,247,238,221,165,135, 14, 29,202, 62,
-123,246,236,231, 59,118,236, 8, 38,132,240, 28,113, 90, 33,240,241,241,217,115,234,212,169, 71, 68,150, 61, 26, 54,108,136,253,
-251,247,123,249,248,248,236, 5, 32,172, 45,156, 86, 72, 36, 18,201,206,159,127,254,217,195,211,211, 19, 69, 69, 69, 16, 8, 4,
- 8, 10, 10, 66, 69, 69, 5, 10,242,243,241,224,206, 29,208, 6, 3,190,248,228, 99, 79,169, 84,186,195, 65,101,255, 8,167,183,
-183,247,206,205, 75,150,120,148, 28, 59,134, 95, 23, 47,134,209,104,180, 13,185, 26,141, 70,156,141,139,131,226,248,113,124,187,
- 96,129,135,183,183,247, 78, 0, 18, 39,156, 79, 2,246,156,113, 0, 74,173, 91, 28,128,115,209,209,209,169,233,233,233,232,221,
-187, 55,182,111,223,222,126,246,236,217,113,179,103,207,142,219,190,125,123,251,222,189,123, 35, 61, 61, 29,209,209,209,169,168,
-238,159,245,180,195,249,212, 56, 45, 22, 75,181,141, 97,126,107, 99, 66, 67, 67,139,118,237,218,133,151, 94,122,137, 22,137, 68,
-249, 99,199,142, 21,159, 57,115,134, 88, 69,166,203,225,212,233,116,208,106,181, 80,171,213,184,127,255,190,116,217,178,101,189,
- 22, 46, 92, 24,117,236,216,177,176,249,243,231, 79, 11, 12, 12,188, 28, 28, 28, 28,241, 59,199,221, 88,227,247, 23, 0,114,221,
-180, 16, 61,109, 78, 98,125, 30,147,117,147, 59,216, 85,176,238,242,214,149,158, 5,214,176,170, 1, 60,120,156,178, 52, 96,192,
-128,182, 81, 81, 81,193,219,110,248,162, 76,216, 18,140,208, 7,140,208, 7, 22,255,174,200, 16, 61,143, 70,141, 26, 5,123,120,
-120,244,112, 51,156, 27,111,220,184,241,140,181,167, 92, 2, 96,249,156, 57,115, 62,162, 40,234,244,156, 57,115, 62, 6,176,220,
-122,126,241,205,155, 55,187, 3,216,252, 7,133,243, 47,241,190,115,156,127, 46, 78, 39, 90, 36,144,162,168,253, 20, 69,237,159,
- 55,111, 94,127, 0,254, 53,142,159,181,191, 15,128,200,209,158,221,236,206, 7, 18, 66,134,217, 61, 23, 88,207,224, 83, 14,182,
-223,132, 22, 0,196,198,198, 82,177,177,177,236,133,139, 20, 69,237, 3,112, 81, 32, 16,116,236,208,161,195,200,159,126,250,201,
- 51, 48,240,183,255, 15, 12, 12,196,142, 29, 59, 60,219,180,105, 51, 82, 32, 16,116, 4,112,209,203,203,107, 95, 29, 86, 24,159,
-184,184,184,209,147, 38, 77,170,236,216,177, 35, 0,148,167,165,165,201,186,119,239,174, 54,155,205,148,217,108,166,186,119,239,
-174, 78, 75, 75,147,153, 76, 38,101,215,174, 93,229,207, 61,247, 92,214,123,239,189, 55,209,129,224,176,199,248,165, 75,151,134,
-251,250,250,214,165,132,161, 84, 42, 17, 28, 28,140,184,184,184, 16,129, 64,240, 90, 93,169,197,231,243,167, 47, 93,186, 52,200,
-199,199, 7,101,101,101, 8, 15, 15,135,193, 96,192,237,219,183,161, 83,171, 96, 82, 86,194, 84, 89, 14,197,189,187,240, 17,240,
- 49,113, 68,108, 48,159,207,159,238,196, 90, 50,253,155, 57,115,130, 13, 89, 89,184,191,125, 59, 44,230, 71,141, 63,102,163, 17,
-215,254,247, 63,232,114,114,144,248,250,235,193, 34,145,104,250,239,108,201,250,148, 16, 34, 37,132, 72, 41,138, 90,217,163, 71,
-143, 77, 82,169, 52, 46, 33, 33, 33,230,200,145, 35, 67,146,147,147,251,153,205,102,129,217,108, 22,156, 62,125,186,183, 78,167,
-227,139,197, 98,240,249,124,130,191, 41, 4, 2, 1,132, 66, 33,164, 82, 41,122,245,234,117,111,253,250,245,166,240,240,112,193,
-206,157, 59,125, 67, 67, 67,229,107,214,172, 41, 87, 42,149, 75, 93,229, 51, 26,141,208,235,245,208,106,181,208,233,116, 56,113,
-226, 68,227, 25, 51,102,240,117, 58,157,101,248,240,225,165, 38,147, 73, 63,103,206, 28, 47, 63, 63,191, 89,191,103, 60, 39, 79,
-214, 49, 86,203,211, 77,171,104,201,196, 99,250, 60, 61, 13, 78, 0, 6,171, 79, 22,139, 0, 43,183,225, 9, 37,133, 25,128,202,
- 42,180,244, 53,222,143,118,118, 22, 95,167, 40, 47, 47, 95,247,205, 55,223,132,211, 98, 31,156, 49, 12,197, 22,230, 35, 28,241,
- 94,131,162,136,247, 17, 20, 30,133,113,227,198, 5, 17, 66,214, 60,129, 48,175, 6,208, 7,192,202,250, 60,252, 59,132, 51, 66,
- 46,151,111,247,244,244, 60, 35,151,203,183,195, 58, 60,251, 56, 24, 20,133,129, 35, 90,209, 57,131,154,130,140,104, 69,231, 12,
-138,226,150, 26,248,187,160,134, 22,177,135,130, 16, 18, 75, 8,137, 77, 76, 76, 92, 98,215,190,179,199, 82, 23, 45, 99,177,132,
-144,216,106, 10,169, 74, 96, 61,182,209,205,193, 86,165, 41,236,149,164, 93,228,108,179, 11,131,131,131,147,146,146,146, 60,107,
- 50,230,231,231,163,178,178, 18, 31,126,248,161,231,164, 73,147,222,206,201,201,153,236, 36, 16,162,130,130,130, 78, 19, 38, 76,
-144, 24,141,198, 50,134, 97,232,202,202, 74,190,183,183,183,133,189,193,219,219,219, 82, 81, 81, 33, 80,171,213, 60,139,197,162,
-159, 52,105,146,232,245,215, 95,239, 2,128, 87, 27,105, 96, 96,224,160,161, 67,135,214, 58,116, 96, 50,153,160, 86,171,161, 86,
-171, 97, 52, 26,209,171, 87, 47,241,250,245,235, 7, 23, 21, 21,253,183, 86,197, 33, 22, 15, 26, 52,104,144,160,180,180, 20,222,
-222,222,120,240,224, 1, 50, 51, 51,161, 87,169, 96, 84, 85,194,168, 82,194,172,172, 4,169,172, 64,201,221, 91,232,222,170,165,
-240, 7,177, 56, 70,173, 86,127, 94, 27,167,151,151,215,160,238,175,188,194,151,203,229,232, 55,161,106,158,193,161, 86,173, 64,
- 44, 22, 48, 22, 11, 44,102, 51, 98,110,223,134,201,100, 2, 77,211,232, 90, 90,202,247,218,176, 97,144, 66,161, 88,254, 71, 20,
-118,177, 88,204,223,184,113,227,120,145, 72, 4, 66, 8,101, 48, 24,112,228,200,145,127,220, 75, 47, 18,137, 32,145, 72, 96, 52,
- 26, 17, 25, 25,169,157, 48, 97, 66,202, 39,159,124,210,136,166,105,185, 80, 40,252,169,164,164,100, 73,126,126,254,125, 87,249,
- 76, 38, 19, 12, 6, 3, 12, 6, 3,180, 90, 45,238,221,187, 23,210,184,113, 99, 42, 46, 46,206,162,209,104,154,172, 90,181, 42,
-227,200,145, 35,178,165, 75,151,142, 1,240,214,239, 29,223,201,147,117,173, 0,180, 74, 74,146, 8,173,150, 95,195,159,140,147,
-160,202,241, 29, 73,146,164,116, 0,138, 39, 40,178, 68, 0,188, 27,249,243,213, 2, 30, 84, 0, 60,173,162, 96, 12, 69, 81,221,
- 91,183,110,237,155,158,158, 94, 70, 8, 57, 15, 96, 11,128,252,186,200, 24,134,161, 24,134,193,212,110,229,136,235,193,131,201,
- 84,129,138,138, 10, 60,120,240, 0,105,105,105,184,112, 33,173,190,239,230,107, 30, 30, 30,131, 37, 18, 73,164,217,108,166, 85,
- 42,213, 3,141, 70,115,140, 97,152,117,168,135,143,218,211, 10, 39, 11,185, 92,190,108,254,252,249, 61,189,189,189,113,229,202,
-149, 38, 91,183,110, 93,166, 86,171, 31,203,185, 94, 34,160,191,253,124,197,154,176,176, 32, 31, 92, 77,254, 49,108,201,218,109,
-223, 2, 76, 56, 39, 83,254,250,168,161, 69,236,197,208, 47,132,144, 97, 20, 69,237,175, 41,148,220, 50, 59, 61,230,243, 78, 44,
- 90, 53, 63, 44, 93, 93,104,213,162, 32, 97, 54,155, 67,236, 45, 89,132, 16,228,231,231, 35, 55, 55, 23, 10,133, 2,190,190,190,
- 48, 26,141, 33,174,212, 15, 74,165,178,155,191,191,191, 70, 32, 16,232,181, 90, 45,100, 50, 25, 35, 16, 8,136,245,127, 40,235,
-172, 69,139, 94,175,167,248,124,190,201,211,211,211, 67,175,215,183, 68, 29,190,100,132,144,110,254,254,254, 14,175,233,245,122,
-168, 84, 42,168,213,106,168, 84, 42,232,245,122, 4, 7, 7,195,108, 54,119,170,179, 75,107, 54,183, 11, 12, 12, 68, 94, 94, 30,
-164, 82, 41,114,114,114, 96, 80, 41, 97, 84, 42, 97, 86, 87,194, 82, 81, 1,166,178, 18,140,186, 18, 38,131, 6, 97,205, 91,129,
-157,145, 88,107, 55,220, 96,104,231,239,239, 15,181,250, 55,119, 51, 98, 21, 88,102,179, 25,102,171,115, 52, 59,156, 24, 16, 16,
- 0,118, 70,226,239, 4, 61,128,217, 52, 77,175, 20,139,197,252,105,211,166, 33, 63, 63,191, 90,153,152, 54,109,154,205, 39,171,
- 79,159, 62,167, 37, 18,137, 89,161, 80, 64,175,215, 11,254,174, 47, 61, 69, 81,160, 40,170, 42,143,204,102, 4, 4, 4,168,139,
-139,139, 47,148,151,151,143,175, 15,159,201,100, 98,103,116, 65,171,213,130, 16,130, 43, 87,174, 64, 34,145, 8, 44, 22,203, 13,
-179,217, 44, 19, 8, 4,160,173,206, 95,191, 23,172, 51, 2, 63, 3, 16,110,181, 16,189,134, 42,135,243, 92, 7, 21,137, 75, 73,
-231, 34,167,251,194, 77, 55,153,181, 52,229,162,126,195,145,142,208,175,165,143,232,243,132,238, 65, 62, 29,134,203,213, 50, 17,
- 79,205, 60,232, 16,249,221,167,105, 91, 39, 77,124,205,115,209,162, 69, 17, 1, 1, 1,146,140,140, 12,221,199, 31,127,220,120,
-227,198,141, 20,170,134,233,106,197,195,135, 15,119,207,159, 63,223,111,232,208,161, 77,196, 98, 49, 85, 81, 81, 1,133, 66,129,
-194,194, 66,100,102,102,146,171, 87,175,222,211,235,245,219,221, 9,100,131, 6, 13,214,143, 31, 63,126, 82,231,206,157, 5,172,
-133, 84,173, 86,119, 60,117,234,212,136, 67,135, 14,245, 86,171,213,110,151,203,236,236,236,237, 31,124,240,129,252,249,231,159,
-111, 41, 22,139,233, 39, 17, 78,123,208, 52, 29,236,225,225,129, 99,199,142,193,199,199, 7, 52, 77, 7, 63,110,121,213, 25,153,
-176,208, 16,127,232,206,126,142,150,129, 17,208, 25,153, 48, 78,162,252,125, 44, 90,181,180,245, 93, 89,139,148, 19,177,164,141,
-143,143,159, 79, 81,212,254,248,248,248,249,142, 44, 90,214,159, 22,251,251,236,238,215, 63,105,177,229,214, 66,147, 12,195, 32,
- 55, 55, 23,121,121,121,200,205,205, 69, 73, 73, 9,104,154, 6, 33,196,149,217,103,132,162, 40,230,232,209,163,190, 41, 41, 41,
-234,174, 93,187,150,179,254, 47,102,179,153, 50,153, 76,148,213, 47,134,122,240,224,129,240,204,153, 51, 62, 55,111,222, 12,182,
-246, 86, 25, 39,166,192, 71,206,177, 2,203,126,211,233,116,144, 72, 36,174,169, 14,107, 67,120, 37, 53,181, 74,100,169,148,214,
- 33,195, 10, 88, 42, 43, 64,212, 74,136, 44, 38,136, 64, 64,233, 52, 46,167,159, 61, 88,145,101,180, 10, 45,131,193, 0,147,201,
- 4,134, 97, 96, 54,255, 33,126,229, 95,181,111,223,190,211,238,221,187,167,228,230, 62,218, 22,142, 26, 53, 10,111,189,245, 22,
-102,204,152,113,115,216,176, 97, 87,127,252,241, 71, 76,159, 62, 29, 12,195,116, 0, 80, 1,224,208,223,237,165,215,235,245, 54,
- 11,148, 78,167,131,209,104, 4,220,248,172, 66,205,178,201,230,173,217,108,102,185,169,221,187,119,225,244,233,211,116, 90,218,
-141,240,105,211,226, 88,135,251,223, 59,170, 57,168,154,185, 39,178, 86, 20, 6, 84,249, 63,213,182,164, 66, 83,212, 61,100, 71,
-234,226,124, 28,180, 95,219,254,165,119,223,125,119, 16,170,102, 56,223,127, 76,139,214,243, 34,154,250,122,102, 59, 63,201,172,
-246,254,106, 17,159, 82,221,254,122,190, 42,179,145,151, 58,184,161,204, 16,222,216, 39,116,201,146, 79, 26,220,188,121, 75,255,
-225,135, 31,166,143, 29, 59, 54,104,214,172, 89,173,119,238,220,217, 91,167,211,125, 3,160,188, 54,163,203,136, 17, 35,206, 7,
- 5, 5, 53, 94,187,118,109, 81,118,118,182,175,201,100,146, 27,141, 70, 70,173, 86,103,106,181,218, 99, 70,163,241, 24,128, 84,
-119, 2,235,233,233,217,254,149, 87, 94, 17,148,151,151,131,207,231,195,104, 52,162,168,168, 8, 61,123,246,228,237,219,183,175,
- 77,125, 18,160,172,172,236,243,111,190,249,230,228,230,205,155, 7,123,121,121,117, 22,139,197, 33, 0, 44, 74,165,178, 80,173,
- 86,255, 90,159,112, 86,171,231, 44,150,194,212,212,212,166, 94, 94, 94,120,248,240, 33, 44, 22, 75,225,227,150, 1,137,144,206,
-190,150,188,175, 97,171,128,198, 56,147,114, 30, 18, 33,157,205, 45,245,245,183, 7,235, 67, 5,123, 1,229, 64, 32,165, 36, 36,
- 36, 72, 19, 19, 19,145,144,144,112,195,145, 69,139, 21, 92, 9, 9, 9, 55,216,251,236,238, 79,126,140, 48,214,110,209,170, 77,
- 65, 2, 85,179, 11, 21, 10,133,175,143,143,143, 77, 96,229,229,229, 33, 47, 47, 15, 34,145, 8, 15, 30, 60,128, 72, 36,202,119,
-165, 19, 34,149, 74, 47,117,236,216,177,197,253,251,247,133, 31,127,252,113,195,212,212, 84,175,158, 61,123,182,149, 74,165, 22,
- 66, 8,116, 58, 29,157,158,158,238,177,124,249,242,176,110,221,186, 25,186,117,235,118,121,219,182,109, 90,212,177,254, 21, 69,
- 81, 23,243,243,243,155, 68, 70, 70,178,162,173,154,184,178, 23, 92, 64,213,144, 39,159,207,191, 92, 87, 64,249,124,254,181,219,
-183,111, 15,148, 73,196, 48, 40, 43, 97, 84, 85,194,172, 84,194,162,172,128,165,162, 2, 80, 87, 66,100, 54, 67, 96, 49, 65, 42,
-145, 32, 55, 39, 7,124, 62,255, 90, 93,156, 34,145,232, 90, 97, 97,225, 64, 31, 31, 31, 91, 35,106, 50,155,171, 54,139, 5, 6,
-179,217,102,209, 18, 8, 4,200,206,206,134, 72, 36,186,246,123,151,100,154,166, 45,236, 18, 14,181,196, 3,193,193,193, 76,247,
-238,221, 49,125,250,116, 88, 44, 22,107, 54, 80,253, 0,156, 65,149,127,203, 95, 18,142,196, 45,235,180,174,213,106,161, 82,169,
- 80, 86, 86,198,151, 74,165, 45,194,194,194,206, 27, 12,134,237,102,179,249,219,204,204,204,202,218, 56,173,194,204, 38,186, 24,
-134, 1, 33, 4, 22,139, 5, 38,147, 9, 66,161,144, 57,117, 42, 25,203,191, 88,134,164,111, 55,146, 17, 35, 70, 80,251,246,237,
- 3,195, 48, 57,191,115,244, 13, 86,209, 82, 87,165, 81,115, 73,133,247, 81,247,146, 10,181,113,218,247,254,236,207, 81, 14,238,
-121, 4,239,190,251,238, 97, 84, 13, 25, 22, 91,197,220,227,112,126, 86,190,229, 19, 9,204, 22,181,254,212,102,213,166, 59,149,
-234, 69,155, 86, 92, 50,136,120,149, 93,250, 6,183,107,210,184, 5,207,199,199,151,254,239,186,149, 37, 63,108,220,145,241,240,
-225,195,202, 47,191,252,178, 71,139, 22, 45,188,127,253,245,215,176,218,132,150, 76, 38,107,246,218,107,175,189, 82, 86, 86, 38,
- 76, 74, 74,218,150,159,159,127, 9, 85, 75,203,216,207,160, 30, 6,224,123,171, 16, 13,182,214,115,103, 0,124, 92, 87,127,141,
-162, 40,252,252,243,207,143,204, 14,100, 30, 79,157,251, 68, 69, 69,189,116,255,254,253,211,133,133,133,255,170,121, 81, 40, 20,
- 46,106,222,188,121,204,141, 27, 55, 62, 2,112,208, 29, 98,141, 70, 51,103,199,142, 29,159,242,120,188, 80,139,197,146,247,255,
-236, 93,119, 88, 20,215, 23, 61, 51,219,151,222, 97, 5, 65, 65, 84, 20, 53, 63, 75, 52,177,160,177,196, 88, 18, 19,193, 30,141,
- 49, 26,147, 88, 99,139, 93,212, 24, 53,177, 17,187,198, 32,177, 18, 75, 68, 77,212,216, 21, 27, 6, 27, 54,164, 73, 7, 5, 22,
-182,239,206,204,239, 15,118,201,178,236,194, 46, 26,141,102,206,247,237,183,187, 51,111,206,123,111,234,153,251,238,189, 79,161,
- 80, 76,123,102,139,150,150, 30,181,100,253,238,205, 10, 53,229, 47, 22,112, 50,148, 90,250, 51, 86,135,188,190,214, 44, 61, 10,
-140,172, 81, 5, 0, 8,147,255,137,250,135,145,154, 97, 24, 67,217, 2, 35, 43,150,218,196, 10,102,110, 93,193, 51, 36, 75,103,
- 44,221,227, 44, 89,180,190, 1,240, 38,128, 43,121,121,121,171, 63,254,248,227,239,119,236,216,225, 40,149, 74,145,151,151,135,
-252,252,124,112,185, 92, 56, 57, 57, 97,221,186,117,138,188,188,188,213,198,219,160,106, 6,121, 0, 80,122,120,120, 92,139,137,
-137,241,217,180,105, 19,119,248,240,225,233,189,123,247,110,188,110,221,186, 20, 62,159,207, 80, 20, 69,168, 84, 42, 98,204,152,
- 49, 65, 43, 87,174, 76,227,112, 56,118, 3, 6, 12, 32,236,237,237,175,160,154,180, 1, 5, 5, 5,199, 15, 28, 56,240,225,228,
-201,147,133,106,181,218,172, 37,203,176,204,197,197, 5, 23, 46, 92, 80, 23, 21, 21, 29,171,193,138,113,252,247, 35,135, 59, 13,
- 29, 56,144,175, 45,149, 66, 91, 42,133, 78, 42, 5, 85, 90, 12,162, 76, 10, 30,165,131,152, 79,195,199, 79, 4,157,194, 1,135,
-175, 38,106, 85, 42, 85,181,137, 13,165, 82,233,241,243,209,209,157,223, 12, 8,224, 94, 24, 63, 30, 26,173, 22,239,221,191, 95,
- 33,174, 52, 26, 13, 14, 54,111, 14,138, 32,240,198,232,209,120,168,211,233,164, 82,233,241,127,227,197,112,227,198,141,252, 33,
- 67,134, 36,208, 52,221, 18, 47,104,210,204, 23, 1,173, 86, 91,197, 26, 69, 81, 84,185,213,177,220,114, 32, 56,124,248,112,167,
-164,164, 36,254,173, 91,183,112,238,220,185, 55,118,236,216,241,141,191,191,127,243,140,140,140,220,154,196,155,185,164,191,208,
-251, 31,238,217,185, 23,159,127,254, 57,145,155,155,139, 93,187,118,161,166,228,169,255, 4,134, 15, 87,210,209,209,162,186, 48,
-241,123, 50,147, 82,225, 47, 88,153, 82,193, 18,167,114,120,185,149, 76, 20, 93,158,108, 84, 57,188,124, 56, 80, 20, 93,163,165,
- 12,195,149,195,165,122,135,248,156,231,192, 41,131,142, 18,171,207,236, 44,235,125, 36,163, 52, 62, 71,177, 16,192, 31, 80, 82,
-204,195,235,204,141, 86,173, 92, 61, 0, 64,165,164,124,130,131,131,195,184, 92,174, 0, 0, 28, 28, 28, 90,185,187,187,175,123,
-242,228, 73, 7,115,199,180, 79,159, 62,237,188,188,188,254,119,244,232,209,196,156,156,156,219, 0, 46,155, 22, 10, 10, 10,154,
-125,247,238,221, 54, 60, 30,143,168,225, 28, 1, 0,132,133,133, 53, 18, 10,133,238, 71, 30, 56, 67,202,111, 0,134, 83, 2,112,
- 69,160, 92, 90, 32,157,223, 4,126,126,151,220,139,138,138,222, 40, 41, 41, 73,180,241,208,119,249,240,195, 15,127,138,142,142,
-246, 11, 11, 11, 99,174, 95,191, 78,154,142, 34, 4, 5, 5,245,136,143,143,111,249,217,103,159,109,216,189,123,247, 23,168, 28,
-105, 91, 19,210,245,249, 6,159, 27,142, 39,227, 4, 64, 5,232,109,102,172, 66,249, 15,192,150,148, 11,207,144,158,225,153,154,
-104,209,128, 97, 97,249,155,250,156, 88,111,106,181,218,191,110,220,184,113,112,192,128, 1,101, 79,158, 60,129,187,187, 59,234,
-213,171, 7,130, 32,176,110,221, 58, 69,106,106,234,175,250, 92, 90,111,102,103,103,191,175, 23, 91,230, 80,186,102,205,154,221,
-219,183,111,119, 73, 72, 72,224,232,116, 58,167,198,141, 27,203, 47, 94,188,232,192,227,241, 24, 62,159, 79, 39, 36, 36,216, 5,
- 5, 5, 41, 9,130, 16,254,249,231,159, 79, 46, 93,186,228, 63,117,234,212,173,168, 28, 38,110,138,157,139, 22, 45,202, 74, 73,
- 73,129, 74,165,130, 84, 42, 69, 73, 73, 73,197,167,184,184, 24, 37, 37, 37,224,241,120,200,205,205,197,190,125,251,114,244, 89,
-226,171,179,108,172,253,113,221,250,130,156,140,116, 56,217,137,161,147, 22,131, 42,121, 2,148,150, 64,160,213,192,158, 71,161,
-110, 3, 49, 68,118, 78,200,147,150, 33,250,226,213, 92,125,150,120,203,230, 2,181,122,237,184,149, 43,243,116,124, 62, 2, 34,
- 34,160,209, 15, 21, 26, 11, 45,138, 32,224,223,181, 43, 72,103,103,124,251,235,175,121,250, 44,241, 47, 20, 52, 77,115,212,106,
-117,117,253, 0, 77,211,153, 73, 73, 73,187, 1,156, 38, 8,130, 33, 8,130, 65,121,178,182,178, 87,249, 66,214,106,181,152, 59,
-119, 46,248,124, 62,230,206,157,139,121,243,230,225,251,239,191,199,250,245,235,241,203, 47,191,224,240,225,195,245,207,159, 63,
-207, 63,123,246, 44,179,100,201,146,194,160,160, 32,206,232,209,163, 93,196, 98,241,164,234, 56,167, 77,155, 6, 71, 71, 71, 76,
-155, 54, 13,203,150, 45,195,150, 45, 91,112,240,224, 65, 92,184,112, 1, 28, 14,135,206,204,124, 12,165, 82,201,172, 89,179, 38,
-235,224,193,131,138,213,171, 87,131,203,229, 18, 47,233, 38, 49, 73, 47,168,140, 45, 65,166, 41, 21,158, 0, 88,133,154,125,163,
- 44,113, 66, 20, 29, 93, 87, 47,142,146,141, 4,209, 33, 0,147, 81,125,120,181,129,227, 11, 0, 62,207,129,115,150,120,200,156,
- 36,151,205,247, 30,197,231, 40,102, 1,248,221,208, 39, 39, 39, 39,241,254,253, 7,184, 0,240,107,236, 62,222,253,251,247,157,
- 15, 28, 56, 32,242,242,242,194, 47,191,252, 34, 18,139,197, 94, 22, 56,169,131, 7, 15,170, 4, 2,129,251,168, 81,163,122,182,
-105,211,102,162,254, 69,180, 43,128,166, 40,143, 94,236,254,232,209,163, 59, 30, 30, 30, 15,142, 29, 59, 38,179,230, 0,149,150,
-150,110,253,249,231,159,235, 61,165,220,112, 68,246, 33,162,233,229, 56,236,242, 19,210, 3,230,193,174, 78,107, 12, 30, 60,184,
- 14, 69, 81,155,109, 60,238,131,251,245,235,247,115,116,116,180,223,168, 81,163,114,175, 95,191,158, 7, 32, 26, 64,140,241,231,
-238,221,187,133, 31,127,252,113,206,230,205,155, 37, 3, 6, 12, 88, 15,160, 63,251,232,103,193,162,242,187, 16,106,138, 58, 52,
-243,192,173,248,157,159,159,191,166,168,168,232,194,195,135, 15, 39,168,213,106, 9, 65, 16, 12,159,207,207,205,203,203, 91,109,
-148,176,212,156, 95, 73, 55,232,115,109, 16, 4,161,101, 24, 38,179, 75,151, 46,147,186,118,237, 26, 21, 23, 23,167,236,220,185,
- 51, 98, 99, 99, 61,186,116,233, 34,167,105,154, 57,114,228,136,199,187,239,190, 43, 63,125,250,180,108,204,152, 49,141, 27, 54,
-108, 56,122,218,180,105, 5, 4, 65,208,230, 56, 13,207,178,226,226,226,126, 61,123,246,188,240,235,175,191, 58,185,184,184, 64,
-167,211, 65, 46,151, 67, 46,151,131, 97, 24, 56, 59, 59,163,160,160, 0, 11, 23, 46,148,150,148,148,124, 96, 70,184,153,114, 42,
-149, 74,101,255, 47, 38, 78, 62,190,122,193, 92, 71,255,250,245,241,228,158, 18, 58,165, 28, 60,134, 68,221, 70,206,224, 11,196,
-120,120,191, 20, 83,118,239, 47, 85, 40,149,225,102,222,150,171,112,150,148,148,244, 31, 62,111,222,137, 13, 83,167, 58,252,207,
-219, 27, 28, 14, 7, 42,149, 10, 20, 69,129,199,227, 33,116,248,112,240, 61, 61, 49,123,247,110,153, 84, 42,237,143,170, 83,241,
-152,114, 62, 15, 24,115,126,113,227,198,141,143, 67, 66, 66, 48,118,236, 88,244,235,215,175, 82,193, 3, 7, 14, 96,253,250,245,
- 80,169, 84, 31, 3,184, 14, 96, 29,202,135, 58, 96, 34,178,254,233,118, 62,119, 78,138,162,138,238,223,191,239,180,124,249,114,
- 66,163,209, 96,193,130, 5, 48, 8, 78,195,121,253,229,151, 95,214,113,116,116,196,252,249,243,213,133,133,133,239, 44, 91,182,
-236,100, 76, 76,140,199,214,173, 91, 7, 3,152,102,202, 73,211,116,254,205,155, 55, 29, 55,108,216, 64,234,116, 58,172, 88,177,
-162,202,240,228,200,145, 35,161,209,104,193,225,112,213, 74,165,170,169, 88, 44, 78,118,119,119, 23, 51,149,157,187, 94,228,254,
-244, 69,121, 10, 3, 99,199,119,181,177,127, 22, 44,167, 84,176,133,179, 64, 20, 29,221, 89, 57,124,248,105,189, 32, 74,210,151,
-137, 53,152,244,109,224, 52, 8,194,218,112, 30,215,127,106,132, 82,169, 68, 65, 65, 1, 10, 11, 11,225,226,226, 2, 14,135, 67,
- 88,106,167, 74,165,186, 53,101,202,148, 27,155, 55,111,238, 22, 31, 31,223,247,236,217,179, 93, 78,156, 56,161, 76, 79, 79,215,
-105,181, 90, 70, 34,145,112, 59,116,232, 32,234,213,171,151,189, 80, 40, 36,103,205,154, 85,184,120,241, 98, 15, 84,246, 97, 51,
-237, 59,135, 32, 8,124,221,169, 20,211,186,112,160, 86,107, 80, 92, 92,140,172,172, 76,220,185,115, 7,241,241,247,192, 48, 12,
-105,195,113,119, 7, 48,107,215,174, 93,190, 2,129,128,216,189,123,119,157,221,187,119,215,104, 73,221,177, 99, 71,157, 61,123,
-246, 68,234, 71, 47, 50, 95,197,235,157,229,252,215,114,190,202, 48,205, 12,143, 26,133,150,254, 62,255, 38,244,147,146,106,181,
-218, 43,102, 82, 56,124, 3, 96,174,145, 21,172, 38,115,158,148, 97,152,115,221,186,117,251,178,107,215,174, 43,123,244,232,145,
-147,147,147, 19,184, 98,197, 10, 63,157, 78,167,185,115,231, 14,153,156,156,156,126,237,218,181, 6, 13, 27, 54, 28,125,247,238,
-221, 51, 4, 65,104,172,232,224,157,228,228,228,246, 93,186,116,217, 55,122,244,104,255,118,237,218, 9, 92, 92, 92,192,229,114,
-145,146,146,130,196,196, 68,245,158, 61,123, 50,139,139,139,109,153,130,231, 74, 90, 86, 86,247, 1, 95, 77,248,117,116,191,190,
- 30,109, 27, 55, 18, 72, 36, 18, 64,161,192,189,140, 92, 92,186,151,168,217,114,238, 82,129, 74,165,234, 15,235,167,224,185,114,
-237,225,195,110,239, 76,157,250,107,228,208,161,222,200,201,225, 74, 36, 18, 8, 4, 2,164,166,166, 34,153,166,117, 75, 55,110,
-204,211,139,172, 23,157, 21, 94, 8, 96, 57, 77,211, 92, 0, 16,139,197, 24, 55,110, 28,140,167,220, 89,191,126, 61, 20, 10, 5,
- 0,112, 9,130, 88, 14,224,167, 87,221,138,101,192,211,167, 79,103,191,247,222,123, 75,184, 92,174,197,172,183,174,174,174, 40,
- 45, 45,133, 78,167,163,178,178,178,238,185,186,186,130,199,227,129, 97, 24,179,215,209,147, 39, 79,102,247,239,223,127, 17, 73,
-146,150, 44, 31,112,114,114, 74, 63,121,242,100,240,103,159,125, 70,110,219,182, 45,101,212,168, 81,194,147, 39, 79, 82, 12,195,
-236,123,209,251,160, 99,199,157,192,134,225,225, 0,194,129, 42, 14,239, 89,250,101, 54,165, 84,232,216,113, 39, 54,224,111, 78,
-227, 97, 60,131, 32,210, 91,161,154,136,162,163, 87,162,220,207,162, 90,238,142, 59, 59, 98,195,112, 60, 87, 78,107, 96,172,125,
-101, 50, 25, 40,138,170,206,154,247, 87,108,108,236,202,107,215,174,121,126,249,229,151,129, 67,135, 14,117,234,210,165,139,131,
-113, 1,133, 66, 65, 31, 58,116, 72,182,126,253,250,146,115,231,206,165,141, 28, 57,178, 93,117,237,204,200,200, 56,252,237,183,
-223, 58,247,234,213,171, 33,128, 10,255,172,130,130, 2,164,167,167,227,214,173, 91,233, 26,141,230, 55, 27,186,244, 4, 64,228,
-160, 65,131,150,111,223,190,189,206,168, 81,163,114,247,236,217,115, 11,229, 9,139, 77,225,210,175, 95,191,230,219,183,111,151,
-140, 26, 53, 42, 23,229,126,100,153, 96,193,130,133, 1,157, 81,213, 79,171,218,145,137,159,213,106, 53,163, 84, 42, 25,185, 92,
-206,148,149,149, 49, 48, 63, 11,252,193,236,236,108, 38, 51, 51,147,201,200,200, 96,210,210,210, 24, 0,191,152, 40, 94,115, 55,
- 44,251, 29, 59,118, 52,240,245,245, 93, 96,103,103,247, 7,135,195,145,114, 56, 28,169, 80, 40,252,221,221,221,125,222,210,165,
- 75,125, 25,134,225, 87,163,162, 45,129,203,227,241, 62,243,242,242, 58,232,230,230,150,233,234,234,154,233,229,229,117,144,199,
-227,125, 14,128, 87,131, 50,183, 4, 17,151,203,157, 98,111,111,127, 92, 40, 20,230, 11,133,194,124,123,123,251,227, 92, 46,119,
- 10,170, 79,164, 90, 45,167, 64, 32,152,226,233,233,121,220,201,201, 41,223,201,201, 41,223,211,211,243,184, 64, 32,120, 22,206,
-103,121, 43, 49, 8, 45, 57,163, 7, 65, 16,218, 55,222,120, 99, 67,203,150, 45,215,181,108,217,114, 93,139, 22, 45, 54,233,173,
-146,140,222,218, 34,135,229,228,141,255,100, 59, 95, 26,103,104,104,104,204,246,237,219,233,217,179,103, 75, 27, 54,108,248,116,
-246,236,217,210,237,219,183,211,161,161,161, 49,181,229,244,246,246, 14, 8, 13, 13,125,186,121,243,102,221,253,251,247,153,205,
-155, 55,235, 66, 67, 67,159,154,100,134,127, 17,125, 39, 0, 4,233,173, 63,191, 1,216,139,114,231,119, 95, 0,196,112,229,112,
- 70, 31,125,248, 7,128, 30, 22,142,189,181,156,126,202,225,195, 25,189, 79,213, 49, 0, 73, 70,255,195, 80,217,255,235, 69,112,
-154, 69,211,166, 77, 31, 50, 70, 80,171,213, 76, 65, 65, 1,115,255,254,125,230,220,185,115,140,159,159,223, 67, 43, 56,221, 1,
-140, 1,112,200,199,199,231,238, 91,111,189,149,209,190,125,251,140,128,128,128, 20, 30,143, 23,143,242, 12,239,161,250,207,114,
- 0, 13,107,224,124,203,197,197,229, 91, 63, 63,191,223,130,131,131, 47,212,171, 87, 47,222,205,205, 45, 78, 36, 18,125,135,191,
- 51, 99,219,122,206,119,249,240,195, 15,211,203,202,202,168, 86,173, 90,221, 53,183, 81, 72, 72,200,249,178,178, 50,106,224,192,
-129,153, 0,250,252, 23,174,119,150,243,165,112,254,167, 16,172, 23, 76, 7,141, 62,223,152, 41,247,141, 73,153,159,245,219,214,
-120, 32, 24,134,225, 48, 12, 99,207, 48,140, 51,195, 48,110, 12,195,184, 48, 12,227,192, 48,140,176, 6,243, 55,123, 98,255,115,
-156, 95,232, 5,148, 92,255,219, 20, 53,173,127,173,247,167,175,175,175,107,155, 54,109,190,218,191,127,255,148, 71,143, 30, 77,
-217,191,127,255,148, 54,109,218,124,229,235,235,235,250, 44,237,244,246,246, 14,104,210,164, 73, 84, 72, 72, 72,102,147, 38, 77,
-162, 76, 68,214,139,236,187, 64, 47, 98, 66,244,159, 64,253, 50, 2,229,185,176,214,234,133, 77,144,133, 55, 53, 91, 56, 13,124,
-191, 1,120, 87,255,249, 77,191,204,239, 37,112, 86, 65,253,250,245,143, 54,111,222,252, 97,139, 22, 45,146, 91,180,104,241,176,
-105,211,166, 15, 27, 55,110,252, 48, 40, 40,232, 97,221,186,117, 31,122,120,120, 28,173,197, 49,114, 3, 32, 65,213,105,192, 94,
-246, 57,223, 57, 52, 52,244,146, 72, 36, 50,155, 27,140,203,229, 70,182,104,209,226, 38,202, 35, 37,217,251, 39,203,201, 10,173,
-127, 17,216,147,240,213,227, 20,162,250,105, 70,106, 90,207,238,207, 87,155,211,236, 92, 93,122, 33, 19,168, 23, 56,130,231,192,
-105,204,103, 56,167,130,140, 68,211,203,224,100,207, 37,150,147,229,100,133,214,115, 7,151,221, 5, 44, 76,160,122,198,245, 44,
- 94,109,216,146, 19,235, 89, 56,205,241, 61,122,201,156, 44, 88,176, 96,241,188,238,157,157, 1,156, 49,188, 21, 90, 82,165,182,
- 68, 19,212, 70,217,158, 96, 57, 89, 78,150,147,229,100, 57, 89, 78,150,243, 63,199,105,192, 74, 11,203,239,153,252,223,244,138,
- 10,175, 23,146,166,135, 53,171,178,156, 44, 39,203,201,114,178,156, 44, 39,203, 89, 91,140,126, 69, 69, 86,152,225, 15, 59,116,
-200,130, 5, 11, 22, 44, 88,176, 96,241,252, 80,115, 30,173,189,123,247,114, 12,191, 7, 13, 26, 52,146,162,168,175, 12,255, 57,
- 28,206,143,187,118,237,250,169,186, 26, 34, 34, 34,168,234, 56,205,161,166,122,204,113, 54,109,232, 52,214,221,217,110, 66,113,
-137,124, 85, 74, 54,117, 78,169, 84, 54, 49,172, 19,137, 68, 73, 63,253,244,211,131,231,221,206,145, 35, 71, 54, 52,173,167,158,
- 31,175,179,155,163,104,220,211,226,178, 21,183, 31,150,109, 98,207,177,151, 2, 15, 0,125, 28, 69,252,247,155,186,240,223,186,
-245, 68,121, 81,166,161, 14,161, 60, 26,182,232,117,236,176,143,143, 79, 99, 39, 39,167, 97, 0,154,202,229,114, 47, 59, 59,187,
-124, 0,119,164, 82,105, 76,110,110,238, 61,107,121,194,234, 33, 29,128,191,254,111,198,153, 52, 4, 88,179,174, 38,244, 8,130,
-146, 1,132, 4, 1,205,177,228,191,157,209,223,109, 0, 37,205, 84, 93,222,163, 1,212, 12, 3, 62, 1,168,142, 61,130,232, 53,
- 58, 84, 78, 0,186,163, 60,133,195, 13,148,167,159,144,179,151, 44, 11, 22,175, 21, 76,135, 10, 43,254,115, 45,136,137, 78,124,
- 46, 17,197,128,113, 1, 24,119,149, 74,197, 19, 8, 4, 80,171,213,176,179, 19,175, 29, 51,106,228, 2,144, 40,214,234, 48,238,
-167,159,126,170,245, 76,215,182,212, 3,224,148,233,246,174, 78,226, 69,167, 15, 77,119,237,212,123,233,119,234,212,194,105,165,
-165,165,164, 80, 40,132, 74,165,130,179,179,115,251,177,163, 71,183, 34,121,140,154,207,183,191,184,114,229,202,220,218,182,115,
-210,164, 73, 62, 26,141,242,109,154,166, 5,106,181, 90,104, 90,143,179,157,253,210,211,135,166,219,133,245,249,110, 1,192, 10,
-173,151, 0, 65,128,171,253,153, 85,131, 58,135,188,213, 52, 24,244,157,179, 80,170, 53,239,159,206, 44,123,127, 94,124,246,228,
-204, 50, 77, 75, 60,135,132,149,255, 34,112, 2, 3, 3,191,244,244,244, 28,184,113,227, 70,126, 96, 96, 32, 68, 34, 17, 20, 10,
-133,228,209,163, 71,146,177, 99,199,134,137,197,226,221, 41, 41, 41,107, 97,221, 68,112,254,167,127,158, 3, 0,104, 63,108,161,
- 63,202, 39,139,150,155,174,235, 60, 98,161, 63,128,169,168, 60, 49,114, 14,202, 83, 40,152,187,235, 8,226,182,127,143,247, 63,
-158,194, 5, 48,182,162,241, 36,240,251, 47,171,209,115,208,132, 74,203, 9, 6,220, 67,219,191, 71,159,143,167, 88,156, 71,241,
-221, 96, 66, 75,211,140, 69, 75, 60, 73, 18,186, 63, 30, 50,230, 38, 24,206, 67,121, 14,176, 42,148, 40,159,208,217,108,249,222,
-141, 57,121, 26, 45,101, 54,225, 44,159,199,201, 63,124,143,170,178,237,240,255, 65,171,165,202,239,173,124, 46,168,131, 41,206,
-167,103,205,154,197,237,211,167, 15,182,108,217,210, 97,211,166, 77,163, 75, 75, 75,255,212,239,183,100,246,242,101,193,226,181,
- 22, 92,230,133, 22,151,131, 13,191,253,250, 83,131,188,252, 66, 12,255,236,107,236,220,185, 19, 69, 69, 69,112,117,117,133,128,
-207,231,173, 90, 62,199,199,201,201,222,103,248,232,105, 27, 0, 52,174,109,107,108,172, 39,216,116,123, 66, 63,149, 14,151, 67,
-242, 4, 2, 1,185,123,247,110, 20, 23, 23,195,197,197, 5, 2, 1,143, 92,249,221, 55, 98, 39, 39, 7,241,167, 95,204,232,128,
-242,252, 63,181,130, 90, 93,214, 97,255,206,159,156, 10, 10, 10, 48,226,243,105, 48,173,135,207,231, 83,134, 7, 11,123,142,189,
- 20,204,218, 56,238,227,144,102,142,128,230,246, 5,240, 56, 28,216, 57,187,162, 59,151, 3, 14,129, 38,195,255, 72,155, 9, 96,
-222,235,210,217,192,192,192, 47, 35, 34, 34, 6, 46, 90,180,136, 79,146,229, 41,231,100, 50, 25, 20, 10, 5,124,125,125,113,250,
-244,105,254,236,217,179, 7, 30, 56,112, 0, 41, 41, 41,107,108,229,191,125,251,118, 61,127,127,127, 37, 0,244,109,238,104,186,
- 46,192,176, 14, 0, 28, 29, 29,107,228,115,119,177, 87,221,190,125,169,169, 97,187, 47,187,250, 82, 22,150, 43, 1,216, 85,199,
- 69,211, 12,247, 88,212, 88,139,235, 63, 91,180, 67,119, 99,239,185,198,129,129,129, 10,227,229, 14, 14, 14,150, 54,241, 46, 43,
- 43,243, 55, 93,104, 40,175,209, 82, 94,150,234,235, 49,110,189, 89, 1,166,165,192,221,177, 99, 7, 0,224,135, 41, 67, 56,155,
- 47, 23,114,185,220,242, 91,237,242,229,203, 17, 25, 25, 41,248,227,143, 63,122,109,223,190,189,215,193,131, 7, 87, 89, 18,170,
- 44, 88,176,120, 37, 69,150,241,183,101,161, 69, 18,132,163,147,163, 3,194, 7,143,193,209,163,191,163, 83,167, 78, 21,235,234,
-215,175,143,136,254, 31, 96,215,207, 43, 1,192,241, 89, 90,244,172,245, 20,149,200,230,245, 28, 24,181, 48, 35,183, 44, 62, 46,
- 46, 14, 29, 59,118,172,180,253,224, 1,225,248,101,235,114, 84,147,101,222, 42, 16, 12,201,119,116,178,199,160,225,159,195, 92,
- 61,163, 71,244,139,123, 55, 98,117,183,188, 39,178,149,236,121,246,226,209,192,199,189, 71,243,144,198, 40,218,183, 22,137,197,
- 74, 28,205, 86,226,211,238,109, 17,234, 38, 70, 71, 29, 5, 31,123,222, 59,185, 50,237,107,109,100,132,121, 0, 0, 32, 0, 73,
- 68, 65, 84, 33,180,124,124,124, 26,123,122,122, 86, 18, 89,165,165,165, 40, 43, 43,131, 84, 42, 69,105,105, 41, 72,146,196,180,
-105,211,248,103,206,156, 25,232,227,227,115,194,138, 97,196, 12,189, 37, 11,224,240,202,230,206,157,171,242,242,242, 82,217,217,
-217, 49, 92,190,176,180,243,136,133,142, 0, 64,114,249,165,171, 86,173, 82,251,250,250, 42,185, 92,174, 96,194,132, 9,164, 53,
-109, 86,169, 84,140, 49,167, 90,173,170, 88,190,116,233, 82,181,183,183,183,202,206,206,142,209,104,172, 55, 58,222, 76,125, 10,
- 33,159, 3, 33,159, 3,145,128, 7,199,122,109, 32, 44,186, 5,157, 78,135,101,203,150,105,124,124,124,212,118,118,118,140, 64,
- 32,224,143, 31, 63,190,198,118,142, 28, 57,146,113,113,113,209,216,217,217,241, 35, 35, 35,171, 68, 10,157,188,145, 5,177,128,
- 7, 59, 33, 23,193,245,253, 32,100, 20, 86,183,149,195,169,236,141, 32, 20, 10,209,161, 67, 7, 52,109,218, 20, 7, 15, 30,236,
-204, 10, 45, 22, 44, 94, 11, 88,140, 48,228, 2, 64, 92, 92, 92, 24,202, 39, 68, 68,159, 62,125,136,242, 45, 24, 76,253,178, 63,
- 62, 29, 49, 8, 20, 69, 87,204,243, 69,144, 4,190,248,164, 23,104,218,154, 17,137,154, 67, 60,107, 81, 79, 5, 39, 67,144, 28,
- 0,104, 16, 32, 97, 70,127, 58, 20, 20, 77,255, 61, 80,194, 1,198,140,232, 89,190,236, 57,180,147, 3, 10, 95,143,253, 8,230,
-234,105,220,160, 14,169,211, 40, 65, 84,158,236,241,159,152,108,147,229, 52,131,166,117, 37, 65, 90,133, 2, 74,165, 22,209,247,
-158, 42,142,103,201,188, 72,151,180,130,213,225,237, 68,156,130,108, 4, 56, 10,130,115,101,218,215,162,239, 78, 78, 78,195, 54,
-110,220, 88, 69,100,229,229,229,145,101,101,101,208,104, 52,116,105,105, 41, 40,138,194,140, 25, 51,120,179,103,207, 30,150,155,
-155, 27,105,208, 60,230, 56,245,126, 87, 83,111,223,190, 29, 48,107,214, 44,205, 59,239,188,147, 81,191,126,125, 25,135,195,129,
- 68, 34, 89,221,189,123,119,183, 69,139, 22,105,122,245,234,149,198,225,112, 16, 28, 28, 44,187,117,235, 86, 0, 0,177,181,125,
- 55,230,252,233,228,143, 12, 0, 16, 4,129,238,221,187,167, 7, 7, 7,203, 56, 28, 14, 30, 28, 90,202, 88,187, 63,121, 92, 18,
- 13,125,157,245, 55, 17, 2, 16, 59, 84,120,226,117,239,222, 61,179,113,227,198,101, 36, 73,226,230,205,155,126,168, 58,173, 85,
- 21, 78,177, 88,172, 29, 60,120,112,198,189,123,247,204,149, 7,151, 67,162, 93, 99,189, 1,203,183, 37,144,121,222, 98, 59,121,
- 28,232,102,127, 57,132,235, 34, 2,132,142, 30, 42,169, 84, 10, 39, 39,167,114, 11,153, 70,131,191,254,250, 11,111,189,245, 86,
-216,222,189,123,207,176,215, 59,203,201,114,254, 13,115, 90,228, 21,180,102, 25, 79,116, 95,201, 71,235,180,105,167, 40, 74,135,
-250,254,222, 88, 58,103, 36, 40,138, 6, 69, 81,208,233,191, 41,138,130, 86,163,121, 46, 45,123,150,122, 92,157,196,139,126,223,
- 61,206,245,157,126,203,187, 46,153, 53,226, 56, 69, 1, 52,173,133, 86, 11, 80,180, 22, 52, 69, 65,171,125, 62,174, 57, 90,154,
- 70,128,159, 15,150,204, 26, 1,211,122, 98,118,237,237,123,242,183,105,118,157,250,124,247,245,131,116,249, 50, 86,216,191, 88,
-136,248, 66, 46,195, 21, 65,173,214,161, 84, 77,171, 1,200,148, 90, 90,195,216,123,136, 0,128, 75, 18,175, 83,116,109,211,192,
-192,192, 74, 34,235,251,239,191,247, 88,183,110,157, 47, 0,244,239,223, 63,171,107,215,174,133,247,239,223,135, 68, 34, 33, 10,
- 11, 11,123, 3,152,160,223,118, 42,128,117, 22,120,101,254,254,254, 74, 79, 79, 79,149, 65, 16,145, 36, 9, 46,151, 11,127,127,
-127,165,151,151,151, 42, 56, 56, 88,198,231,243, 65,146, 36, 12, 66,207,170,215, 60,130, 0,135,195,129,129,211,212,218, 99,224,
-180, 5, 60, 46, 89,245,246,102,196, 73,146,164,217,250, 44,158, 67, 34, 17, 3,192, 98,121, 14,105,116,123,228, 86,239, 33, 16,
-253, 23,120, 0, 78, 51, 12,131,235,215,175, 35, 37, 37, 5,124, 62, 31, 62, 62, 62,136,140,140,132, 74, 85,174,119, 35, 34, 34,
-194, 0,220,100,175, 96, 22, 44, 42,112,250, 21, 20, 88,166, 86,173,234,125,180,226,226,226,194,250,244,233,115,198, 32,128,202,
-197,142, 25,241,163,213, 65,171,213, 0, 12,243, 92,132,150,165,122, 40,138,174,182, 30,131,143, 22, 77, 51, 92,179, 34,139,166,
-161,211,106,159,203,222,163, 41, 45,104, 90, 11,115,245, 16, 4, 73,233,111,248,124,246, 58,121,241,240,241, 15, 32,181,254,245,
-113, 78,167,132,175,187, 80,128, 66, 5, 2, 27,133,112,254,146,107,113,225, 70, 18, 60, 28,156, 94,155,227, 34,151,203,189, 68,
- 34, 17,100, 50, 89,133, 37,107,221,186,117,190,106,181,154, 4, 0, 46,151,231, 87, 64,251,138, 40, 26,112,118,202, 65, 81, 81,
-137, 59,195, 48,132, 94,240, 44, 7,240, 19,170,201,238,207,231,243, 43, 4,138,177, 0, 18, 10,133,181, 18, 48, 6, 24,196, 25,
-159,207, 55,187,220,116,120,173, 38,240,141,133, 22,152,114,171,150,137,216,226,112, 56, 48,248, 70,213, 4,129, 64, 80,209,119,
-115,224,114,140,234,227,216,238,138,169,209,104, 80, 86, 86,134,226,226, 98,136, 68,229, 6, 51,134, 97, 64, 16,196, 4, 0, 19,
-217,171,152, 5, 11,243, 90,228, 21, 22, 91,230,133, 22,202, 77,118, 4, 0,232,180, 26,179,226,103,239,161, 11,200,200,149,193,
-199,227, 10, 24, 27,179,158, 14, 28, 56,240,103,137, 68,210,206,240, 95, 40,118,112, 31, 61,110, 62,116, 58, 13, 28,197, 36, 62,
- 27,214,179,146,200, 42,183,104,169, 45,206, 9, 82, 84, 34,155,215, 51, 98,205, 66,103, 39,247,120, 83,241,179, 36, 58, 33,188,
- 72,170,242, 35,201,171, 40, 34, 36, 84,196,152,249, 35,141,110,238, 55,118,175,159, 59,217,106,123, 32, 65,242,194,199,174, 30,
-205,112, 29,154,216,145,165,103,167,143,104,187,223, 88,204,185,185,185,197,245, 8, 95,213, 45,239, 41,235,163,245, 50,224,232,
-236, 66,250,181,238,140,214, 19,162,112,242,155,233, 12, 80, 4,119,137, 47,217,229,203,197,112,104,221, 23,151, 62, 27, 70, 3,
- 79, 95,139,190,218,217,217,229,203,229,114,137, 66,161,128, 84, 42,133, 84, 42,173, 44, 8,120, 60, 98,244,231, 95,121,240,248,
- 2,104, 53,106, 28,141, 89, 92, 35,167, 33,133, 67,223,230,142,224,240, 4,165,119, 2, 3, 87,115,185, 92,144, 36,137, 67,107,
-167, 79,216,183, 98,156, 35, 0,220,136, 91, 43, 29, 52,237,199, 53, 36, 73, 66,165, 82, 9,109,105,247,227,199,143,253, 84, 42,
-149, 82, 47,208, 12,194, 15,169,169,169,117, 85, 42,149,194,120,185, 53, 16,219, 57, 2, 46,245, 1, 59,175, 42,214,179,180,180,
-180, 58, 90,173, 86,206,229,114,161, 86,171,173, 82, 69, 36, 73,242,111,222,188,233, 71,211,180,217,242, 77,131,234, 0, 62,205,
- 1,129,179,213,125,102,172,120, 17,213,139,173, 23,150, 65,154, 5,139, 87,197,178,245, 10, 94, 19,132,133,223, 21, 66,171,115,
- 92, 92, 28, 99,252,134,168,211,106,245, 34,235,111,209, 67, 81, 52,178, 11,148,184,127,255, 1, 86,173, 90,133, 11,151,166, 56,
- 47, 90,180, 72, 56,123,246,108,213,192,129, 3, 87,208, 52,221,130, 36,201, 27,248,123,168,162,178, 85,136,166,235, 38, 36, 36,
- 4, 26,254,107,181, 90, 56, 58, 58,194,209,209, 17,141,131,253,170,136, 44,138,162,160,169,102,232,208,224,163, 69, 48, 52,163,
-213, 82,160,104,186, 66,252, 20, 73, 85,126,191,157,184,222,192,168,120, 35,195,143, 14,109,154, 88, 22,131, 99, 35, 43,250,177,
-123,253,220,201,139,182,108, 17, 22, 81,158,227, 7,133,127, 26, 26, 49,104, 24, 6,127,244, 94,152, 74,173, 62,200, 33, 25, 90,
- 91, 81, 31, 72, 48, 48,245,209, 98,241,130,144, 92, 44,211,242,132, 98, 56,248,212,195,131, 50,138,207,225,112,174, 60, 42,150,
-243, 73, 14, 23, 36,151,143, 59, 69, 74,237,107,212,221, 59,201,201,201,146,186,117,235, 66, 42,149, 66,167,211,209,253,251,247,
-207,226,114,121,126, 92, 30,143,232, 51,232, 43, 58, 55, 55, 91, 75,146, 28, 48, 12,133,247, 34,198, 18, 66,145,152,175, 81,171,
-117, 40, 31, 58, 52,103,205, 50, 78,225,224,216,189,123,119, 55, 67, 36,224,190, 21,227, 28,141,214, 57,181,106,213,202,205, 56,
-234,208, 74,107, 17, 49,112,224, 64,177,191,191, 63, 1, 0, 87, 99,102, 25,172,103, 68,223,190,125, 69,254,254,229,126,248,127,
-174, 29,103, 53,167,135, 29, 3,148,164, 2, 37,105, 85, 44, 89,125,251,246, 21, 6, 6, 6,218,116, 45,234, 29,224, 45,230,238,
-178,231,234,128,220,235, 86,113, 13,255, 31,180,190, 14,224,174,120,143,132,192,193, 93,213,110,250, 31,151, 89,177,197,130,133,
- 85, 48,209, 34,175, 20,194,244, 2,177,179,254,187, 66,112,113, 1, 64,111,162, 35,140,116, 22,180, 58, 77, 21,145, 69, 81, 20,
-120,132, 10,171, 86,173,194,196,137, 19, 1,128, 63,121,242,228,253,139, 22, 45,250,144,166,233, 22, 12,195,116, 36, 8,162,186,
-183,198,211, 18,137, 36,143, 97, 24, 30, 73,146, 29,215,174, 93,235,214,171, 87, 47, 56, 58, 58,130,161,153, 42, 34,139,162,104,
-104, 52,106,139,211,220,186, 58,137, 23,253,190,119,188,235, 59, 31, 44,239, 74,209,244,113,131,200,162, 41, 10,160,203, 55,122,
-146,159,133, 99, 71, 15, 98,195,250, 13, 69, 32,152,187, 96, 64,235,197, 32, 44,136,193, 22,231,175, 38,117,236,208,166, 9, 22,
-109,217, 34,188,157,144,179,255,171, 73, 51, 67, 35, 6, 13,195,222, 93, 49, 32,117,197,215,141, 69, 22,165,165, 81, 82, 84,216,
-247, 20,235,163,245,178,224,118,236,248,113, 98,216,176, 97,116,105,105, 41,248, 2, 1,173,213,106, 57,111,191,253, 54, 53,113,
-226, 68, 50, 55, 55, 23,210,210, 50, 46, 0, 55,188, 6,102, 45,169, 84, 26, 51,118,236,216,176,179,103,207,242, 73,146,132, 84,
- 42, 69,151, 46, 93, 10, 11,104, 95,209,232,207,191,242,200,206,206,210, 57,137,185, 42, 62,159,135,252,252,124, 58,172,215, 16,
-197,160,145, 19,235, 76,156,181,100, 99,206,197,245,235,172,169,195, 56, 18,208,116,221,230,205,155,213,190,190,190, 74,161, 80,
- 40, 24, 49, 98,132, 85,227,135,106,181,154, 89,186,116,169,202, 52,186, 80,173, 86, 51,171, 86,173, 82,251,249,249,169,196, 98,
- 49,163,213,214,236,247, 73,146,132,238,179, 69, 59,116, 58,157,174,146, 21,203, 32,178,180, 52, 81, 22, 21, 21,165,241,243,243,
- 83,219,217,217, 49, 66,161,144,111, 77, 59,191,250,234, 43,198,213,213, 85, 99,111,111,207,159, 54,109,218, 51, 69, 29,106, 41,
-112, 23,173,173, 72,239, 32,116,116,116, 68,105,105,105, 69, 91, 37, 18, 9, 43,182, 88,176, 48,131, 42, 90,228,213,180,194, 89,
-151, 71,139, 6,202,242,242, 11,189, 60,188,235, 65,167,211,233, 63, 90,232,180, 90,140, 31, 51, 8, 43,214, 71, 1,128, 65,108,
-117,159, 60,121,242,126, 0, 53,222,204,118,239,222,189,112,242,228,201, 78,121,121,121,127,252,252,243,207,110, 67,134, 12,193,
-212,169, 83,177,124,249,114,240, 4, 34,184,121,214,173,168,199, 80,111, 97,193, 83, 48, 96,202, 44,216,233, 52,229, 55, 41,112,
-221, 61, 3,160,165,180,160,181, 90,104,181, 90, 16,156,242,174, 29, 59,122, 16, 67, 62,249, 10, 60,161,147,235,143,171,150, 41,
- 66, 91, 75, 62,156, 61,106,148,202, 10, 35, 32,121, 59, 33,103,255, 87, 19,167,117, 55,136,172, 95, 99,214,223,253, 97,198, 7,
- 59,133, 2,110, 69, 61, 90,154, 6, 73,114, 88, 31,173,151, 36,178,132, 66, 97,236,145, 35, 71, 30,182,108,217,146,144,201,100,
-208,106,181, 40, 44, 44,196,254,253,251,239, 48, 12, 3, 87, 87, 87, 28, 57,114,132, 30, 50,100, 72,172, 74,165, 10,127,213,197,
- 86,110,110,238, 61,177, 88,188,123,230,204,153,131,102,204,152,193,163,105, 26,247,239,223, 7, 8,130,225,241, 5, 32, 73, 18,
- 60, 30, 23, 37, 37, 82,218,206,193, 37, 71,195,112,236,120,124, 1, 72, 14,191,186, 48,225, 12,125, 50, 82,144, 92,126,169, 33,
- 18,144,207,231,227,210,222,239,165,157, 71, 44,116, 2, 0,190, 80, 92,212,163, 71,143,244, 38, 77,154,200,174, 93,187, 22,128,
-170, 81,135,166,215,167,174,223,136,105, 28, 59,177, 72,214,189,123,247, 12, 3,103,218,241, 31,165,195,190,152, 69, 16, 28,129,
-172, 79,159, 62,233,161,161,161, 50, 14,135,131,164,131,203,164,253, 70, 76, 19, 17,213, 36, 89,253,227, 33,243,217,141,189,231,
- 26, 47, 94,188, 88,219,171, 87,175,199, 6,127,177,180,180,180, 58,189,123,247, 22,174, 92,185, 82,219,187,119,239,204,102,205,
-154,149,145, 36,137,132,132, 4,191,234, 44, 85, 6,136,197, 98,237,167,159,126,154,113,235,214,173,218, 70, 29, 86,139,186,117,
-235,130,166,105,116,233,210, 5, 74,165,146,181,108,177, 96,241,122,194, 52,143,150,229,204,240, 90,157,246,171, 49, 19, 22,252,
- 8, 16, 14, 70,119,129,191, 13, 75, 12,136, 41, 83,190,182, 7, 32, 54,136,173, 73,147, 38,213, 56,205,137,145,200,106, 61,100,
-200, 16,124,243,205, 55,248,225,135, 31,168,229,203,151,115,238, 61, 72,213,140,248, 98, 94,177, 73, 61, 96,192,148,209, 90,250,
- 43,115,124, 69, 37,178,121, 29,123,127,183, 32, 43, 79,126,126,196,216,217, 21,119, 47, 10,128,148,144, 80, 0,176, 97,253,122,
- 25, 79,232,100, 31, 49,104, 24, 0,116,255,113,213,178,253,139,176,165,102,177,197, 16, 33, 95, 77,154,230,106, 16, 89,107, 87,
- 46,190,229, 76,228, 69,141,251,250,142,214,184, 30, 0,112,115,196,254,142,189,191,123, 55,255,169,108, 53,123,158,189, 56, 8,
- 4,130,133, 39, 79,158,180,111,222,188, 57,241,228,201, 19, 80, 84,249, 17,209,104, 52, 40, 41, 41, 65,105,105, 41, 84, 42, 21,
- 90,181,106, 69,174, 89,179,198,126,220,184,113, 11,213,106,245, 23,175,122,191, 83, 82, 82,214,254,246,219,111, 56,115,230,204,
-192, 25, 51,102,240,124,124,124, 8,103,231, 60, 66,171, 81, 3, 96,152,130,130, 2,218,206,193, 37,199,195,219, 47, 35, 59, 55,
- 63, 68,171, 81,131,166, 52, 22,189,205,245,233, 29,166,220,190,125,187,222,247,223,127,175, 54,142, 4, 28, 52,237,199, 53,173,
- 90,181,114,139,138,138, 82,247,233,211, 39,221,224,188,110,141, 51,252,177, 71,152,112,251,246,205,166,166,156,157, 71,127,191,
-213,192,105, 28,141,216,247,235,141, 91,131,131,131,221, 66, 67, 67,211,171,227, 13, 12, 12, 84, 72, 36, 18,117,227,198,141,203,
-120, 60, 94,185, 37, 75,171,149, 7, 6, 6,210,222,222,222,234, 38, 77,154,148,217,234,180, 47, 22,139, 25,131, 85,204, 28,108,
-137, 58,228,113,160, 27, 50,100, 72, 69,102,248, 41,193,193, 57,195,134, 13,147, 76,158, 60, 25, 91,183,110,197,133, 11, 23,170,
-136,253,176,176, 48,156, 61,123,118, 1, 94,163,196,186, 44, 88,252,199, 80,125, 30, 45, 83,108,219, 22,243, 39,140,124,154,204,
- 97,209,162, 69, 66,189, 37,171,251,196,137, 19,161, 80, 40, 92,205, 20,235, 6,125,174, 13,115, 34,107,217,178,101, 59, 25,134,
-241, 3,208,129,162,232,203,155,183,108,235, 98,169,190,136,136,136, 42,156, 12, 65,114, 72,146, 40, 19,240,152,191,214,111,218,
-250, 75,165,242,229,206,239,141, 64,224,198,143,171,150, 41, 0,116, 55, 21, 91,248,123,154,145, 10, 78, 3, 62, 31,251,121,133,
-200,250,113,213,178,227,161,173,253, 63,156, 61,106,161, 89,113,182,112,222, 24,123,146, 36,222, 54,241,209,170,194,249, 28,192,
-114,254,141, 46, 67,134, 12,105,209,182,109, 91,210, 88,100,169,213,234,138,196,157, 6,103,241,172,172, 44,132,133,133,145, 45,
- 90,180,104,118,229,202,149, 46,248,123, 58,167, 87,181,239, 84, 74, 74,202, 26, 31, 31,159, 19,115,231,206, 29, 86, 88, 88,216,
-187,168,168,216, 61,110,219, 66,244,140, 24, 75,132,245, 26, 44, 83, 51, 92, 81,102, 78, 94,227,211, 71,118,184, 29,221,189, 22,
- 26,181,122, 12,128,187,248, 59,189,131, 41,167,220,144,198,161,113,227,198, 50, 99,161,226,239,239,175,172, 83,167,142, 42, 52,
- 52,180, 98,185,133,104,190, 42,125,183,149, 83,239,255, 37,171,105,127, 26, 68,155,105,218, 8, 59, 59, 59, 24,196,151, 45,237,
- 52,142,182, 52,123,163,172, 57,234,176,130, 83,159,222,161,146, 78,139,137,137,233, 22, 19, 19,211, 26,192, 95, 40,159,235, 80,
- 11,148, 15, 37, 26, 57,205,207,215,127,216,235,157,229,252,175,114,190,202, 8,195,223,190, 89, 64,185,175,214, 25,139, 66,171,
- 38, 24, 28,223, 1,144,147, 38, 77, 42, 82, 40, 20,174,195,134, 13,171,118,155,220,220,220,173,209,209,209,149, 68,214, 71, 31,
-125,244, 73,108,108,236,137,252,252,252, 90,245,202,213, 73,188,232,204,161,233,174, 97,125,190,155, 8, 96,185, 5, 67, 30, 29,
-218, 90,242,225,143,171,150,237, 55, 17, 91,219, 1,124,100, 73,149,246,120,239, 3,236,216,246,163,193,183, 75,124,235, 90,214,
-209,129,215, 35,205, 70, 43,186, 56, 8, 35,245,237,152,204,250,104,189, 24,240,249,252,206, 51,102,204,224,203,100,178, 42, 34,
-203, 84,104, 73,165, 82,220,184,113, 3, 35, 70,140, 16, 38, 38, 38,118,214,104, 52,167, 94,135,125,144,155,155,123, 79,159,140,
-116,130, 33,133,131, 80, 36,230, 15, 30, 57,209,175, 34,234,112,247, 90,168,148, 10, 0,224, 90,147,222,129,203,229,242, 19, 19,
- 19, 3, 12, 86, 43,141, 70, 35, 52, 44,191,118,237, 90,128, 33,183,150, 82,169,180, 58,234,240,159,226,188,121,243,166,159, 33,
- 58,210, 16, 93,200,229,114,249, 9, 9, 9,126, 6, 78,149, 74,101, 85,212,161, 64, 32,224, 39, 38, 38,250, 81, 20,245,220,162,
- 14,141,133, 49,202,231, 89,172, 52,215,162,222,183,140, 32, 8,130, 97,135, 13, 89,176,120,229, 97, 26, 41, 89,253,164,210, 53,
-193,224,248,110,195, 38,220,186,117,235,246, 24, 52,104, 80, 37,145, 21, 30, 30, 78,237,219,183,239,180, 68, 34,201, 35, 73,242,
-158,173,237,168,240,209, 66,149, 55, 72,144, 36,121,163, 67,155, 38, 32, 73,242,198,236, 81,163, 84,139,176,165,146,216, 58,184,
-127,207,187,153, 69,119,204, 75, 51, 0,238, 94,190, 24,242,201, 87, 24,242,201, 87,174, 0,218, 3,150,163, 21,171,107, 7,139,
-127, 6, 4, 65, 8,234,212,169,115, 75,169, 84,130, 32, 8,168, 84,170, 10,129, 85, 90, 90,138,146,146,146,138,255, 26,141, 6,
- 5, 5, 5,240,247,247, 7, 65, 16,175,181, 31,157, 70,163,209,205, 88,240,125, 52,135,203,215,209,180,134,208,104, 52, 35,109,
-185,206,103,204,152, 65,194,140,239,213,184,113,227,204, 46,127, 89,156, 51,103,206, 52, 27, 37, 56,110,220,184,106,163, 7, 45,
-225,235,175,191,126,110, 81,135,214,223,190, 88,176, 96,241,154,193,108,232, 94,173,132, 22, 73,146, 55,204, 68, 23, 18, 0, 24,
-146, 36,111,152,201,114,160,203,200,200, 88,224,226,226, 50, 70, 38,147,253,254,209, 71, 31, 77, 10, 15, 15,167,128,114, 7,249,
-218,246,168,168, 68, 54,175,115,223,165,147,139,203, 84, 81,166,235, 76, 45, 79, 6,177,181,118,245,178,117,251, 99,119,133,231,
-102,103,174,179,212, 55, 75,130,202, 82,180, 98,137, 84,177,160,115,223,165, 19,139,164, 10,214, 71,235, 5,129,162,168, 99, 98,
-177,152, 48, 76,166,108,108,189,146, 74,165,144,203,229,208, 79, 73, 3, 0, 40, 43, 43,131,179,179, 51, 40,138, 98, 94,179, 93,
-161, 2, 48, 85,111,173, 2,128,169,169,167,215, 24,159,219, 55,141,215, 85, 99,205,202,177,102,130,104,115,219, 85,183,238, 31,
-224,204,171,102,130,232,234,144,103, 35, 95, 30, 0,240,121,156,124, 75,147, 71,243,121,156,252,106,252,246,109,124,111, 32, 24,
- 0, 11,216, 43,155, 5,139, 87,247,253,255,101, 85,220,141,229,100, 57, 89,206, 23,194, 41,212,127,172, 93,199,238, 79,150,147,
-229,100, 57,255,109,156,230, 48,250, 21, 17, 90,140,153, 15,128, 90, 90,180, 88,176, 96,241,175,131,170,150,235, 88,176, 96,193,
-130,197,179,163,202,100,210,198, 43, 44,169, 82, 91,162, 9,106,163,108, 79,176,156, 44, 39,203,201,114,178,156, 44, 39,203,249,
-159,227,172,137,219,120,251,209, 0, 54,189, 34, 98,235,165, 4,180,176,102, 85,150,147,229,100, 57, 89, 78,150,147,229,100, 57,
-107, 11,118,232,144, 5, 11, 22, 44, 88,176, 96,193,226, 63, 14,219, 18,150,178, 48, 3,255, 15,102,131,198, 76,253,238, 92,134,
-199, 7,231,191,110, 93, 12, 15, 15,231,216, 82, 62, 53,213,133,188, 14,201, 15, 78,246,252,190,101, 50,237, 15,244,245,121, 81,
- 53,157,136, 30,129, 45, 63,182, 19,217,125,161, 86,171,235, 59, 56, 58,230, 63,125, 82,176,225,105,198,205,181, 70,101,156, 46,
- 95,190, 44,105,219,182,109, 54,128, 82,163, 55, 5, 22, 44, 88, 60, 79,184, 52,169, 11,130, 24, 9, 48,127,135, 93,210,204, 29,
-148,220,221, 86,169,156,115,200, 39, 32,137,166, 70, 75, 20, 96,176, 25,197, 73,143,107,120,224,184, 36, 39, 39, 7, 52,104,208,
- 32, 29, 64,177,105,237,102,214,177,215, 57,139, 87, 25, 97,168,156,176,180,226, 90,120,118,161, 21,252, 81,125,232,200,225, 96,
- 48, 20, 4, 18,145, 26,219,191, 86, 60, 65, 31,250,130,230,190, 9,160, 37,192,180,180, 23,139,254,167, 80,107,242,105,134,249,
- 24,143,246,252,101, 51, 95,253,240,177,176, 60,157,197, 2,164,198,174,183,137,143,102,102, 93, 61,187, 79,232, 98, 71,160, 65,
-171,143,166,161,114, 6,231,218, 66, 0,160, 35, 73,146, 77,237,236,236, 36,114,185,188,128,166,233,199, 40, 31,159, 46,170, 37,
- 39, 9,224, 83, 7,123,251,158, 1,142,130,150, 25,133, 37, 89,165, 90,234, 28,202, 19,186, 22, 61,175, 51,170, 92,100,249,108,
-154, 56,184,237,136,101,227,187,193,165,243,210,105,114,160, 58,161, 69,248, 53,122,251,224,192, 65, 17,157,191, 28, 61,194,193,
-215,211, 1, 57,133, 50,247,245, 91, 99,190,143,137,217,209,103,212,192,238, 61, 1, 96,225,194,133,253,234,214,173, 91,143,195,
-225,164,206,153, 51,103,251,188,121,243, 24,194,242, 76,229, 18,253, 57,108,184,225,219, 3, 8, 5, 16, 8, 32, 5,192,109, 84,
-206, 50, 94, 27,188, 18,156,190,190,190,117,104,154, 30,229,237,237,221, 59, 47, 47,239, 48, 73,146, 91,178,178,178,178, 95,230,
- 93,135, 97,152,141, 4, 65,140,102, 24,102,147, 13,223, 99,108,169, 67, 36, 18,229, 41,149, 74, 47,253,239,124,165, 82,233,253,
- 79,245,231, 69,214,245,130,222,191, 63, 59,118,254,118, 79,227, 69, 61, 58, 52, 53,115, 71, 33,154, 30, 59,127,167, 83,229,114,
-161,148,133,123, 32,193, 48, 12, 22, 44, 88, 64, 68, 70, 70,126, 18, 20, 20, 20, 76,146,228,253,185,115,231, 86, 74,125, 99,186,
-206,232, 58,103,197, 22,139, 87, 21,182, 77, 42, 93, 35,154,132,219, 67,201,132, 3,196,136,176, 54,255,235, 48,230,227,190, 4,
-195, 17, 97,240,103,211,117, 54,115, 5,140, 16,130,163, 88,212,188,105,163, 73, 17,125,187,145,173, 67,235, 65,226,233, 12,144,
- 60,108, 60,146,230, 30,181,108,206, 58, 0,109,107,209,202,121,143,226,119,122,229, 20, 83, 32, 8,128, 32, 0,146, 0,202,148,
- 52,122,244, 27, 62, 15,192,122, 27,239, 74,164,139, 29,129, 73, 59,149, 0,192,121, 14, 7,165,158,167,167,231, 39, 19, 38, 76,
-176, 15, 13, 13,117, 17,137, 68, 2,165, 82,233,157,156,156,236, 57,103,206,156, 80,133, 66,113, 8,192, 85, 27, 57,253, 27,248,
-213,217, 19, 53,233,211, 55, 91, 4, 6,128,167, 46, 3,173,146,213,125,144,252,240,173,207,215,237,253,236,206, 83,229, 32,212,
- 98,202,132,194,194, 66, 2, 0, 60, 60, 60,152,202, 34,171,221,136,149,147,123, 96,210,138, 99,144, 43,213,191, 84,199,225, 86,
-239,141, 97, 31,126,248, 65,231,197,179,198, 57,100, 61,209, 32, 49, 85, 1, 55, 7, 62,230, 77, 29, 43, 80,169,180,111,173,219,
- 30, 51,250,199,239,166,111,166, 40,234, 29, 0,173, 41,138,186, 6, 96,251,130, 5, 11, 44,221,124, 35, 1,204,212,159,208, 59,
- 56, 28,206,241, 46, 93,186,212, 31, 53,106, 20,209,170, 85, 43, 36, 36, 36, 4,238,220,185,179,219,225,195,135, 83, 41,138,186,
- 9,224, 62,244,211,158, 88, 1, 30,128, 70, 28, 14,167,249,191,153, 83, 34,145,136,213,106,245,112, 63, 63,191,209,111,191,253,
-118,243,190,125,251, 18,141, 26, 53,194,189,123,247, 90, 29, 61,122,116,222,185,115,231,110,102,102,102,110, 18, 8, 4,209, 57,
- 57, 57,138, 23,254, 28, 39,136,209, 0,234,232,117,242, 2, 43,190,179, 81,158, 75, 42,199,218, 58,148, 74,165,151, 97, 10, 27,
-130, 32,188,254,201,254,216, 88, 87, 18, 65, 16,110,250,178,168,238,155, 36, 73,232,116, 58, 25, 69, 81, 65, 53,112, 54,210,191,
- 72, 89,173,117, 1, 84,151, 8, 90, 12, 0, 61,218, 55,125, 10, 2,119, 42, 44, 90, 85, 95, 50,239, 84, 8, 48, 6, 77,143, 93,
-184,227, 86,201, 10,102,250, 22,187, 96, 1, 49,111,222, 60,204,159, 63,191, 47,128,142, 52, 77,159, 11, 9, 9, 89, 83,137,146,
-166, 43,214,205,155, 55,111,117, 53,215, 57, 11, 22,175, 10, 58,195,150, 73,165, 45,190,255, 4,245,239, 4, 10, 35, 2,220,189,
-194,199,143, 26, 32, 14, 13,105, 0, 37, 28,144, 86, 72,225, 72,220, 81, 0,216,109,155,213,105, 64,107, 46, 87, 25,189,108,254,
-212,198, 29,223, 12,197,173, 44, 45,174,101, 81,144,167,106,193, 33,181,160,104, 6, 96,160,172,109,175, 51,139,116, 56,127, 95,
- 13,146, 0, 56, 36, 64,146, 4, 56,100, 45,201,104,245,131,133,219,174,135, 22,230,209, 0,173,126,240,140, 7,164,105,195,134,
- 13,135, 69, 70, 70,186,228,230,230,218, 39, 36, 36, 64, 40, 20,194,213,213,149, 35,145, 72,234,172, 88,177, 66, 49,126,252,248,
-222, 26,141, 38, 13, 64,161,149,156, 33,189, 90, 55,191,184,105,217, 66,103,237,229,163, 40,222,245, 43, 56, 36, 3,190,189, 3,
-234,139,197, 56,250, 97, 3,183,240,184,212,125, 87,242,100, 33, 0,178,106, 34,187,123,247, 46, 71,165, 82, 13,114,114,114,106,
-199,227,241,188, 69,174,245,232,108,110,235, 39, 5, 68, 96, 74,190,151,188,211,228,110,222, 61,127,152,216, 5,147, 86, 28,195,
-170,157,151,126,110,137,220,185,213,229,205,182,179,115, 24, 51,254,139, 81, 14,153,133, 26, 44,218, 87,136,109,103,165, 24,222,
-209, 17,147,222,115,198,144,193, 3,237,247,254, 26, 59, 6,192,102,163, 77,238,133,132,132, 16,119,239,222, 53,119,243,117, 5,
- 48, 93,173, 86,147,124, 62,159, 16,137, 68,195, 22, 47, 94,172, 25, 60,120,112,166,161, 64,199,142, 29,209,177, 99, 71,162,180,
-180, 52,240,212,169, 83,129, 49, 49, 49,186,248,248,248, 36, 0, 7, 45, 91, 44,196, 25, 74,165,162,174, 72, 44,150,175, 95,183,
-238,135, 78,157, 58,209, 66,225,223,233,167,106,195, 9, 0,206,206,206,155,189,188,188,136,111,190,249, 38,251,121,113,214,171,
- 87,239,216,155,111,190,217,165, 71,143, 30,220,246,237,219,163, 78,157, 58, 21,235, 60, 60, 60,208,177, 99, 71,226,241,227,199,
- 45,206,157, 59,183,238,216,177, 99,107,254,250,235,175, 83,105,105,105, 61, 94,176, 69,107,147, 94, 76,228,216, 88,254,149, 7,
- 65, 16, 14, 27, 55,110,244, 50,204,201,168,213,106, 65, 81, 84,197,183,225, 67,211, 52, 40,138,194,226,197,139, 41,153, 76,102,
-205, 62,146, 25,189, 53, 27, 62,180,185,111,129, 64,224, 97, 72,216, 91,195,157,253,142, 68, 88,220,196,222,222, 62, 0, 64, 47,
-120, 6, 79,175, 92,160,252,253, 89, 38,147,165,231,168, 92,238, 0,232, 84, 13,155, 75,100,100,228,240,249,243,231,127, 96,100,
-165,109, 30, 17, 17, 97, 58,237, 85,115,253,183,140, 32,136,211, 36, 73, 30, 2,176, 13,207,209,234,206,226,245, 2,195, 48,109,
- 0,120, 26, 45, 82,163,124, 84, 8,250,231, 36, 1,192,221,100,185,113, 57,195,119,129,126,185,167,126, 59,198,136,183,128, 32,
-136,171,181,108,226, 25, 88,240,211,226, 2, 64, 92, 92, 28,211,167, 79, 31,194,240,109, 94, 20,133, 31,249,116,240,251, 61,123,
-119,125, 27,164,200, 21, 15,242,129,248, 12, 6, 92, 82, 11, 18, 12, 46, 95, 56,197,128, 75, 71,155,108,101,217,122, 82,175,255,
-215,205, 67, 67,150,110, 89, 54,129,147,148,207,197,182,115,114,104,148,101, 40,200,205, 64,126,118, 58,114, 50, 83,144,149,145,
-114, 19, 32,230, 89,205, 89,229,192, 0, 20,173,127, 7,164,129,106, 34, 47,107,230,212,200,238, 6, 54, 10, 13, 45, 18, 80,128,
- 70,118,215,138,234, 45,113, 54, 11, 14, 14, 30, 60,107,214, 44,183,219,183,111,139,229,114,185,234,232,209,163,247,210,210,210,
-156, 36, 18,201,211,177, 99,199, 6,215,169, 83,199,233,163,143, 62, 18,236,218,181,171, 31, 42,135,181, 90,226, 12,125,191,221,
-255,226,183,174, 89,105,255,100,111, 20,212,201, 55,112, 36, 71,134, 11,121,114, 38,208, 89, 72,124,213,194, 19, 14, 66, 46, 22,
-182,175,227,208,107,127,242, 82, 45, 77, 15,169,142,243,226,197,139, 18, 59, 59,187, 21, 67,135, 14,149,140, 27, 55, 78, 72,113,
- 93,184,177,241, 79,156,167,175,139,175, 35, 87,105, 56,131,187,212,195,228,161,205, 49,121,213, 73,131,200, 26, 93,191,126, 49,
-125,253,186,101, 78,173, 70, 83,223,207,203, 9,137,105, 10,108, 59, 43,197,159,179,234,160,235,226,108,124,212,146,139, 16,127,
- 7,232, 52,218, 70, 17, 17, 17,209,250,183,246,171, 0,250, 69, 68, 68, 52,230,112, 56, 39, 1, 28,168,233, 24,137, 68,230,103,
- 79,113,117,117, 69, 88, 88, 24, 66, 66, 66,184,157, 58,117,106,110, 34, 96, 42,113,106, 52,106, 9, 77, 51,112,116,116, 20,187,
-187,187,187, 58, 58, 58, 62, 49,247,160,178,133, 19, 0,220,220,220,250,135,133,133,113,119,238,220, 89,152,154,154,122,121,240,
-224,193, 41, 78, 78, 78,149,172,191,246,246,246, 8, 14, 14,198,156, 57,115,184, 61,123,246,172,145,211,219,219,187,123, 76, 76,
- 12, 8,130,168,120,104, 87, 49, 22, 7, 4,192,199,199, 7,189,122,245,226,246,239,223,191,123, 90, 90, 90,173,174, 35, 27,112,
-194,140, 69,107,129,201,113,178, 56,252,102,174,188, 21,199, 61,223, 96, 93,210,243,225, 25,174,205,106,135, 59, 69, 34, 81,133,
- 21,202, 76, 93, 85, 56, 73,146,196,236,217,179, 65, 16, 4,120, 60, 30,248,124,190,217,239,206,157, 59,219,218,206,199, 4, 65,
-144,124, 62,127, 58,151,203, 29,165, 82,169,252, 68, 34, 81, 54, 69, 81, 63,171, 84,170,197, 0,180, 12,195,184, 88, 16, 89,102,
- 57,237,237,237, 3, 30, 60,120,208,208, 82, 67, 84, 42, 21,154, 55,111, 14,168,144, 84, 29,103,114,114,114, 64, 80, 80, 80, 35,
- 0,134, 41,218,206, 50, 12,211,201,232,191, 49,206, 50, 12,243,158,254,247,253, 71,143, 30, 5, 52,104,208,160,232, 69,157,159,
- 44,231,191,143,179, 6, 45,226, 73, 16, 68,156,209,181,218,199,240,127,198,140, 25, 51,151, 44, 89,114,155, 32,136, 56,227,229,
-198,229,140,191,245,247,155, 56,134, 97,250,124,243,205, 55,161,223,125,247,221,183,134,178,255,132, 72,180,197,162,229, 84,160,
-180,199,185, 12, 39,112, 57, 20,184, 36, 1, 46, 7, 0, 67, 32, 61, 45, 25,165,210,226,243, 72,221,151,106,157, 37, 43,188,253,
- 27,111, 52, 91,182, 99,213, 52,242,167,115,114, 20,203,148,184,251,215,105, 92, 61,125, 32,151,210, 81, 7, 64, 48,215, 0, 50,
- 1, 41,244, 61, 32,182,118,115, 92, 16, 12,183, 92,104,233,197, 85, 37,177,245,210,208,162,113,227,198, 3,231,204,153,227,113,
-253,250,117, 81, 73, 73, 73,233,142, 29, 59,178, 85, 42, 85, 26,128, 63,210,211,211, 27,175, 94,189, 90,176,108,217,178,102,205,
-154, 53,147,236,217,179, 71,109,102, 58,163, 42,156, 83, 71, 12,137, 31, 53,126,162, 40,105,207, 90, 8,146, 18, 48,251, 70, 33,
-245,103,142,124, 22,128, 85,120, 92,214,190, 64,169, 59,190, 50,172, 46, 89,207,145,143, 6, 46,130,206,119,159, 42,171,181,100,
-217,217,217,173,136,137,137, 9,104,211,166, 13, 9, 0,231,238,235,132,211,215,197,215,249, 99, 73,123,162,125, 83,119,228, 23,
-171, 48, 97,109, 34,142,198,231,255,110, 16, 89, 53, 53,210,209,209,177, 32, 51, 95,234,237,238, 32,194,199, 29, 28,208,117,113,
- 54,194, 91, 11, 33,228, 19,184,151,154,139, 6, 65,245,136,196,243, 7, 91,235, 69, 86,155,156,156, 28, 0,104, 13, 32,245,241,
-227,199,146,182,109,219,150, 24,209, 21, 1, 88, 42, 16, 8,102, 19, 4,193,180,105,211, 38,177, 89,179,102,101,174,174,174, 80,
- 40, 20, 80,169, 84,224,243,249, 80, 40, 20, 72, 79, 79,199,229,203,151,225,234,234,106,211,129, 42, 43, 43,131,163,163, 35,104,
-154,126,102, 78,138,162,136, 13, 27, 54,216,223,190,125,219, 62, 54, 54,214,123,210,164, 73, 79,154, 52,105,114,109,224,192,129,
- 15,189,188,188, 84, 55,110,220,192,197,139, 23, 81, 84, 84,132,118,237,218, 89,197,169, 86,171,193,229,114,161, 80, 40, 32, 20,
- 10,193,229,114,161,211,233, 64,211,116,133,248, 42, 43, 43,195,211,167, 79,193,231,243,161, 86,171, 95,198, 27,104, 21, 11, 85,
-117,195,111,181,177,104, 25, 11, 53, 43, 69, 86, 77,150, 40,139,195,157,197,197,197, 98, 23, 23,151,233, 0,114,106,170,139, 32,
- 8,112, 56, 28,240,249,124, 16, 4,129, 78,157, 58,225,211, 79, 63, 69,203,150, 45,145,156,156,140, 93,187,118,225,234,213,171,
-224,241,120, 21,229,173, 30,159,232,220,153, 35, 18,137, 46,190,255,254,251,161,179,102,205, 18,213,171, 87, 15, 73, 73, 73,254,
-223,125,247,221,244, 19, 39, 78,124, 32,147,201, 90, 27,238,118,213, 91,233,245, 67,130,229,195,133,189, 84, 42, 21,146,146,146,
-108,217,166, 10, 26, 52,104,144, 78,146,228, 67,154,166,207, 1,104,206, 48, 76, 39,130, 32,142,162,220, 47,209, 24, 50,134, 97,
-222, 35, 8, 66, 10,224, 38, 73,146,247,105,154, 78,103,237, 54, 44,172,184,175,244, 49,253, 79, 16, 68,220,146, 37, 75,250,152,
- 19, 87,102,174,205, 74,203,191,251,238,187,111,141,254, 63,139, 69, 53, 12,149,157,225, 59,235,173, 92,127, 11,173,184,184,184,
-234, 21, 8,141,143,226,246,237,188,212, 85,131,128,208, 86, 29,141,172, 67, 12, 18, 46, 95, 4,192,252,108, 85, 83, 36,125,196,
- 36,135,251,243,134,111,199,145, 27, 79,203,241, 56, 59, 31, 23,143,252,140,130,156,180,109, 0, 51, 9,169,177,210,103, 62, 18,
-245, 62,106,230,229,238,225,162,212, 48,160, 25, 0, 85,196,214, 75, 65,203, 70,141, 26,245,143,143,143,247, 80, 42,149,162,243,
-231,207,203, 99, 98, 98,114, 53, 26,205,105, 0, 23,244,101,174, 23, 20, 20, 68,232,133, 9,135,203,229, 10, 52, 26, 77,117,190,
- 11, 45,167,142, 26,126,126,233,134,173,162,135,183, 18,177, 58,246, 8,138,229,114,234,116,190,162, 31, 0,131,162, 63,121,189,
- 80,145,197,128,169,203, 35, 9, 72,236,121, 62,119,159, 42, 69,128,249, 33, 89,149, 74, 53,120,232,208,161, 18,131,200, 2,128,
-194, 82, 45, 87,174,210,114,218, 55,117, 71,171, 46, 17, 72, 56,181, 23,123,206,102, 33,200,211,238,108,125,251, 98,171,246,104,
- 65,126,206,134,149, 81, 27, 87, 46, 93, 48, 85, 48,185,151, 51,194, 91,243, 32,226, 19,112,178,227, 97,241,154,205,218,235,151,
-207,222,144, 72, 36,113, 0,250,229,228,228, 64, 34,145,148, 1,184,207,225,112, 82, 41,138, 50,231,212, 61, 23,128,119,116,116,
- 52,169,213,106,203,146,147,147,225,227,227, 3,111,111,111, 56, 59, 59,227,238,221,187,248,243,207, 63,113,239,222, 61,208, 52,
-141, 55,222,120,195,166,131,245,228,201, 19,220,184,113, 3,189,122,245,158, 84, 80,144,239,228,234,230, 46, 59,127,238,236,247,
-181,225,164,105,154, 0,128,208,208, 80,132,134,134,138,178,178,178,252,226,226,226,188, 22, 45, 90,148, 17, 16, 16,176, 67,161,
- 80, 84,178, 28, 88, 43,180, 12,226,194, 32, 2, 69, 34, 17,248,124, 62,164, 82, 41,242,242,242, 80, 90, 90, 30,180,233,226,226,
-242, 82,132,150, 5, 11,213,115, 43,255, 15,139,195, 42,195,157, 46, 46, 46, 67, 1, 76,183,178, 47,208,233,116,224,243,249,104,
-219,182, 45,162,162,162,112,245,234, 85, 28, 56,112, 0,254,254,254, 24, 49, 98, 4, 72,146,196,237,219,183,109,109, 34, 29, 31,
- 31, 63,189, 95,191,126,161,209,209,209,162,244,244,116,220,187,119, 15, 46, 46, 46,136,138,138, 18,142, 30, 61,186,193,169, 83,
-167,230,162, 60,248,165,122, 24, 69, 23,202,196,146, 1,205,155, 55,175, 82,196,199,199,199,249,143, 63,254,240,170, 16, 96,166,
- 17,137, 85, 81, 60,119,238,220,149, 33, 33, 33,171,244,195,133, 29, 1,216, 51, 12,211, 57, 54, 54,150, 0,128,240,240,112,134,
- 32, 8,195, 3,233,230,222,189,123,187,220,189,123,151,153, 63,127, 62,235,163,197,194,146, 22, 25,109,184, 38, 45, 9, 40, 91,
-132,154,177, 60,104, 55, 9, 0, 0, 32, 0, 73, 68, 65, 84,197,203,128,111,190,249, 38,116,201,146, 37, 87,158, 81,100, 25,191,
- 49, 49, 6,177, 85,241, 48,181, 56,100, 88, 97,251, 34, 37, 62, 94,238,110, 51, 70,180, 7, 77, 3, 58, 10,208, 81, 12,100,114,
- 5,146,110, 93,149, 67, 68,196, 90,213, 28,161, 96,217,162, 89, 19, 3, 19, 51, 73,100, 23,105,112,230,224, 70,166, 32, 39,173,
- 63, 82,247,142,124, 62, 34,107, 64,115, 31,111,175, 51, 59, 55, 46, 36,175,166,168, 65,209,229, 58,139,166,153,138,223, 47, 1,
- 62,158,158,158, 67, 46, 93,186,228, 41, 20, 10, 69, 15, 30, 60,160,247,238,221, 91,164,209,104, 78, 24,137, 44, 0,104,223,186,
-117,107,157,131,131, 3,100, 50,153, 70,163,209, 40,171, 17, 89,126,157, 91,182, 56,187,116,195, 86,145, 82,173, 70,137, 66, 5,
-142,187,151,169,200, 2,128,183,187, 52,244,245, 37, 68,142, 96, 0,164, 73, 53,217,150, 68, 22, 0, 8,133,194,110,227,198,141,
-171, 52, 47,158,135, 35, 79,103, 39,228, 81, 23,238, 20,210, 9,167,246,226,220,237, 66, 90,196,231, 80,158, 76, 74,160,181, 59,
-160, 56,243,206,134, 3,191,197, 29,255,122,206,178, 50,185,172, 20, 65,117,196, 40, 43, 45,193,226, 37, 75,181,241,241,231, 78,
- 79,159,244,249, 91,123,247,238,253, 14,229,206,224, 0,112,127,239,222,189,195,231,204,153,179, 29,127,167,121, 48, 69,246,144,
- 33, 67, 50,155, 54,109, 90, 18, 18, 18, 82,242,228,201, 19,220,185,115, 7, 69, 69, 69, 88,189,122, 53,146,146,146, 96,176, 8,
- 90,229,171, 82, 85, 32,161,168,232,169, 3,195, 48, 40,122,250,196,126,214,172, 89,206,181,225,164, 40,170,210,181,229,235,235,
-139,177, 99,199,242,229,114,185, 75, 70, 70,134,147,241, 58,107, 57,213,106, 53, 12,150, 33,134, 97,160, 86,171, 81, 82, 82, 2,
-181, 90,141,135, 15, 31, 86,136, 44,125,253, 47,205,162,101,248, 45, 18,137,242, 12,231,178, 97, 8, 78, 36, 18,229, 91, 42,255,
- 44, 48,170,139,209,255,182, 85, 28,214,216, 31, 43,143, 59,248,124, 62, 62,253,244, 83, 92,185,114, 5,201,201,201,224,112, 56,
-144,201,100,144,203,229,232,222,189, 59, 4, 2,129,173, 22, 45,134,207,231, 15,157, 57,115,166, 40, 53, 53, 21,133,133,133, 6,
-103,122, 80, 20,133, 73,147, 38,137,133, 66,225, 80, 91, 77,247, 57, 57, 57,239, 62,124,248,176,145,233, 39, 55, 55,183,196,216,
-167,176,182,136,141,141, 37,194,195,195,153,240,240,112,198, 32,184, 88,176, 48, 7, 11, 90,100,147, 37,139,214,243,176,138, 25,
- 44, 91,208, 7,136,212, 2, 6,145, 21,102, 36,188, 8,131,133,203,186,161,195,160, 1,255,243,118,119, 59, 21,189, 54,210, 33,
-238, 22,129,204,199,105, 40,200, 73, 71,235,183, 58, 35,233, 86, 34,104, 45,181, 15, 15, 99,107,246,228,172, 23,222, 48, 36,164,
-201, 23, 97,111, 53,195,178,184, 50, 60, 72,248, 3,197, 5, 57, 63, 34,109,239,190,231,114,132, 2,194, 91,120,123,185,157,218,
-190, 54,210,229,232, 29, 18,143, 31,167,225,224,246,149,140, 86,163, 42, 70,229, 72, 46,155,223,154,197,180, 90, 80, 86,156, 7,
-117, 41, 5, 17, 41, 23,217, 56, 72,145, 11,224,220,202,149, 43,187,182,107,215, 78, 48,100,200,144,220,162,162,162,131, 0, 46,
- 25,149,105,218,176, 97,195, 94, 81, 81, 81,222,143, 31, 63,198,137, 19, 39,114, 81, 30,250,111, 9,153,103, 19,111,173,251,115,
-251,230,169,226,192,198, 88, 61,243,107, 93,236,213, 59,239, 3, 56,106, 84, 38,164, 91,243,134,113,139,166,124, 73,210,215,127,
-199,141,244, 60,164,148,168,254,180, 68, 88, 88, 88, 72,200,229,242, 0, 23, 23, 23,227, 19, 18, 18,123,153,106,218,128,134,217,
-221,167,159,175,163,212, 80, 16,242, 72,102,194, 7, 1,217, 87, 14,198,186, 23, 42, 11, 9, 67, 52, 98, 77,248,108, 96,183, 15,
-214,198,236,255, 56, 46,238,240, 23, 26,149,178, 89,227,198,141,152,107,241,167,110, 76,159,244,121,207, 90, 30,113,135, 43, 87,
-174,144, 28, 14,167,146, 64, 55,182, 16,217,106, 41,178, 5,214,114,154, 10, 45, 3,116, 58, 29, 81, 91, 78,149, 74, 85, 33,180,
- 76, 31,238,230, 4,227, 63,209,127, 91, 44, 84,198, 67,134, 6,127, 58,165, 82,233,165,247,217,242,126,158, 22,173,103,137, 68,
-172,110,248,210,150,246,145, 36, 9,154,166,193,231,243,241,198, 27,111, 32, 46, 46, 14,110,110,110,112,114,114,130,147,147, 19,
-196, 98, 49,220,221,221, 43,132, 22, 73, 90, 29,165,195,168, 84, 42,127,127,127,127, 60,124,248, 16, 34,145,168,226, 35, 20, 10,
- 17, 26, 26, 10,153, 76,230,139,151,105,187,103,193,226,159,189,175,196, 25,139, 37,130, 32,226,102,204,152, 49,179,182,124, 51,
-102,204,152,105,206,194,245,140,130,171,146,117,139,107,172, 32,205, 42, 73,189,200,218,246,227, 2,167,253,127, 1,153,153,169,
- 56,190,103, 77,169, 86,163, 46,162,105,109, 64,202,189, 68,128,196,207, 86, 53,129,100,222,252,160, 87, 23,226,248,109, 53,164,
-197, 5,184,127,237,143, 52, 40, 4,223, 60, 55,145,229,237,113, 42,122,237, 2,151, 67,183, 8, 60,126,156,134,163, 59, 87, 75,
-181, 26, 77, 55,164,198, 94,123, 22,234,161,124,254, 7,252,186, 25,125, 70,117,204, 6, 69, 80, 24,154,116,247,189,252, 92,124,
-144,115,190,250,200, 48, 99, 20, 20, 20, 28, 92,185,114, 37,177,124,249,242, 48,165, 82,249, 43, 0, 99, 19,101,179,160,160,160,
- 65,155, 54,109,114,123,252,248, 49,239,252,249,243,178, 83,167, 78, 49, 0, 14,213, 96,113,153,214,125,228, 88, 78,203,122,190,
-227,174,167,101,189, 15,224,119,163,213,161,125, 90, 53,189,176,117,201, 92, 71,237,133, 88,148,229, 60,198, 55, 23, 50,165, 0,
-172,222,223, 90,173, 22, 37, 37, 37,208,150, 61,209,181,150,200, 74,230, 71,120,169,242,138,148, 92, 30, 45,215,133, 56,229,171,
- 78, 61, 73,225,216,217,217,217,180, 47,215, 46,153, 26, 3, 32, 38, 34, 34, 34,250,102,252,225,214, 18,137,228,112, 72, 72, 8,
- 1, 0, 22, 34, 12, 45, 33, 18,192,164,183,223,126,155,104,219,182,237,229, 85,171, 86, 29,171, 78,172,212,198,162, 85, 19,172,
-229,164,105,154,180,176,127,137,218,114, 26, 91,180,106, 18, 90, 47,211,162,101, 78,180, 24,139, 68, 99, 33,244,111,136, 58,172,
- 78, 76,217,210, 62,131,159, 28,159,207, 71, 98, 98, 34,234,214,173, 11,141, 70, 3, 71, 71, 71, 56, 58, 58,194,193,193, 1,165,
-165,165,224,241,120,176,177,207,180, 72, 36,202,184,115,231, 78, 35, 79, 79, 79, 80, 20, 85, 73,108, 61,120,240, 0,246,246,246,
- 89,182, 90,180, 36, 18,201, 31,250,168,195, 74,240,241,241,113,126, 30,251,213,216,146, 21, 30, 30,206, 14, 17,178,168,214,154,
-101,193,170, 85, 96, 98,137, 82, 27,253, 47, 64,121, 14,183, 62,250,223, 48,243, 91,109,102,217,147, 37, 75,150,156, 50,242,239,
- 42,120,198, 46, 24, 82, 60, 84,138,112,225,214,100,201,242,114,115, 61,181,101,245,124,167, 61, 9, 64,214,227, 84,156,217, 23,
- 85,162,163, 52,239,128,102,114,226, 79,236,139, 5, 1, 57, 82, 98,207, 88,119,139, 64,203,150, 77, 2,112,224,182, 22, 5,153,
- 15,192, 48,244, 54,228,199,200,159,249,232, 4,125,244,134,151,155,199,169,109, 81,243,157,247, 39, 18,200,124,156,138,227,123,
-162,164, 58,173,188, 43, 82,247, 37,212,150,246, 83,192,149, 99, 47, 90,215,191,115,203, 1, 1, 65,126,160, 25, 45,104, 62,131,
-143,166,121,112,239, 95,151, 31, 56, 39, 42,217, 67,151,209, 95,100, 93,178,206,129,174,172,172,236, 0,128,107,168,156, 94,161,
- 69,112,112,240,128,117,235,214,121,102,102,102,138,174, 95,191,174,216,184,113, 99, 62, 77,211,251, 1, 88, 51,148,250,245,245,
-180,172, 45,168,156, 47,167,197,212,145, 67,226,135,124, 50, 74,148,122, 34, 6,174,169, 73,152,114, 33,155,186, 95,164, 30,172,
-183,174,153,133,135,135, 7, 83, 88, 88,152, 94, 92, 92,220,200,222,222, 30, 79,158, 60,193,211,167, 79, 81, 82, 82, 2,149,244,
-169,206,157, 42,150, 17,186,167,224,241,120,200,127,172, 5, 69, 81,185,214, 90,179, 0,184, 70, 70, 70,126, 70,211,180, 33, 35,
- 98,165,232, 66,163,114,134,243,161, 81, 68, 68, 68,180, 81,212,161,177, 51,188, 33,189, 3,161, 79,239,208,238,247,223,127,191,
-219,179,103,207, 76,115, 98, 69, 40, 20,218,236, 40,109, 41,138,177, 54,156,150, 44, 90,166,203,109,225, 52, 12, 95, 26,156,224,
- 77,151, 27,192,225,112, 64,211, 52,172, 8,170,248, 71, 69,139,113,116, 96,109, 68,142,201,177,169, 54,113,104, 45, 35, 17,159,
-171, 69,203,112, 44,248,124, 62,126,251,237, 55,124,242,201, 39,160, 40, 10,118,118,118,112,112,112,128,189,189, 61,246,237,219,
- 7, 67,250, 7, 91,244,171, 86,171,253,101,201,146, 37, 51, 55,108,216, 32,102, 24, 6, 2,129,160, 66,104,205,159, 63, 95,161,
-209,104,126,177, 74,104, 25, 50,190,211,204, 29,123,123, 93,181, 81,135,230,182,177,224,175,229, 18, 25, 25, 57,156,166,233, 15,
- 96,146,194,193,164, 92,165,212, 15,108,122, 7, 22, 86,220, 79,174,254,139,155,103, 16, 88,132,145, 37,171, 66,112,145,213,137,
- 23, 79, 87,151, 83,155, 87,207,119,218,113,149, 64,106, 74, 10, 78,255,186,166, 92,100, 61,218,243, 23,210, 99,243,144, 26,219,
- 1, 41,177,239, 90,253,246, 68, 16, 45,235,120,185,224,169,140,134,180, 48, 3, 96,112,253,121,136, 44, 79, 87,207, 83, 63, 69,
-205,119,222,251, 23,137,212,212, 84, 28,223,179,166, 68,167, 83,190,243, 44, 34,107, 40,159,255, 65,112, 67,191,228,217,159,125,
- 48,160,109, 3, 31,184,103,220,197,161, 17, 3,176,112,215,135,112,244,228,224,205, 94,142,248,116,177,207, 0, 73,168,240,161,
-164, 3, 62,176,129,218, 88,100,181,172, 95,191,254,128, 75,151, 46,121, 52,111,222, 92,116,239,222, 61,229,198,141, 27,243, 21,
- 10,197, 49, 0,137, 54,112, 26,139,172,150, 51, 70,143,136, 95,186, 57, 90, 68,242, 5, 88,246,203, 33,140, 63,155, 73, 29, 78,
-151, 70,160,242,176,162, 89,168, 84,170, 19, 81, 81, 81, 42,146, 36,241,244,233, 83, 20, 22, 22, 34, 63, 63,191,226,187,184,184,
- 24, 28, 14, 7, 39, 79,158, 84, 75,165,210, 75,214, 54,240,226,197,139,245,179,178,178, 66,114,114,114, 90,235, 63,247, 80, 30,
- 93,232, 96,180,172,117, 78, 78, 78, 24,128,171,134,229,153,153,153,245, 46, 95,190, 44,169,137,223,209,209, 17,124, 62,191,146,
- 69, 75, 40, 20,194,219,219, 27, 58,157, 14,187,119,239, 6,128,167,213,113,240,249,130, 28,146, 36, 64, 51,180, 74, 36, 18,209,
- 18,137,196,172,192,178,133, 83,143,204,247,222,123, 79,153,144,144, 96,214,162, 85, 27, 78,134, 97,228, 61,122,244, 64,118,118,
- 54, 68, 34, 81,197,195,218, 32,168, 72,146,132, 80, 40, 68,110,110, 46,198,140, 25, 3,134, 97,228, 47,250,206, 99,236,211,164,
- 23, 67, 4, 0, 66, 47,132,170,248,105, 89,235, 3,101, 24, 26,100, 24, 6, 6,193,101,178,190,162, 46,107,178,183,155,248,116,
-141, 46, 46, 46, 94, 90,222, 28,102,163,201,247, 38, 27, 30, 10, 21, 66, 43, 41, 41, 9,209,209,209, 40, 46, 46,134, 64, 32, 64,
- 81, 81, 17,182,110,221,138, 59,119,238, 64, 32, 16,192,176, 47,172,213,111,109,219,182, 93,122,238,220,185, 59,131, 7, 15, 86,
- 36, 38, 38, 66,161, 80, 32, 49, 49, 17,239,190,251,174,242,194,133, 11,201, 10,133, 34, 18,214, 12, 29, 26, 50,190,235,167,215,
- 81,169, 84,184,126,253,186,217,143,165,109, 76,145,156,156, 28, 64, 81, 84, 35,134, 97, 58, 50, 12,227, 4,125, 10, 7,253,127,
-227,207,123,250,117, 78, 12,195,116,164, 40, 42, 56, 57, 57, 57,128,149, 19, 44, 94, 81,156, 49, 18, 91,140,145,200, 58, 83,189,
- 69,139, 38,163,182,172, 89,224,244,203, 21, 18,143,211,147,113,237,200,186, 18,138,214,190, 99,227,116, 56,221, 96,148,107, 67,
- 36,182,111, 70, 19,229,225,204,210,194,199, 0,195,169,141,208,170,196, 9,154,140,218,186,102,190,243,206,107, 4,178, 31, 63,
-194,133,131,107, 75,116, 58, 85, 87,164,196, 94,175, 13,231, 80, 62,127, 14,143, 67,204,238,209,254,127,252, 14,255,107, 8,251,
-252, 52,228,102,102, 99,119, 82,193,211,228, 34,213,168, 11,132, 6,233,143, 84, 91,122,125,230,230,230,234,195, 67,159,207,221,
-221, 46, 29,146, 30, 32,120, 50, 13,163, 97,150,228, 92,168,152,150,162,114, 59,171,194,199,209,209,113,240,181,107,215,156, 68,
- 34,145,248,218,181,107,244,198,141, 27,159, 40, 20,138, 35, 0,226,173,234,123, 85,248,181,105, 24,116,230,219,181,155, 69,101,
- 50, 57,100,106, 13,132,222, 18,106,127,252,173,254,176,156, 0,179, 18,167, 80, 40,220,185,115,231,206, 94,157, 58,117, 10,104,
-214,172, 25,249,244,233, 83,148,149,149, 85, 56, 87,123,122,122, 34, 41, 41,137, 78, 77, 77,205, 22, 10,133,187,172,109,231,219,
-111,191,157, 74,146,228, 61,253, 48,218, 61,152, 68, 23, 26, 21,109,148,147,147,211, 70, 34,145,156, 1, 96,103, 20,117,104,204,
-105, 72,239, 48, 19, 0, 73, 16,196,213,196,196,196,178,158, 61,123, 66, 44, 22, 67, 38,147,193,223,223, 31, 58,157, 14, 71,142,
- 28, 65, 66, 66,130,140,166,233, 51,102,196,107,165,118, 42,149, 10,127, 0,164, 66, 46,127, 99,248,240,225, 97,147, 39, 79,174,
- 20,146,238,229,229, 5, 55, 55, 55,155, 56, 1,224,233,211,167, 77,126,255,253,247,137,137,137,137, 95,247,234,213,203,121,230,
-204,153,194,250,245,235,131,162, 40,178,182,156, 69, 69, 69,206,215,175, 95,255,190, 67,135, 14, 95,246,236,217,147,251,237,183,
-223,194,217,217, 25, 20, 69, 65, 44, 22, 67, 42,149, 34, 50, 50, 18,231,207,159,215, 49, 12,179,182,164,164,100,138,141,231, 18,
-158,245,218,180,100, 1,178,148,146,193, 66,249,127,188,157, 38, 62, 93,208,167,112,152,110, 33,131, 61,172, 61,231, 13, 66,139,
-195,225, 32, 45, 45, 13, 27, 55,110,172,146, 71,203,144,254,193, 2,183,185,190, 51,167, 79,159,166, 8,130,120,235,218,181,107,
-211, 63,254,248,227, 81, 50,153,204,207,222,222, 62, 91,171,213,254,172, 80, 40, 22,163,220, 31,149,111,203, 61, 68, 38,147,165,
-155,139, 58, 52, 45, 3,184, 84,203,105,146,222,161, 82, 10, 7,147,109, 42,165,126, 48,147,222,225, 31, 63,238, 44,231,191,146,
-243, 85, 23, 91,150, 19,150, 86, 65,203,209, 60,158, 66,219,252, 92, 50,241, 44, 34,171,170,181, 68, 41, 79,158,187, 51,227,127,
-106,149, 18,178,146,188,251, 72,219,157,255, 76,221,210,183,243,108, 50,129,180,212, 71,184, 18,183,182,188,157, 41,177,181,110,
- 39, 1,124,179,254,104, 44,159,112,118,195,141,137,159, 32,187, 88,134,163, 41, 69,123, 24,185,234,139, 95,128, 34,156, 7, 72,
-157,234,220,214, 89,185,235, 58,126,228, 60,192,195,151,135, 21, 83,127,134,104,134, 59,255,205,174,157,108,153, 3, 49, 87, 36,
- 18,157, 91,189,122,117,183,142, 29, 59, 10, 35, 34, 34,204, 57,200,219,138,204,171, 15, 30,173, 63,188,225,135,169,238,205,219,
-225,199, 57,211,168,157,241,183, 76,163, 16,171, 69, 72, 72, 8,117,241,226,197,201, 99,198,140, 89,209,173, 91,183, 58,239,191,
-255,190,192,223,223, 31, 66,161, 16,143, 30, 61,194,185,115,231,212, 41, 41, 41,217,114,185,124,114,139, 22, 45,108,201,113, 86,
- 52,119,238,220,165,250, 58, 8,253,112, 97,107,232,163, 11, 13,133,244, 73, 75, 91, 3,176,155, 63,127,254,199, 0, 96, 33,236,
-123, 46,128, 13, 0,184, 12,195,228,198,196,196,188,117,240,224,193,183, 38, 77,154,196,239,213,171, 23, 46, 93,186,132,227,199,
-143,107, 52, 26, 77,188, 94,184, 90, 59, 85, 14, 13,224,186, 78,167,187,181,108,217,178,183, 56, 28,206, 92,195,138, 59,119,238,
- 96,219,182,109,181,225,212, 1,248, 62, 47, 47,111,125, 76, 76,204,220, 19, 39, 78,140, 28, 62,124,184,147, 86,171, 69, 82, 82,
- 18,126,250,233,167, 90,113,150,148,148, 76,244,240,240,152,125,228,200,145,159,143, 29, 59,214,111,216,176, 97,228,248,241,227,
- 17, 21, 21,133, 95,127,253,149,166, 40,234, 32,143,199, 27, 94, 88, 88, 40,123, 25,119, 29,253, 48, 92,182,141,115, 29,214,200,
-251, 44, 67,131, 86, 34,231, 89, 9, 12,253,232,220,185,115,133,149,209, 96,133, 51, 46, 67, 16,132,205, 67,135, 0, 92, 24,134,
-161, 1,172, 69,249,252,162,198, 89,225, 57,248, 59,115,188,181,140, 77,115, 84, 46,119,160, 66, 82,245,147, 74,187, 0, 12,154,
-214,192, 86, 60,119,238,220,149,243,230,205, 91,105,154,194,193,184,144,105,234,135, 5, 11, 22,128, 77,239,192,226,117,133,121,
-161,117,125,147, 86, 27,216,127,230,234,111,167,205,211,105,213, 37, 12, 52,225,120,180, 47,241, 89, 43, 99,104,102,198,201, 29,
-243,163,192,160,136,161,116,211,159,185,245,255, 80, 59, 9,103, 55,148, 70,142,197,175,183,179,153, 92,153,246,195, 95, 52,154,
- 74,214,160,114,159, 44,122,224, 41,101,209,110,215, 58,188,253, 19,223,113, 39, 14, 63,253,216,230,122,242,243,243,127, 91,185,
-114, 37,249,195, 15, 63,132,201,229,114, 83, 7,249,218, 98, 90,223,113, 51, 56,111, 6, 7,140,187,242, 48,253, 3, 88, 49, 92,
-104,138,183,223,126, 59,231,238,221,187, 67,142, 29, 59, 54,248,236,217,179,221,100, 50, 89, 0, 65, 16,176,179,179, 75, 87,169,
- 84, 39,132, 66,225, 78, 27, 69, 22, 0, 96,222,188,121,204,130, 5, 11,136,187,119,239, 50, 28, 14,231, 79, 0,169, 28, 14, 39,
-205,216, 9,222,120,185, 97,155,249,243,231, 91,243, 64, 60, 91, 86, 86,150, 16, 25, 25,217, 41, 50, 50,242, 13,189, 85,232, 44,
-254,246,249,178, 21, 90, 0,103,249,124, 65, 54, 65, 16,126,124,129, 80,118,241,226,197, 19,207,200, 41,215,104, 52,211, 31, 63,
-126,188, 98,197,138, 21,139,237,237,237,219,220,185,115,231,207,103,225,212,139,168,254,110,110,110,117,162,163,163,247,110,221,
-186,181, 29,151,203,189, 68, 16, 68, 68, 73, 73,201, 75,157, 84, 90, 63, 65,244, 2, 27,230, 58,180,138,247,121, 39, 41,253, 39,
-132, 27, 69, 81,101,179,103,207,206, 55, 21, 94,166,214, 43,195,127,125, 42, 23,107,246,169, 45, 81,148, 53, 8, 23,162, 12, 0,
-202,231, 46, 44,159, 86,199,218, 73,165, 1, 40,106,186,206, 73,146, 60, 8,224, 62, 73,146, 15, 77, 3, 93,140,215, 45, 88,176,
-160,166,235,156, 5,139, 87, 26, 86,220,217,230,147,192,252,218,122,210,190, 64,115,229,243,105,231, 16, 62,127, 1, 9, 76, 5,
- 64, 48,192,138, 95, 52,154, 89,213,109,232,243, 54, 22, 51, 4, 38,233,119,230,183,185, 23,176,168, 22,125,247,133, 21,243, 15,
-218,200,217, 24,213, 79, 40, 91,133, 51, 60, 60,156, 99,225, 97, 94,105, 82,105, 75,136,141,173,200,226,111,169,157,198,231,155,
-227,229,203,151,235,180,109,219, 54, 7,149,157,254,205, 45,103,108,236, 59, 7, 0,245,156,247,231, 43,193, 25, 20, 20, 36,120,
-244,232,145,250,223,117,109,178,156,255, 74, 78,151, 38,117, 65,224, 51, 24,231, 14,170,214,162,101, 36,208, 24,230, 39, 20, 39,
- 61,182,208, 78,195,117,238,146,156,156, 28,208,160, 65,131,116, 0,197, 38,237, 48,183,142, 97,143,209,127,158,211, 28, 70,163,
-242, 84,116, 44,204, 28, 8,150,147,229,100, 57, 89, 78,150,147,229,100, 57, 89,206,218, 10,173, 87, 26, 36, 88,176, 96,193,130,
- 5, 11, 22, 44, 88,252, 35, 32,170, 81,165,182,152, 4,107,163,108, 79,176,156, 44, 39,203,201,114,178,156, 44, 39,203,249,159,
-227,172,137,219,120,251, 87,117,232,240,133,181,155, 53,171,178,156, 44, 39,203,201,114,178,156, 44, 39,203,249, 44,130,229,149,
- 6, 23, 44, 88,176, 96,193,130, 5,139, 87, 6,221, 26, 66,194,165, 64,254,254,200,170, 32,170, 26,209, 51, 8,190, 0,240,188,
-248,254,163,144, 0,232,109,244,255, 48,244,145,241,172,208,122,117, 17, 12, 96, 38, 0,227,185,200,174, 0, 88, 98, 82,110, 7,
- 0,227, 9, 9,101, 40,159, 39,240,161, 45,149,145, 36,185,164, 83,167, 78, 95,156, 63,127,254, 7,157, 78, 23, 89,139,246, 6,
- 72, 36,146,165, 4, 65,180, 2,192, 35, 8,226, 81, 94, 94,222, 18,157, 78,247, 44, 81, 43,129, 62, 62, 62,223, 1,248, 31, 73,
-146, 60,130, 32,146,243,242,242, 22,233,116,186,211,207,192,233,232,237,237,221,158, 97, 24, 31, 0, 28, 30,143,247, 36, 43, 43,
-235, 50,106,153, 91, 41,124,126, 18, 95, 42,211,241, 0,192,201,158,171,141,157,223, 68, 99,237, 50,246, 20,103,193,226,191, 13,
-166, 60, 50,185, 18,222, 13,194, 98, 70,135, 41, 20, 64,244,168,143, 53,127,164, 98,138,165,237, 9, 51, 81,205,166,156,239, 6,
- 97, 49,197,148,115,244, 8,194,247,127, 60, 66,181,145,246,214,112, 26,176, 9, 32, 71, 91, 49, 75, 1, 97, 93,244,245,191, 29,
-189, 81,121,168,176, 98,232,176, 90,161, 53,176, 33, 36, 20, 23,220,216, 36, 24,194,120, 29, 1,188,161,127,200, 63, 68,121,174,
-162,210,103,108,220,171,194,249,111,195, 92,134, 97,134, 84, 58, 89,205,228, 33,122,231,157,119,222, 63,118,236,152,157, 97,190,
- 59,154,166, 33, 22,139,117, 0, 70,216, 80,151,215,192,129, 3,103,108,217,178, 5, 3, 6, 12,152, 29, 23, 23,183, 18, 64,153,
-181, 27,187,186,186,134,187,184,184, 68,109,222,188,217,179, 93,187,183, 8,129, 64,128, 71,143,146,253,198,140, 25,211,236,238,
-221,187, 7,243,243,243, 71,217,218,121, 55, 55,183,161, 46, 46, 46, 43, 54,110,220,232,209,161, 67, 7, 16, 4,129,132,132, 4,
-191,137, 19, 39,190,145,145,145,177, 43, 47, 47,239, 75, 91, 57,221,221,221, 27, 58, 59, 59,119,249,241,199, 31,197,237,219,183,
-135, 72, 36, 66, 98, 98,162,195,231,159,127,238,147,149,149,149,148,151,151,119,198, 86,145,117, 51,225, 80, 63,157, 70,181, 12,
- 0,184,124,225,180,118, 43,226, 15,221, 60,117,168,111, 77,203,194,231, 39, 29, 96,197, 22, 11, 22, 44,140, 49,180, 14,124, 24,
- 6, 83,143,253, 52,135, 4,128, 30, 35, 23,142, 31, 90, 7, 63,252,146,109,121, 14, 91, 27,249,166, 12,247, 69, 84,116, 22,242,
-158,165,157,155, 0,114, 34,151, 59,254,205,182,109, 61,190,186,112, 33, 89, 3,252,252, 31, 57, 68,102,135, 57, 45, 10,173,254,
- 77, 16,169, 43,183,152, 16, 61, 27, 96,215,241, 84,206,185,119,222,121,167,193,167,159,126, 74,180,108,217, 18, 9, 9, 9, 13,
-119,237,218,213,251,240,225,195,201, 20, 69, 37, 0,184, 13,235,179, 90,243, 0,132,114, 56,156, 86,255,114,206,127, 51,236,245,
-226, 42, 15,127, 39, 58,173,146,240,244,228,201,147,191,113,185, 92,131, 69,235, 77,153, 76,230,109, 98, 5,179, 6,245,180, 90,
- 45,238,221,187, 7,146, 36,121, 0,234,163,234,148, 26,150,224,103,103,103,183, 46,254, 74,130, 59,193, 21,163, 72, 9, 64,169,
-129,192,193, 27, 91,182,197,184, 77,158,240,101,255,211,167, 79,159, 43, 45, 45,221,110, 67,123,234,219,219,219,175,188,113,227,
-134,187,157,157, 29,104,154, 70,105,105, 41,124,124,124,176,121,243,102,151,201,147, 39, 15,145, 74,165,167,149, 74,229,175,182,
-136,115,103,103,231, 46,183,110,221, 18, 27, 38,148, 86,171,213,240,243,243,195,142, 29, 59,132,227,199,143,111, 82, 92, 92,156,
-169, 86,171, 83,172, 37,148,202,116, 60,157, 70,181, 44,122,237,252,186, 0, 48,252,203,249,203, 4,165, 78, 71,172, 89, 38,149,
-233, 14, 3, 96,133, 22,139, 23,141, 86, 30, 30, 30,177,133,133,133,103, 0,140,194,243,177, 52, 52, 20,137, 68, 45,104,154,246,
- 33, 73, 18, 28, 14, 39, 87, 38,147,221, 0,240,160,182,132,238, 65,157,251, 66,104,247, 9, 24,250, 13, 18, 0, 65,146,137,148,
- 70,190,237,201,131,211,135,158,137, 83, 32, 30, 9, 48,111,144, 0, 77,144,228, 13, 90, 39,223, 92,120,239,244,209,127,203,193,
-185, 84,130, 70, 65, 62,214, 79,140,249, 60,248, 6, 5, 66, 66,210, 32,119,164, 89, 63,172, 56, 14,232, 53, 97,194, 4,159, 47,
-191,248,130,248,100,196,136,224, 51,231,207, 19, 97,182,204, 86,240,106,194,162,227,187, 89,161, 21,222, 4,174, 12, 48,125, 87,
-212, 76,146,203,225, 16,131, 39, 44, 25,178,117,237,247,100,247,190, 17, 21,195, 39, 29, 59,118, 68,199,142, 29,137,101,203,150,
- 5,255,249,231,159,193, 59,118,236,208,197,199,199,223, 0,176,219, 82,101,239, 6, 65, 65, 3, 34, 62,143, 43, 27, 60,103,251,
-198,182,109,219,254,159,189,243, 14,139,226,106,219,248, 61,219,251, 46, 11, 11, 75, 71, 84, 58, 54,136, 98, 87, 44,216, 80, 44,
-137, 93, 99,124,237, 45,209, 68, 99, 98, 52, 38,182,216, 98, 84,140, 26,107,236,250, 26,123, 47,177, 87, 80, 64,197, 74,103, 89,
-154,244,178,253,124,127, 0,126, 72, 40, 11,152,215,148,249, 93,215, 92, 11,103,103,238, 61,211,206,220,243,156, 6, 30,143,135,
-250,104, 2, 64,247,198,140, 24,182,101,195,136, 97,211,230,199,183,110,221,150,188, 11,205,191, 17,119,129, 55,147, 90,203,157,
-156,156,218, 25, 12, 6, 62, 0,176, 88,172,226,196,196,196,105, 40,153, 27, 16, 0,142,154, 76,166,126,181,208,102, 0, 88,208,
-175, 95,191,121, 83,167, 78,133,179,179, 51,166, 79,159, 14,189, 94, 31,118,250,244,233,249, 0,150,161,134,155,199,198,198,102,
-254,134, 13, 27, 44, 89, 92, 17,252,230,196, 34, 37,219, 0, 0, 16,243,128, 99,147, 8,166, 79,159, 46,189,127,255,254,162,218,
- 24, 45, 27, 27,155,239,126,249,229, 23, 75,161, 80, 8, 66,200,155,185, 24,243,243,243,145,159,159,143, 41, 83,166, 72,159, 60,
-121,242, 67,109,140,150, 82,169,108,183,126,253,122, 1,159,207, 71,126,126, 62, 71,167,211, 81,121,121,121, 40, 44, 44, 36, 90,
-173, 86, 55,109,218, 52,222,163, 71,143, 58,167,164,164,196,128,230,175, 2, 19,192, 0, 54,155, 61,176,113,227,198, 31,188,120,
-241,226,129,193, 96, 56, 12,224,240, 59,120,153,234,106,111,111,191, 88,165, 82,173, 7,176,235,223,114, 64,149, 74,229,225,155,
- 55,111, 58,109,216,176,225,227, 85,171, 86,157, 2,240,223,122,200,113, 56, 28,206,160, 78,157, 58, 57,141, 30, 61,154,171, 84,
- 42,161,209,104, 16, 27, 27, 43, 61,112,224,128,203,195,135, 15,147, 74,103,196, 48,251,133,194,202,189,173, 24, 44,233,190, 54,
-109,219,181, 31, 60,104,128, 68,105, 37, 67,145,214,136, 23,241, 41,206,103, 78, 29,235, 20,205, 17,220,212,233,114,134,102, 62,
-191,153, 95, 91,205,192,192,174,237,187,117,237, 42,145, 89,200,144, 83,160,195,171,184,100,151,203,231,143,119, 96,177, 4, 87,
- 77,148,126,100, 90,212,249,194,247,121,110,166, 3,172, 2,190, 85,179,230,109,253,238, 7,141, 93,244, 1, 33, 4, 12,130,181,
- 21,163, 89,211, 1,214,218,146,105,191,106,165, 7, 66, 8, 69, 97,101,249,104, 86,143, 70, 88, 76, 8, 62, 7, 3, 84,143, 26,
-170, 41,203, 8, 2,120, 22,150,150, 1, 19,199,143,167,242,114,115,241,240,225,195,194,138, 38,235, 71, 7,112,174, 50,208,224,
-104, 98,221,205,246, 95, 52,154, 85,105,213,161,217,227,104, 9,133,194, 74,211,101, 50, 25, 2, 3, 3,177,116,233, 82, 22, 0,
-255, 10, 95,191, 61,201, 42,192, 59,177,113, 46,100, 34, 30,195,217,217, 89, 34,149, 74,235,173, 9, 0, 32, 38,215,182,206,164,
-215,189, 95,191,250,248,194,158,213,190, 5,121,217,236,138,171,136,197, 98,120,120,120, 96,222,188,121,230,105,214,159,255,169,
-166,173,173,173,103,135, 14, 29,252, 47, 93,185, 98,161, 82,169,120, 42,149,138,119,238,210, 37,139, 54,109,218,248,219,218,218,
-122,190, 57, 84,132,212, 38,159,223,135,134,134,206, 63,122,244, 40,163, 67,135, 14,144,203,229, 8, 12, 12,196,169, 83,167, 88,
-171, 86,173, 90, 2, 96, 94, 77,249,100, 48, 24,237, 59,116,232, 64,129, 16,168,115, 12,184,179,212, 19, 15, 87,122, 33,175,152,
-224,117, 78, 46,138,138,138, 33, 20, 10,249, 40,169,238, 53,119,223,219,182,105,211,134, 2,240,198, 92,229,229,149, 44,249,249,
- 5,208,106,117,224,241,120, 18, 0,124,115, 53, 9, 33,182,237,218,181, 3, 0,232,116,186, 55,111,120,217,217,217, 84, 78, 78,
- 14,180, 90, 45,216,108, 54, 7, 53,183,107,124,163, 41, 21,177,244, 44, 14,111,246,232, 41,223, 38,142,158,242,109, 34,139,195,
-155,173,149,228, 26,205, 73,147,138, 88,250,247,124,125, 90, 51, 24,140,109,141, 26, 53,122,194, 96, 48,118, 2,176,173,167,102,
- 75, 0, 75, 4, 2,193, 5, 47, 47,175, 68,161, 80,120,169,212,168,183,169,163, 38, 87, 40, 20, 94, 90,178,100,201,193, 7, 15,
- 30, 12,190,120,241,162,107,100,100,228,160,229,203,151,239, 19,139,197,215,240,118,187,196, 90,223,155,174,174,174, 91,239,220,
-185,211,178,109,219,182, 91, 0,240,222,209,253,206, 4,208, 2,102,205,200,241, 94,206,187,189,159,159,159, 19,159,207, 71,183,
-110,221, 0,160,115,125, 52, 57, 28,206,160,121,243,230, 53,250,230,155,111,184, 41, 41, 41,184,116,233, 18,238,222,189, 11,131,
-193,128, 73,147, 38,241, 70,143, 30,221, 80, 34,145, 12,170, 85, 62, 89,210,125, 51, 62,253,172,231, 23,211,199, 73, 34, 18,116,
-216,126, 33, 1, 71,110,165, 32,173,144,139,190,131, 70,203,122,132, 12,233,193,229,201,246,213, 86,243,203, 57,115,122,142,255,
-100,184,228,113,138, 9,199,110,171,113,251,105, 14, 12,108, 11,244, 30,244, 31,121,243,118, 61,251,176,192,222,241,190,207,209,
- 47, 64,235, 25, 51,102, 88,207, 94,185,251,134,125,203, 1,107,211,179,208,161,188,241,113, 7, 44, 44, 69,162, 1, 79, 59,117,
- 26, 39, 40,153, 47,182, 90,205,183,244,252, 67,214,165,101,161, 99,249,246, 89, 29, 45,225, 86, 90,173,200, 60,183,237, 27, 6,
-161, 48,125,132,253, 91,229, 64,165,249,252, 29, 24, 60,227,179,207,216, 50,185, 28,161,161,161,208, 20, 20,188,213,102,182,171,
- 19,122, 94, 16,178,146, 26,122, 57, 62, 9,116,161,174,253, 3,223, 87,198, 87, 25,209, 58,113,226, 4, 9, 14, 14,166, 0,224,
-208, 19,100, 13,242,198, 15, 67,166, 46,153, 71, 49, 40,210,192,183,237, 99,135, 70, 62, 5, 86, 86, 86, 40, 44, 44,132, 70,163,
- 1,135,195, 65,113,113, 49, 18, 18, 18,112,251,246,109,200,229,242, 90,229, 36, 55, 55, 23, 98,177, 24, 98,177,248,157,104,206,
-253,184, 27,239, 85, 98, 58,239,236,237,223, 59,253, 52,249,191,173, 27,181,232, 28,217,117,200,244, 40,169,181,125,113,100,100,
- 36,110,222,188,137,172,172, 44, 4, 4, 4,252, 83, 78,230,221,210, 54, 89,119, 1,200, 27, 55,110,236,120,246,194, 85,121,126,
-177, 73, 26,151,170,103,155, 76, 38, 8,133,118,134,253,135,142,229, 12, 30,212,151, 82,171,213,105, 0,238,150,154,219,154,230,
- 84,228, 3,240,252,240,195, 15,191,156, 60,121, 50, 94,190,124,137,113,227,198, 21,221,189,123, 55,179,109,219,182, 86,191,252,
-242,139, 96,230,204,153,184,114,229,202,130, 19, 39, 78,252, 6, 32, 22, 64,165,115,181, 17, 66, 56, 28, 14, 7,134, 82,219,160,
- 51,154,222,248,251,220,220, 92,144,162, 44,112, 56, 28, 38, 0,107,152,217,142,206,100, 50,113,216,108,246, 27,147,149,144,154,
-139,132,180, 66,228,230,107, 81, 84,100,128,182,136,128, 41,180, 98, 1,113, 74, 0,113,230, 70, 71,248,124, 62, 12, 6, 3,242,
-242, 74,178, 81, 22, 41,211,106,181,200,201,201, 1,147,201, 20, 3,144, 2,120,109,142, 96,105, 35,247, 35,165,213,128,184,183,
-187,159,226,197,201,185,111,165, 73, 69, 44,253,161,153,222, 76, 43,199,230,215, 91, 12,222,225,245, 38,237,253,182,207,226, 89,
- 91, 91, 95, 62,120,240,160,183,155,155, 27, 98, 99, 99,189, 62,250,232,163,128,148,148,148, 22,168,253,156,140, 66, 6,131,241,
-195,232,209,163, 39, 15, 27, 54,140,114,119,119, 7,139,197,130,193, 96,112,124,249,242,101,224,129, 3, 7,230,108,221,186,245,
- 23,163,209, 56, 11,230,183,251, 99,112,185,220,253,155, 54,109,234, 24, 16, 16,128,157, 59,119,226,238,221,187,166,150, 45, 91,
- 50, 70,141, 26, 5, 23, 23,151,128, 81,163, 70, 29,209,104, 52,189,235, 24,217,114,105,211,166,141, 19,147,201, 68,219,182,109,
- 57, 55,111,222,244, 3,112,179,158,199, 84,236,232,232,120,165,115,231,206, 45, 46, 92,184, 16,174, 86,171, 59,215, 98,127, 1,
- 32,196,222,222,126,185, 76, 38,147,215,162,140, 45, 76, 78, 78,254, 28,192, 33, 51, 55,105,237,239,239,143,248,248,120,120,122,
-122,130,195,225,180,209,233,116, 19, 0,244, 4,240, 53,128, 39,181,200,175,123,215,174, 93,157, 58,119,238, 76, 29, 58,116,232,
- 77,251, 80, 6,131, 1,131,193, 0, 14,135,131,214,173, 91, 51,194,194,194, 28,238,221,187,231, 14, 51,170, 17,173, 26,117,238,
-219,182,125,167,246, 29, 3,154, 49, 86, 29,122, 1,163,201, 8, 38,101, 0,139, 50,193,164,231,129,199, 97,194,221,247, 3,230,
-211, 71, 17, 1, 90,141,174,111,230,243, 11,199,205,209,236, 25,212,189,131,183,167, 59,227,167, 35,175,144,157,252,196,152, 28,
-125, 53,131,193,100,192,219,191,139,194,221,167, 5,179, 69, 64,103,182, 42,246, 81, 96,113,113,199,110, 89, 47,175, 94,120, 31,
- 55,228, 66,128,233,232,160, 24, 16,220,189, 51, 39, 69,165, 42, 56,112,232,120, 84,161, 30,183, 1,224, 10, 64,245, 6,154, 53,
-109,213,170,211, 47,203,150, 89,217,217,217,177, 71, 14, 27,102,216, 28, 30, 30,142, 42,170,126, 23, 2, 76,133,173,109,183,137,
- 19, 39, 50, 83, 84, 42,114,224,240,201,200, 50, 61,148,188,165, 52,109,230,232, 21,140,130,167,181,170,166,236, 11,112,149,182,
-182,222, 19, 38, 76,128, 90,165,194,206, 93,187,242,139,129, 91,101, 81,172, 99, 76,172,247,105,100, 59,102,246,127,250, 81, 78,
-118, 10, 76, 92,176,185, 77,160, 46,173, 17, 82,254,255,252,151,247, 34,127, 99,147, 53,190, 82,163, 85,145,255, 62,193,124, 9,
- 7,174, 7, 14,236,101,164,231,233, 10, 94,190,124, 9,133, 66, 1, 59, 59, 59,200,100, 50, 60,126,252, 24,151, 46, 93,194,179,
-103,207, 96, 50,153,208,188,121,243, 90,229, 38, 35, 35, 3, 17, 17, 17,144,203,229,239, 76,179,145,147, 53,166, 58, 89,115, 82,
- 51,115, 57, 23,238, 62, 11,216, 60,119,144, 15,195,107,208,214,242,147,196,106,181, 90,252, 67,120,211,187,208,201,201,169,221,
-246,237,219, 57, 26, 3, 36,238, 19,110,173, 40, 40, 54,138, 0, 64,196,103, 22,132, 45,247,152,245,253,247,223, 23,124,242,201,
- 39, 94,137,137,137, 75,205,136,245, 47,238,218,181,235, 23,132, 16,246,140, 25, 51, 0, 0,163, 71,143,206,189,125,251,182, 59,
-128,180, 75,151, 46,217,143, 29, 59,246,249,229,203,151,133,159,125,246, 25,211, 96, 48, 60,102,177, 88,228,196,137, 19,223, 1,
-248,246, 15, 79, 68, 6,227,126,120,120,120, 3,123, 23, 15,184, 88, 49,208, 97,222,179,146, 2, 78,104, 66, 82,220, 43, 68, 71,
-222,133,173,173,173,204,206,206,238, 73, 82, 82,146, 46, 57, 57,121, 78, 65, 65,193,134, 26,242,248, 48, 44, 44,204,206,197,197,
- 5,249,249,249, 72, 74, 47,196,244,195, 66,228, 22,149, 4, 49,216, 40, 66, 11, 39, 15,137,128,161,189,155,150,150,166,211,106,
-181,223,228,228,228,108,175, 78,147,205,102,103, 70, 70, 70,138,157,157,157, 81, 92, 92, 76, 94,191,126, 77, 21, 20, 20, 32, 47,
- 47,143, 58,121,242,100,255,148,148,148,150,174,174,174,148,163,163,227,119, 41, 41, 41, 69,201,201,201,227,204,169,154, 44, 53,
- 76, 70, 22,139,181,106,252,248,241,131,127,251,237,183,251,135,190,245, 14, 41, 87, 93, 34,243,245,245, 61,219,172,153,143,253,
-174,149, 77,215, 2, 88,241, 23,184,182,198,124,245,213, 87,222,150,150,150,152, 56,113, 34, 22, 46, 92,136,249,243,231,187, 77,
-156, 56,113, 60,128, 31,107,161, 35,176,181,181,189,247,211, 79, 63,121,181,107,215, 14,167, 78,157,194,222,189,123, 17, 19, 19,
- 99,112,117,117,101, 5, 4, 4, 96,193,130, 5,232,209,163,199,184,105,211,166,117, 82,169, 84,126,102,154,143, 79, 22, 44, 88,
- 16,210,190,125,123,124,252,241,199,154,223,127,255,125, 48,128,115,231,207,159,239,114,229,202,149, 67,187,119,239, 22, 44, 89,
-178,164,219,204,153, 51, 39, 2, 88, 87,135,253,239,223,177, 99,201, 28,202,237,219,183,199,242,229,203,123,212,211,104,113,173,
-172,172, 78,238,220,185,179,133,135,135, 7, 70,142, 28,233, 55,120,240,224,147, 89, 89, 89,221, 1,152, 85, 32, 57, 56, 56,252,
-112,244,232,209,198, 85,213, 44, 84,134, 70,163,177, 28, 48, 96,192,178,184,184,184, 90, 25,173, 61,123,246,224,243,207, 63, 71,
-243,230,205,155,181,110,221,122,227,132, 9, 19,240,225,135, 31,118,125,252,248,177, 18, 37,189,150,107,132,207,231, 55, 27, 58,
-116, 40,247,206,157, 59, 0, 0, 95, 95, 95,180,104,209, 2,155,104,178,222, 0, 0, 32, 0, 73, 68, 65, 84,241,241,241,184,127,
-255, 62, 52, 26, 13,148, 74, 37, 6, 14, 28,200,143,139,139,107,150,145,145, 81,163,209, 98,240,132, 99, 66,130,123, 75,142,221,
- 78,129,209,100,192, 7,141,165, 8,240,178,193,211,164, 92,132, 61, 73,130, 81,203,129,212,210, 10,109, 58, 5, 89,170,147, 99,
-198,100, 2, 53,183,215,226, 9,199, 12, 12,233, 35, 62,118, 75,133,108, 85, 52,121,113,247,183, 75,250,226,130,113, 0,112,255,
-226,190,141,182, 86,130,238,238,254, 31, 48, 59,119,239, 39, 63,188, 87, 61, 38,235,127, 51,183,223, 31,184,226,132, 77, 46,236,
-140,209,179,135,119, 32,108,185,227, 93,137, 94,191,190,236,187, 30, 64,208,156,175,190,106,253,159,241,227,249, 38,147, 9,187,
-127,253, 53, 55, 34, 60,252,233,120,192, 52,161, 10,189,245,128,203,224,144, 16,158, 68, 42,197,167,211,167, 67,162,215, 95,126,
-115, 72,128,174,159,126,241, 69,187, 41, 83,166, 8, 54,126, 55,249,126,143,177,139,252, 77,132, 80,101,213,148,123,170, 15,197,
-181, 28, 27, 18, 2,137, 84,138, 25, 51,102,128,210,233,206,190, 49, 80, 44, 92,254,164,127,135,128,225,125,219,131, 2,133,189,
- 39,174,227, 69,124,122,228,229, 20,188,250,187,186,170, 10, 84,217, 70,171,218,170,195, 60, 29, 82,187,246, 25,148,226,238,238,
-158,231,230,230,150,151,153,153,137,168,168, 40,100,101,101, 97,221,186,117,136,142,142,134,201,100,170,179,129, 49,153, 76,120,
-215,154, 0,160,180,146, 98,100,239, 86, 44, 77,113, 1, 63, 61, 61,253,173,234,163,127,144,209,122,131,193, 96,224,187,186,186,
-130, 1, 80, 57,133,122,177,122, 79, 71, 74,189,167, 35,149, 83,168, 23,107,181, 90,134, 88, 44,134, 70,163,225,155, 33,197,238,
-213,171,215, 23,191,253,246, 27,123,241,226,197,104,210,164, 9,116, 58, 29,110,223,190,157, 4, 32,173,116, 29,213,213,171, 87,
- 85,101, 70,120,233,210,165, 56,124,248, 48,213,173, 91,183, 57,149, 93, 79, 41, 41, 41, 63, 76,152, 48,225,117, 97,222,107,108,
- 26, 82,132, 67, 35,211,177, 45, 36, 6,195,172, 14,226,117,106, 2, 54,111,222,140,243,231, 47, 80,231,206,157,231,252,254,251,
-239,162, 62,125,250,172,117,112,112, 56, 81, 93, 38, 85, 42,213,226, 41, 83,166,100,231,229,229, 33, 47, 47, 15, 69, 69,197,120,
- 93, 0, 68,174,246, 70,228,106,111, 20,155, 4, 8, 93,191,129, 17, 25, 25,169,136,137,137,177,239,219,183,239,106, 59, 59,187,
-173,213,105, 38, 39, 39,223,153, 58,117,106,113,110,110, 46,180, 90,173,206,104, 52,106,139,138,138,244,251,246,237,251,204,202,
-202,170,205,169, 83,167,216,231,207, 95, 96,253,254,251, 21,206,165, 75,151,100,129,129,129,251,149, 74,229, 14,115, 34,101, 76,
- 38,115,205,174, 93,187,198,132,134,134, 42, 3, 2, 2,124, 42, 84, 69,217,117,239,222,189,193,175,191,254,234,176,124,249,242,
- 57, 40,233,128,242, 94, 81, 40, 20,211, 66, 66, 66, 16, 26, 26,138,227,199,143,207, 92,187,118, 45,122,245,234, 5,123,123,251,
-169, 48,191,218, 11, 0, 86,252,248,227,143, 94, 94, 94, 94, 24, 61,122,180,118,220,184,113,179,182,111,223,238,122,237,218, 53,
-206,142, 29, 59, 26, 76,156, 56,113,198,240,225,195,139, 27, 54,108,136,117,235,214, 53,102, 48, 24,107,204,186,191,149,202,207,
-134, 13, 27,134,149, 43, 87,226,247,223,127, 31,132,146, 7,170, 22,192,233, 27, 55,110,244, 93,178,100, 9, 6, 13, 26, 4, 71,
- 71,199, 25,117,137, 60,121,123,123,127,211,179,103, 79, 92,187,118, 13,126,126,126,104,211,166,205, 76, 0,138, 58, 30, 78,134,
- 88, 44,222,191,125,251,246, 14, 13, 26, 52,192,162, 69,139,208,168, 81, 35,108,221,186,181,131, 72, 36,218, 15, 51,155,111,200,
-100, 50,177, 80, 40,196,156, 57,115,200,160, 65,131, 94,215,180,204,156, 57,147,240,120, 60,200,229,114,115, 59,190, 8,248,124,
-126,219, 38, 77,154,224,246,237,219, 56,127,254, 60,230,205,155,135,207, 62,251, 12,233,233,233, 24, 58,116,168, 16,192,135,181,
-216,111, 27,107,107,107,228,230,150,204, 11,223,164, 73, 19, 60,120,240, 0,233,233,233,112,116,116,132, 90,173,134,149,149, 21,
- 60, 60, 60, 96, 50,153,108,204,147, 36, 77, 20,150, 50,164,101,105,192,130, 1,254,238, 10, 92,142,202, 68, 66,186, 22, 54, 86,
- 22, 80,167,165,195,193,138, 15, 39, 39,103, 16, 98,106, 98,150, 3,102, 50,252,121,124, 1, 94,231,233,144,252,228,247, 76,157,
- 81, 51, 33, 59,246, 70, 98,118,236,141, 68,157,166,120,194,253,235,231, 51, 27, 40, 5,112,114,114, 2, 69, 76,173,222,199,253,
-248,145, 51,156, 68, 2,214,232,243,219,190,161, 78,252, 50,151,210,100, 38,180,236,169, 44,137, 44, 91, 3,174, 31, 13, 29,218,
-118,214,172, 89,252,212,212, 84,211,240, 33, 67, 94, 47,254,246,219, 11,103,106,120, 49,200, 7,220,186,119,239, 14, 6,128, 51,
-231,206, 21,168,129, 36, 0, 80, 2, 78,253, 6, 12,232,248,213,151, 95, 10, 50, 50, 51, 77,183, 95,230, 31,139, 78, 35, 3, 45,
-141,112, 53,167,125,150, 17,104, 90,166,123,246,236, 89, 82, 4,220, 7,128,206, 78,152, 26,212,206, 55, 96, 84, 72, 71,164,164,
-101, 97,198,226,109,216,120,224,202, 89,153,158,116,249, 7, 61,138,199,215,201,104,149, 86,253,252, 33,173,176,240,143,181, 7,
-245, 53, 48,127,134,102,101,252, 19,141, 86, 25,122,125, 73, 45,137, 86,111,130, 86,111, 42,123,171, 69, 81, 81,145,217, 18,103,
-207,158,221, 57,125,250,116,172, 94,189, 26,207,159, 63, 7,135,195, 65,147, 38, 77,236, 0,136,203,202,124,127,127,127, 27, 6,
-131,129,167, 79,159, 98,213,170, 85,248,228,147, 79,200,205,155, 55,183,162,242,241, 82, 30,188,126,253,122,253,132,113,159,100,
-103,165, 38, 64, 95,148,133,180,228, 87,208, 20,100, 99,209,210, 31, 80,168,103, 65,157,163,131, 58, 71, 7, 6,207, 18, 27,127,
-217,206,244,246,246,238,201,100, 50,131,171,201,231,237,212,212,212, 95, 38, 77,154,148,173, 86,171,223,236,159, 86, 79,160,213,
-191,125,189, 10,133, 66,172, 89,179, 70,230,238,238, 30,194, 98,177, 2,171,209, 76, 73, 76, 76,140,158, 52,105,146, 54, 53, 53,
- 21, 57, 57, 57, 56,118,236, 88,223, 6, 13, 26,200,151,173, 88, 77, 21,232, 88, 80,103,235,160,206,214,129, 43,182,193,254, 67,
-191, 49, 61, 60, 60,134,179, 88,172, 54, 53,153,172,221,187,119,143, 26, 50,100,136,100,197,138, 21,175,143, 30, 61, 26, 10,160,
-252, 9,121,186,102,205,154, 3,251,247,239,207,251,226,139, 47, 44,151, 47, 95, 62,243, 61,155,173,192, 33, 67,134,120,154, 76,
- 38, 28, 60,120, 48, 18,192,143,191,253,246,219, 61,141, 70,131,161, 67,135,186,150, 86, 35,153, 67,203,225,195,135, 79,238,208,
-161, 3, 62,253,244, 83,221,133, 11, 23,252, 1,172, 70, 73, 85, 46, 1, 16, 15, 96,237,149, 43, 87,154, 79,155, 54, 77,211,170,
- 85, 43,124,252,241,199,159, 0,232, 80,131,110,219, 97,195,134,121,153, 76, 38,236,219,183, 47, 2,192,169, 10,223, 95, 58,116,
-232,208,109,173, 86,139, 17, 35, 70, 52, 4, 80,155,130,156,195,227,241, 14,126,255,253,247, 22,201,201,201, 24, 53,106,148,230,
-233,211,167,248,246,219,111, 5, 50,153,236, 84,185,123,192,108,120, 60,222,230,159,127,254, 57,164,105,211,166,152, 52,105,146,
-118,195,134, 13,211, 39, 79,158,172,245,247,247, 71,104,104,104, 8,151,203,173,213, 20, 29, 42,149, 42,251,201,147, 39, 86, 53,
- 45, 73, 73, 73,230,118,207, 23,138,197,226, 91,190,190,190,185, 77,154, 52,249,192, 96, 48,224,241,227,199,175,118,238,220,105,
-106,210,164, 9,214,175, 95,143,229,203,151, 35, 56, 56, 24, 76, 38,211,108,163,197,100, 50,161,211,233, 32, 20, 10,193, 98,177,
-240,234,213,171,178,161,101,192,225,112, 0, 0, 34,145, 8, 2,129, 0, 12, 6,195,172,222,104, 20, 5,146, 91,168, 7,155,205,
- 0,139, 97, 66,116,124, 14,116,122, 19,248, 28, 38,216, 44, 10, 32, 38, 88,136,216,224,115,153, 96, 80,148,201, 76, 77,228, 20,
-232,192,229, 48,192,230,112, 41,134,193, 40,120,243,112,100, 25, 5, 2, 1,151, 82, 72,121,224,115,254, 66,211, 2, 83, 37, 13,
-203,199, 0,108,145,179,243,224,149,171, 86,113,115,243,243, 49,104,208,160,215,113,247,238,237, 42, 2,238,117,170,161,147, 18,
-131,197,114,239,220,169, 19,194,194,195,145,151,149,245, 2, 40,105, 28,207,181,183, 31,178,102,205, 26,110, 81,113, 49, 6, 13,
- 28,152,253,252,250,245,221,137,249, 56,177, 47,190,196,136,213,120,222, 57, 28,219, 50,221,156,172,172, 44,160,100, 8, 9,165,
-181,120,217,148,225, 61,144, 87, 88,140,217, 63,236, 50,133, 71,167, 76,189,150,132, 62,191,169,144,243, 15,123, 12,143,175,176,
- 0, 48, 99,192,210,178,232, 82, 77,102, 69,163,209,188,115, 3, 84, 95,205,202, 76, 98,125, 53,255,138,176, 88,172,226,103,207,
-158,113,165, 86,246, 38, 43, 9, 59,171,193, 39,215,101, 0, 96, 41,102,229,232,140,122,147, 74,165, 2,143,199, 43, 54,179,186,
- 97,220,230,205,155, 23, 1,240, 97,177, 88, 39,182,111,223, 78,237,218,181, 75, 62,108,216,176,151, 79,158, 60, 73,246,245,245,
-117,217,190,125,187, 20, 0,214,174, 93, 75,246,239,223,223, 3, 37, 67,102, 84, 57,142, 75,106,106,234,183,153,153,153, 55,167,
- 76,153,178,142,203,229,202, 69, 34,145,213,181,107,215,168, 98, 29, 65,203,175,226,223,244, 68,148, 10, 24,184, 58, 87,138,241,
-227,199, 51,159, 60,121,178, 52, 57, 57,249, 68, 53,154,115,178,179,179,175, 61,127,254,124,181,204,177,133,181,200,229, 43, 89,
-192,220,167, 0, 0, 23, 5, 27,140,210,114, 49, 59, 59, 27,233,233,233,152, 60,121,178,252,229,203,151,115,146,147,147, 47, 87,
- 19,213,186,146,145,145,145,244,232,209,163,206,108, 54,155, 43, 18,137, 90,222,186,117,139, 42,214,154,208,108, 78, 60, 94,231,
-151,228,211, 82,204,194,253,239,149,152, 58,117, 42,235,197,139, 23, 63,164,164,164,180,175,180, 48, 99, 48,150,151, 55, 89,179,
-103,207,126, 8,160, 33,128,183,170, 70,141, 70, 35, 53, 98,196,136, 40, 0, 77,190,248,226, 11, 75, 66,200,204, 57,115,230,188,
- 6,176,233,127,125, 45, 73,165,210,101, 19, 38, 76,192,254,253,251,145,149,149,181, 6, 0,114,115,115,127,220,179,103,207,190,
-113,227,198,225,215, 95,127, 93,150,158,158,126, 6, 53,119,213,238, 53,116,232, 80,156, 62,125, 26, 23, 47, 94,252, 6,192,227,
- 42,214,123,126,237,218,181, 57, 71,143, 30,253,105,216,176, 97,216,182,109, 91, 79, 0,213, 53,144,237,222,163, 71, 15,156, 58,
-117, 10,153,153,153,161,149,173,144,157,157,189,225,216,177, 99,173,123,244,232,129,165, 75,151,118, 7,112,201,140, 93,247,146,
-201,100,219,127,250,233,167,150, 77,155, 54,197,240,225,195,139,117, 58, 93,207, 47,190,248,226,248,222,189,123, 37, 59,119,238,
-252, 96,252,248,241,119, 74,199,124,187,109, 86, 40,139,193, 88,178,106,213,170,177,157, 59,119,198,204,153, 51, 13,103,207,158,
-237, 7,224,220,153, 51,103, 94,206,158, 61,251,228,170, 85,171,152, 43, 87,174, 28, 59, 99,198,140,116,147,201,244,190,204,245,
-247,107,215,174,109, 29, 20, 20,132, 87,175, 94,225,246,237,219,208,233,116,191,222,186,117,235,170,155,155,219,247, 90,173,246,
-184, 72, 36, 26, 45,145, 72,124, 91,180,104,209,229,254,253,251, 66,152,215, 78, 47, 53, 54, 54,214, 66, 38,147,193, 96, 48, 32,
- 50, 50, 18,206,206,206,208,233,116,136,137,137, 65,211,166, 77,193,225,112,144,154,154,138,114,209,242, 26, 76, 17, 35,242,101,
-156,170,161,165, 68, 4, 24,249,120,240, 52, 9,214, 10, 57,140, 20, 3,106,117, 10, 90,120, 58,130,162, 40,100,103,170, 65, 81,
- 84,148, 57,154, 70, 98, 10, 75, 80,165, 57, 88, 73,120,104,218, 58,200,234,214,153,244, 93,210,134,237,198,179,152, 20,147,203,
- 19,111, 26,251,241,199, 10,147,137, 32, 59, 51, 21, 44, 6,227,238,251, 56, 65, 7, 19,144,216,169, 17,255, 65,208,216, 69, 45,
- 40, 2, 82,164,195,206,109,169,200, 18, 2, 45,214,126,253,181,133,149, 66,129,225,195,135,155, 50,147,147, 47, 20,154, 57,176,
-114, 67, 55, 55,165, 88, 34,193,141, 27, 55,192, 44,105, 99,139,173,128,215,242,217,179,173,108,108,109,241,201,216,177,166,212,
-132,132, 75, 69,128,170, 54,121,109,216,168, 17,187, 76,151, 81,170,155,194,196,244, 47,250,117,224,137, 4, 60, 44,217,248, 27,
- 18, 51, 10,246,221, 74,193,198,127,104,188, 99,115,181, 17,173,170, 26,159,149, 52,170, 22, 86,107, 86,248,124,254,155,104, 74,
- 45,222,244,222,185,102, 77,252, 25,154,239,145,185, 0,142, 2,152,155,152,152, 24, 61,118,236, 88,157, 65,167,201,187,185,168,
-225,151,225, 75, 27, 76,186,245,173,221,164, 35,211,101, 95, 22,230,188,206, 91,187,118,173, 62, 49, 49, 49,186,252, 54, 53,104,
- 39, 0, 56,181, 99,199,142, 13, 7, 15, 30, 68,147, 38, 77,240,248,241, 99,155,130,130, 2,191,168,168, 40, 75, 47, 47, 47,236,
-218,181, 11,251,247,239, 95, 13,224,124,117, 38,171, 12,131,193,112, 65,173, 86,123,196,199,199, 55,182,176,176,208, 91, 88, 88,
-160, 98, 79,196,220, 34, 19, 50,179,115, 96,105,105, 5,169, 84,234,106,134, 57, 63,165, 86,171,221, 77,114,207,142,238, 25,107,
-114,194,150, 56, 33,108,137, 19, 78,205,177,135,157, 5, 23, 89, 89, 89, 72, 79, 79, 71,122,122, 58, 40,138,130, 94,175,247, 54,
- 67, 51, 38, 37, 37,101, 75, 66, 66,194, 81,165, 82, 9,137, 68, 2, 2, 64,157,173,199,195,149, 94,120,184,210, 11,234,108, 61,
-114,243,242,208,160, 65, 3, 72, 36,146,170,170, 40, 24, 14, 14, 14,189,135, 12, 25, 34, 1,128, 82, 3,213,149, 16, 50,169,146,
-101,162,193, 96,104, 87,182,238,231,159,127,110, 9,160,199,255,248,122, 98, 2,152, 50,110,220,184, 15,248,124, 62,214,175, 95,
- 31, 3, 96,119, 89, 89,191, 97,195,134,167, 0, 48,125,250,116, 95, 0, 51, 81,197, 72,208,111, 66, 67, 28,142,191,183,183, 55,
-110,221,186, 5, 0,191,213,240,219,135,110,222,188, 9, 55, 55, 55,240,249,252,150, 53,172,235,234,228,228,132,167, 79,159, 2,
-192,131, 42,214,121,240,244,233,211,146,234, 30,138,114, 53, 99,223, 67,130,130,130, 34, 47, 95,190,220,178,109,219,182, 24, 59,
-118,172,246,206,157, 59,189, 1, 92,125,240,224, 65,224,136, 17, 35, 10,220,221,221,113,229,202, 21,175, 17, 35, 70,220,100, 48,
- 24,139,204,208,252,228,187,239,190,155,219,191,127,127,124,247,221,119,228,192,129, 3,195, 1,156, 43,253,238,236,190,125,251,
- 70, 45, 94,188,152, 12, 28, 56, 16, 11, 23, 46,156, 11, 96, 82,117, 98, 5, 5, 5, 57, 70,163, 17, 5, 5, 5,102,133,228,205,
- 93, 95,161, 80,244, 10, 10, 10,194,188,121,243,224,224,224,128,227,199,143, 19, 0, 39, 0, 92,211,106,181, 29, 1,172, 42, 40,
- 40, 56,114,235,214, 45,116,239,222,157,131,183,167, 24,169,238,247, 35,247,236,217,163,145,201,100,112,113,113, 65,195,134, 13,
-161, 86,171, 17, 23, 23,135,166, 77,155,194,223,223, 31, 6,131, 1, 91,182,108, 41,206,203,203, 51,107, 76, 62,131,182, 96,231,
-249,147,135,115,172, 36, 60, 56,218,200,208,192,193, 18,249,217, 25, 72, 87,171,224,239,237,140, 78,254, 13,144,145,163,197,217,
- 19,135,179,242,242, 10,119,154, 21,194,215, 20,110,191,112,230,120,142, 92,194,129,135,167, 47, 70,140,157,222,162,133, 95,192,
-249, 86,173,218,157, 93,177,108, 73,179,174,109,188,169,164,140, 98,156, 62,241, 91, 86, 78,110,238,246,247, 81,208, 47, 4,152,
-197, 50,247,171,161, 71,195,182,248,244, 28,183, 37, 58, 9,107, 0, 64,207,100,122,245,238,213, 11, 73, 73, 73, 56,124,240, 96,
- 74, 33, 16, 97,174,158, 64, 32, 96, 0, 64, 78, 78, 14,120,165,237,238, 12,128,103,159, 62,125,144,158,145,129, 61,187,119,167,
-159, 6,194,107,147,207,190, 0, 87, 40, 40, 9, 8,230,228,228,128, 2,114, 1,128, 98,161,119,171, 38,110, 72,127,157,139,203,
-119,163,243, 27, 20, 97,114,117, 58,127,227,134,240,117,107,163, 5, 32, 99,230,204,153,224,241,120,176,179,179,123, 99,142,202,
-204, 10,151,203,133,157,157, 29, 12, 6, 3,246,237,219, 7, 0, 25,213,190,225, 1,154,126,147,150,154, 52,122, 82,200,102,179,
-223,137,102,233,155,163,102,208,236,109,166, 51, 55, 43,239, 20, 83, 23,205,191, 1,173, 74,199,196,106, 5, 32, 43, 46, 46, 46,
-105,240,160,126, 57,241, 47, 31,169, 11,178, 85, 41,185,153,137, 41,137, 49, 81,234,175,230,204,204, 73, 74, 74, 74, 68,201, 88,
- 90,173, 84, 42, 85,217, 54,230, 48,115,240,224,193, 63,143, 27, 55,142, 60,124,248, 16, 0, 16, 22, 22,134,143, 63,254,152,140,
- 26, 53,106, 13,128, 47,235,144,239,130,162,162,162,183,162, 33, 58,163,233, 77,149, 95,110,110, 46, 84, 42, 21,180, 90,173,217,
-142,248,249,217,149,207, 94,199,221,215,251,186,136,224,235, 34,130,151,147, 16,148, 33,255,141,201, 74, 79, 79, 47,123,115, 46,
-174, 69, 62,115, 53, 26,205, 91,249, 44, 95, 53,153,155,155, 11,181, 90, 13,163,209, 88,213,131,204,148,156,156,124,118,255,254,
-253,121, 0,176, 98,197,138,215, 20, 69, 93,164, 40,234,231, 74,150,141, 44, 22,235, 70,217,186, 43, 87,174,124,141, 63, 86,137,
-253,153,244,111,218,180,105,214,220,185,115,215,207,152, 49, 3, 27, 55,110, 68, 74, 74,202,151,248,255,177,120, 76, 25, 25, 25,
-179, 67, 67, 67, 49,102,204, 24,204,159, 63,127,165,159,159, 95, 46,128, 17, 85, 9, 90, 91, 91, 59,178, 88, 44,132,135,135,231,
- 2,120, 85,195,239,171,195,195,195, 83, 41,138,130,157,157, 93,163,234, 86,180,180,180,108, 44,145, 72,144,156,156, 12,148,190,
- 49, 87, 66,156, 74,165, 34, 92, 46, 23,246,246,246,110, 53,237,188, 92, 46,159,189,101,203, 22,214,163, 71,143,208,181,107,215,
-164, 43, 87,174,116, 7, 80,214, 37, 61, 60, 44, 44,172, 67, 96, 96,224,179,243,231,207,227,135, 31,126,160,154, 55,111, 62,169,
- 38, 77, 23, 23,151,137,159,124,242, 9,214,173, 91,135, 77,155, 54, 77, 2,112,176,194, 42,123, 67, 67, 67,167,111,218,180, 9,
- 99,199,142,133,171,171,235,136,234,244,226,227,227,231,116,238,220, 57,236,249,243,231,102,205,120, 96,230,250,129, 1, 1, 1,
-141,139,138,138,176,125,251,246, 87,141, 27, 55,190,119,240,224,193,153,248,227, 3,251,200,225,195,135, 49,114,228, 72, 52,111,
-222,124, 59,128, 97,230,220,150, 79,158, 60, 73,188,116,233,146,137,195,225,192,197,197, 5,193,193,193, 24, 62,124, 56,154, 53,
-107, 6,157, 78,135,195,135, 15,155,162,162,162,146,180, 90,173, 89, 99, 41,101, 62,255,253,120,108,236,179, 27,225,119,174,234,
- 89, 76, 6,156,237, 44, 49,160, 91, 11,252,231,195,118,240,247,114, 64,124, 90, 17, 46, 93, 58,175,143,141,125,117,203,156, 30,
-135,101,154,209,143, 35,110, 62, 10,191,110, 96,179, 40,120,121,186, 99,222, 87,179,229,139, 23,204,177,112,111,228,140,136,152,
- 28,156, 63,119, 90,175, 74, 74,188,252,190,122, 28, 94, 1, 56, 98, 30, 37, 98, 50, 24, 48, 50,120, 5,204,210,142, 52, 77,124,
-124, 60,148,182,182, 56,121,242, 36, 24,181,232, 17,122, 5,224,136,197, 37,181,224,249,249,249, 40,211,107,236,233,233,233,236,
-226,130, 83, 39, 79,130,105, 50, 61,233, 84,203, 1, 70,159,150, 84, 67,191,209,165,128,226,201, 78,144, 52,118,178,241,148,203,
- 68,184, 19,241, 2, 26, 61,185,187, 59, 11,239,117, 60,178, 63,145,241,168, 99,213,225,138,141, 27, 55,182,218,178,101, 75,247,
-153, 51,103,138, 71,143, 30, 13, 62,159,143,194,194, 66, 56, 58, 58,194,104, 52,226,204,153, 51,184,127,255,126,190,201,100, 58,
-143, 63, 14, 27,208, 13,229,122,105,156,125, 5, 65,137,223, 42,108,117,244,163,143,222,137, 38, 0,136, 95,152,164,153, 13,180,
-187,214, 30,188, 62,112,207,217,112,234,211, 97,157, 24,254,158, 78, 0, 0,165, 82, 9,169, 84, 90,107,205,119,192,159,174, 89,
-190, 90, 87,173, 86, 63, 85,171,213,105,227,198,141,243, 42,107,248,206,227,241,138, 75, 35, 89, 89,149,109, 99, 70, 62,117, 0,
- 38,111,217,178,229, 88, 78, 78,206,217, 47,190,248, 2,139, 23, 47,198,241,227,199, 59, 0,184, 81,199,125, 55,102,101,101,101,
-223,189,123, 87,233,230,237,135,134, 54,108,116,252,230, 57, 8, 33,176, 18, 18,228,101,191,198,131, 7,225,200,203,203,187, 83,
-155,124,234,116,186,236,180,180, 52,133,141,141, 13, 94,191,126,141,140,140,140, 55, 38, 43, 43, 43, 11,175, 95,191, 38, 20,245,
-135, 49, 91,170,211, 44, 72, 75, 75, 43,140,142,142,230, 42,157,220,208,200,134,131,128,175,158, 2,132,192,217,146,129,188,220,
-108,220,186,117, 11, 57, 57, 57,191, 87,165,105, 50,153,102,141, 24, 49,130, 9, 96,212, 23, 95,124, 97, 9,160,249,236,217,179,
-207,163, 66,207, 66, 22,139,245,227,174, 93,187,154,148, 85, 49,206,153, 51,103, 53,128, 45,255,171,107,201,202,202,106,214,201,
-147, 39, 37, 58,157, 14,107,215,174,197,234,213,171,183,226,143, 3, 85,158, 92,191,126,125, 40,131,193,152, 50,117,234, 84, 76,
-152, 48, 65,248,193, 7, 31,204, 76, 73, 73,217, 93,153,102,114,114,242, 60,127,127,255,249,105,105,105, 75,204, 50,203,207,159,
-143,247,247,247,159,151,150,150,182,188,186,115, 36, 18,137, 68, 70,163, 17,177,177,177, 89, 64,149,237, 59,138, 99, 99, 99,147,
-141, 70,163,163, 80, 40,180,172,233,250,204,202,202, 90,242,193, 7, 31,124,155,154,154,122, 14,192,162, 74, 12,249,195,148,148,
- 20,223, 25, 51,102, 76, 91,182,108,217, 64,181, 90,189,175, 38,205,248,248,248, 37,129,129,129,223, 60,123,246,108, 7,170,174,
- 2, 94,191,112,225, 66,221,174, 93,187, 38,197,198,198, 46,173, 65,243, 68, 70, 70,198,137, 90,156,223,170,214,127,163,201,100,
- 50,103, 47, 91,182,140,177,113,227, 70, 16, 66, 86, 26,141,198,170,242, 25,113,228,200,145,157,237,218,181, 27,125,240,224, 65,
-190,175,175,239, 4,141, 70,179,183,166,235,179,176,176,240,240,193,131, 7, 7, 70, 68, 68, 56,142, 30, 61,154,239,225,225, 1,
-157, 78,135,148,148, 20,108,220,184,177, 56, 42, 42, 42, 41, 59, 59,251,112,109,202, 16,131, 54,119,216,205, 75, 71,247,198, 61,
-143,106,211,185,103,136, 92,171,115, 4, 47,147,137,236, 76, 53,206,156, 56,156, 21, 27,251,234, 86, 97, 97,246,176,218,104,234,
- 52, 57, 67,111, 93, 62,182, 47, 41, 54,186,117,199,192,222,242, 98,173, 11,120, 28, 6, 50, 83,147,113,230,228,209,215,177,177,
- 49,215,138,245,154,143,223, 87, 57,207,116,197, 34,166,250,254,184,137,125, 91, 64, 32,119,124,192, 6,214,182, 3, 4, 10,165,
-146, 83,122,239, 64, 92,210,230,209, 44,205, 84,128,235, 86, 90, 75, 85, 88, 88, 8, 54,160, 29, 3,176,173,173,173, 5, 0,240,
-236,217, 51, 8, 75,106, 53,106,149,207,124, 64, 36, 44,167,203, 0, 10, 51, 89,112,104, 44, 21, 81, 0,144,164,206,132, 86, 95,
-237,115,227,239,206,230,114,134,107,115, 93, 4, 56, 0,186,137,197,226,197,243,231,207, 95,121,231,206,157,149,193,193,193, 43,
-121, 60,222,226,210,131,205,169,230, 68,252,207, 52, 91,218,195, 50,176, 17,117, 53,168, 49,101,154,216, 65,110,252, 56, 64,164,
-237,210,165, 75,104, 61,243, 89,159,155,229,207,212, 60,170,215,235, 9, 74,170,237,142,162,234, 42,193,185,229,190, 87, 39, 36,
- 36,144,210,191,107,147, 79,197,144, 33, 67, 76,121,121,121,100,240,224,193, 4, 53, 79,225, 83,173, 38,143,199, 11,236,216,177,
-163, 62, 53,253, 53,121, 26,147, 76,110,135, 61, 38,103, 47,221, 36,251, 14,159, 36,235, 66, 55,145,102,205,154,105, 1,184,212,
- 70,147,197, 98,117, 9, 12, 12,204, 76, 77, 77, 37,209,209,209,228,234,213,171,228,208,161, 67,100,211,166, 77,228,231,159,127,
- 38, 78, 78, 78,169, 0,148,181,209, 20, 8, 4, 33,189,122,245,210,103,231, 22,146,216,228, 76, 18, 25, 29, 75,110,220,141, 36,
-103, 46,221, 32,187,247, 30, 36, 62, 62, 62,197,102,104, 50,153, 76,230,186,125,251,246,229, 18, 66, 72, 72, 72, 72, 18,222, 30,
- 72,181,225,172, 89,179,210, 8, 33,100,249,242,229,153,168,188, 33,252,159,125, 45,245,116,112,112,120,202,225,112, 78, 2, 24,
- 85,195,118, 67, 89, 44,214,113, 91, 91,219,123, 0, 6,188,135,251, 40,216,198,198,230, 54,128,154,102, 56, 40, 91,175,255, 63,
-228,126,255, 51, 52,187,176, 88,172,171, 64,245,147, 8,151, 43,175,191,103, 50,153,167, 0,116,173,101, 62,221, 21, 10,197, 96,
-185, 92,254,169, 92, 46,255,212,198,198,102, 48,151,203,117,175,207,190, 91,185,119,235,235,236,215,239,136, 83,243, 62,241,206,
- 45,130,227, 93,253, 67,142, 88,185,119,235, 91, 95, 77, 23,255,144,163,206, 45,130, 19,156, 91,244,141,107,216, 50,228,136,194,
-179, 91,175,247,121,142, 70, 57,192,190,123, 67, 24,200,213,111, 8,185,250, 13,233,214, 16,166, 54, 22,240,105, 5, 72,122,116,
-235,182,138, 24,141,171, 6,246,239,191,202, 13,176, 34, 0,179,226, 82,153,166, 31, 32,125,179,109, 72,200,170, 70,128,162, 59,
- 32,236,212,161,195, 74, 98, 52,174, 26, 49,116,232, 42,103,192,182, 50,189,170, 52, 9,192,116, 0,236,203,235, 42,128,198, 31,
-186,194,119,110, 95, 87, 66,174,126, 67, 22,126,228, 65,252,149, 24, 85,131,102, 85,145,162,191,117, 68,171,182,136, 74, 11,215,
-165,165,159,162,119,112, 17,190,115,205,214,118,240,232,214,152,138,238,237,201,122,141,146, 46,201,162,127, 96, 33,185, 67,171,
-213,146,226,226, 98, 82, 88, 88, 72,242,243,243, 43, 26,168, 55,134, 76,165, 82,145,164,164, 36,146,144,144, 64,226,226,226, 8,
-254,191,237,141,217,249,148, 74,165, 91, 62,250,232, 35, 35,155,205, 94,247, 46,246,221,210,210,114,105, 64, 64,128,238,167,159,
-126, 34, 71,142, 28, 33,191,252,242, 11,153, 58,117, 42,105,210,164,137,198,194,194, 98, 88, 93, 52,109,109,109,231,121,122,122,
-102,110,221,186,149,236,222,189,155,172, 89,179,134,124,253,245,215, 70, 71, 71, 71,181, 68, 34,233, 81, 23, 77, 27, 27,155,205,
-237,219,183,215,109,222,188,153,156, 63,127,158,236,217,179,135,204,154, 53,139,120,121,121,105, 68, 34,209, 32, 51, 53,153, 44,
- 22,107,213,196,137, 19,213,246,246,246, 39, 43,124, 39,244,241,241,185, 55, 98,196, 8, 21,128, 57,255,160,235,147,214,164, 53,
-105,205, 63,193,104, 13,183,135, 3, 1,152, 66, 14,103,104,167, 14, 29, 86,114,128,161,181, 53, 69,124, 38,243,195,118, 1, 1,
- 43, 57,192,176,178,117,249, 76,230,135,157, 58,116, 88,201,102, 50, 71, 86,165, 87,157, 38, 1,152, 28, 22,107, 78,187, 54,109,
- 86,177,128,175,202,210,186, 52,164,158,204,234,233, 68, 58,184, 80, 47, 70,218, 64,248, 15, 54, 90,239, 28,214,159,112, 17,254,
- 93, 52,255, 42, 55,181, 91,169, 97, 58, 90,139,136,214, 81,148,204,162,238, 86,199,124, 10,222,241,190, 55, 85, 40, 20,167,221,
-220,220,210, 27, 52,104,160,146,203,229,123, 1, 56,214, 83,211,215,214,214,246, 87,165, 82,249,220,206,206, 46, 66,161, 80,252,
-136,146, 81,231,235,172,201,102,179, 3,148, 74,229,239,174,174,174,217, 46, 46, 46,169, 10,133, 98, 95, 37,145, 44,115, 52,237,
- 80,121,161,194, 41,253,142,126,232,208,154,180, 38,173,249,150,129, 9,106,132,101,221, 27,194,208,189, 33,140, 65,174,248,177,
-188, 65, 9, 6, 4,117, 53, 69, 31, 3,188,138,235,215,164, 87,147, 38, 1,152,109, 1,113,197,109,122, 59,194,199, 76,205,191,
-123, 68,171,172,156,175,221,240, 14, 85, 96,248, 19, 50,249,119,209,252,171,240, 2,213, 52, 70, 46,199,210,119,248,155, 69,239,
-120, 31, 34, 51, 50, 50,122,101,100,188,211,190, 9,143,212,106,245,168,119, 41,168,215,235,239,164,166,166,118,126, 7, 82, 85,
-117,189,214,193,204,110,217, 52, 52, 52,255, 30, 40,192,136, 87,248,178,155, 59,214,178,140, 96,156,137, 65,114,133, 46,121, 69,
- 84, 93, 52, 75, 48,238,168,164,140,167,234,154,207,255, 39,255, 15, 26, 73,120, 76,253,123, 78, 91, 10, 74,218,104,213,219,104,
-209,208,208,208,208,208,208,252, 15,184,240,156,126, 17,251, 27,112, 18,111, 71,223, 78,150, 51,162, 85,134, 62,107,211,147,162,
- 46,225,211, 11,180, 38,173, 73,107,210,154,180, 38,173, 73,107,254,235, 52,203,168,106,238,212,167, 21,254,175, 83, 47,190,127,
- 11,116, 61, 59,173, 73,107,210,154,180, 38,173, 73,107,210,154,255,116,234, 60,142, 22, 13, 13, 13, 13, 13, 13, 13, 13, 77,245,
- 84, 25,117,163,141, 22, 13, 13, 13, 13, 13, 13, 13, 77,253,176, 67,201, 20, 85, 39,241,255, 83, 85,109, 6,106,158,130,231, 45,
-150, 45, 91,198,112,115,115, 19,115,185,220, 38,175, 94,189, 98, 76,158, 60,185,222, 29, 9, 86,254,184,142,225,226,226, 34, 6,
-208, 36, 51, 43,143,241,201,127,190,160,232,243, 69, 67, 67, 67, 67, 67, 67,243, 55,162, 79,169,177, 42,251,124, 19,225,170,149,
-209, 90,180,104, 17, 18, 18, 18, 68, 0,134,248,250,250,114, 55,108,216, 64, 14, 28, 56, 80, 47, 99,244,213,156, 89,136,143,143,
- 23, 1, 24, 98,163,176,224,110,219,178,130, 28, 60,126,253,157,155, 45,133, 66, 97,245,191,220,142,134,134,134,134,134,134,230,
- 95,197,248,114,159,227,235,100,180, 88, 44, 22,147,203,229, 54, 98, 48, 24,189,248,124,126, 75, 0, 40,157,146,165,206,176, 88,
- 44, 38,151,199,107,196,100, 50,123,241,120, 37,154, 31,245,109, 95, 95,205,174, 34,145, 40, 81, 40, 20,222, 7, 32,144, 72, 36,
-225, 58,157,238,177, 68, 34,185, 89, 27, 29,137, 68,114,179,116,187,112, 0, 2,161, 80,120, 95, 36, 18, 37,178, 88,172,174,244,
-245, 68, 67, 67, 67, 67, 67, 67, 83,202,230, 74,150, 63,114,226,196,137, 42, 13, 14,151,203,101,248,250,250,182,119,113,113,185,
-225,237,237,173,117,116,116, 60, 36, 20, 10, 69,245,204, 24,195,205,195,171,189,189,157,242, 70,139, 70,118, 90, 27, 27,155, 67,
-108, 54,187, 62,154, 76,137, 68,178, 38, 40, 40, 40,231,198,141, 27, 68, 42,149,166, 2,176,176,182,182, 86, 17, 66,136,173,173,
-173,169, 54, 98,182,182,182, 38, 66, 8,177,182,182, 86, 1,176,144, 74,165,169, 55,110,220, 32, 65, 65, 65, 57, 18,137,100, 13,
-106, 30,209,150,134,134,134,134,134,134,166, 22, 84,231, 69,254,194,148, 69,177,236,234,188,115, 92, 46,215, 79,161, 80, 68,125,
-246,217,103,198,205,155, 55, 19, 23, 23,151,187, 54, 54, 54,109, 20, 10,197, 91, 13,234,199,140, 25, 83,155,106, 63, 63,137, 84,
- 22,181, 99, 70, 79, 99,209,182, 16,226, 96,103,115,215,194,194,162,141, 84, 42,125, 75,115,196, 39, 19,204,209,180,151,201,100,
- 17,203,150, 45, 43,206,206,206, 38,132, 16, 34,147,201, 82, 1,200,149, 74,165, 42, 38, 38,134, 40, 20, 10, 2,243,163,120, 12,
-133, 66, 65, 98, 98, 98,136, 82,169, 84, 1,144,203,100,178, 84, 66, 8,201,206,206, 38,203,150, 45, 43,150,201,100, 17, 0,236,
-233,219,130,134,134,134,134,134,230, 95,109,180, 42, 26, 46,243,170, 14, 91,182,108,201, 83, 42,149,109, 36, 18, 73,127,177, 88,
- 28,218,175, 95, 63,223,129, 3, 7, 50, 52, 26,141,209,215,215,215,222,213,213,117,154, 92, 46, 31,197,231,243,155,113,185,220,
-145, 82,169,212,110,239,222,189,110,213,105, 54,109,254, 1,207,194, 66,222,134,203,229,245, 23,139, 37,161, 19, 63,236,226, 59,
-106,230, 32, 6, 71, 27,103,236,210,204,217,190, 73, 35,187,105,182,114,209, 40, 22,147,209,140,162,168,145,124, 62,223,110,247,
-182, 77,110, 53,236, 88, 35,123,123,251,240,189,123,247, 54, 25, 50,100, 8, 47, 58, 58, 26, 0, 96, 52, 26,185, 0,244, 76, 38,
- 19, 60, 30, 15, 58,157, 46, 11,128,185, 39,144,232,116,186, 44, 30,143, 7, 38,147, 9, 0,250, 82, 61, 68, 71, 71, 99,200,144,
- 33,188,189,123,247, 54,177,183,183, 15, 7,208,136,190, 53,104,104,104,104,104,104,254,181,148,153,171,147,168, 80,117,200, 42,
-115,143,193,193,193,111, 69,141,184, 92,238,134,103,207,158,181,179,180,180,108,196,102,179,141, 67,135, 14,229,141, 24, 49, 2,
-233,233,233,166,252,252,124,166,159,159,159,242,222,189,123,189, 12, 6, 67, 7, 11, 11,139,194,236,236,108,133, 70,163,121, 1,
- 96, 90, 53, 25,217,240,252,105, 84, 59, 43,185,101, 35, 46,155,105,156, 58,118, 4,239,171, 57, 61, 65,105,194, 76,198,180, 76,
-230,247,254, 22,202, 31,111, 22,244,122,166, 51,118, 40,144,241, 11,213, 57,154, 26, 53, 21, 10,133, 63,135,195,185,127,250,244,
-105, 8,133, 66,228,228,228,128,203,229, 2, 0,242,243,243,101, 0, 88, 20, 69,129,203,229, 34, 55, 55, 87, 94,155,163,150,155,
-155, 43,231,114,185,160, 40, 10, 0, 88,165,122,224,114,185,200,201,201,129,155,155, 27,117,250,244,105,155, 94,189,122,189,212,
-233,116, 31,100,100,100,132,209,215, 26, 13, 13, 13, 13, 13, 77,237,169,204,139,252,141,168,113, 28,173,206,165,161,186,242, 19,
-231,238,180,182,182,182, 21,139,197,222,227,199,143,103, 40, 20, 10,220,191,127,223, 84, 80, 80,192, 96,179,217, 96,179,217,204,
- 46, 93,186,136, 13, 6,131,240,212,169, 83,212,203,151, 47,211,245,122,253,247,153,153,153,247,170,201,200,206,198, 22, 60, 91,
-129, 5,215,251,248, 23, 29, 25,214,110,153,192,217,133, 38,146,159,198, 96,153, 8, 20, 34, 19,115, 85, 7, 74,172,150,185, 10,
-167,238, 75,167,174,189,204, 78,215,235,245,223,231,229,229, 85,167,153, 12, 0,165,121,130, 84, 42,133,209, 88,126,126, 75, 16,
- 6,131, 1, 30,143, 87,167, 35,199,227,241,192, 96, 48,128,114,145, 48,153, 76, 6, 38,147, 9, 6,131, 1, 54,155,253, 86, 62,
-104,104,104,104,104,104,104,234, 68,101, 94,228,239, 66,249,113,180,204,155,155, 82,169, 84, 82, 82,169,212,174,121,243,230,223,
- 6, 5, 5,197, 12, 24, 48,160,240,167,159,126, 34,171, 87,175, 38,171, 86,173, 34, 91,183,110, 53, 94,190,124, 89,255,159,255,
-252,167,216,221,221,253, 69,104,104,168, 55, 0,244,238,221,187,202,234, 72, 11,185, 37, 37,230,178,236,124,188,155,126, 59,188,
-115,147,152,111,250,123, 20,234,118,248, 17,211,124, 39, 98, 92,231, 74,140, 7,187, 26,201,179, 21,250, 37,227,186, 22, 55,112,
-105,240,226,231,173,251,189, 1,160, 91, 80,239,106,171, 56, 21, 10, 69, 75, 71, 71,199,212,115,231,206,153,178,178,178, 72,102,
-102,102, 89, 27,173,108, 0, 50, 23, 23, 23,149,193, 96, 32,114,185,252,117,109,142,154, 92, 46,127,109, 48, 24,136,139,139,139,
-170,196, 95,201,178, 9, 33, 36, 51, 51,147,100,101,101,145,115,231,206,153, 28, 29, 29, 83, 21, 10, 69, 75,250,254,160,161,161,
-161,161,161,249,215, 50,190,194,103,205,180,107,215,142,146, 74,165,140,166, 77,155,138,237,237,237, 91,219,219,219,223,249,241,
-199, 31,201,234,213,171, 13, 27, 55,110, 36,191,254,250,171,225,227,143, 63,206, 21,137, 68, 39,185, 92,174, 28, 0, 92, 93, 93,
-171, 13,249,181,108,221,134, 18,240,121, 12, 79, 79, 31,177,194,202,170,181,181,149,229, 29,221,234, 38,132, 44,116, 48,144, 45,
- 45, 8, 57,216,211,176, 98,112,171, 92, 54,155,115, 18,128, 28, 0, 28,237,237,204, 13, 35,218,219,216,216, 68, 44, 92,184,176,
- 64,167,211,145,210, 94,134,169, 0, 44, 92, 92, 92, 84,132, 16,226,232,232,152, 8, 64, 97,166,158,194,209,209, 49,145, 16, 82,
-102,180, 44,108,109,109, 83, 9, 33, 68,167,211,145,133, 11, 23, 22,216,216,216,208,141,225,105,104,104,104,104,104,104,170,156,
-235,176,202, 72,209,141, 27, 55, 72,110,110,174, 41, 57, 57,217,152,159,159, 47,245,243,243,147, 51,153, 76, 40,149, 74, 38,147,
-201, 52, 21, 20, 20, 48, 21, 10,133,138,205,102,239,214,106,181, 89,253,251,247,167, 98, 99, 99,171,109,104,126,239,246, 45, 82,
- 84,172, 49, 37, 37, 37, 26, 11,243,115,165,163,154, 89,202, 89, 6, 29, 76,126,237,152,185, 2,119,147,169, 40,139,233,101,199,
- 83,113, 56,236,221, 0,178, 6, 4,247,161,146, 84, 41,230, 54, 94, 87,165,165,165,249,109,216,176, 97, 75,199,142, 29,179, 10,
- 11, 11,203,218, 86, 85, 28,130,193,194, 76,189,138,235, 49, 41,138, 66, 97, 97, 33, 58,118,236,152,181, 97,195,134, 45,105,105,
-105,126, 0, 84,244,245, 69, 67, 67, 67, 67, 67,243,175,166,202,113,180,106, 28,234,160,176,176, 80,206,225,112,186,181,106,213,
-170, 65, 65, 65,129,105,209,162, 69,137, 63,253,244,211,174, 23, 47, 94,232, 45, 44, 44, 26, 9, 4,130, 79, 81, 76,136,102, 0,
- 0, 32, 0, 73, 68, 65, 84,135, 12, 25,162, 56,114,228, 8,233,208,161, 67,197,232, 83,165,179,123, 23, 21,229,203,121, 28,118,
-183, 79, 3, 36, 13, 18,117,114,147,247,167,119, 19, 59,205,191,185,235,183, 71, 44,125, 83,203,162, 70,150, 92,234,211, 33, 67,
- 6, 43,126, 59,113,146,180,105,211,218, 44,205, 82,140,105,105,105,159,222,191,127,127,112,195,134, 13,147,244,122,125, 18,128,
-204,162,162,162, 84,123,123,251, 52,157, 78,151, 4, 64, 87,201,118,149,105,234,116, 58, 93,146,189,189,125, 90, 81, 81, 81, 42,
-128, 76,189, 94,159,212,176, 97,195,164,251,247,239, 15, 78, 75, 75,251, 20,128,177,154,188,208,179,186,211,154,180, 38,173, 73,
-107,210,154,180,230,191,135, 63, 68,179, 0, 51, 38,149,230,241,120, 29,157,157,157,219, 63,122,244,200,120,235,214,173, 28, 6,
-131,241,115,239,222,189, 15, 29, 62,124, 56,192,210,210,210,198,201,201, 73,121,241,226,197, 64, 0, 7,174, 93,187,102, 86,244,
- 73,192,227,116,108,225, 40,107,191,249, 33, 49,110,187,255, 60,199,200,228,253,220,101,208,160, 67,211,119,237, 9,176, 87, 72,
-108, 90,216, 73,149,167, 78,157, 9, 4,112,224,214,173,219,181, 30, 79,195, 96, 48, 92, 76, 75, 75,115, 42,251, 63, 61, 61,221,
- 79,161, 80,120,163, 36,250,148, 99,166, 76,188,201,100,234,109, 50,153,236, 51, 50, 50,158, 0, 64, 70, 70,198, 7,244,117, 68,
- 67, 67, 67, 67, 67, 67, 83,137,201,218, 92,217,255,213, 70,180,184, 92,174, 3,147,201,244, 73, 74, 74,138, 63,117,234,212,163,
-150, 45, 91,246,138,143,143, 95, 70, 8,137, 19, 10,133,227, 19, 19, 19,159, 39, 38, 38,106,139,138,138, 38,214, 34, 51, 14, 96,
-112,124,238,171,138,226,127,184,248,248, 81,211, 54, 61,122,169,213,170,101, 70, 66,226,184, 66,233,248,103, 9,233,207,111,167,
-105,180,197,197,181,210,172,145,140,140,140, 39, 25, 25, 25, 57,181,220, 38,167,204,100,209,208,208,208,208,208,208,208,212,150,
-154, 34, 90, 58,163,209,184, 66,163,209,200,127,251,237,183,228,160,160, 32, 13, 0,108,216,176,193, 52,118,236,216,235,175, 94,
-189,234,250,228,201,147, 94,182,182,182,151, 0, 80, 49, 49, 49,230, 68,159,116, 38,147,113,133, 86,171,145, 95,188, 28,150,220,
-177,125, 83, 13, 0,108, 92,191,214, 52,116,252,140,235,175,162, 31,117,125, 22, 21,222,203,214,214,246,146,209,192,162, 82,212,
-113,132, 62, 77, 52, 52, 52, 52, 52, 52, 52,127, 97, 54,227,237, 42,195,205,102, 25, 45,173, 86,155,174,213,106, 1, 32, 43, 40,
- 40,232,173,239,182,110,221, 74, 0, 20, 0, 56,152,153,153, 89,155,204,164, 23, 21, 21, 1, 64, 86,199,246, 77,223,250, 98,223,
-230,159,222,104,230,231,229,210,167,141,134,134,134,134,134,134,230,239,100,182,254, 0,131, 62, 46, 52, 52, 52, 52, 52, 52, 52,
- 52,245, 98,124, 85,255, 83,168,186,231,192,133, 90,252, 64, 93,122, 31, 92,160, 53,105, 77, 90,147,214,164, 53,105, 77, 90,243,
- 95,167, 89,147,246, 5,252,253,168,178, 49,252,159, 13,221,245,149,214,164, 53,105, 77, 90,147,214,164, 53,105,205,127, 58,118,
-120,123,120, 7,187,178, 47, 88,244,177,161,161,249,123, 67, 14,130,137, 44, 79, 87, 16, 98, 15, 38, 55, 5, 41,145,175,168,111,
- 97,170,183,102,170,143, 11, 4,122, 37, 12,252,116,164, 70,196,212, 87,147,134,134,230,159,135,109,219,201, 3, 40, 6,243,103,
-138,152, 80,148, 26,205,227, 20,197, 9,211, 82,226,255,141,222, 34, 5, 85, 68,176,104,163, 69, 67,243,119, 39,221,203, 3, 44,
- 44, 5, 3,118, 32,186,151,176,246, 89, 10, 60,142,170,183, 38,199,180, 8, 70,134, 35,136,238, 25,108, 60,151, 1, 79, 31,211,
- 7,251,159,199,180,169,147,200,147,168, 59, 72, 72, 80,161, 81, 99, 59,120,120,181,197, 79,107, 67, 41,250,200,208,152,247, 86,
- 70,109,238,214,119,132,165, 64, 40, 1, 0,152, 12,122,108,157,217,226,188,193, 96,216, 9,224, 8,128,162,127,251, 33,250,159,
- 55,134,103,179,217,169, 0, 76,124, 62,255, 48,202,133,214,104,104,254, 4,236, 74,175, 51, 83,233,117, 87, 27,196, 44, 22,107,
-190, 80, 40,188,204,227,241,210,120, 60, 94,154, 72, 36,186,204, 98,177,230, 3, 16,255,101,202,184, 95,155, 8,193, 48,246,210,
-234, 77, 14,103, 34,179,109, 10, 53, 70, 15, 48, 12,189,201, 86,119,113,189, 52, 89, 84, 80,177,206,228,188,251,110,161,178, 64,
-107,240, 6, 65,189, 52,203, 97,193,225,112,206,192,252, 57, 71,105,254,100,226, 99,162,112,234,196, 42, 44,250,110, 52,182,111,
-158,136,167, 79,110,215, 75,207, 27,248,224, 3, 22,235,115, 47,160, 11, 74,218, 1,211,252,147,161,200,248, 11,199,119,167, 31,
-223,187, 62,125,255,170,137,228,232,210, 96,172, 93,187,182,219,232,209,163,119, 59, 59, 59,167, 3,248,136, 54, 90,255, 99,244,
-122,189, 77, 70, 70, 6,181,115,231,206,126, 50,153,236, 37,139,197,154, 11,128,243,111, 57,224, 98,177,248,166, 84, 42, 77,149,
-201,100,169, 82,169, 52,188,166,244,127, 40, 30,214,214,214,241,150,150,150,207,202, 39, 90, 55, 27,208,214,173,221,168, 5, 86,
- 62, 33,157,234,169,207, 97,177, 88,115,101, 50,217,203,157, 59,119,246, 75, 78, 78,166,244,122,189, 77, 45,182,239, 40,151,203,
-159,220,185,115,231,155,140,140,140, 78,137,183,183, 90,171,239,108,178,142,255,125, 85,231,251,167,214,125, 99, 97, 33,123, 12,
-160,227, 95,226, 72, 22,155,148, 96, 48, 3, 31,165, 20, 10, 83,114,245,202,176,184, 66, 9,192,236, 12,109, 61, 94, 98,114, 76,
- 74,128,116,121,152, 84, 36,186,249,218, 90,121,237,149, 70, 10, 6, 35, 16,197,148,109,189, 11, 28, 6, 99,146,201,100,234,206,
-225,112, 62,165,159, 80,127, 13,120, 60, 14, 64, 8,196, 34, 62, 0, 2, 70, 61,173, 17,151,193,104,119,179, 95,191, 69,115,154,
- 53,155,230, 5,244,173,194,108, 81, 0,166,123,121,121,157, 6, 48,244, 29,238,206, 15,158,158,158,201, 0,102,188,171,114,201,
-223,223,191,109, 96, 96,224,130, 22, 45, 90,116,122, 87,154,255, 36,212, 55, 55,252,150,114,125,157,141,234, 70,168, 77,118,204,
-213,233,118, 74,185, 41, 38, 38, 6,125,250,244,193,250,245,235,133,190,190,190,187, 0,216,255, 11,110, 37,191,178, 23,124, 84,
-104,163,101,182,209,250,208, 21,237,134, 53,196,149,193,174,200, 27,210, 16,249, 35, 27,226,250, 32, 87,116,169, 75,110,172,172,
-172,208,177, 99, 71,102,114,114,178, 96,214,172, 89, 11,248,124,126, 44,128, 30,117,209, 18, 8, 4,247,133, 66, 97, 34,139,197,
-122, 43, 47, 66,161,240,190, 72, 36, 74,100,177, 88, 93,203,167, 75, 36,146,155, 82,169, 52, 85, 34,145,132, 87, 97,132,238, 75,
-165,210, 84,177, 88,124,191,124, 58,139,197,234, 42, 22,139,147, 36, 18, 73,197,244, 46, 18,137, 36,177, 98,122, 85,176,217,108,
-199,196,196, 68,155,164,164, 36, 27, 46,151,171, 44,159,158,144,144, 96,147,152,152,248, 86,122,109, 96,177, 88, 93, 68, 34, 81,
-162, 80, 40,188, 95, 89,122,197,125,170,138,114,199,174,139, 57,233,181, 45,120,130,130,130,174,167,164,164, 56, 91, 88, 88,188,
- 53,113,183,165,204,162,199,175, 91, 67,103,134,244, 14,154,100,237,221,191,105, 29,245,123,240,249,252,216, 89,179,102, 45, 72,
- 78, 78, 22,180,105,211,134,201, 96,212,234,125,162, 91, 72, 72,200,209,212,212, 84,135,230,205,155, 51, 13, 6, 3, 30, 29,155,
- 15, 97,196,167,224,199,110,132,147, 32,157,245,242,252, 50,199,160,206, 31, 28,197,123,110, 12, 74, 14,122,115, 64,153, 58,154,
- 8,177,126,146, 92,108,221,167,223, 71,172, 7,137, 69,214,122,163,209, 18, 96,118, 38,219, 93,120,117,210,100,233, 59,152, 8,
- 81, 94,140, 99, 91, 7, 14,158,198,188, 20,199,178,214, 27,141, 86, 96,160, 83, 93, 52,203, 95,254, 76, 38,115,230,170, 85,171,
- 24, 0,166, 2,224,254,155, 12, 77, 43,123, 56,116,105,204,188,235,103,135,118,239, 80,214,183,244,126,247,168,175,208,150,237,
-167, 49,118,194,102,184,123,181,174,151,142,214,100,122,186, 47, 38,230,236,200,198,141,131,231, 52,107, 54,166, 18,179, 69, 1,
-152,179,108,217,178, 81,143, 30, 61,178,110,216,176,225,132,119,244,210,191,102,217,178,101,179, 31, 61,122,100,239,234,234,186,
-176,150,154, 85,150, 75,114,185,188,199,150, 45, 91,102,246,233,211,103,146,191,191,127,211,119,161,249, 15,102,253,195,135, 15,
-157, 87,173, 90,245,229,216,177, 99,115, 1,160,107,215,174, 28, 0,109,234, 93,222, 17,194, 37,132, 4, 18, 66,250, 16, 66,186,
- 18, 66, 90,149,254,221,178,116,233, 67, 8,233, 86,225,179,101,233,182,101,223, 7, 84,161,209,167,226,118,229,182,169,248,255,
- 91,127, 87, 98,180,250,160,164,173, 86,159,183,118,224,196,137, 19,164,252,103, 69,134,184,226,219,105,109, 29, 10,159, 28,223,
- 67,242, 19, 99, 72, 86,244, 3,242, 96,243, 18, 50,173,165,117,225,240,134,248,161,246,199,139,144, 27, 55,110,144, 71,143, 30,
-145,252,252,124,242,252,249,115, 18, 16, 16, 80, 36, 20, 10, 47, 2,112,173,141,152, 68, 34, 73,189,120,241, 34, 9, 10, 10,202,
- 17,139,197, 43,203,110, 46,169, 84,154,122,227,198, 13, 18, 20, 20,148, 35,145, 72,214, 0, 96, 2,192,160, 65,131,210, 8, 33,
-196,218,218, 90, 85,153, 94, 72, 72, 72, 22, 33,132,200,100,178,178,170, 38,166, 68, 34, 89, 51,101,202,148,252,123,247,238, 17,
-185, 92, 94,150,206,144, 74,165, 43,167, 78,157,154, 31, 22, 22, 86, 62,189, 90, 44, 45, 45, 19,141, 70, 35, 57,126,252, 56,177,
-177,177, 81,149,187,153, 19,141, 70, 35, 57,122,244,104,149,121,171, 46, 80, 32, 22,139, 87,140, 28, 57, 50, 47, 46, 46,142, 88,
- 89, 89,165,150, 75, 95, 57,122,244,232,188,132,132, 4,162, 80, 40,204,202,163,149,149, 85,234,205,155, 55,201,192,129, 3,115,
-203, 31, 83, 43, 43,171,212, 91,183,110,149,165,175, 48,167, 32,179,183,183,159, 96, 99, 99,163,178,177,177, 81, 89, 88, 88, 44,
-182,179,179, 83,167,167,167, 19, 66, 8,105,212,168, 81, 90,249, 72,150,141,111,191,207, 54, 30,188,117,231,106, 84,102,122,179,
-238,147, 86,200,154,133,200,106,113, 12, 92,133, 66,225,197, 78,157, 58, 21, 37, 38, 38,146,130,130, 2, 18, 17, 17, 65,110,220,
-184, 65, 94,188,120, 65, 0,152, 51,195,128, 68, 44, 22, 39,107, 52, 26,147, 70,163, 49,165,167,167, 27,211,210,210,140,209, 43,
-237, 8,217,198,126,179,100, 31,237, 75,212, 87,151,154,164, 98, 97, 18, 0,201,123, 51, 90,161, 62,142,100,147,231,190,199,243,
-157,163,175, 46,235,169, 39,113,151,200,158, 49,214,250, 43,159, 57,188, 36, 63,123,253,151,108,242,118,170,147,230,207,222,123,
- 34,190,118,126,186,110,225,116,125,124,124, 60,249,124,116, 79,195,185,105, 14,175,200, 70,175,131,117,209, 44,199,176, 1, 3,
- 6,228, 39, 36, 36, 16, 31, 31,159, 2, 38,147, 57,246,223,100,178,186,121,112,147, 35,118,127,110,234,235, 43,204,124, 71,102,
-203,215,198,198, 38, 99,199,142, 29, 68, 34,145,164,213,213,108,125,216,191, 51, 41,202,185, 72,250, 7,183,170,246, 30, 25, 60,
-120, 48, 9, 12, 12, 36,211,166, 77,171,233, 94,162,188,128,126, 59,155, 53, 59,106,250,240, 67,227,206,102,205,142,122, 1,253,
- 74, 13, 22, 5,224,203,229,203,151,135,233,245,250,176,237,219,183,135,245,235,215, 47, 12,192,231,245, 60, 22, 63,253,240,195,
- 15, 68,175,215,147,237,219,183,147,126,253,250, 17, 0,107,235, 83, 46,149, 69,178,252,252,252, 62, 59,114,228,200,157,167, 79,
-159,166, 7, 7, 7,175,104,214,172,153,172,174,154,127, 69,196, 98,177, 91,211,166, 77,119,249,248,248, 36, 52,111,222, 92,235,
-237,237, 93,236,225,225, 17,231,235,235,187,131,199,227,185,214, 81,182,117,187,118,237,140, 87,174, 92, 33, 3, 6, 12, 32,229,
- 76, 72,181, 84,231, 69, 8, 33,173,190,252,242,203,185, 0,200,151, 95,126, 57,151, 16,210,167,212, 79,244, 41,255,119,197,207,
- 50,243, 84,246,127,101, 26,101, 75,101,154,149,253, 70,133,223, 65, 21,145,172,241,127,216,185, 19, 39, 78,116, 58,113,226,196,
-149,138, 59,247, 81, 67,180,157,214,214,161,168, 40, 61,133, 68, 45,249,148, 92, 14,116, 36, 55, 58,219,146,103, 51, 7,144,148,
-221,107,200,228, 22,242,194, 15, 27, 34,176,182, 70, 43, 44, 44,140,132,133,133,145,240,240,112, 18, 27, 27, 75,114,114,114,200,
-254,253,251,141, 86, 86, 86, 69, 60, 30,111, 25, 0,129, 57, 98, 82,169, 52,149, 16, 66, 52, 26, 13, 89,188,120,113,113,105,164,
- 74, 41,147,201, 82, 9, 33, 36, 59, 59,155, 44, 91,182,172, 88, 38,147, 69, 0,176, 87, 40, 20,137, 49, 49, 49, 68,169, 84, 86,
-106,102,228,114,121,234,211,167, 79,203,140,147,131, 92, 46,143, 58,118,236,152,142, 16, 66,146,146,146,136,165,165,101, 42, 0,
-165,149,149,213,131, 19, 39, 78,232, 8, 33, 68,165, 82,149,165,155,101,180,138,138,138,200,185,115,231,222,202, 67, 89,250,233,
-211,167,223, 50, 96,102,160,148,201,100, 97,251,247,239,215, 26,141, 70, 18, 21, 21, 85,102, 18,149, 22, 22, 22,225, 7, 15, 30,
-212, 26,141, 70, 18, 29, 29,109,182, 25,108,208,160, 65, 26, 33,132, 24, 12, 6,178,113,227, 70, 77,217, 49, 45, 75,215,106,181,
-100,195,134, 13, 26,169, 84, 26, 6,160,218,232,155, 66,161, 80,105,181, 90,146,157,157, 77, 2, 2, 2,242,111,220,184, 65,114,
-115,115, 9, 33,132, 52,104,208, 32, 13, 0, 60, 59,141,253,254,206,243,252,220, 79,102,135, 30,112,109, 53,124,201,217,187,201,
- 73, 91,142,220, 15, 83,248,134,244, 52, 39,168,201,227,241,150,217,217,217, 21, 95,187,118,205,168,211,233, 72, 66, 66, 2, 9,
- 15, 15,127,115,141, 69, 70, 70,154,101,180, 88, 44,214,252, 59,119,238,232,140, 70,163, 41, 35, 35,195,152,150,150,102, 76, 75,
- 75, 51, 84, 52, 90,100, 27,155,100,156, 30, 71, 78,110,158,161,229,112, 56,243,223, 79, 52, 11, 76,178,201, 51,132,108,242, 12,
-219, 49, 82,145,145, 23,190,151,144,243, 51,200,171,239, 27,146,249, 61, 37,121,166, 77,158, 97,100,147,215,135,228,219, 78,172,
- 90,105,110,246,238, 75, 54,121,134,253,240,145, 75,230,131,176,123,228,202,149, 43,100,195,154,229,100, 90, 55,135, 2,211, 38,
-207, 48,242,179,247,192,218,104,150,135,199,227, 61,191,126,253, 58,185,122,245, 42, 89,184,112, 33, 17, 10,133, 9,239, 34,170,
- 71,126,246,112, 33,191,120,116, 34, 91,221,237,200,239,157,254,114, 29,124, 90,217,195,161,187, 7, 55, 41,227,193, 17, 66, 94,
-191, 32,234,149, 62,164,167, 39,187,190,102,203,215,198,198, 38, 61, 46, 46,142,168,213,106,178,122,245,106, 34,149, 74,235,100,
-182, 62,236,223,153, 20,101, 95,168,214,104,133,132,132,144, 31,127,252,145,232,245,122,210,186,117,107,115, 94, 90,254, 96,182,
- 60,129, 16, 0,115, 87,172, 88,241,198,100,133,134,134,134, 69, 70, 70,134, 57, 59, 59,159,170,199,177, 88,187, 98,197,138, 55,
- 38, 43, 52, 52,148, 68, 70, 70, 18, 23, 23,151,196,250,148, 75,221,187,119,255, 62, 54, 54, 54,119,222,188,121, 7, 58,118,236,
-184,228,193,131, 7, 73, 39, 79,158, 12,243,243,243,235, 89, 87,205,119, 16,213, 97,149, 70,118,184,132, 16, 54, 33,164,204,188,
-178, 0,176,203, 2, 10,230, 48,114,228, 72, 97,219,182,109,195, 70,140, 24, 81,184, 99,199, 14, 18, 23, 23, 71, 34, 34, 34,200,
-138, 21, 43,200,130, 5, 11,200,182,109,219,200,192,129, 3, 11, 2, 2, 2,238,124,248,225,135,252, 90,100,211,199,213,213, 53,
-231,232,209,163,100,207,158, 61,132,195,225,156, 52,119,195,234,188, 72, 85,102,170, 42,131, 85,241,187,106,140, 88,181,134,205,
-140,223,251,163,169,170, 24, 9, 41,247,247,239,193,193,193,157,254,240,240, 33,248,110,252,172,239,249,177, 59, 86, 35,117,255,
-122, 48,179, 83,193,206,203,132,230,250, 73,232,175, 31,195,168, 54,109, 4, 2,138, 90, 84,219, 11,134,203,229,130,203,229,130,
-195,225,160,176,176, 16, 42,149, 10,237,219,183,103,132,135,135,243, 39, 76,152, 48, 67, 32, 16, 36, 0,232, 95,227,221, 76,149,
- 68,164,111,222,188,137,113,227,198,241,118,237,218,213,220,218,218,250,161,209,104,228, 2, 64,116,116, 52,134, 12, 25,194,219,
-187,119,111, 19,123,123,251,112,157, 78, 39,228,241,120, 96, 50,153, 85,234,113,185, 92,232,245,122,158,187,187,123,196,195,135,
- 15,125,131,131,131,217,241,241,241,136,137,137,129, 94,175,231,122,120,120, 68,134,135,135, 55,239,211,167, 15, 59, 49, 49, 17,
-241,241,241,111,242, 97, 78,126,181, 90, 45,120, 60, 30,202, 87,105, 81, 20, 5,141, 70, 3, 46,151,107,182, 22,139,197,234,226,
-229,229, 21,249,240,225, 67,191,144,144, 16,206,189,123,247,144,148,148, 4,163,209,200,245,246,246,142,124,248,240, 97,139,126,
-253,250,113, 34, 34, 34,144,154,154, 10,115,171,208,202,214,123,248,240, 33, 70,140, 24,193, 61,115,230, 76, 11, 59, 59,187, 8,
-131,193,192, 5,128,200,200, 72, 12, 25, 50,132,123,246,236, 89, 63, 39, 39,167,136, 26,170, 18,153, 0,160,215,235, 49, 97,194,
- 4,145, 84, 42, 69, 98, 98, 34, 76, 38, 19,140, 70, 35, 0, 32, 51, 43, 51,242, 97,100, 84,244,168, 97, 31,117, 42,210,105, 52,
-183,238,222,127,210,168,129,139, 35, 69,145, 6, 53,100,181,191, 72, 36, 74, 88,185,114,229,103,113,113,113, 60, 47, 47, 47,198,
-171, 87,175,144,151,151, 7, 14,135,243,230, 26, 51,119,191,185, 92,110,103, 31, 31, 31, 86,113,113, 49, 76, 38, 19, 0, 16, 6,
-163,242, 22, 43,252,236,235,240, 86, 26,216, 2,129,160,243,123,121,122,231,250, 88,193,132,238,241,233, 90, 30,207,194, 81, 34,
-182,243, 0, 18,174,162,161, 53, 15, 76, 6,147,127, 47,166, 80, 4,144,238,112,206,176,170,157,166,169,123, 76,154,150,167,183,
-108, 34,182,119,116, 70,102,102, 38,156, 26,121,161,152,107,205,189,249,162, 64, 12,170,150,154,255, 79, 7,119,119,119, 91, 55,
- 55, 55,100,100,100,192,207,207, 15,114,185, 92, 14,160,123,157, 31, 58,219, 93,120,200, 69, 59,128,177, 18, 70,106, 33,244,172,
-165,120,145,238, 71, 54,249,177,255, 74, 38, 75, 42,230,222,222,187,111,191,131,149,179, 55,112,242, 19, 40, 45,120,216, 58,201,
-207,210, 90,198, 59, 90, 71,179,229,171, 84, 42, 47,221,185,115, 71,193,231,243, 17, 30, 30, 14, 31, 31, 31,172, 94,189,218, 90,
- 46,151, 95,173, 91,100,139,128, 80, 85,155,172,142, 29, 59, 98,234,212,169,216,181,107, 23, 44, 45, 45, 49, 98,196,136,154,204,
- 22,137, 6,142,255, 16, 17,177,125,215,203,151, 39, 70, 54,110, 28, 60,194,195, 99,241,196,161, 67,199, 78,159, 62, 29,203,151,
- 47,199,209,163, 71,209,174, 93, 59,140, 31, 63, 94,159,144,144,176,179,174, 85, 85, 43, 87,174,156, 54, 99,198,140,138,154,186,
-248,248,248, 31,234, 85, 46,101,102, 70, 70, 68, 68, 68, 15, 27, 54,172, 83,113,113,177,230,238,221,187, 79, 92, 93, 93, 29, 1,
- 52,168,171,102, 61, 12, 22, 69, 8,225, 3, 16,150, 46, 34, 0,194,189,123,247,202, 66, 66, 66,164,165,105,130,210,165,198,234,
-125, 31, 31, 31,199,231,207,159, 39,207,156, 57,211,111,215,174, 93, 2,161, 80,136,236,236,108,252,242,203, 47,152, 59,119, 46,
- 40,138, 2, 33, 4,219,182,109, 19,142, 25, 51,166,213,203,151, 47,147, 93, 92, 92,204,105,210,194, 19,139,197, 7, 23, 47, 94,
- 44, 53,153, 76,152, 51,103, 78,134, 78,167,155, 90,250,221, 60, 11, 11,139,219, 40, 49,220,213, 81,169, 23, 41,247,172, 60, 81,
-225,216, 4, 87, 76,171,248, 29, 33, 36,184, 58,141, 90,158,139,202,126,239,100,117,102,171,252, 19,168,115,165, 46, 18,104,102,
-235,234,137,156,243, 7, 33, 96, 81, 16, 48, 75, 23, 22, 5,198,171, 72, 56,241,217,208, 19,226, 91, 87,163, 85,182,176,217,108,
- 20, 22, 22,194,104, 52, 98,238,220,185,188,115,231,206, 89, 49, 24,140,255,214,164, 83,222, 48, 61,123,246, 12,222,222,222,212,
-241,227,199,149, 83,167, 78, 21,148,253, 78, 78, 78, 14,220,220,220,168,211,167, 79,219,124,253,245,215,226,234,204, 12, 69, 81,
-224,112, 56,152, 49, 99,134,224,238,221,187,150,246,246,246,120,245,234, 21, 94,191,126, 13,177, 88,140, 25, 51,102, 8,238,220,
-185, 99,109,111,111,143,184,184, 56,228,228,228, 64, 44, 22,215,218,104,113, 56,156,183,182,161, 40, 10, 58,157,174, 86,198, 64,
- 38,147,237, 9, 11, 11,179,150,201,100,136,136,136,128,193, 96,128, 76, 38,195,180,105,211, 4, 97, 97, 97,214, 22, 22, 22,136,
-142,142, 6, 33, 4, 82,169,180, 86,121, 4, 0,147,201,132,232,232,104, 52,104,208, 0, 87,175, 94,181,153, 56,113, 34,191, 44,
-253,197,139, 23,112,116,116,196,213,171, 87,109, 68, 34,209,158,170,180, 76, 38, 19, 82, 82, 82,240,232,209, 35,188,122,245, 10,
-233,233,233,200,200,200, 64, 94, 94, 30, 12, 6, 3, 0, 64,152,151,123,114,239,129,227, 15, 5, 2,129,208,199,195,221, 57, 50,
-234,113,154, 64, 32, 16,186, 56, 59,123, 0,223, 50,170, 49,132,255,141,143,143,183, 26, 51,102, 12, 71,173, 86, 35, 43, 43, 11,
- 44, 22,235, 15,215, 22,151,107, 94, 83, 32,131,193,224,205,231,243, 41,157, 78,247, 38, 2,198,229,114,241,217,158, 66,248,204,
-199, 91,203,208, 53,105, 32, 70, 61,180, 90,173,247,255, 60,154, 5, 80,160,180,238,160, 40,191,219,175, 10, 44, 59, 4, 15,227,
- 32,230, 12, 96,210, 3, 12, 22, 58, 55,115,100, 29,141, 44, 80,130,160, 25, 52,240, 34,164,230,158, 95, 4,160, 0,157, 27, 64,
-125,112,238,185,193,170,221,128, 73,156,228,228,100,112, 56, 28,240,120, 60,248,117, 25,196,218,251, 80,111, 11, 10,205,161,131,
-167, 57,154,111,133, 29, 5,130,111, 22, 44, 88, 32, 42,175, 57,118,236, 88,145, 76, 38, 91, 80,103,147, 85, 32,108, 3, 3,153,
-241, 40,185,176,193,226,147,106,239,151,105, 69,158, 32,100, 38,160,111,241, 14,204, 86,103, 30,143, 23, 3,160,125,189, 76,150,
-132,123,107,223,190,253, 14,150, 78, 37, 38, 11,134, 98,128, 45,128,173,181, 5,182,126, 22,104,105,109, 33,168,173,217,242, 85,
- 42,149, 23,111,223,190,173,224,243,249, 8, 11, 11, 3,135,195, 1,159,207, 71,211,166, 77,177,105,211, 38,107, 75, 75,203, 90,
-155, 45, 2, 82,105,204,183,127,255,254,164, 99,199,142,152, 50,101, 10,118,238,220, 9,173, 86,139,197,139, 23, 35, 62, 62,222,
- 44,217,104,224,248,178,136,136, 29, 75, 31, 61,122,246,165,175,175, 87,127,145,200,114,202,136, 17,178,175,191,254,250,196,177,
- 99,199,182,247,233,211, 39,227,238,221,187, 63, 2, 56, 88,203,195, 75, 1, 8, 93,181,106,213,148, 50,227,246,245,215, 95,111,
- 59,118,236,216,210, 62,125,250,164,220,189,123,119, 38,128,208,250,148, 75, 38,147,233,228,127,255,251,223,135, 2,129, 64,232,
-233,233,233, 28, 21, 21,149, 38, 16, 8,132,206,206,206, 30,157, 58,117, 98,212, 69,179, 46,216,216,216,116,189,125,251,182, 15,
- 74, 58,141,241,202,140, 86, 84, 84,148, 69,110,110,174,133, 88, 44,182,176,179,179,147,148,153,173, 1, 3, 6, 88,176, 88,172,
-106,175,219,252,252,252, 99,243,230,205,147, 13, 24, 48,160,236,127, 92,191,126, 29, 59,119,238,132, 72, 36,122,107,221,126,253,
-250, 97,220,184,113,114,173, 86,251, 95, 51,178, 59,122,194,132, 9,158, 74,165, 18,223,124,243,141, 38, 57, 57,185, 43,128,120,
- 0,178,110,221,186,125, 31, 21, 21, 21,208,170, 85,171, 3, 0,252,171,187,247, 42,243, 34,229,141,142, 57,105,117, 93,223, 92,
-179, 85, 33,169,202, 49,180,222, 50, 90,193,193,193, 87, 80, 69, 79, 42,221,235, 84,240, 96,132,128, 73, 65,200, 44,103,182, 96,
- 2, 43, 39, 13, 84, 29,122,169, 84,246, 48,228,114,185, 96, 50,153,208,106,181, 48,119,162,234, 50, 83, 32,149, 74, 33, 22,139,
- 81, 84, 84, 4,131,193, 0, 62,159, 95,102, 70, 32,149, 74,193,102,179,193,102,179,193,231,243,255, 16, 77,170, 24,205,225,112,
- 56, 16,137, 68, 72, 73, 73, 65,124,124, 60, 76, 38, 19,196, 98, 49, 68, 34, 17,184, 92, 46, 84, 42, 21, 84, 42, 21, 8, 33, 16,
-137, 68, 16,137, 68,168, 77,131,107,163,209, 88,233,195, 95,175,215,215, 42,162,101, 48, 24,240,228,201, 19, 36, 36, 36,128,207,
-231,191,217, 87, 30,143,135, 23, 47, 94, 64,173, 86, 67, 40, 20, 66, 42,149, 66, 38,147,153,173, 91,182, 47, 18,137, 4, 2,129,
- 0, 89, 89, 89, 40, 44, 44,124,115, 76,165, 82, 41, 68, 34, 17,114,114,114,144,150,150, 86,237,190, 27,141, 70,168, 84, 42,164,
-167,167, 35, 49, 49, 17, 25, 25, 25,111, 10,160,210,168, 81,253, 2, 59,185,185,200,204,204,124, 19,137,172,106, 49, 7,147,201,
-132,188,188, 60,220,190,125,155, 50,153, 76,200,206,206, 54,165,171,213,198,201, 42, 46,142,126,251, 51,217,127,230, 65,241,222,
- 83, 97, 69,135, 47, 62, 42, 10, 61, 28, 89,196, 15, 88,104,192,251, 96,131,175, 12,122,118, 80, 70,190,158,151,174,227,200,148,
-190,221,128,152,211, 0,131, 5,240,229,104,221,164, 33,226,179,140,162,167,169, 90, 62, 40,244, 64,168,135,220, 44, 77, 35,187,
-123,122,158,158, 23,167,179,150,122, 55,243, 71,106,106, 42,120, 60, 30,120, 60, 30, 62,104,215, 13, 49,153, 70,225,227,228, 34,
- 33, 8,130,204,210,252,127, 26,137,197,226, 54,237,219,183,167,202,107,246,238,221, 27, 20, 69, 53, 5,224, 85,171, 66,110,109,
- 35, 46,116,194,214, 96,145, 25,143, 83, 10,237,143, 70, 21,123,244,237, 63,200,242,167, 11,105,222, 79,212, 26, 87, 16,253, 44,
- 16,157,127, 61,204, 86, 39,137, 68,114, 98,221,186,117,174,124, 62,255, 52,128, 14,117, 17, 17, 11,152, 27,191,153, 50,204, 65,
- 94,102,178,244,133, 0, 75, 0,176, 5, 0, 75, 0, 91, 27, 5, 22,141,235,110, 41,228,179, 15,215,194,176,238, 13, 13, 13,181,
-174,104,178,202, 22, 63, 63, 63,204,159, 63,223,218,210,210,114,143, 57,122, 43, 87, 44, 39,217, 57, 57, 0, 1,114,115,243,177,
-114,197,242,172,178,239, 6, 12, 24, 64, 58,116,232,128, 41, 83,166, 96,233,210,165, 56,117,234, 20, 90,183,110,141,241,227,199,
-163, 85,171, 86, 53, 73, 7,201,100,178, 93,221,186,117,187,173,146, 72,198,165,248,251,115, 47,202,100, 57, 93,115,114,100, 46,
- 81, 81, 58, 79, 32, 18,192,134,164,164,164,158,181, 48, 89, 67,165, 82,105, 88,215,174, 93,117, 18,137, 36, 97,245,234,213,147,
-167, 78,157,138,229,203,151, 99,222,188,121,191, 0,248, 15,128,175,146,146,146,236,171, 51, 89,127, 86,185,244,103,149,117, 70,
-163, 49,241,224,193,131,173,116, 58,157, 99,105,245, 32, 47, 59, 59, 91,250,250,245,107,137, 78,167, 19,153, 76, 38,145,133,133,
-133, 24,128,112,212,168, 81,172,199,143, 31,123, 27, 12,134,228,234, 52,213,106,245,240, 57,115,230,100,100,100,100, 0, 0,154,
- 54,109,138,236,236,108,124,254,249,231,248,244,211,146, 14,193, 45, 90,180, 0, 33, 4,169,169,169, 88,185,114,101,170, 90,173,
-254,216,140,236, 54,118,119,119, 71, 84, 84, 20,158, 60,121,114, 1,128, 9, 37,237, 88,115, 30, 60,120,240, 48, 61, 61, 29,123,
-246,236,225, 56, 56, 56, 28, 67, 21, 67,188, 84,231, 69,234, 2, 69, 81, 39,235,178, 93, 89,228,170,178,136, 88, 21, 84, 31,209,
- 10, 14, 14,166,202,127,190, 21, 49,162, 16,145,112,255, 42, 44,125,253,223,138,102, 9,153, 20, 4, 82, 25, 98, 18,227,193, 1,
-245,232, 93, 25,173,172,172, 44, 76,158, 60,185,104,248,240,225,153, 38,147,105,144,185,166, 64, 38,147, 65, 38,147,225,241,227,
-199,100,224,192,129,169,171, 87,175, 46, 42,111,180,158, 61,123, 70,130,130,130,210, 22, 44, 88,144, 95,157,209, 42,139,104, 45,
- 91,182,172,168,115,231,206,233,143, 30, 61, 34,101,102, 74, 44, 22, 99,229,255,177,119,221,225, 81, 84,111,247,204,204,246,150,
- 94, 73, 72, 8,161, 36, 64, 32,132, 22, 64, 80, 32, 64, 64, 58, 34,130,136,130, 34, 69, 68, 20, 17, 21,233, 2,210,155, 82, 20,
- 69,105, 2,130,210, 17, 8, 85,105, 9, 45,148, 52, 72, 47,155, 77,207,246,221,153,185,223, 31, 73, 48, 64,202, 38,168, 63,245,
-219,243, 60,243,108,246,238,204,201,109,115,231,204,123,239,125,223, 21, 43, 12, 61,122,244, 80, 95,187,118,141, 84,164,213,197,
-162, 69,211,244, 35,161, 85,249, 26,154,166,193,243,124,157,132,150, 78,167, 27,253,226,139, 47,170,239,223,191, 79, 42,202,233,
-232,232,136, 85,171, 86, 25,122,247,238,173,190,115,231, 14,169, 72,115,112,112,176, 89, 12, 86,252,127,149, 74, 5, 7, 7, 7,
-220,189,123,151,244,233,211, 71,189,110,221, 58, 99,229,244,123,247,238,145, 65,131, 6,169, 75, 75, 75, 71,215, 36, 94, 42,166,
-243, 88,150,133,209,104, 68, 94, 94, 30,210,211,211, 31,153,211, 13, 10,135,200, 81, 47, 15, 12, 53, 24, 12,250,187,241, 9,105,
-173, 67, 90,122, 24, 12, 6,125,106, 90, 90, 60, 48,143,175,129,123,120,171, 86,173,242, 39, 79,158,108, 40, 44, 44,124,102,161,
- 37, 22,139,239, 11, 4, 2,210,173, 91, 55, 98, 54,155, 73,122,122,186, 53,175,176,144, 13, 94,188,152,220,153, 62,157,146, 69,
- 71, 75,148, 74, 37, 85,206, 73, 63,120,240,128,151,201,100,247,255,118,161, 69,243, 94,160,200,115, 23, 18,180, 78,189, 7,142,
- 20, 83, 57, 87, 1,139, 22,144, 56, 3, 18,103, 8, 20,174,232,215,173, 45,179,237,114,137, 23, 8,223, 5, 34,137,111,173,156,
- 66,226, 9,240,221, 78,198, 27,157,159,123,105,170,184,160,160, 0, 12,195, 60, 18, 69,114,133, 2,189,134,188, 70,127,123,213,
-228, 5,144,174,160, 24,223, 58,220,235, 51, 63,251,236, 51, 81, 97, 97, 33,104,154,254,131, 83, 46,199,196,137, 19, 37, 14, 14,
- 14,179,109, 30,252,246,182, 16, 65, 40, 9, 7,200,123,113, 57,198, 6, 7,111, 27,130, 62, 88,186, 85,214,170,109, 71,188,253,
-130,135,108,233,145,220, 86, 55,211, 13,141, 1,110, 58, 88,115,251,122,136,173,110, 42,149,234, 72,116,116,180,188,127,255,254,
- 88,177, 98,133, 66, 38,147, 29,171,207,192,175,211,114,239, 44, 88,247,131,250,214,234,190,128, 69, 87, 38,176, 42, 29,185, 90,
- 30,115,182, 70, 21, 91,173,100,148,173,156, 6,131, 97,236,155,111,190,153,191,127,255,254,167, 68,150, 84, 42, 69,114,114, 50,
- 62,255,252,243,130,130,130,130, 90, 31,138,171, 86,174,136,137,189,121, 6,223,126,189, 0, 0,193,250, 85,147,112,233,194,110,
-167, 23,158,239, 78, 26, 53,106, 68, 58,118,236,136,201,147, 39, 99,209,162, 69,136,139,139,131,155,155, 27, 38, 77,154,132,231,
-159,127, 30, 43, 87,174,172,105,144,234,243,206, 59,239,124,158,145,145, 17,116,242,228, 73,129, 70,163,241, 88,249,205, 55,197,
-251,138,139, 11,150,196,198,198,125, 18, 18,210,108, 86,155, 54,175,215,224,250,161, 74,145, 53,101,202,148, 93, 25, 25, 25, 97,
-167, 78,157, 18,106, 52, 26,223, 41, 83,166, 96,249,242,229,152, 61,123,246,102, 0,111,195,182, 13, 47, 54,143, 75, 12,195, 68,
- 14, 31, 62, 60,212, 96, 48,232,227,226,226,210, 66, 66, 66, 60, 12, 6,131, 62, 45, 45, 45,254,220,185,115,124,125, 56,235,131,
-252,252,252,164,157, 59,119,198, 79,157, 58, 53, 44, 35, 35,163, 5, 0,215,210,210, 82, 69,105,105,169,196,108, 54,203,156,157,
-157,157,219,182,109,235, 54, 97,194, 4,229,141, 27, 55, 90,100,100,100,104,203,173, 72,213,194, 98,177,196, 21, 22, 22, 14,232,
-219,183,111, 81, 97, 97, 33,218,180,105,131,129, 3, 7,194,203,203, 11, 13, 26, 52,192,224,193,131,209,188,121,115,228,231,231,
- 99,212,168, 81, 5, 26,141,166, 47,128, 7, 54,100, 55, 41, 39, 39, 7, 93,186,116,193,130, 5, 11, 6,140, 24, 49,226, 78,183,
-110,221, 74, 66, 66, 66,244,190,190,190,193,107,215,174,133,143,143, 15,246,238,221,235, 45,145, 72,118, 86, 33,178,170,213, 34,
- 0, 52,229,130,199,252,196,167,166,150,223,108,189,182,202,191,109, 56,239, 73,177, 85,249,120,106,234,176,234, 6, 1,230,124,
-191,119,155, 81,236,215, 20,142, 65,161,144, 75,165,144,137,197,144, 57,187,194,196,243,248, 38, 57, 71,175, 35,100,118, 93, 59,
-207,147, 15, 66,138,162,176, 97,195, 6,182,115,231,206,198,168,168,168,245, 6,131,193, 15,101, 94,101,109, 22, 5,235,214,173,
-211, 79,155, 54,237,102,110,110,110,168, 84, 42, 53, 87,164,175, 95,191, 94,255,218,107,175,197,102,100,100,132,201,229,114,125,
-117,235,179, 42, 11, 45,137, 68, 98,202,205,205,237, 56,126,252,248,251, 95,125,245,149, 78, 46,151, 67,161, 80, 64, 34,145,152,
-115,115,115, 67, 39, 79,158,124,115,249,242,229,122,153, 76, 6,133, 66, 81,167,105, 57, 66,200, 83,130,170,114,186,173, 96, 89,
- 54, 42, 55, 55, 55,116,218,180,105, 55,214,174, 93,171,171, 16, 64,149,243,184,114,229, 74,189, 82,169,172,147, 69,171,226, 60,
-133, 66,129, 53,107,214,232,167, 78,157,122, 51, 55, 55, 55, 84, 34,145,152, 43,165,235,222,121,231,157, 27,185,185,185,161, 44,
-203, 70,213,240, 54,198,149,148,148, 64, 32, 16, 32, 54, 54,214, 36, 18,137, 64,211, 52, 18, 19, 19, 31, 13, 62, 46, 46, 46, 45,
- 67, 91,135, 4,255,176,107,239, 57,153, 72, 34,233,220,177,125,139, 7, 41,169, 25,132, 80, 41,181,100,245,103,131,193,224, 23,
- 21, 21,181,190,115,231,206,198, 13, 27, 54,176,213, 89,182,108,129,201,100, 58,119,253,250,117,171, 84, 42,165,178,179,179, 89,
-134, 97,192,113, 28, 49,117,236,104,106,189,118, 45,185, 59,107, 22,229,160, 80, 8, 68, 34, 17,228,114, 57,117,252,248,113,179,
- 94,175, 63,247,247, 11, 45,200, 65, 65,150,144,107, 82, 73,105,150, 66,252,207,101, 34, 75,234, 4, 72,157, 1,169, 51,124,124,
-124,113, 53, 89,175, 2, 13, 49, 56, 27,124,136, 17,162, 0, 5,121,172, 26, 42,161, 88, 70,229,228,228, 60, 18, 68, 21, 71, 64,
-211, 22,184,158,170, 85,130, 34, 18, 48,168,139, 11,146, 1,174,174,174,130,236,236,236,167, 56, 91,182,108,201, 88,173, 86,219,
- 93,187,100,113,222, 0, 63, 37, 62,199,232,125,224,166, 46,104,250,146,111,101, 50,174, 8,136, 94,135, 86,129, 13, 48,253,165,
-182,226, 79, 15,106, 90, 93, 75,209, 7,130, 33,111,131,215,186,215, 33,159,207,169, 84,170, 99,215,174, 93,147,171, 84, 42, 60,
-120,240, 0, 29, 59,118,196,150, 45, 91,228,114,185,252, 40,128, 58,173,199,187,162, 70,170,182,148,235, 60,115,111, 90,206,173,
-108,246, 49,145,165,209, 17,188,249,197,193,162,194, 18,227,240,203,233,213,223, 63, 85,224, 70, 81, 81, 81,159,217,179,103,231,
-107, 52,154,199, 68, 86,106,106,106,197, 67,241, 5, 0,181,190,252,158, 61,115, 34,108,241,162,105,184, 22,125, 7,253, 6,188,
-135,235,183,146,240,201, 71, 67,224,228, 32, 67, 84, 84, 20,134, 14, 29,138, 5, 11, 22, 32, 49, 49, 17, 63,254,248, 35,181,101,
-203, 22,234,242,229,203,212, 23, 95,124, 65,213,178,164,225,213, 37, 75,150,224,218,181,107,232,223,191, 63,206,159, 63,143,130,
-130, 2,236, 62,118, 44, 97,103, 66,194, 39, 21,107,182,170,113,253, 80, 37, 28, 28, 28, 62, 88,178,100, 9,162,163,163, 31,113,
-230,231,231, 99,201,146, 37, 25, 0, 38,213, 69,100,213,101, 92,106,211,166, 77,240,174, 93,187,206, 73,165, 82, 73,199,142, 29,
- 91, 36, 39, 39,103, 0, 72,169, 7,103,201,179,204, 84,229,229,229,253,190,101,203,150,203, 61,123,246,148,143, 29, 59,214,253,
-151, 95,126,113,213,235,245, 13, 36, 18,137,135,217,108, 22,223,187,119,143,217,183,111,159,215,221,187,119,147,141, 70,227, 85,
- 91,234, 35, 55, 55,247,106, 92, 92, 92,223, 54,109,218,220, 91,191,126,125,134,183,183, 55, 63, 97,194, 4,188,249,230,155,112,
-119,119,231,214,172, 89,147,214,173, 91,183,216,164,164,164, 8,189, 94,127,219,198,188,126,183,120,241,226,223,118,237,218,133,
-129, 3, 7,226,139, 47,190,192,238,221,187,113,230,204, 25,217,133, 11, 23,196, 91,182,108,129, 72, 36, 66,120,120, 56,250,244,
-233,211,171,124,186,211,214,231,210, 53,138,162,142, 80, 20,117,234,137,207,107, 53,253, 86,135,107,171,251,187,198,243,158,200,
-230,150, 39, 14,219,241,106, 32,230, 77, 12, 81,233,127, 31, 19, 78,114, 38, 60, 71,212, 35, 91,144,139,207,187,144,241, 77, 40,
-221,216,122,186,119, 48, 24, 12,143,142,253,251,247, 19, 47, 47, 47,157, 74,165,170,179,123, 7, 47, 47, 47,117, 73, 73, 9,233,
-208,161, 67,129,187,187,251, 35, 87, 4,222,222,222,106,157, 78, 71,194,195,195, 11, 60, 60, 60, 30,185,119,240,245,245, 77, 39,
-132, 16,127,127,255,172,234, 38,158,227,147, 0, 0, 32, 0, 73, 68, 65, 84,248, 88,150, 37, 94, 94, 94, 21, 59,244,132, 46, 46,
- 46, 27, 59,117,234, 84,160, 86,171,137,183,183,247, 35,215, 9,238,238,238, 43, 58,118,236,248,100,122,109,249, 77,207,200,200,
- 32, 25, 25, 25,164, 97,195,134, 89,149,211, 83, 83, 83, 73,106,106, 42,241,245,245,173,179,123, 7,119,119,247,229, 85,228,165,
- 94,121,244,243,243, 83, 27, 12, 6,210,165, 75,151,199,234,212,207,207, 79,109, 52, 26, 43,210,109,114,239, 32,147,201,222,150,
- 74,165, 89, 82,169, 52, 75, 34,145,124,222,168, 81,163,220, 61,123,246,144, 53,107,214, 84,108, 73,135,123,203, 65,157,155,118,
-121,253, 19,247,150,131, 63,120, 22,247, 14, 42,149,234,180,151,151,151,110,255,254,253,143,245, 47,131,193, 96,179,123, 7,153,
- 76,150,161,213,106,121,181, 90,109,253,237,183,223,244,209,209,209,250,216,216, 88,125,114,114,178, 33, 63, 55,215,162, 86,171,
- 13,197,197,197,166,155, 55,111,154,228,242,255,141,123, 7,178,165,121, 83,178, 49,248, 96,210,130,128,187,211,186,203,141,183,
- 23,133, 18,242,211, 80, 66,142,190, 73, 72,212, 76,114,117,243, 4,210, 37, 64,194,253, 54,163, 97, 60,217, 20,116,192, 22,151,
- 12,100, 75,235,166,100, 99,240,209,132,249, 1,119,199,118,107, 96,252,230,171, 53,228,202,149, 43, 36, 54, 54,150, 60,120,240,
-128, 28,253,121, 15,233, 18, 40, 47,227,220, 24,124,176,142,110, 30,186, 74, 36, 18,237,170, 85,171,200,229,203,151, 31,113, 30,
- 60,120,144,200,229,114, 61, 96,219,174,101, 2, 80,100, 99,203, 33,236, 87, 65, 23, 62,237,173, 44,205, 63, 60,147,144,219,219,
- 8,217,210,138,144,239, 58, 17,178,231, 69, 66, 14,189, 78, 46,175,121,137,116, 13, 16, 89,201,166,160,243,100,115, 75,155, 23,
-219, 11,133,194,146,253,251,247,147,172,172, 44,114,254,252,121, 18, 29, 29, 77,238,223,191, 79,210,210,210,200,145, 35, 71,136,
- 80, 40, 52,162, 30, 97,203, 58,121,194, 63,162,153, 40,251,230,210,174,132,252, 50,138,104,118,190, 74, 6,132,168, 10,194, 27,
- 62,147, 63,186,182,174,174,174,121, 71,142, 28, 33,201,201,201,228,220,185,115,196,195,195, 35, 15,128,205,235,101, 7,244,235,
- 70,136,249, 38,233,209, 61,132,180,105, 19, 66,158,239,218,140,100, 38,173, 35, 29,219, 53, 34, 27, 55,110, 36,106,181,154, 52,
-106,212,136,212, 53, 99, 17, 17, 17, 87, 8, 33, 49,253,251,247,143, 1,112, 60, 34, 34, 34,230,225,195,135, 49, 29, 59,118,188,
-140,154, 93, 63, 84,139, 94,189,122, 89, 8, 33,164,127,255,254, 4, 64, 86, 68, 68, 4,121,248,240, 33,233,216,177,163,185, 62,
-149,103,203,184, 20, 22, 22,214,185,103,207,158,159,132,133,133,125, 96,139,123,135, 90, 56,255, 44, 39,212, 12,202,156,127,182,
- 4,208,190,252,104, 81,158,198, 60, 3,231,235, 66,161,240, 27, 23, 23,151, 51,206,206,206, 81, 12,195,108, 1, 48, 6,245,243,
-111, 70,151, 91, 24,127,117,119,119, 79,108,211,166,141,161,111,223,190,164, 95,191,126,100,202,148, 41,132,231,121,178,103,207,
- 30,178, 96,193, 2,210,196,213,149, 93, 3,228,109, 2,222,128, 29,101, 14, 75,223, 8,164,206,141,110,140,210, 81,141,161, 29,
-215,132,178,197, 97,105, 68,117, 66,139,231,121, 18, 31, 31, 79,122,244,232,161, 83, 40, 20,153,176,221, 97,233, 99,156,110,110,
-110,209, 30, 30, 30, 79, 57,209,172,148,254,152,195, 82, 15, 15,143,223,189,189,189,213,238,238,238,215,171,226,116,115,115,139,
-246,246,246, 86,187,185,185, 61,230,220,147, 97,152,254,110,110,110,153, 79,166, 11, 4,130,158, 30, 30, 30,233, 79,166, 87, 83,
-118,120,121,121,165,103,101,101, 17,141, 70, 67,252,252,252,178,158, 20, 96, 57, 57, 57,143, 9, 48, 91, 56,107,203, 75, 13,121,
-172,146,211,134, 58,173, 79,187, 87,160,185,143,143, 79,238,202,149, 43,137, 82,169,124,108,203,115, 80,247,113,159, 93, 73,208,
-150,188,249,209,198, 61, 85, 56, 44,181,213, 57,104, 95,133, 66,145,217,163, 71, 15, 93,124,124, 60,225,121,158,240, 60, 95,157,
-208,170,138, 51,178,125,251,246,249,121,121,121, 92,105,105, 41,155,158,158,110,122,248,240,161, 97,209,162, 69, 22,141, 70, 99,
-212,106,181,230, 91,183,110,153,188,189,189, 53, 0, 34,235,218, 70,245, 68,196,147,211,103,100,115,139,174,100, 83,139, 35,247,
-231,250,223,123,189,147,194, 20,179,178, 63, 33, 81, 51,201,229,141,111,146,206, 1,226, 50, 65,180, 57,248, 24,249,182,121,119,
-178, 46, 80,108, 19,231, 55, 77,186,145,205,193,199,238,206,241,191, 55,180,157,187,121,215,182,205, 36, 49, 49,145, 28,220,183,
-147,132, 55, 46, 23, 89,155, 90,252, 74, 54,182,232, 97, 11,103, 85, 98,107,235,214,173, 36, 49, 49,145, 28, 56,112,192, 86,145,
- 21, 81,149,208,250, 56, 66, 89,244,102, 39,169,105, 84, 91,177,121,112, 43,145,165, 79, 83, 17,219,197, 95,192,133,122,211,124,
- 11,119,144, 62, 65, 50, 19,217, 20,116,158,108,106,209,215,214,124,138,197,226, 52, 84,242,169,243,228, 33,145, 72, 52, 53, 8,
-173,136, 90,197, 86,115, 73,246,233, 5, 61,201,192, 54,170,124, 27, 69, 86,109,125,169,173,155,155, 91,222,119,223,125, 71, 60,
- 61, 61, 53, 54,138,172, 71,156,131, 6,244, 33,169, 73, 71,201,129, 61, 75, 72,143,238, 45,200,246,173,211,200,149,243,115,201,
-139,253,122,144,136,136, 8,146,151,151, 71,122,246,236, 73,234,154, 79, 71, 71,199,237, 90,173, 54,230,196,137, 19, 49, 17, 17,
- 17, 49,219,183,111,143,185,120,241, 98,140, 92, 46,223, 94, 97,156,120, 82,108,181,120,122,252,143,120,194,162, 21, 83, 90, 90,
- 74, 78,156, 56, 65, 34, 34, 34,200,246,237,219,201,197,139, 23,137, 92, 46,143,169,239,125,100,235,184,212,187,119,239,207,146,
-147,147, 75,230,204,153,179,167, 10,135,165,182,114, 38,254, 73,249,252, 83,198,144,255, 1,167, 74, 38,147,197,220,188,121,147,
- 20, 22, 22,146, 16, 79, 79,178,152, 97, 72,134, 72, 68,178, 68, 34,178, 17, 40,248, 15,200,164, 9,213, 77, 29,254,213,168, 82,
-104, 25,141, 70, 50, 99,198, 12,179, 84, 42,213,139, 68,162,186,134,224,249, 87,119, 66, 55, 55,183,223, 61, 61, 61,213,158,158,
-158,143,137,189,202,233,110,110,110,215,255,227, 55, 96,115,145, 72,148, 42, 20, 10, 31, 15,193,211,114, 80,231, 38, 93,199,206,
-246,108, 53,168,223, 51,230, 83, 36, 18,137, 62,150, 74,165,250, 25, 51,102,152,181, 90,109, 93,132, 22, 0,244,150,203,229,153,
-223,127,255,189, 33, 33, 33,193, 90, 80, 80,192, 94,185,114,197, 26, 29, 29,109,158, 55,111, 94,169, 92, 46,207, 68,245,110, 9,
-254,150,250, 36,235, 2,197, 21, 98,235,246,108,255,251, 3, 67,228,150, 45,239,247, 33,157, 27, 61, 33,178,170,247,228, 94, 53,
-103,185,216,186,241,169,223,253, 30,205,149,236,146,217,211, 73,120, 99,217,227, 34,171, 14,156, 79,138, 45,185, 92, 94, 58,119,
-238,220,186, 88,178, 30, 23,132,223, 4,249,145,205,193,219,203, 68, 84, 45,199,198,160,175,201,134, 32,191,127,202,125,212,201,
- 19,254,189,154, 75,238,212,193,146,101, 75, 62,219, 58, 59, 59,223,171,131, 37,235, 17,231,134, 13,235,201,171, 35,123,147,164,
-123,251,137, 54,255, 40,185,126,105, 21, 25, 54, 40,140,132,135,119, 36,155, 55,111, 38,113,113,113,164, 67,135, 14,164, 30,249,
-236, 51,113,226,196,152,135, 15, 31,198, 60,120,240, 32,230,226,197,139, 49, 67,134, 12,137, 1,208,167,242, 76, 80,133,216,178,
- 12, 27,102,106, 75,211,211,107,225,124,101,226,196,137,228,225,195,135,228,193,131, 7,228,226,197,139,100,200,144, 33, 4,117,
- 11,223, 83,175,113, 41, 44, 44,172,115,143, 30, 61,102,183,107,215,174,223,159,197,249,255, 80,104, 41,134, 14, 29,202,115, 28,
- 71,250,245,235,199,173, 5,138,182, 80,148,122, 11, 69,169, 55, 3,154,255,186, 69,235,175, 14,248, 25, 1,224, 84,229, 4,169,
- 84,170, 54, 26,141,238, 74,165,242,103,173, 86, 59, 21,101,219, 34,159,137,243,175,200,167,157,243, 63,193,233,173, 84, 42,215,
-107,181,218, 33, 82,169, 84, 99, 52, 26, 61,235,192,233, 36,145, 72,166, 75,165,210, 30,122,189,190, 57, 0, 40, 20,138,120,147,
-201,116,198, 96, 48,172, 6, 80,244,191, 46, 59, 89, 23, 40,134, 88,220, 30, 4,179, 98,210,116,141,151,156, 40,240,127,191,167,
-115, 90,151, 38,138,100, 8,249, 47, 64,153,174, 82,111,164,154,234,204, 41,163, 58,130, 19,206,186,154,162,111,244,197,201, 82,
-255, 15,122, 40,211,186, 4, 42,211, 64,240, 5, 36,250, 75,117,229,124, 82,108, 41, 20,138,239,117, 58,221, 91, 0,206,212,181,
-236,100,111, 11, 17,116, 86, 31, 88,153, 16,144, 26, 66,248, 16,162, 7,205,196, 34, 7,106,106,222, 61,139,253, 62,170,154,243,
-171,175,190, 36,167, 78, 30,133, 73, 95,128,236,220, 18,188, 58,102, 28,218,182, 13,131,155,155, 27, 22, 47, 94,140,166, 77,155,
- 98,193,130, 5, 84, 61,242,217, 71,169, 84,190, 26, 28, 28, 28,120,247,238,221, 7,122,189,126, 7,128, 95,159,124,254, 4, 3,
- 61,228, 2, 65,168,129,101,207,223, 3,162,107,225,124, 69,169, 84,126, 16, 28, 28,220,234,238,221,187,119,244,122,253, 74, 0,
-187,237, 99,221,191,131,147,166,233,213,254,254,254,195,146,147,147,103, 1,216,133,255, 71,248,219,133,150,157,211,206,249, 47,
-228,172,184, 79,200, 63, 45,159,127,136, 45,126, 42, 40, 52, 6,161, 50, 32,226,215,212, 34,178,106,231,148, 81, 29,193, 10,222,
- 3,133,134, 32,200, 1,161, 87,215, 34,178,254, 94,145, 9, 80,152, 87,195,248, 53, 15,132,170,190,189,236,125,190, 10,124,246,
-217,103,228,248,241,227,144,203,229, 48, 24, 12,232,219,183, 47, 22, 46, 92, 72,217,199, 16, 59,231,223,200,249,159,132,192, 94,
- 5,118,216, 81, 43,200, 63, 53, 99,212,187, 15,204,100,111,139,107,200, 99,102,128, 70, 99,128, 77,133,142,205,161,222, 77, 53,
- 63, 35,231, 21,228, 81,211,192,160, 57,196,108, 18,180,230, 28,106, 82,253, 57,255,130, 55, 68,130,121,255,220,118,249, 55,226,
- 73, 81, 21, 29, 29,109,175, 20, 59,236,176, 29, 19,240,248, 78,195, 71,223,237, 66,203, 14, 59,254,229,160, 70,220,179, 0,200,
- 40, 63,254,177,156,118,216, 97,135, 29,255, 15, 5, 23, 40, 84,191,160,173, 46, 38,193,250, 44,180, 59,101,231,172, 23, 39, 3,
-192, 17,128, 19,202,124,144, 84,108,233,173,205,205, 70, 63, 0, 86,123,125,218, 57,237,156,118, 78, 59,167,157,243,127,204, 89,
- 27,247,191,113, 74,178,170, 93,134, 91,254,142,127, 28, 97,231,252, 83,209,247, 63, 83,118,130, 80, 16,172, 41, 63, 66,237,237,
-110,231,180,115,218, 57,237,156,255,239, 57,255,147,176, 79, 29,254,187, 32,253,215,230,156, 16,111, 0, 21, 78, 46, 99, 97,164,
-130, 33,197, 52, 0, 64, 41,174, 19,130, 4, 0, 33,229,191,167, 83, 84,157,119,163,218, 97,135, 29,118,216, 97,199,255, 10, 97,
- 0,174, 3,240, 6,240, 34,128, 35, 40,247,170,240, 63, 21, 90, 50,215,102,222, 16,208,109, 40,158, 4, 3, 0,161,169,251, 96,
-249, 91,134,252,132,103,126,200, 42, 27, 52,119, 33, 16,239,165, 96, 30,161,205,138,127,102,103,104, 33,205, 29,134,121,186,169,
- 94,205,201, 47,254,254, 78,156,246,151,186, 92,235,232,232,239, 40,117,113,126,201,100,177,134,136, 69,162, 52, 75, 81,201,150,
-194,194, 7,165,245,200,134, 75, 77, 63,206,155, 71,168,195,217,215, 41,145,220, 66,187, 58,136, 40, 45,180, 68,155,173,228, 3,
-138,146,201,190,125, 35, 72, 93,219,134,162,241,130, 66,165,106, 39,145,202, 59,202, 85,206,205,120, 2, 20,168, 51, 83,204, 86,
-246, 34,103,214,199, 16, 30,103,235,208, 86,175, 1, 88, 2, 0,232,217,243, 20, 66,224,128,213, 21, 25,199,164,158,183,241, 90,
- 84, 20, 42,156,203,126, 12, 96,105, 29,178,235, 4,192, 31, 64,113, 72, 72,136, 62, 54, 54, 86,243,103,245,209,103,105,247,154,
- 32,145, 72,101, 86,171,197,194,113,220, 51, 7,166,150,200, 29,230, 62, 21, 94,137,162, 97,212, 22,206,183,143,125,118,216, 97,
-135, 29,127,171,208,122, 17,101, 83,134,181, 47,134,247,111,249,220, 53,169, 84, 22, 0, 0, 60, 33,224, 9,160, 43, 41,138,201,
-121, 16,221, 23, 0,220, 26,133,157, 16, 74, 29,218,241,164,236,119,142, 7, 88,139, 49,185, 36,245, 74, 7, 91,114,164,112,111,
- 62,180,103, 68,175, 97, 3, 6,188, 24,212, 58,164,117, 19, 0,184, 29,123, 59,233,240,225, 35,113, 81,167,168,253, 58, 77,252,
-129,103, 50,160, 64,186,176,125,251,182,207, 69, 71, 95, 95, 0, 96,202,179,214,160,171,171,114,234,175, 63,205,232,222,107,216,
- 10, 5, 80,183, 7,174,212,197,249,165,193, 3, 35,219,126,248,238, 68,250,205, 25,139, 3,174,253,118,118,153,210,187, 85, 17,
-225,173,191,234,212, 35, 47,212, 20, 56,249, 73,253, 88,157,192,218, 81,112,156, 94,243, 93,103,103, 67, 65,210, 72,194,115, 35,
- 41,138, 2, 35,150,239,115, 15,124,110,143,211, 11,239, 23, 2,176,121,199,152,131,119,203, 8, 15,111,223,253, 35,199, 77,151,
-202, 29, 61, 5, 96, 68, 0, 40,100,165,220, 67,212,238, 37,206,239,205,223, 26,246,219,173, 84,246,244, 79, 95, 26, 41,145,112,
-152, 62,251,110,237,243,233,169,169, 78,240,247, 47,251,251,235,175, 63, 67, 64,227,219, 40, 91,107, 6,172, 66,241, 15, 89, 8,
- 1,202,132, 86, 74, 10,156,109,205,107,223,254, 47,247, 78, 75, 77, 88,144,149,153,246, 11, 45, 16,240,133,197,186,247, 93, 93,
- 61,180,249,249,185, 61, 80,190,144,219,205,205, 77,145,151,151,103, 1, 96,249, 59,219,253,165, 55, 22,126,189,239,187,207,222,
-170,234,183,201,239, 45, 92,237,239,235,164,120,119,202,248, 42, 3,114, 63, 31, 57,254,195,115,199,183, 46,175, 85, 16, 43, 84,
-115,135,191, 53,123,222, 11, 61,251, 60,150,126,229,210, 69,236,220,240, 25,116,165,118,177,101,135, 29,118,216,241, 55,224, 72,
-185,184, 58,242,228, 15,213, 10, 45,169, 84, 22,112,249,236, 97,151, 3, 23,211, 1, 0, 17, 97, 94,248,100,209,250, 62,219,215,
- 69,199, 1, 64,231,158, 3,154, 47,248,248, 93,252,126, 39, 23,132, 16,180,109,234,138,126,131, 71,216, 38, 60, 60, 91,116,120,
-233,165,225,163,103,204,248, 96, 80, 98, 98, 98,202,174, 93,187, 46, 0, 64,183,238,221,155, 46, 94,188,248,229, 21,206, 46,146,
- 31,247,253,148,105, 84,223,187, 86,159,210, 74, 27, 4,250, 4, 53,107,252,234,143,223,174,167, 95,232, 59,124, 84, 10,116, 75,
-140, 89, 15, 50,109,185,214,205,205,109,154, 80, 40,116, 4,202,162,177, 87,192, 98, 33, 94, 0,192,114,188,202,185, 65, 80, 41,
- 35,146,114, 18,137,232,110,169, 86,251,125, 73,230,189,111,106,226, 52, 89,173,173,222,155,244, 6,125,227, 65, 62, 2, 90,117,
- 99,214, 44,249, 20, 60,103,117,158,254,241,162,151,162,175,252, 8,157, 26,231,108, 44,154,240,201, 4, 31,159,112,102,225, 18,
-101,111,138,194,235,254,157,199, 13, 89,176,109,159,176,125, 83, 7,152,172, 60,142,197,228,119,222,184,122,225,242,223, 54,190,
-120, 8,192,102, 0,167, 1,212, 42,234, 92, 92, 93,118, 76,155,189, 90,169, 51,255, 97, 37, 41, 23, 89,248,250,251,189,184,153,
-206, 35, 56, 40, 88,224, 53,109,153,114,243,162, 9,219,244,101,113,182,170,146,187,129, 0,186, 2,247, 93,240,246,252, 94,248,
- 97,233,231,240,240,208, 65,165, 74, 3, 5, 79, 0,205,202, 79, 76, 16,231, 33, 29,192,199,185,185, 80, 44,152,136,190, 55,128,
-143, 66,129, 92, 0,191, 81, 53, 69,141, 39,236,146,247,102, 45, 15,113,111, 28,210, 49, 54, 46, 19,151,143,124, 9, 77, 78,170,
- 83, 97, 97,222,247, 13,155,134, 18,133,163,123, 88, 81,206, 67, 56, 56,225, 33, 69,184,193,197,197,133, 57, 0,108,178, 34,121,
-121,121,205,245,241,235,212,189,162,221, 93,252,219, 22, 86,252, 70, 51,130, 29,121, 15,175,189, 91,211,245,254,193, 3,199, 47,
-249,178, 91,143,251, 55, 79,236, 77,123, 16,115,145,181, 90, 76,205,130,218,180,127,227,245, 81, 47,223,207,116, 11,213, 20,153,
-112,243,246,157,182, 75,151,126,177,244, 78,236,237,219, 42,149,147,115,227,230,161,157,130,219,244, 31, 85, 96,118, 9,180, 69,
-104,177, 44, 7, 87,175, 64, 8,165, 42,248,122, 58,162,168,212, 4,157,137,133,155, 87, 99,176, 44,107, 31,250,236,176,195, 14,
- 59,254, 30,100,227,241,197,239, 91,106, 21, 90, 0,160,148, 9, 16,247, 48, 7, 0,224, 36, 3,166,190, 61, 22,249,121,154,230,
-102,150,199,184,177, 99,112,253,126, 54,226,146, 53, 32,132,160,185,175,205, 65,184,193,128,111, 63,110,252,184,231, 79,252,250,
-235,213,207,102,127,246, 3, 69,225, 18, 0,108,222,242,117,231, 57,115,231,188, 53,102,236,152,222,251,246,237,187, 3,160, 94,
- 66, 75, 64,169,214, 47, 95,250,185, 56, 35,207,104,156, 54, 99, 22,255,193,251,211,214, 0, 24,110,147,146, 17, 10, 29, 51, 50,
- 50,148, 52,253,120, 44,205, 47, 62,159,117,190,247,176, 21, 9, 41,105, 69, 55, 78, 28, 60,216,161,101,203,150,200,200,204,233,
-186,108,237,166,208, 99, 39,100,111,148,150, 24,134,233,243,238, 85, 25,180, 89, 34, 20,222,153,191,108, 99, 91,222,169, 41,253,
-201, 91,253,209,170, 73, 3,100,230, 22,161,123,223, 65,130,152,107,215,250, 0, 54, 11,173, 39,157, 7,190,100,230,115, 67, 23,
-127,127,165,215,144, 46, 13,218,211, 52, 3,173,193, 10, 77,177, 9, 28, 15,116,107,225,136,200,237,107, 5, 5, 58,235,208, 69,
- 63,165, 15,189,180,110,128,218, 88,156,245, 14,128,253,181,216, 3, 93,124, 61, 28, 16,151, 94, 90,165,200,210, 25,203, 30,224,
- 34,134, 3, 5,226, 90, 3, 81, 87, 0,223, 1,193,192,201,119, 70,195,211,115,151,167,167,231, 75, 30,158, 94, 49,205, 71,191,
- 65,249, 4,180, 80,105, 13, 22,220,189,115,187,180,101,187, 88, 82, 90,144, 59,221,168, 43,220,119, 15,136, 13, 6,246,148,115,
-188,129, 26,132, 86, 66,194,189,162, 55, 94,233, 33,184,145, 84,138, 7, 10, 5, 90,117, 25,130, 98, 77,134, 48,242,141,249,157,
- 12,165,197, 82, 87, 79,127,220,251,125, 47, 52,105,137,109,141,102,211, 1, 23,191,206, 61, 14,125,247,145,185, 54,235,150,151,
-151,215,220,183,223,126,123,158, 38,251,254,194,222,195, 86,180, 73, 73, 43,186, 49,122,254,153, 14,147,135, 54,197,177, 91, 37,
-248,124,124,143, 87, 1,212, 40,180, 24, 1,225,164, 74,175,128, 97,175,188, 51,171,129,187,116,150, 92, 70,195, 73, 33,198,175,
- 87,114,241,227,175,233,176,178, 4,225,109,154, 53,159,250,225,234,109,222,174, 98,100,231,153,145,169, 49, 66,157,103,132, 54,
- 95,111,178,169, 67, 80, 20,114, 53,249, 56,114,232, 8, 40,161, 20, 20, 77,193,106,177, 64, 64,211,160,104,202, 62,244,217, 97,
-135, 29,118,252, 61,168,118,215,161, 0, 0, 14, 31, 62, 76, 6, 12, 24,240,212,168,204,113, 4,113,201,101, 75,112, 24,134,193,
-139,207, 53,197,154,101,243, 97, 48,179,184,249,176, 24, 7,126, 79,135, 89, 87, 4, 66, 8,242, 90,121, 84,245,143, 31,155, 82,
- 90,177, 68, 22,198, 72,132, 35,127,187,162,104,228,226,236,236,156,112,231, 7,221,156,247,213, 45, 4,196, 18,179,232,139,166,
- 15, 69, 46,130, 46,123,247,238,105, 57,112,192, 0,177, 82,169,154, 73, 4,161,190, 66, 29,249,160,184,248, 86,113,117,156, 79,
- 66,230, 17, 60,104,208,139,145, 61,189,188, 60,249,209,139,175,220, 95,255, 78,152, 95,179,166,205,186,198, 89, 13,131, 12,185,
- 9, 7,171,185,236, 17, 39,207,243,160,105, 26,106,181, 26, 28,199,193,100, 50,193,106,181, 34, 61, 61, 69,205, 19,226,203,129,
-167,189,189,125, 33, 16,136, 17,208,200, 31, 27,215, 44,145,111,255,241, 96,199,143, 62, 91,248,139, 62, 15,225,248,195,185,229,
- 35, 78, 99, 65,225,190,163,199,127,117, 39,136,106,240,201, 91,253,153,220, 66, 45,162,174, 37,226,250,221,244,186, 54,228,147,
- 46, 28, 26,101,166, 38,150,172, 88,177,130, 89,112, 44, 49,189,103,191,225,156,127,147, 54,141, 76, 28, 1, 64, 65, 34, 18, 64,
- 36,160,225,239, 46,197,207,179, 66,112,101,240, 45,207, 62, 97,238,171, 9, 33,251,107,170, 79,147,201,202, 61, 23,172, 96, 66,
- 3, 29,113, 43,169, 16, 87,143, 93,194,180,217,171, 17,253,208,132, 82,173, 30, 20,103, 2, 67, 76,200, 75,125, 0,150,227, 72,
-109,237, 94,134,176, 66, 0,144, 72, 36, 31, 31, 56,116,188,129,137,151, 34,167,200, 4,117,161, 9, 77,195,135, 41, 82, 51, 53,
-248,110,254,203, 31, 3,216, 23, 12,148,218,192, 41, 1,208, 35,229, 97,188,213,108,230,120,163,133,163, 91,249, 57,226,155,147,
-215, 16,210,227, 21,163,152, 97,100, 42, 71, 55,128, 0,173,186,191,130,171,191,108,128,146,102,218,201, 28, 36,161, 0,174,214,
-212,151, 42, 68,214,220,185,115, 49,229,237,151,193, 19, 34,228,192,211, 0,240,213,129, 68,248, 7,120,212,212, 70,127,132,139,
-225,104,202, 98, 33, 40,213, 90,161, 41, 50, 67, 37, 21, 32, 62, 77,135,196, 84, 45, 94,238,235,131, 97,189,188,193,241, 4, 99,
-102, 94,199,240, 62,222, 24, 61,192, 23,160, 40,228, 21,154, 97, 50,115,213,150,157,166,233,198, 12,195,132,113, 28,119,189,236,
- 59, 3, 14, 64, 73, 97, 30, 76, 38, 19, 24,134,129,179,139, 59, 0,234,177,115,121,158,127,104,235,125, 84, 79,216, 57,237,156,
-118, 78, 59,103,189, 81,157, 22,249,151,160, 90, 87, 14,116, 77, 87, 37,165, 23, 32,238, 97, 14,218, 5,251,160, 73, 35,111, 92,
-141, 47,196,142,168,116,108, 61,145,138,168,155, 26,240, 2, 21,114, 74,128,132, 20, 53, 18, 82,243,106,245,159,205, 72,132, 35,
-223,123,175,120, 70,235,150, 37,225,103,143, 77,133,143,123, 66,203,143, 62, 42,154,202, 72,132, 35,157, 27,170,118,205,154, 49,
-253, 85,149, 92, 46, 54,155,204, 8,108,236, 47,125,247,157,169,111, 80,206, 18,155, 99, 34,169,124, 90, 56, 75,100,178,111, 22,
-205,155, 41, 89,125, 32, 33, 77,103,134,110,255, 37,245,131, 15,102,205, 41, 16, 8,165, 27, 85, 62, 45,108, 94,251, 99,181, 90,
- 97, 50,153, 96, 54,155, 97,177, 88,144,153,126,111,208,233, 3, 31,246,109,220,208,165,175, 68, 42, 5, 1, 80, 98, 96,241, 48,
- 91,143, 30,189,122, 51,237,194,194, 90, 41,189, 91,140,175,138,171,184, 56,181,152, 39,140,234,240,207, 59,153, 61, 39,111,224,
-135,195,215,240,203,153, 27,184,122,238, 24, 75,120,235,163,248, 95, 74,239,166,205,149,222,173, 83,149, 13,218,168, 31, 29, 62,
- 33, 53,186,103,102, 24,154,244,232, 21,113,234,237, 41,239,158,213,151,230,231,126,179,126,126,166, 38, 43,229,158, 68, 68,177,
-114, 9, 3,173,145,197,182,211, 89,120,105,201, 77,220, 77,211,130, 16, 82,107, 0,111, 30,120,127,228,248, 15, 57,171,197,130,
- 32, 63, 37,118,110, 89,138, 65, 61, 66,209,179,181, 51, 58, 52, 81, 64, 46, 48,225,206,253, 56,236,222,185,141,229,121,250,131,
- 90,110,196,200,242, 35, 6, 0,180, 90,237,135, 31,205,252, 64, 99,102,121, 88,172, 60, 44,229,159,167,119,127,161,225,140,250,
- 15,203,175,139,169,116, 93,117, 55,243,186, 55, 39,127,212,227,155, 29,167,122,239, 63,159, 77,171,243, 45,136, 58,190, 15,222,
- 13, 3, 33, 98,104, 25, 40, 0, 20, 5, 80, 20, 8, 33,112,247,111, 1, 35,207,227,167, 77,159,250,160,134,245,106, 21, 34,107,
-194,132, 9,184,119,239,222, 99,237,158,148,152,140,164,196,100,156, 58,113, 25, 0,224,226,223,182,208,197,191,109,161, 91,227,
- 14,155,171,226, 50,115, 86,222,192,114,200, 41, 50, 66, 46,165,225,231, 35,199,208,158,222, 88,255, 73, 27,140,238,239,131, 12,
-181, 30, 19, 22,222,132,167,167, 16, 63,159,207,198,186, 93, 73,104,230,175,192,144,158, 13,240,250, 64,223,170,173,181, 2, 65,
- 63,161, 80, 56,106,200,144,161,243, 37, 82,197,146,119, 22,238,152, 39,147, 8, 42,172,177, 96, 24, 6, 86,171, 21, 52, 77, 97,
-228,180,245,243, 36,114,213,146, 33, 67,134,206, 23, 10,133,163, 4, 2, 65, 63,251, 75,167, 29,118,216, 97,199, 95,102,209,170,
- 56,188, 31, 27,183,171,187,194,104, 52, 36, 15, 31, 57, 6,222, 30, 94,202,193, 47,188, 46,138, 73, 42,130, 38, 59, 21,137,241,
-177,208, 27,173, 16, 57, 55, 6,164, 94,104, 20,224,143, 91,113,191, 88,214, 45, 63,162,229, 89, 83,114,117,124,131, 6,121,251,
- 38,222,167,232,229,203,252, 46,199,199, 21,182,219, 57,251, 59,140, 30,173,116, 91,190,204,239,114,202, 3, 5, 45,151,146, 46,
-111,140, 29, 69,209, 20,193, 71, 31,205,192,224, 1,145, 24,247,198,107,212,247,223,111, 11, 47,178,177,148, 60,132, 27, 62,254,
-116,190, 88, 93,196,154,175,198,107, 77,114,133, 76,246, 91,130, 86,215, 42,192, 79,214,127,216,235, 89, 71,246,126,179, 26,192,
- 88, 91,184, 42, 4,150,213,106,133,197, 98, 1, 0,174,204,122, 80,246,153, 95,106, 70,110,145, 9,234, 34, 19, 88,142,199,176,
-145, 99,101,215,162,111,142, 5, 80,205,122, 45,158,183,178, 86,236, 63,121, 29,153,215,246,241, 20,205, 20, 87, 90, 12, 15,165,
-119,211,230, 94, 94,126,231, 7, 12,123,205, 93, 44, 45,155,134, 45,213,153,240,253,166,101, 53,230,147,166, 40,194,115,108, 17,
-107,181,234, 2, 27, 7,102, 6,183, 12,149, 94, 60,123, 98,208,111,167,246,107,217,192,215,156,146, 82,178,193, 8, 37, 96, 68,
- 82,152, 44,182,109, 60, 84, 39, 94,254, 18, 0, 53,126,242,140, 53,211, 63,252,132,121,127,221, 5,152,141,122,152, 12, 58,148,
- 20, 23, 66, 38,176,226,206,239, 7, 89,194, 89,167,235,178,111,124, 89, 61, 19,149, 5, 32,171,114, 74, 65, 65, 65,212,239, 23,
-206, 31,186,242,251,133,113, 94,129,237,104,179,149, 71, 98,236, 21, 62, 51, 33,250,144,201, 84, 18, 5, 0, 20,144, 15,224, 68,
- 77,134, 75,149,131,147,227,184, 41, 31,142,119,146, 41,232,216,140, 34,164,102,151,128,147,249,192,203,183,201, 31,243,171,124,
- 89,121, 59, 6,185,163, 79,232,203,184,120, 59,141, 59,177,231,203,222, 0, 14, 2,208,215, 36,178, 98, 98, 98, 32, 18,137, 30,
-107,247, 38, 77, 3, 80, 49,117, 88, 84, 48,213,105,219,242,215, 1, 0, 61,159,235, 62, 1,192,219, 79,189,168,228,148,192,213,
-204,162, 83, 11, 23, 4, 53, 86, 34, 51,223, 12, 66, 9,176,247,116, 30, 18, 50,116, 56,121, 85, 3,111, 23, 49,120, 51, 13, 70,
- 2,236,191,152,137,139,119,242, 48,166, 95, 67,220,127, 88, 80,141,176,102,194,222,255, 96,198,130,181,107,215,157, 25, 62,121,
-249, 75,221,194, 2, 81, 82,170, 69,102,129, 21, 90, 93, 41,116, 90, 29,100,114, 57, 36, 98, 49, 24,129, 0,253,222,248,252,165,
-163,223,125,122,246,253, 15,102, 44, 88,181,114,197, 28,150,101,143,217,199, 67, 59,236,176,195,142,191,212,162, 53,161,114, 90,
-181, 66, 43,245,238,197, 14, 0,208,188,125,159,124,165, 84,224, 34,160, 41,168, 51,146,240,253,138,105,224,121,130,254,111, 45,
-135, 42,192, 11, 50, 17, 3,147, 54, 95, 91,144,116,174,166,181, 58,160, 40,107,239, 47, 55,103, 6, 76,158, 20,232,176,115,167,
- 86, 8, 0, 59,119,106,133,147, 38, 54,116,248,106,115,114, 64,167,231,218,129,112, 28, 6, 12, 30,142,145,175,140, 68, 74,142,
- 30, 63,157, 79,131,206, 96,182,105,183,156,204, 45, 56,212,205,213, 61,242,189,215, 35, 21, 2,134,162,154,249, 59, 50,233, 26,
- 43,203, 48, 66,238,208,181,226,172, 97,195, 94,113,139, 58,186,167, 39,231, 22, 28,106,200,187,127,179, 54, 62,147,201,244,216,
-212,161,139, 91,227,163,189,135,175,200,200,206, 41, 61,146, 83,104,236,164,179,178, 80, 23,153,144, 91,100, 66,145,206, 2, 47,
-149, 51, 88,171,185,117,117,124,132,144, 31,134, 12, 31,243, 26, 0,154,162,217,239,180,217,247,227,203,126,249, 67,100, 69, 14,
- 30,237,126, 62, 38, 9,137,209,199, 10, 9,207,150,121,113,167,248,140,154,235, 21,132,161,192,139, 4,148,149,161,105,222, 98,
-209, 90, 61, 60,220,163,206, 69, 29, 31,104,100, 31,128, 17, 73, 30,157,107,120,124, 58,170, 54,177,181, 1, 0,214,174, 91,179,
-178, 75,239,209,162,115,215,147, 97,176, 2,157,195,154,227,231, 31,191, 54, 17, 98,253, 80,151,125, 99, 67, 29, 58,161, 83,195,
-134, 13,167, 9,197,226,158, 50,185,170,161,187,183, 31,109, 97, 57, 88,172, 28, 20,174, 62,180, 68,233,210,155,167, 69, 23, 89,
-139, 57,202,162,211,172, 5, 80,173,190, 62,121,249,110,207, 77,107, 87,190,228,237,170, 64, 67, 55, 17, 14,157, 43,228,172, 2,
-158,246,240, 15,162, 0,192,207,195, 1,119,175,159,197,173, 91,183,209,186,115, 36, 92, 85,190, 80,138, 56,146,151,248, 91,129,
-167,151, 79, 91,117, 78,166,232, 73,161,229,229,229, 53,119,204,152, 49,243,188,189,189,177,102,205,154, 71,233,149,219, 61, 4,
-232, 84,121,234,240,171, 3,137, 53, 22,248,141, 1,141,240, 92,168, 7,120, 30,120,119,245, 45,196, 38,149, 96,203,199, 97, 24,
-214,195, 7,155,127, 73, 70,155,102, 10,104, 13, 60, 44,102, 14, 34, 49,141, 22,141,149,144,136, 24,156,185,158,135, 82,157,174,
- 70,110,138,145,160,119,143,206,200, 43,210,195,221, 81,140,198, 13,221,161,148, 55, 70,169,129, 69,106, 78, 49,138,117, 86,228,
- 21,234,208,181,115, 71,252,186, 93,108, 31, 2,237,176,195, 14, 59,254, 30,171, 22, 80,201,135,214, 99, 66,235,240,225,195, 4,
- 0,170,154, 31,205, 84, 23,192, 85, 41,128,123,131, 0,188, 58,109, 37,126, 88,253, 62, 56,206, 10, 66, 0,150,179,205, 51, 1,
- 33,194,147, 83, 38, 5, 4, 55, 10, 96,220, 95, 29, 45, 55,236,216,169,151,189, 58, 90,110, 8,105,237, 90, 60,101, 82, 64,114,
-169,209,175, 43,203,113,248,237, 78, 46, 98,147,139, 17,155, 82, 2,165,204,118, 55, 95,140, 88, 52,105,217,210, 37, 34, 1, 67,
- 81,119, 82,181,218,140,124, 86,203, 8,133, 22,185, 76, 76,204, 68, 96, 74,201, 35,249,189,134,188, 97, 56,180,125,237,120, 0,
-239, 84,107, 21, 43,223,105, 88, 97,201,170,248, 36,132, 16, 10,224,121,138,227, 50,242,140,208, 90,172, 80, 23,254, 33,180, 40,
-182,250,153, 83,165,119,211,230, 14, 42,229,113,134, 97, 36,132, 0, 86, 11,251, 50,188,155,246,213,102, 39,198, 87, 22, 89,151,
-239,100, 33,233,198, 41, 53,103,209,143,209,231,198,157,182,181,236, 20, 5,194, 48,224, 25,154,226, 41, 10,188,144, 38,102, 16,
-194, 63,153, 35,125, 29,132, 86,133,216, 18, 11,153,217,191,238, 94,237, 49,238,197, 22,248,241,124,153,230, 51,150,106, 74,116,
-153,117, 18, 89,112,117,117, 29, 59,115,230,204,185,131,134,143, 70,177,145,130,186,176,204, 26,104,182,242, 16, 41,220,208,123,
-202,183, 13,179, 53, 37, 13, 19,175, 30,234,154,119, 99,103,177,213, 88,188,166,218,124, 37,101, 93, 53,232,117, 40, 49,148,149,
-103,198,216, 32,230,179, 47, 79,130, 37, 2,184,184,251,192,221, 65,132,215, 95,238,135,243,254,141,112,239,254,125,204,158,127,
- 4,158, 78, 14,177,151,206, 30,108, 18, 22,222,109,213,209, 3,187,158, 18,113, 57, 57, 57,243,183,111,223,142,208,208,208,121,
-237,218,181, 67, 78, 78, 78,133, 64,126,212,238, 73,137,101, 6,219, 10,161,117,253,250, 45,132,133,181,169,182,204,173,155, 56,
- 96,223,153, 44,124,123, 56, 5, 50, 9,131, 0, 31, 41, 38, 45,187,129, 30,109,221, 48,117, 68, 99, 40,101,254, 40, 42,181,194,
-108,229, 97, 48,177,200, 47,177, 32, 51,223,136,116,181, 1, 22,107,205,107,225, 9, 8, 98,227, 51, 96, 50, 25,225,236,236, 12,
-165,220, 8,169,147, 31, 0, 6,133,234,226,178,221,135,122, 35,228, 50,137,125,232,179,195, 14, 59,254, 53,168, 73,139,252,139,
-172, 90, 79, 91,180,106, 42, 16, 33, 64, 66,106, 30, 26,249,186,195,183, 81, 19,196,223,187, 85,105,176, 7, 88,206,182,233,168,
-131, 7,179, 51, 86,174,116,224,223,127,191,184,243,178,101,126,151, 38, 77,108,232, 24,210,218,181,120,230,204,180,206,171, 86,
- 57, 94, 58,121, 89,200,145,114,127, 93, 21,190,185, 8,169,139,143, 77,186, 99,104,203,198,204,252,157, 9,105,167,111,151,230,
-138, 68, 34,171,151,179,148, 82, 41,197, 12, 67, 11,197, 38, 43,109,106,222, 42,140, 57, 68, 83, 97, 53,177, 84, 8,173, 39,167,
- 14,243, 53, 73,131,126,253,105, 70,200, 11, 67,150,187,100,106, 12, 40, 54, 51,143,166, 14, 25,154,194,237,123,169, 0, 35,138,
-173,138,211, 65,229,114, 98,215,142, 31,252, 86, 45,251, 28, 22,150,195,148,247, 63,195, 27, 99,199,156,128,119,211,190,126, 1,
- 65, 49, 23, 14,125, 39,239, 59,113, 35, 82,227,162,115, 88, 83,201,238,186,136,172, 71, 98, 11, 32, 28,225,233,130,194, 18,165,
-137,133, 20, 85,232, 62,147,133,175, 87,207,209, 26, 88, 28,186,146,131,195, 7,118,195, 81,165,168, 23,135,163,163, 99,139,238,
-221,159, 7, 37, 16,195,108, 53,193,204,242, 48, 87, 90,163,101,177,242,176, 18, 33,228,222,109, 80,112,247,231, 22, 48, 22, 87,
-203,245,218,107,125, 10, 90,182,110,183,247,211,247,223, 26, 49,226,213,113,232, 20,254, 28,226,110,253, 14,207,134,193, 80, 58,
-185,145, 75,201,133,108,231, 96, 63,193,216,193, 29,168, 40,223, 64, 4,180,232,130,132,187,215, 90,139, 68,162,219,105,137,247,
-171,157,146,204,201,201,169,240, 57, 53,175, 93,187,118, 72, 75, 75, 67, 65,165,118,111,210, 52, 0, 0, 16,127,191,108, 19, 67,
-133,200,226,249,170,251,233,132, 37, 55, 80, 98,224,224,230, 44, 6, 67,209, 0, 33,104,228, 45, 67,116, 66, 1,198,204, 47, 68,
-120, 75, 23,248,121,203, 1, 66,160, 53, 90, 97, 54,243,176,240,128,217,200,130,161,171,221, 50,200,113, 28,199,209,196,202, 92,
-143,141,135, 88, 36,132, 99,145, 14, 50,153, 12, 34, 81, 30, 40,154, 6,203,242,176, 88,173, 48,232, 13,216, 27,125, 25,132,179,
- 48, 28,199,113, 40,159, 6,181,195, 14, 59,236,248, 39,226, 95,188, 16,190,178,184,170,222,162, 85, 19,252,125, 61,113, 37, 54,
- 25,173,131, 27,195,209, 65,133,251, 73, 25, 96,104, 33,104, 10,176,178,182,139, 33, 98,177,254,184,106,149, 35, 82,147, 21,244,
- 87, 27,147, 3,166, 76, 10, 72, 94,181,202,241, 18,177, 88,127, 4, 48,134, 16,160, 76,108,149, 9, 46,174, 14,186,128,240,214,
-134,158, 46,114, 38,250,129, 46,159,166, 25,147,171,163,148,119,117,148,208,174, 42,177, 80, 36,100,120,150,208, 22, 95,143, 0,
- 35,225,121, 91,226,234, 61, 54,117,200,113, 28, 40,138,230,202,133,152, 34, 61,223,128, 98, 35, 3,117,145, 9,133,165, 22, 52,
-243, 81,224, 84,212, 62, 61,103, 53,236,172,210,218, 38, 20, 57, 54, 9,240,197, 39, 11, 87,193, 96,226,144,144,169,133, 72, 34,
-241,242,244,106,117,115,204,228, 89,146,119,183, 36, 97,124, 79, 87,188,127, 33, 41, 83,175,150,206,170, 75,203,114, 28, 7,131,
-209, 44, 82,231, 21, 58,151,148,234, 28,100, 82,137,193,221,197, 49,175,170,115,141,230,250, 61,103,229, 82, 1, 6,134,123,193,
-104, 25, 5,131,137,197,239,167,247,215,135,166,177,103, 3, 95,104,205,149,196, 85,185,216,170, 44,186,132, 74,119, 0, 84,227,
-218,138,125,247,118,204,203,119,111,199, 44,184,118,233,220,174,101,223,156, 14,217,190, 97, 14,214,255,146, 4,134, 97, 40, 98,
-101,133,107,127, 73,134,175, 19, 67,180, 86, 33,101,228, 40,232, 10, 52, 8,234,216,175,213,174, 47, 63,157,133, 50,151, 17, 38,
- 91,196, 86,161, 58,250, 81,187, 31, 63,246,104,223, 2, 10,111,110, 43, 74, 58,179,190, 76,226, 51,130,125, 85,171,118,139,217,
-195, 81, 76, 56,214,194, 87,246,104,229, 40,163, 64,120,224,218, 29, 53,174,199,211,112,117, 16, 65, 41, 19,194,202,242,208,155,
- 89, 24,140, 28,205,179, 22, 83, 53,237,125,125,237,154,213,115, 70,141, 26, 53,105,247,158,121, 7, 67, 35,223, 27, 84, 82,148,
- 15,161, 88, 6,145, 64, 4,154,161,193,114, 28,204, 70, 29, 10,139, 10,144,252,219,247, 7, 71,142, 24, 26,182,118,205,234, 57,
- 21,187, 20,237,176,195, 14, 59,236,248,203,172, 89, 79,193, 38,161,165,148, 75, 65, 24, 41, 46,196, 36, 33,168,101, 27,108, 59,
-120, 21, 77, 91,135, 35,187,148, 5, 1, 93,235,110,195, 10,204,248,216,112, 29,192,245, 65,131,228,190, 67,135,250,244, 38, 68,
-120,114,227,230,146, 12, 0,104, 28, 82, 70,195,243, 4,132, 0,132, 47, 19, 92,182,155,116, 4,169,201,217, 37,141, 2,188, 20,
-184,155, 97, 49, 41, 36, 34,218, 89, 33,102,220, 29,197, 34,145, 64, 0,142, 80,166,236,236, 36, 19, 5,164,216, 66,247,228,212,
-161, 92,233,125,180,215,144,229,154,148,180,226,232,102, 5,250,208, 98,139,179,110, 80,142, 0, 0, 32, 0, 73, 68, 65, 84, 24,
-132, 0,205,124, 20,136,189,124,132, 83,103, 38, 38, 24,212,113,155,170,182,146,129,177,176, 60,110, 62, 40, 70,145,206,138, 34,
-173, 5, 93,123, 12, 20,117,141, 24,132, 11,177,121,224, 89, 43,150,125,125,164,148, 35,214,145,192, 61,107, 29, 10, 77, 95,185,
-126,199, 87, 83,168,147, 8, 5,130,162,224,166,254, 15,197, 34, 33, 91, 82, 82, 34,126,252, 44, 6, 10,153, 24, 5, 90, 43, 0,
- 88,235,218,123,138,117, 86, 28,188,156,131, 67,251,119, 65, 38,147,129,212,163, 7,138, 68, 34, 39,161, 72, 10,139,174,108,186,
-176,226,176, 60,113,208, 2, 9, 64, 11,156,108,164,189,103, 54, 27,126, 79,142,187,220,130,235,209,148, 25, 27, 17,128,215, 38,
- 76,135, 79,147,214, 24, 56,112, 40,218, 4,168,168,253,151,210, 96,181,178,165, 94,129,173, 84,164,108,151,109, 2,128, 80, 0,
-151,109,177,108,169, 42,181,123,139,174,129,161,127, 8, 45,160, 32,245, 70,141,187, 88, 57,115,126,166,222, 76,211,132,240, 85,
-190, 50, 8, 1, 16, 51,160,206, 38,200, 1, 32,160, 1, 1, 67, 3, 20,197,112, 28, 87,101, 59,177, 44,251, 43,207,243,234, 29,
- 59,118,168, 57,142,187, 30,115,100,229,205, 38, 47, 76,156, 7,182, 0, 86,107,217,114, 70,177, 68, 14,158,162,145,116,254,219,
-121,156,197,240,203,142, 29, 59, 42,220, 59,220,182,143,133,118,216, 97,135, 29,127, 9, 42,199, 56,124,177,178,248,178, 73,104,
-113, 60,129,155,171, 11,172, 68,128,100,117, 49,116,148, 7,140,122, 2,142,163,192, 17, 82,147,171,241, 8, 84,177, 61,255,224,
-193,236, 12, 0, 91,159,176, 73, 61,178,100, 61,250,172,122, 74,166, 74, 78,138,112,167, 14, 30, 59, 59, 98, 80,183,158,206,247,
-179,115, 50, 68, 66, 90, 32, 16, 49, 66,145,128,166, 68, 2,218,236, 32, 19, 48,251, 54,239, 22, 19, 10,103,107,227, 52, 26,141,
-136,136,120, 60, 48,121,220,157, 75, 30, 5,185, 9,102, 66,241,188,187,184, 20,110,142,238,120,152,146,134,211,199,246,235,213,
-153,137,113,156,201, 56, 24,143, 75,206, 63, 56, 9,225, 11,138, 77, 48, 90, 56, 20,106, 45, 40,210, 89,192,186,119,198,207,191,
-103, 65, 42, 98,160,190,185,207,160,201,201,152,102,202, 77, 76,174,165, 41, 62,194, 99,190,180, 72,198,155,227,198, 10, 87,175,
- 88,102, 10, 11,107, 71, 10, 10, 10,160,213,106,255,168, 19,138,130,212,193, 3, 42,153, 0,137,215,142, 34,241,244, 42, 3,128,
- 79,109,169,207,202,112,144, 11, 48,168,147, 23, 76,150, 81,200, 43, 54,225,218,217,159,107,235, 50, 79,113,202,229,114, 89,133,
-245,170,178, 91, 7,115, 37,171, 22, 87,222,222,180, 64, 34,171,130,179, 55,128,147, 79, 38,150, 20, 23, 31,185,126,233,212, 36,
-227,132,215,160, 46, 50,193,144,159,132,239,127,222,116,218, 82,154,208,163,207,234, 21,244,244,193, 77,112,250,122,129,234,182,
-128, 1,120, 32,114,212,140,151,142,239, 90,177,189,182,178, 87,136,173,231,187,117,152, 71, 51,212, 33, 66,253, 33,150,178,178,
-178,108, 42,123,177, 58,177,220,130, 84,167, 57,112, 80, 20,205, 16,254,177, 24,136,143,229,147,231,249,219, 21,162, 73, 64, 81,
-131, 85,114, 57,242, 52,197,168,112,178,107, 52,148,194,197,173, 1,104,138,130,181,210,185,117,109,247,122,192,206,105,231,180,
-115,218, 57,255,191,226,169, 24,135,117,176,104, 17, 4,122, 43,208,212, 71, 1,163,197, 3, 70, 51, 7,157,145, 67,137,222,130,
- 18,189, 21,201, 57,122,196, 30,124,246, 28,150, 89,177,202, 92,159,147, 50,127,155,224,120, 98,179,245, 68,108, 49, 47, 92,185,
-108,241,203,187,195,218,154,223,125,209,187,225,173,100,115, 22, 69,209, 6,154, 17, 88, 93, 84, 2,225,253,251,183, 52,151,206,
- 31,237, 46,101,185,215,244, 53,240,176, 44, 91,236,227,227, 83,241, 64,123,148,222,162,137,108,240,111, 71, 62,106,252,252,160,
-101,238,171, 63,159,161,167, 25, 17, 79, 9, 68,177,156,213,176,203,160,142,219,136, 26,236,122,180, 72,122,239,202,141,187,225,
- 78, 46, 13,145,152,169,131,206,200,194,194,242,112, 86,138,144,113,251,132, 37,249,126,244, 30,109,214,173,109,245,168,182,157,
-241,247, 98,125, 35, 35,251, 14, 15, 15,239,204,204,153,243, 25,130,130,130, 96, 48, 24, 64,211, 52, 26, 54,106,130,228,248, 27,
-184,124,100, 33,167,207, 79,217, 4, 96, 1,128, 58, 7, 92,206, 43, 49,227, 88,116, 46,142, 28,248, 17,140,176, 94, 59,216,104,
-153, 76, 38,173, 74, 92, 85, 22, 93,143, 78, 22,138,165, 40,179, 62,241,143,117,196,170,113, 60, 41,254,238,189,215, 95,125,165,
-133,202,209, 9,253,135,142,204,189,116,225,244,128, 3,223,111, 94,147,159,146,254,242,103, 75,214, 57,244,110,239, 77,185, 40,
-197, 40,210,241,216,153,122, 47, 16, 54,218, 96,115,114,114,230,167, 39, 71,143,249,237,200, 71, 3,159, 31,180,204, 61,250,167,
-217,143, 22,209,211,140, 96, 71,109,215, 23,164,199,156,174,171,200,170,144, 90,132, 16,155, 38,206, 9, 0,161, 72, 12, 15, 15,
-111, 80, 20, 96,101,121,152,173, 44, 4, 66,251, 78, 67, 59,236,176,195,142,191, 25, 19,158,248,180,205,162,101, 52, 26,147,159,
-139, 24, 8,158, 39,224, 8,192,115,229,150, 39,254, 15,235, 19,103, 53, 38, 63,107,238,120,158,187,186, 97,203,214,254, 97, 29,
-159,103, 90,250, 41, 81,146,159,131,203,191,157, 97,193,147, 75,182, 92,159,159,159,160,149,121, 54, 29,254,242, 75, 67,247,142,
- 29, 55,177,168,123,143, 30, 10, 15, 15, 47, 83, 70,102,134,254,219,237, 59,172, 39,142,254,210,157, 7,251, 74,126,126,162,182,
- 38,158,226,226,226,181, 85,165, 75,196,202,174, 0, 26, 51, 2,202,108,208, 36,212,105, 69,120, 94,102,250,176,197, 11,231,165,
-140,126,107,186, 56,208,167, 9,114,139, 25, 36,103,228,224,254,249, 95, 76,153,241,215, 14,148,100, 92, 31,111, 35, 85,118, 21,
-105, 25, 0, 86, 95,190,124,169, 85,100,100,100,223,158, 61,123,146, 9, 19, 38,128, 16,224,244,150, 73,164, 32,249,242,190,114,
- 43,214,131,122,182, 75,234,249, 75, 55, 92, 70,116,111, 47,112, 85,141,199,214, 31,143, 90, 65,248,212, 58,210,120,250,250, 53,
- 18,148, 77, 23,150,185,116,120,242, 48, 91,255, 88, 63, 38, 82,122, 10,244,136,245,172,166,188, 79,105,141,196,248,187,173, 19,
-227,239,142, 3,144,187,119,199,215,135, 0,192,100, 48, 76,140, 58,125, 48,245,238,157,232,215, 6,189,250, 65,147, 86,161, 29,
- 4,251,182,173,134,197,168,219, 15,192,230,254, 42, 17, 51, 41, 21,237, 94,219, 84,225, 83,237,158,114,249, 40, 69, 51, 2, 91,
- 69, 83, 37, 75, 36, 77,120,222,166, 5,117,132,231,144,249,224, 54, 92,188,252,160, 82, 57,130, 39, 22,192,108,130, 38, 61, 14,
- 28,103,143,117,104,135, 29,118,216,241, 55,161,254,107,180,210,239,149,249,211,250,171, 81,154,147, 59,102,219,182, 31, 22,253,
-176,125,119, 87,163,217,236, 67, 32, 74,231, 88,243, 57, 45,135, 57,182,114, 24,212,137,209,174,174,205, 66,190,253,122,195,167,
-223,110,253,234,121,240, 92, 48, 5,164, 16, 10,103,165, 86,110,108,109, 34,171,198,135,102, 94,233,230,222,195, 87, 24,242,243,
-181, 63,212,245, 90, 67,126, 92, 14,205, 88, 26,110, 94,179,112, 57, 77, 51,125, 56,142, 23,242,156, 53,145,179, 24,191, 48,104,
-226, 14,194,230, 85,110, 40,168,225,183, 59, 0,238, 68, 69, 69,117,139,138,138,234, 8, 96, 45,202, 98, 40, 70, 63, 75,187,152,
-242, 75,123,125, 56,227,195,211, 31,128,242,231,121, 2,150,227, 83, 69, 6,125,175, 58,210, 52, 12, 12,108, 34,183, 88,185,167,
- 22,192, 87, 94, 8,255, 72,104, 57,250,202, 1, 52,180, 81,104, 1,101,187,233,190,126, 42,145,101,151,102,103,165,255,184,241,
-139,105,111, 3, 8, 0,112, 17,192,134,191,171,221, 45,198,146,188,191,250,190, 97, 45,166,249, 25,183, 14, 34,235,142,200,155,
- 18,148,185,114, 32,156, 25, 60,107,206,102,173,150,249,246,177,207, 14, 59,236,176,227,111,179,102,109,169,234,187,224,159,146,
-195,194,194, 7,165, 40,172, 57, 72,175, 45,200,207, 79,208, 2,120,106,231,158,254, 25,121, 99, 19, 74,126, 66, 66,201, 79,245,
-189, 94,151,251, 80, 3, 60, 28,251,140,217,176,101, 33,251,133,242,227, 79, 65, 94,222, 61, 29,242,208,233, 89,155,101,231,142,
-237,247,119,239,254, 81, 72,104, 70,200, 19, 70,196, 18, 74,200,242,148,208,106,229, 97,178, 88,173, 22,150,181,130, 99, 45,224,
- 57, 43,225, 45, 86,148,121,135,255, 51,144, 10,224,227,255, 85,187,255, 29, 96,173,150,249,176, 90, 0,232,236, 67,157, 29,118,
-216, 97,199, 63, 75,112,253,115,132,150, 29,255,105, 60, 72, 74,140, 15,183, 87,131, 29,118,216, 97,135, 29,255,113,145, 85,249,
- 19, 64,217,218,243,136,106, 46,168,203,110,130,136,122,100,232,148,157,243,153, 57,133, 0,196, 0,148, 0,106,155,218,234,139,
-186, 59,172,252, 95,148,253, 35, 0, 55,236,237,110,231,180,115,218, 57,237,156,255, 89,206,218,184,237,187, 25,255, 98, 1,102,
-231,180,115,218, 57,237,156,118, 78, 59,167,157,243,255, 31,231,191, 25, 19,170, 56, 0,216,167, 14,237,176,195, 14, 59,236,248,
-127, 8, 87,215,102, 74,224,209,186,222, 90, 33,119,107,225, 9, 0,250,188,123,106,123,237,217, 81, 5, 42,199, 57,124,108,141,
- 22, 93, 79, 66, 33, 45, 16,127, 40, 87,185,222, 83, 56,186,102,254, 63,175, 92,170,121, 35,197,212,222,221, 3,126, 14,106, 44,
- 27, 92,151, 11,229,238,205,191,243,106,210, 41, 77,225,209,124, 42,188,195,100,207,146, 9,133, 71, 99,119,101,195,246,191,169,
-124, 90,245,251, 11,202, 40,105,217,178,101,231,150, 45, 91,118, 6,240,167, 68, 41,150,123, 52, 31,229,219, 52,252,188, 71, 96,
-219, 51, 10,207,102, 47,253,217, 25, 86,122, 55,117, 85, 54,108,247,147,178, 65,155, 66,165,119,155, 18,165,111,187,115, 42,183,
- 22,129,181, 93,215,112,208,226,224,249,187, 98,119, 53, 28,180, 56,184,170,223,157, 35,215,169,230,238, 78,248,220,117,224, 23,
- 74,251,184, 82, 63, 52,236, 58,202,201,251,249, 15, 92,235,122,157, 79,243,240, 59,141, 90,117,203,109,208,172, 83,172,173,215,
-248, 6,117,190,238,223,178,171,218,183,121,231,104,123,205,219, 6,169,123,227,206, 82,103,191, 35, 18,103,191,163, 18,151,198,
- 61,158,149,207,219,219, 91, 22, 28, 28, 28, 25, 30, 30,254,118,175, 94,189,222,107,219,182,237, 4,127,127,255, 62,255,203, 23,
-125,185, 71,243,143, 77, 66, 42,207, 36,164,242,228, 30,205,107,221, 44,163,240, 8, 90, 68,209, 92, 22, 69,115, 89, 10,143,160,
- 69,255,148,182,146,120, 54,247,151,123, 52, 95,165,242,106,121, 85,230,209,108, 96, 93,175,119,118,118,238,227,238,238, 62,164,
-226,112,118,118,238, 99,191, 3,234,141,202, 86,172,103,182,104, 49, 66,137,252,226,232,113, 83, 66,150,206,155, 37, 93,179,245,
-103,172,249,124,198, 93,147,174,168,229, 63,177,228,110,141, 59, 70, 51, 52,227, 91, 57,141,227,185,140,188,135, 87,219,255, 25,
-252, 65,141,100,227, 63,157, 57,230,253, 81, 47, 71,248, 71, 12,152, 70,197, 61, 52,252, 98,187, 68, 67,232,158,159, 14, 52, 60,
-127,246,204,186,173, 91,183, 44,208,176, 65,171,132, 18,193,134,146,244, 59, 69,117,201,131,131,123, 96, 99,129,194,237,252,115,
-131,167,120,197,156,218,177,141, 51,243,189,245,121,149,162,127,215, 31,238, 77,154, 52,233,192, 48,140,235,212,169, 83, 69, 0,
-176,122,245,234,166, 28,199,229, 39, 37, 37, 93, 67, 61,156,159,150, 9,204,160, 49,107,151,207,255,161, 95,191,254,200,202,211,
- 97,217,170, 47, 95, 56,126,120,207, 8,157, 58, 97,223,159,209, 38, 78, 78, 1, 14, 16,169,110, 79,155,185,192, 35,242,133, 14,
-140,214,200,226,248,249, 27,221,118,124,185,224, 42,208,162, 99,105,222,189,106,125,138,241,250,226,217,158, 74, 18,201,235,139,
- 1, 96,212, 83, 15,123,165, 53,194, 93,198, 69,122, 75, 4, 55,242,129, 90,131, 62, 58, 53,234,122, 66, 40,145,248,211, 52, 13,
-154, 2,104,154, 2, 67, 81,101,113, 66, 45,134,212,204,251, 23,250,254, 19,238, 19,149, 95,199, 28, 48, 2, 87,154,250, 35,127,
- 20, 93,254, 73, 72, 73, 78,194, 69,215, 63,225,223, 56,134, 52,117,106,213,181,169,238,219,115, 15, 11, 20,130,238,239, 29,161,
- 8,253, 85,218,133, 85, 55,109, 18, 0, 82,169,243,161, 67,135,220, 35, 35, 35, 29, 61, 90, 13, 62,103,203, 53, 98, 70,219,242,
-240,225,131,162,200,200,190,117,232,159,205,123,131,166,183, 83,128,144,231,201,106,134, 39,123,180,249,241, 73, 64,221,162, 79,
-201, 60,130,198,211, 32, 54,143, 51, 60,168,104, 67,110,220,214,250, 86,174, 64,226,208, 75, 40, 18,189,215,184,121,235,176,204,
-148,196,104,157,182,116, 21,107, 42, 62, 87,103, 34, 43,251,225,169, 11, 49,253, 4, 66, 33, 21,217,171, 19, 99, 2,206, 60, 75,
-163,123,122,122, 14, 89,191,126,125, 96,231,206,157, 1, 0, 44,203, 58,236,221,187,215,107,225,194,133,138,248,248,248,253,245,
-164,245,113,119,119,247, 19,139,197, 62, 0, 96, 54,155, 51, 53, 26, 77, 26,128, 90, 95,252, 21,158,129,110, 32, 88,112,225,252,
-121, 1, 0,116,235,214,125,145,223,115,239, 56, 51, 34,165,161,202,234, 48,151, 42,138,146,206, 76,191,124,229, 18, 5, 0,225,
-157, 58,207,146,187,181,216,240,191,180,108, 73, 61,130, 58,209,192,251,225,221, 34,134,141,124,101, 12,221,170,153, 31,250,244,
-238,249,145, 1, 56, 84,167, 62, 35, 16,200,174, 94,189,218,132,166,105,134,101, 89, 99,120,120,120,218,179,228,171, 65,243,206,
-191, 83,160, 27, 90, 88,243,215,154, 7,209,139,128,167, 2,199, 48,142, 13,195, 62, 5, 35,120,139,231,249,244,210,180,232, 46,
-255, 65,139,214,211,245, 92, 87, 38, 90, 32,126,111,212, 27,147, 67,166,127,240,137,116,218,154, 40, 28,249,114, 86,222, 63, 85,
-100, 1, 0, 67, 51,190, 39,126, 61,225, 33, 23, 51, 0, 0,173,145, 69,191,200,200,218,159, 8,141, 58,158,165, 41, 42,168, 34,
-148, 56,199, 90,164, 2,161,216, 72,149, 9, 36, 80, 0,220, 26, 52,138,242,100, 47,202, 71,189, 28,225,191,125,247,201,140,180,
-140,252, 58, 15,106, 20, 35, 66,120,247, 62,136,232,221,215,241,234,149,223, 23,108,217,180,241, 99,214, 98,221,200, 91,249, 85,
-198,130,196,172, 90, 7,115,175,102,237,196, 74,183,227,195,222, 94,232,106,164, 93, 48,231,243,181,110,231,143,237, 60,151,153,
- 30,202,167,166,166, 27, 9, 69,221, 45, 44,200,126, 79,151,147, 20,103,107,149, 41,149,202, 64,165, 82, 25,218,166, 77, 27,233,
-140, 25, 51,132, 47,188,240,194, 31,146,125,194, 4,209,217,179,103,189, 87,172, 88,209,255,214,173, 91, 70,173, 86,123, 83,171,
-213, 62, 64, 29, 22,218,123,121,185,191, 51,124,232, 64,244, 28, 54, 5, 28, 79, 97,194,228,233, 56,113,108,255, 68, 0,127,138,
-208,178,202, 29, 22,190,245,246, 12,247,240, 14,109,153, 5, 59,227, 32, 19, 11,208,183,125, 16,245,198,212,217, 78, 91,215, 45,
-248, 6,121,120,190, 42, 75, 22,175, 47,158, 29,226,102,126,101, 80,231,198, 56,184,203,252, 10,122,205, 4, 45,119, 92,148,126,
-240,147,251, 0, 16, 24, 57, 85, 37,225, 52,235, 27, 56, 49, 30, 18, 78,179, 62, 48,114,234,169, 7,199,215,151,214,148, 23,161,
- 68,226,191,107,231,206,102,206, 42, 17, 4, 52, 5,134,161, 32, 96,104, 24,205, 28, 70,188,252,202,159,214,205,101, 30,205,250,
-211,101,193,178,193, 3,223, 25,114, 19,142,214,165, 77, 40, 70,228,122,248,224, 1,129,135,163, 4, 12, 67,129,161, 1,134,166,
-144,162, 54, 96,252,248, 55, 28,159, 85,176,247,235,234,209,225,195,145, 65,125,195, 67, 92,218,252,120,137,114, 12,239, 55,210,
- 53,207, 40,127,125,247, 47,103, 94, 33,221,166, 95, 33,132, 95,158,113,113,237,175, 53,145,152, 76, 38,117,223,200,126, 14,148,
- 64, 33, 63,245,243,182,238, 2,154,130,149, 35, 96, 57, 2,174, 60, 54, 42, 85,254, 6, 67,211, 20, 8, 79,240,214, 91,227,209,
- 55,178,159,158,103,249, 12,219, 7, 57,122,251,241, 83,191,185,155,172, 60, 86,172,223,186, 64, 87,172, 89,240,240,190,107,138,
-182, 56,111,186, 33, 55,193,230, 56, 24, 52, 72,251,244, 7,177,111,239, 60,124, 25, 33, 45, 91,128,227,203,242, 25,228,171,192,
-206, 35,151, 17, 28, 20, 92,150,111,158,160,121, 67, 37, 58,180,239, 0, 60, 21,154,204, 86,145,165,154,243,252,139, 99,230, 15,
- 24, 49, 14, 30,238,238,160,137,117,192,169, 35, 59, 7,124,247,213,242, 15, 89, 99,201,138, 58,145, 17,238,209,115,129,240,252,
- 51, 91,157, 26, 52,104,224,222,161,195, 31,238, 24, 89,150, 69, 64, 64, 0, 50, 51, 51,131,234,243,158,230,237,237,253,226,220,
-185,115, 61,250,247,239, 47,244,242,242, 2, 0,228,228,228,248, 28, 63,126, 60,108,238,220,185,185,217,217,217, 71, 80,131, 71,
- 31,206, 74,139,104, 1, 24,169, 84, 94, 86, 70, 80,244,140,119, 94,107,227,233,221,160,202, 64,238, 26, 77,142,120,230,148, 51,
-148, 64, 32, 42, 63, 31, 52, 33, 60, 85,131,149, 40, 66, 40, 20, 86, 57, 67, 97, 97, 28,194,137,208,241, 77,154,161,203, 58, 43,
-107,213, 20,166, 93,111, 81, 7, 75, 92, 43,161, 88,180,113,248,200,113, 93, 94, 26, 54, 24,222,238,142, 56,117,241, 22, 38,190,
-243,190,149,181, 88, 87,213,107,240, 96, 24, 65,110,110,110,138,179,179,179,215,179, 63,111,169,198, 39, 79, 28,243, 56,117, 58,
-106,214,202, 53,235, 38, 89,204,172,149, 39,228, 81, 28, 99,153, 76, 34,236, 61,224,101, 7,143, 38,225,210,117,115,223, 20,254,
- 7, 45, 90, 91,254, 20,161, 37,150,169, 94,254,108,230, 84,233,194, 29,151,113,228,203,137,121,250,146, 60,247, 71,111, 10, 14,
- 78,215,117, 37, 69, 97,245,201,161,210,189,121,103,138, 17,188, 77, 49,140,130,162, 41, 49,207,241,233,172,217,188,200,144,159,
-144,253,172,165,231,121,130,159,126,207,173,155, 0, 34,104,186,253,199, 3, 30,158, 78, 18, 24, 45, 28, 70,142, 26,131, 31,126,
-248, 65,229,238, 40,134,209,204, 98,249,202,149,165,218,148, 35, 30, 41,233,133,153, 17, 3,223,255,245, 65,114,110,108, 90,182,
-113, 79, 93,243,102,178,112, 40,209,179,208,155,104, 52,107,213, 1,203, 87, 5, 75,211, 82, 31,190,191,237,187,111,222,189,123,
-151,249,129,103,232,249,198,236,123,233, 85,222,116, 94, 33,125, 29,156, 93,119, 13,125,251,115,167,132, 92, 1, 8, 44, 72,114,
-144,226,229,215,223,117, 8,244,146, 65, 33,101,156, 30,166,102,122,207,248,240,195,139, 15, 56,210,177, 68,243,224, 97,109,249,
-105,212,168,209,176, 1, 3, 6,200, 63,248,224, 3, 97,195,134, 13,241,221,206,189,254,221,250,142, 24,152,149,173,110, 72, 8,
-129,167,135, 71,250, 91,111,140, 56,116,244,232,209,212,244,244,116,225,178,101,203, 58, 29, 56,112,160,101, 78, 78,142,205,111,
-166, 28, 33, 48,154, 56,112,229, 15, 72, 77,177,169,206,250,212,199,199, 71,146,153,153,105,170,100,101,160,254, 48, 20, 82,125,
-123, 61,223, 73,176,249, 88, 50,180, 70, 14, 10,169, 16,201,106, 61,218,183,109, 77,125,205,177,161, 85, 17,142,127,249,197,217,
-158, 74, 18, 57,168,115, 99,120, 56,203,241,237,134,207,113,240,210,195, 72,181,150,194,122,194,188,237, 45, 17,244, 86,240,217,
-235, 95,104,223,196,171,103, 59,127, 92,107,223,196,235,124, 76, 92,188,108,196,202,169,153, 90,225,169,194,227,239,150, 86, 61,
-240,208,112, 81,137,176,245, 68, 42,228, 82, 1, 20, 82, 1, 20,146,178, 79,154,166,158,237,173,214,187, 69, 67,134,231,198, 51,
-140, 96,252, 43, 47,143,104, 48,250,149, 17, 4, 12,141,189, 63, 29, 26,188, 99,199,246,108,171,197,252, 13, 71, 51, 91,171,235,
- 63,143, 85, 40, 13,120, 56,138,241,225, 55,177,112,144, 9,161,146, 11,225, 32, 23,162,103, 27,119, 48,116,189,179,232, 60,113,
-112, 96,255,137, 67, 27,245, 8,242, 83, 54,187,153, 84,124,119,252,162,232, 53,103,139,122,188,183, 97,117, 75, 87,109,145, 89,
- 48,103,198, 91,130,140,172,172, 30,123, 15,157,235,201,153,199,197,177, 22,221, 39,154, 91,123,171,180, 10,103,196, 93, 10,243,
- 9,127, 73,106,209, 90,111,223,140,203,104, 82,104,146,224, 78, 74, 9, 20, 82, 1,148, 21,117, 43, 21, 64, 33, 21, 66, 41, 21,
- 32, 43, 35, 25, 5, 58,230, 98,166, 43,221, 3,231, 46,213,201, 77,190,209,194,225,198, 67, 45, 26, 5,181,133,183,119, 3,152,
-251,191,218,232, 74,212, 79,191, 92, 61,247,243, 18,125,206,253, 79,108,229,217,121,248, 50,102, 77,127, 59,134, 2,174,151, 63,
-164,195,230, 44,253,178,221,130, 89, 83, 30, 75,155, 49,127, 93,187,250, 91,178, 84,179,123, 14,157, 60,191, 91,239,161, 40, 45,
- 80,227,247, 95,247,160,239,128,225,120,117,220, 52, 56, 57,185, 45, 95,181,104,230, 77,214, 84, 18,245,212,152,235, 21,252, 92,
-235,144, 22, 59,124, 26, 52,104,200,243,101, 81, 62, 8, 1,180,165,197,152,249,222, 91,224, 9, 65,104, 88,199,158,210,110,189,
- 9, 41,143, 6,146,151,159,167,139,187,127, 55,194,152, 27,119,197,230,186, 52, 26,173, 26,141, 6, 55,110,220, 64,124,124, 60,
-238,220,185,131,252,252,124, 56, 58, 58,106,117,186, 58,249,126,115,104,211,166,205,232,168,168, 40,169,179,243, 31, 65, 26,204,
-102, 51, 84, 42, 21, 70,143, 30, 45,236,211,167,143,207,139, 47,190, 56, 54, 54, 54,118, 39,128,146, 42,243, 83,144,152,165,242,
- 12,218,244,252, 11,207, 79, 2, 0,153,131,247,195,245,223, 29,186, 83,227, 11,173, 99, 3,255, 46, 93,186, 54, 1, 33,160, 64,
-214,234,243,227,115,106,176, 18, 41, 46, 95,190, 28,200, 48,140,224,143,103, 16,143,175,190,253, 49,248,228,133,219,195,150, 46,
- 95, 33,117, 80, 72,160, 41, 54,227,205, 87,135,218,252, 12,150,121, 6,245,239,210,165,251, 47, 11,230,127, 38, 80, 42, 20,248,
-245,202, 3, 76,125,239, 67, 99,118, 74,236, 10,194, 11,191,212,107,226,115,159,241, 81, 73,240, 39,160,153,175, 18,170, 65,125,
-165, 19, 95, 27, 36, 53, 91, 57, 20,233,172, 48, 89, 56,112, 60, 65,177,206,138,187,105,165,112,115,168,123,136, 48, 66, 72, 7,
- 0,238, 0, 52, 20, 69, 93,171,252,189,226,133,174, 66, 27, 63,241, 61,175,252,249,224, 10,192,140,178,157,250,143,186, 79,249,
-247,234,210, 43,174,191, 11,160, 69, 57, 39, 7,224, 42, 69, 81,133,213,136,173,167,172, 92,130,195,135, 15,147, 1, 3, 6, 60,
- 26,241,159,252,254, 36, 36, 34, 97, 3,133,163, 59, 8,185, 7,138,250,227, 52, 15, 47,159,252, 21,171,214,184,188, 51,249,237,
-212,146,162, 2,255,242,228, 83,182, 60, 44, 4, 20,179,234,249,174,225,125, 38, 77,158,140,160, 64, 95, 17,199,113, 36, 54,254,
-161,117,219,214,111, 95, 63,127, 73,188,166, 36, 35,118,118, 37, 19,100,157,182,125,114, 60,151,241,164, 5,139,227,185, 39,223,
-110,159, 14, 82, 77, 1, 78, 74, 49, 54, 29, 75, 6, 33, 0, 5, 2, 71,133, 16,187,207,102,224, 97,204,254,146, 1,161, 37,186,
-209, 75,231,245,236,209,255,221,168,187, 73,198, 61,185,185,198, 19, 0,114,106,226,172,122, 64,231, 97,178,112,176,178, 44,246,
- 29, 58,132,200,158,157,208,165, 75, 39,116,239,214, 69, 16, 29,115,107,220,228, 73,111, 53,196, 31,187, 59, 30,113, 74, 61,155,
-118, 80, 58,186,237, 25, 54,105,153,234,118, 6, 11, 1, 3, 52,246,146,193, 69, 37,130,153,165,144,162,177,148,223, 57, 78,152,
- 58, 99,190,203,172,247, 39, 29, 45,209,136, 67,128,123,150,154,202,174,215,235,197, 99,198,140, 17, 90,173, 86,203,232, 55,167,
-245,201,201,209, 12,254,106,237, 23, 18, 15, 15, 79,232,141, 44, 98,238, 36,182, 88,176, 96,126,227, 67,199,207,254, 60,239,195,
-137,191, 68, 70, 70, 58,254,248,227,143,124,109,245,249,216, 27,162, 58,111,195,183, 59,246,253,176,122,197, 98,196,165, 22, 98,
-235,230, 47, 65, 56,118, 83, 45, 85, 85,153,147,140, 25, 51, 70,246,243,207, 63,251,102,100,100,148,232,245,122,205, 99,246, 8,
-154, 18,168, 11,244,112, 83,137, 33, 18,208,240,116,150,194,195, 81, 2, 33, 3,208, 20,197, 85,197,185,117,207,145, 69,188,190,
- 24, 7,119,153, 95,249,118,195,231, 24,247,206,167,136,205, 19, 31,167,229,142,139,166,188, 50,108,150,187,140,139,108,224, 68,
-123,244,108,215, 8, 10,169, 8, 31,191, 59, 6, 29, 99, 82, 60, 50,139,248, 79, 53, 6,166,237,252,227,143,130,117,159,122,220,
- 56, 82,102,193, 82,201,133, 56,190, 99,121,174,174, 88, 83, 92, 49, 37,103, 54, 25, 83,109,236,198,167,170,120,179,157,213,182,
-117,171,207, 39, 77, 24, 79,119,237,220,145,208,180, 16,121,165,102,138, 16,224,189,169, 19, 49,101,226, 91, 94,233, 89,185,115,
-190,252,114,211,236,168,147,100,161, 78,115,127, 94, 77,156, 52, 85,102, 5, 82, 74, 5, 80,202,202,132,139, 82, 42,128,209,204,
-129,162,192, 56,249,133, 21, 83,101,150,220,172,130,212,106,223,192, 31,227,116,241,107,117,250,228, 67, 85,112,225,158,194, 75,
-201, 89,119, 22,197,220, 82, 95, 5, 80,208,176,187,211, 88, 11, 75,160, 53,178, 72, 86,235,193, 90, 8, 53,174,159, 63, 2, 94,
-162,130, 22,127,123,253,135, 99,183,224, 80,105,208,127,140, 51,243,242, 62,163,107,200,208,145,171,215,109,190,182,226,243, 79,
-153,188, 98, 51,120, 66, 32, 21, 51,144,137, 5,229, 7, 3,131,174, 24, 95,110,252, 58,135, 5, 53, 12,231,206,177,117,233,159,
-224,201,171, 67,251,119,223, 77, 1, 98,138, 22,101, 52,240,111,228,223,107,224,235,210, 94,131,198,128, 99,205,179, 98, 46,144,
- 51,250,220,184,211,182,112,134,180,108, 1, 10,184,174,203,141,159, 8, 0, 10,143,230,155,130,131,130,219, 61,153,214,180,105,
- 80, 59, 91,218,253,145,165, 84,170,122,199,217,197,253,211,160, 86,109, 61,212,133, 38, 74,229,234,139,228,132, 27,216,181,113,
-206,118,222,104,158,127,250,200,158,207,215,108, 61,240,114,175,200,161,248,246,171, 47, 62,206,207,126, 36,180, 78, 85,178, 86,
-189,186,237,155, 45, 13,133, 98, 9,172, 44, 15, 43, 71,202, 62, 89, 14, 5, 5,133,176,178, 60,164,114, 21, 88,158,130,149,227,
- 97,101,121,152,204,172, 98,226,152, 23, 39, 27,129, 43, 85,229,211, 39,248,249, 19, 34,137,196,159,160, 44,118, 45, 33, 4,201,
- 57, 6,218,219,219,123, 39, 0, 72, 36, 18, 72, 36, 18,240, 60,143,152, 56,205, 59,110, 65,205, 39,161, 92,224,113, 22,115,106,
- 81,202,111,125,171, 43,187,151,151,215,192, 39, 69,150,209,104,132, 86,171,197,133, 75,215, 28,191,249, 97, 95,100,114,106, 70,
- 32, 79, 28, 77, 42,143,192,190,165,185, 15, 6, 86, 87,159,165,234,184,201, 14,225,111,209, 31, 76, 25,219,116,221,182,195, 87,
- 19, 79, 44,170,113,157, 86, 64,175,143,204, 31,188, 61,188,253,210,181, 91, 19, 10,127,219, 52,189,182, 54, 18, 8, 4, 66,141,
- 70,243,232,254, 94,255,245,174,246,215,227, 50,135,172, 89,189, 70, 26,243,160, 20,183,147,179, 48, 54,194,175,236, 13,199,134,
-118, 87,120, 6,186, 53,110,210,100,231,151,107,151, 10, 18,178,140,216,176,255, 42,162,126,217,116, 33, 39,247, 74, 36,212,217,
-134,250,140, 33,127,130,208,170,150,243,204,173, 60,104,141, 44, 76,102, 22, 86,158,160, 68,111, 69,110,145, 25, 37,122, 11,180,
- 6, 22, 99,123,251, 85,121, 93, 45,122,196,157,162,168,195,132,144, 1,132,144, 8, 0,226,138,239,101,207,108,234,112,185, 32,
-123,236,251,172, 89,179, 62, 89,178,100,201,157,138,115, 43,210, 43,206,173, 41,189,210,245,174, 31,127,252,113,200,210,165, 75,
- 23,119,238,220,121,247,239,191,255,254, 16, 64,161,173,211,135,130,202,133, 57,124,248,112,109, 21, 29,104,177, 90, 36, 14, 50,
- 33, 26, 7,248,225,141, 79,190,117,251,126,233,248, 92,169, 88,192, 28, 59,118,204, 37,223,172, 4, 77, 51, 54,191,162, 40,221,
-155,117, 17,137,196, 71, 86,174, 92,137, 87, 6,118,147,165,229, 89,181,183,210, 12,106,157, 25,172,135,123,115,241,162,197, 75,
-149, 75,151, 45,159,114,248, 32, 95,164, 85,223, 93, 94,245, 20, 95,251,104,134,170,180, 6,139,162, 64,120, 46,163, 48,229, 90,
-123, 0,120,150,181, 88, 90,163, 21, 76,249,218, 26,138, 2,244, 70, 22, 12, 67,229, 22,197,237,185, 59,122,225,162,158,219,119,
-159,204, 34,180, 83,169, 78,151, 44, 71, 89,204,193, 58,195,104,230, 96,178,114,184,115, 51, 6,221,195, 91,162, 75,251, 96,232,
-141, 28,244, 38, 22, 1, 77,130, 0,192,173,202,134, 99,232,135,132,179, 26, 9,225, 84, 3, 58,184,195,195, 73, 12,111,103, 9,
- 36, 98, 1,172, 44, 96, 48,243, 48,154, 57,164,228, 26, 80,106,144,161,245,243, 35, 26,187,122, 71,155,114, 82,100, 63, 23,164,
- 69, 15,171, 81,156,114, 28,182,237,220,215, 52, 43, 75, 61,248,232,207, 59, 36,154, 18, 43,110,165,232,144, 91,100, 2, 24,119,
-204, 93,188, 65,242,209,244, 9, 67,182,237,250, 41,181, 87,183, 78,169,117, 45,179, 94, 19,183,125,207,222,125,155, 6, 12, 24,
- 34,187,115,229, 40, 18,110,156,254, 92,151, 91,167,245, 89,116,104,104, 40, 59, 97,194,132,210,197,139, 23, 55, 60,120,240, 96,
-128, 70,163,185, 1,192,234,228,228, 20,220,188,169,255,205, 95,143, 31,243,121,113,200, 8, 97, 70,158, 1,142,114, 17,252, 61,
-228,184,116,225,132, 85, 44, 22, 86,185,222,164,124,122,112, 20,122,205,196,193, 75, 15, 35,239,228, 75,207,190, 53,126,108,234,
-175,231,227,242,215,255,240,235, 23, 62, 74,235, 13, 41,175, 89, 31,221,190,137,215,172,169, 99,176,100,221,118,156,139,137,203,
-213,209,222,159,103,155,216,147,213,155,210, 1, 1, 67, 65, 37, 19, 66, 87,162, 41, 78,186,126,188,249,159,100,166, 30,251,235,
-207,219,233,130, 82, 43,210,243,140, 84, 86, 65, 41, 56,158,192, 73, 46, 2,203, 19, 20, 21,228, 81, 59,182,255,128,107,215, 46,
-209, 96,232, 55, 1,204,171,177, 66,169,178,169, 66,165, 84, 88,102, 17,146,149,125, 90, 57, 30, 65, 77,155, 96,203,250, 85, 14,
-110, 30,158,120,174,187,237,107,163, 85,174,254,161,187,191, 91,143,179,191, 95,127,225,220,154, 13, 29,148, 13,220,215, 81, 20,
-183, 2, 4, 70,147,133, 67,113, 81, 33,196,230,116,116,244,209,192, 69,206, 33,165,196, 27,177, 57, 9,202,218, 6,252,252,216,
- 3, 55, 40, 50,100,246,190, 67, 81, 75,250,246,126, 1,177, 41, 37,144,137, 5,144,138, 25, 72,197, 12,132, 20,135, 85, 27, 55,
- 89, 11,139, 75, 7,228,223,249, 37,175, 30,253,243, 84,249,219,111,153,184,227,180,238,219,215,205,254,254,173,153,203,250, 70,
- 14,125,157,138,189,118,230, 19, 61,112,218,182, 23, 61, 98, 83, 26,207,219,254,140,147,170,220,214,190,251,209,162,119,251, 12,
- 24, 1,134, 17,192,106,181,226,167, 31,183,227,187, 13,115,239,155,181,249,175, 3,224,205,185,204,132, 61,219, 55,142,152, 57,
-103, 21, 21, 18,218,177,211,153,236,167,195,123,254, 31,123,231, 29, 21,213,213,181,241,231, 78, 99, 26,189,131,130, 21, 4, 11,
- 40,246, 94,163,198, 30, 53,193, 18, 49,177, 39,198, 36,198, 68,141, 38,106,212,104, 76,236, 45,177,197,168,177,247,142, 13, 91,
-140, 10, 40,138, 40, 72,239,157,233,125,230,158,239, 15,192, 88, 40,131,229,123, 83,206,111,173, 89,112,135,225,153, 91,207,125,
-238, 62,251,236,195,114,153, 95,198,140,155, 20,234,225,225, 97,247, 87, 68,139,160, 81, 64, 19,244, 27, 52, 12,103,143, 30,198,
-131,216, 24,176,164,212, 48,177, 44,129,172,164, 40,215,108, 50,108,175,180,199, 67, 36,170,179,237,215, 29,254, 28, 14,243,100,
- 2,249,207, 63,250,192, 48,249,179,175, 59,245,235,221, 53,214,134, 11, 69,106,122,142,227,141,232,184, 32,150,111,235, 51,110,
-198, 10,129, 78,111,129, 92, 99,194,169,173,149,123, 29,145,147,111,251,186, 45,251,141,155,252,205, 38,161,144,203, 49, 54,109,
-228,147,220,181, 93,211, 12, 95,111, 87,229,119, 75,215,181,185,118, 51,186,223,123,163,198,137,194, 2, 91, 50,222, 46, 98,187,
- 15, 70,189, 19,108, 49, 27,199,104,138, 51, 42,173, 47,200,151, 56,201,124,235,249,105,254,138, 24, 53, 58,196, 16,212,127,198,
-121, 48, 72,214,230,197, 15, 5, 0, 47,111, 95, 29, 95,104,175,172, 65, 4,134, 0,192,154,205,187, 91,221,141,207,158,176,114,
-229, 42, 73, 84,146, 18,119,146,228, 16, 10, 56, 48,154, 88, 48, 86, 6,181, 89,194,157, 52,103,246, 44,251, 18,181, 5, 17, 49,
- 5,136,141,188, 68, 12, 42,221, 40,137,217,126, 40,220,237,198, 0,104, 8, 32,145, 97,200, 47,234, 60,207,163,192,229, 26, 79,
-116,202,178,165,207,203,246,110, 13,234, 91,120,194,126,124, 27,105,123,134, 33, 77, 25, 2, 39,128,100, 21,151,221, 83,173,117,
-106,234,188,120, 44,251,254, 91,172,222,114, 24,217, 69, 58, 56, 88, 50,112,116,235, 34,124,177,228,119,104,245,149,103, 53, 84,
-231, 71, 42, 50, 70,207, 27,174,242,223,203, 63,183,100,201,146, 1,207, 29,155, 1,149, 28,179, 23, 62, 87,254,255, 75,151, 46,
-253,254,169,191,107,172, 53, 89, 79,140, 86,249, 70, 85, 99,182, 26,185,121,213,249,227,232,145, 67, 78, 37, 42, 35, 68, 2, 46,
-124,235,249, 97,254,218,163,110,111,183,114, 69,161,209, 1,187, 55,253, 84,172,211, 40,247, 90,213, 88,184, 7,180, 21,219, 74,
- 79, 29, 58,120, 24, 13,124,221, 5,187,174, 22,167, 68, 39,107,159,132,122, 21, 5,105, 54,245,236, 53,188,161,239,188, 35,185,
-112,241,210,103, 42,160, 66,163,197,101,184,181, 55,239, 56,232,110, 39,230,131, 97, 0,165,214,140, 9, 99,134,189,250,109,140,
-176,220,113, 99,195,192,148,153, 44, 69, 81, 46,190,158,249,145, 78,106, 74,120,144,158,154,158,213,107,224, 23, 23, 20, 42, 70,
- 23,250,254, 71,183, 31,196, 47, 41,209,104, 94,110,146, 31,189,193, 2,189,145, 69, 82, 82, 34, 62, 15,123, 11,124, 46, 7, 92,
- 46, 91,154, 44,109,174,252,100, 84,101,199, 23,195, 83, 48,124,231,242,169,155,189, 61,220, 93,108,165, 98, 98, 43, 17, 50, 77,
- 3,253, 5,237,218,117,176,169, 23, 16, 44,184, 26,167, 69,122,129, 22,201,217,114, 8, 61, 90,240, 70,244,120, 27, 59, 87,205,
-232, 86,156, 30,201,193,139, 73,138,207,112, 46,226,207,129, 91, 54,174, 20,230,201,140,120,152,174, 66,110,137, 14, 57, 37,122,
-228, 22,235, 96, 43,230,163,203,160,137,194,147, 71,127, 25,216,179,115,219, 53, 47,179,221,201,201, 41, 39, 83,179,114,222, 13,
- 14,105,131,157,191,253,218,217,209,177,158,189, 76,150,162,176,246,232, 44, 90,180,200,102,233,210,165,188,181,107,215, 42,218,
-181,107,231, 57,123,246,236, 62,249,249,249,183,234,214,173, 27,112,246,208,246,139, 45,186, 12,110, 13,214,232,214,185,107,119,
-129,144,229, 33,252,196, 9,227,190,189,187,138,180, 90,229,228, 42, 13,135,196, 97, 81,158,138,129, 91,173, 90,177,182, 54,150,
-183,120, 28, 89,124,201,153,105, 59, 74,128, 67, 13,250,126,114,254, 82,228,163,248, 86, 81,169,238, 23,163, 30,231, 23,107,140,
-141,146,206,124, 81,101,195,203,101, 24,240,185, 28,216,137,121,224,148,181,170,182,222,193,143,193, 48,110,229,145, 83, 6, 76,
-217, 79,128, 97,144, 93,146,126,199,138,156, 13,134,176, 4,120,148,169,134, 74, 87, 26,154,175,237, 42, 65, 65, 94, 38, 54,172,
-217,142,232,200,219,232,253,246, 32,172,223,188, 11, 19,198,188,171,171,238,233,135,195, 41,139,104, 61, 21,205,178, 21,243, 0,
- 48,144,169, 77, 56,120, 45, 3, 13,235,115,172,190, 49, 0,128,157,173, 4,114,165, 22, 28,129, 29, 18,163, 78, 73, 78, 95,186,
- 57,123,238,194,149, 95,150,228,196,164, 63,190,119, 21, 1,174,114,212,175,101, 68,108,174, 61, 34,139,234, 33,192,175, 1, 56,
-130,219, 86,105, 23,198, 6, 45, 59,202, 57, 56,160, 85,139, 38,237,235,184, 59, 66,107,176,148, 69,181,184,248,117,219, 14,164,
-166,100,142, 43,122,112, 52,250,117, 56, 90,117,126,114,129,208,221,239,227,123, 55, 47, 36,191, 51,234, 99,120,213,242,109, 46,
- 75,191, 99,229,205,203, 58, 83,101,177,210,104, 9, 36,142,179, 63,159,243,195,180,222,253,135,227,207,171, 23,112, 39, 54, 17,
-109,219,182,198,219, 67, 70, 64,169, 40, 14,220,191, 99,213, 91,102,141,242, 44, 79,104,158,214,166, 67, 15,134,181, 88,144,240,
-240,126, 98, 69, 90,218,156, 71,119,110,228, 60,178,127,166,123,202, 53,176,185,173,131,243, 29,189,209,130,172,172, 76, 92,255,
- 35, 34, 68,155,243,168, 70, 5,132,133, 2, 46,194,163,243, 97, 44,155,195,180, 75,215,183, 12, 2,142,190,243,226,149,219,169,
- 20,239, 5, 0, 0, 32, 0, 73, 68, 65, 84,218,229,100,231,112,164,246,174,172,115,173,198, 2, 47,161, 81,127, 55, 73, 46, 48,
-154, 88, 52,240,150, 86,169,233,230,237,247,253,140, 25,159, 55,230, 10,196, 80,170,245,134,156,236, 44,207, 77,187, 47,169,226,
- 30,222,171, 85,219,221,193,254,135, 85,191, 8, 20, 58, 6,249,114, 61,138,149, 10,102,212,164,175,188,183,172, 91, 50,186, 42,
-163, 85, 65,186, 72,253,147,225, 87, 3,157,236, 4,140, 74,103,102,139, 20, 70,203,168, 33,175, 54,232,178,204,100, 77, 92,185,
- 98,149, 36, 58, 73,137,187, 73,114,136, 4, 92,216, 8, 56, 48,152, 88, 88,121, 57,113, 60,221, 61, 39,119,104, 21,132,179,119,
- 10,193,229,114,160, 85,150,104,120, 40,138,111,213,173,183,164,101,155,118,232,222,173, 43, 30,199, 63,242, 61,113,236, 96,207,
- 27,215, 47,231,154,141,141,166,170, 11,226, 15,215, 40,176,160,209,112, 77, 54,158, 31,120,213,170,219,113,232,136, 15, 28,234,
-248,214, 98,220, 93, 93, 96, 38, 60, 76, 28, 51,204,234, 43,191,212,152, 3, 75, 23,206,134, 94,111,128,155,163, 13, 8, 1,182,
-173,153, 15,131,193, 0,111, 23, 33,228,234,202,103,147,171,206,143, 84, 22,133,170, 81,238,201, 83,102,172,170,247, 25,134, 57,
- 49,107,214,172,175, 1,144, 89,179,102,125, 93,190,188,100,201, 18, 45,128,236,106,186, 14, 55, 61, 99,180,202, 55,174,242,171,
- 91, 16,224,234,226,117, 35,252,236, 25,135, 35,119, 89,252,121, 56, 18,253,219,122, 65,192,227, 64,226,224,141,187, 41,114,156,
- 60,180, 81,118,116,207, 47, 89,122,189,254,199,234,251,154,253, 90,217, 74,164,103,127,219,185,151,117,117,113,225,108, 8, 47,
- 72, 42, 82,154,159,116,105,197,223, 60,198, 70,158,221,228, 69,192,156, 17,137, 68,126, 6,131,193,169,186, 3,187, 45, 60,173,
- 44,137,151,121, 29,109, 43, 24, 46,215,178,115,215, 78,184,218,219, 64,111, 98, 49,235,203, 79,181, 97,189,109,101,163,222, 27,
-209,163,123,191,105, 23,249, 82,255, 11, 29, 66,252, 73,139, 22, 45,100, 92, 46,215,170, 84, 10,119,119,247,249, 28, 14,103,164,
-141,141,141,157,193, 96, 80, 26, 88,157, 68,173, 51, 64,103, 4, 52, 26, 29,248,130, 82,179,200,231, 50,208,234, 12,208,104, 13,
- 85, 95, 24,185,247,175, 1,104,164,120, 42,166,116, 33,174,129,205,239,251,143,126, 58,252,189,208,185,181,154, 15,177, 77,201,
-145, 67,192, 24,209,186,177, 23, 46,157, 57, 76, 50, 83,227, 63,175,206,100, 1, 64,126, 65,177,143,155,155, 7,162,147, 85,200,
- 42,210, 34,183,204,100,229,148,232,161,212, 42, 17, 92,199, 27, 50,185,220,231,165,247, 47,112,248,236,217,179,239,246, 27, 28,
-138,105, 95, 46,232,180,117,227, 79, 49, 82, 27,254,135,234,188,132, 8,107,140,214,253,251,247,139,103,206,156,217,112,243,230,
-205,156,209,163, 71,107,131,130,130, 68,239,191,255,126,167, 29, 59,118,136, 36, 18,145,246,238,213, 99,115,199,127, 50,107,240,
-166,213,139,154,151,148,148, 48,102,147,233,180,177,164,100,150,170, 26, 51,151,113,236,235,135,243,146,140, 99,223,234,236,118,
-204, 89,194,105, 42, 36,134, 17,104, 60,127, 47,226,230, 27,147,206,172, 85,138,223, 93,254, 73,182,140,157,163,227,184, 47,174,
-206,100, 1, 0,135,203,192, 96,182,192, 78,204, 7,135,195, 41, 55,241, 94,191,238, 61, 45,113,115,176, 1,159,203, 1,143,203,
- 64,161, 49,161, 80, 97,196,199, 31, 88, 91, 33,132,176,102, 11,129,214, 96,134,166,236,233, 80,169, 40,196,236, 47,167,227,237,
-129,239, 96,252,228,233, 40,209, 2,145,201, 74, 24, 77,166,106, 47, 10, 14,195,129, 70,111,198,135,189,235,160, 88,101,132, 90,
-107,134,193,204, 66, 98,195, 3,159,199,129, 84,196,131,189,132, 15, 16, 34, 40,111, 76,248,124,190,206,100, 50,237,172,226,137,
- 30,245,124, 60,160, 53,113,208, 38,244, 39,244,106,223, 8,177,215, 14,242, 46,255,121,175,254,103, 95,206,193,167, 19, 6,226,
-192,195,134,112,118,175, 3, 91,169, 24, 38,194, 1, 64,172, 76,216,155,207,114,140,239,140,252,121,243,182, 71,223,125, 59, 75,
- 36, 83, 51, 16, 10,184,184,120,225, 60,110,220,140, 92, 93,248,224,232, 78,188, 70,248,132,227, 97,111,111, 15,145, 13, 23, 6,
-163,222, 96,125,234, 2, 1, 1, 66,164,238,141,126, 46,123,226, 15,177,176,168,224,189,234,141, 22, 79,100, 63,107,234,151,223,
-125,223,187,255,112,132,159, 56,128,253, 7,246, 90,218,247, 29,199,221,245,235, 70,116,234, 53, 8,157,122,135,226,244,225, 29,
-211,213, 44,211,100,226,180,185, 11,187,244,232,135,240,147, 7,144,151,155,185,220,218,245,229,242,153,105, 61,222, 26, 8,157,
-193,130,206, 61, 7,224,204,241,195,159,160,108,144,133,245, 55,177,231,218,103,112,204,211, 63,159,198,207,151, 25,248, 5, 10,
- 3, 50, 11, 52, 72,201,211,224,232,158,173,196,250,246,194,208,186, 75,112,109,254,196,101, 23, 51,124,106,123,233,249,122,173,
- 56, 62, 49, 41,112,252, 7, 97,252,250,126,129,156,124,185, 30, 5,114, 61, 10,229,122,168,116,102,248,213,246,231,152,204, 76,
-251,154, 30,103, 87, 7, 27,254,250,227,201,176,151,242,209, 33,240,229, 7,218,178, 44,251,151,201, 90, 89,106,178, 98,146,229,
- 16, 10,184, 16, 10, 56, 16, 10,184, 48, 91,136, 85, 15, 46, 98,247, 70,253, 62,158,250,145,183,193, 12, 20,201, 13,224,113, 25,
-184,187, 58, 73, 91, 55, 31,137,109, 63,125, 2, 0,152, 48,115, 3,198,127,248, 62, 26, 55, 13,130,172,164,196,115,228,240,126,
- 43, 1, 28,182,118, 93, 79,133, 71,248,134, 95,137,158,249,241,140,121,182,239, 13,236,206,189,147, 36, 71, 78,177, 30,137,241,
-202, 26, 69,222, 0,192,108, 97, 65, 64,176,125,239, 9,136,109,120, 40,144, 27, 65, 8,193,162,181,251, 96, 39,230, 35,167,164,
-180,187,191, 42,170,244, 35, 85, 68,164,106, 16,109, 28,128,210, 92, 46, 55,107, 35, 90, 75,150, 44,137, 93,178,100, 73,133, 17,
-178,167, 76,214,203, 77, 42, 45, 16, 72, 3,237, 93, 92,255, 12, 63,115,202,238,240, 93, 11, 46,221, 45,194,240,206,181,161, 42,
- 78,199,143, 95,190, 87,204,128, 24, 56, 92,174, 76,175,213, 28,210,106,213,139, 1, 24,171, 60,105, 60, 27,133, 72, 69,182,231,
-215,111,250,205,236,234,238,142,157, 87,139, 51, 75,212,102,211, 95,221, 86, 38, 38,242,236,166,250,102,214,212, 87,151,247,248,
-118,117, 79,226, 44,129, 96,201,198,163, 0, 8, 88,150, 5, 97, 89,240, 69,182, 82,215, 6,237,242,202, 26, 58, 17,143,195,232,
-158,110, 1, 8,107,206, 44, 76,174, 58, 12,202, 0,112,144,240,177,247,114, 22, 0,228,113,149, 81,113,163,222, 43,237, 46,212,
- 25, 68,138,166, 13, 27,146,214,173, 91,203,196, 98,171,202, 95,113, 61, 60, 60,110,205,157, 59, 55,112,252,248,241, 66, 27, 27,
- 27,152,205,102,231, 95, 54,109, 98, 55, 45,158,128,161,159,172,135,192, 70, 8,173,206, 8, 62,159,135, 18,185, 10, 50,133, 6,
- 74,141,169,230,103, 80, 82,146,161, 0, 88,118,228,176,205, 59,125,108,131,219,216,112, 4,104, 25,224,133, 75,103,143,144, 63,
-207,108,155,160,205,143,255,205,202, 19, 17, 42,157, 9,217, 69, 58,100, 21,233,144, 91,162, 67,110,177, 30,185, 37, 58, 48, 12,
- 3,157,193,252, 74, 55, 46,117,254,163,253, 59,127,219, 50, 72,111,196,136, 46,189,223,193,244,121,235,235,236,252,121,233,249,
-100,194,233,104,101,162,173, 37, 54, 54, 54,245,131, 15, 62,104,190,123,247,110,110,179,102,205,180,113,113,113,146, 50, 19,105,
-180,181,149,136,183,174, 91,114,182, 77,155, 54,123,179,226, 31, 94, 40,235, 79,175,182, 97,175,211,117,172, 80,108,140,158,232,
- 43,237,208,167,129,167, 4,190, 82,101,159, 64,219,187, 63, 22,245,248,244,251,130,139,171,243,115,244,230,115, 5, 90,110,139,
- 44, 21,223,170, 28, 60,147, 94,151, 54,116,248, 8,112, 25, 14,140, 58, 77, 90,249,201,229,238, 96,131,249,187, 30,194, 86,196,
-135,157,152, 7, 91, 49, 31,157,154, 56,163, 6,237, 25, 49, 89, 88,104,244, 22,104,245,102,232, 12,102,184,250, 56, 97,243,206,
-253, 72,207,215,226,232,237, 66, 60, 74, 83,194,191,182, 20,132, 84,223, 76,178, 22,147,122,224,176,209,118, 92, 14, 3, 46,135,
-225, 52, 9,108,132, 98,149, 17, 2, 30, 7, 2,145, 24, 82, 33, 15,246, 98, 62, 4, 2, 62,242,243,243,161,215,235,225,235,235,
- 43,170,218, 10, 18,216,217,138,225, 95,223, 27, 70,147, 25,167,174, 60,192,226,207,135,226,173, 46,173,192,240,109,241, 80, 31,
- 2, 59,103, 59,176, 28, 14,140,102, 22, 6,163, 5, 0, 71, 87,153,158,143,143, 79, 15,169, 84, 42,213,104, 52,202,244,244,244,
-136,220, 71,135,211, 45,220,193, 19,207,132, 95,220, 57,224,237,183, 16, 29, 19,139, 3,135,143, 93, 45,116,145,207, 40,255,159,
-166, 77,155,182,115,117,117,181, 45, 42, 42, 82,220,191,127,255,214,203, 62, 23, 16, 14,231,179,246,157,186, 65, 37,203, 71, 94,
- 70,138,213, 79,209,141,235,216,225,155, 37,235, 91, 6, 52, 10,104,105, 33,165,198,171,137,175, 29,190,152,183,166,101, 67,255,
- 70, 45,203, 7,132, 52,246,173,186, 44, 27, 79, 98,215,123,204,248,233, 75, 6, 13, 31,139,139,225,199,176, 98,241,151, 59,165,
- 14,110,141,157,157, 28, 90, 52,107,215, 27, 87,207, 31,131,200,206, 19, 78, 46,158,157, 70,127, 56,181,215,240,209,147,112,227,
-234,121,172, 94,250,245, 14,139, 94,249,187, 53,235, 42,117,175,239,214, 60,164,205, 40, 59,103, 15,200,228, 74,216, 57,185,163,
-113,112,235, 81, 15,238,234,103,170,243,147, 11, 94,218,116, 16, 2,189,145,160, 68,101, 68, 70,129, 22,169,185,165, 70,139,101,
-107,144, 19,100, 97, 25, 91, 17,143,231,108,122,236,123,239,252, 69, 82,199,199,131, 89,182,240, 75,174, 17, 34, 20,200, 74, 77,
- 86,129,194,128, 2,185, 1, 42,157, 9,206, 82, 30, 88, 11, 91,227,167,238, 18,149, 17,118, 18, 62, 28, 36, 2,171,163,140, 21,
-177,241,215,189, 1,119,227,179,135,172, 88,177, 74,114, 39,249, 41,147,197, 47,141,102, 9, 5, 92, 88, 88, 22,176,226,138,231,
-243,248,211, 6,247,235,133,140, 66,109,233,168,101, 14, 3,255,160, 54,112, 21,179,232, 25, 58, 11, 0, 48,176, 95,105,106, 91,
-114,142, 26,199,255, 44, 0,158, 77,236,174,186, 45,214,106,185,155,118,157,252,108,255,190, 61, 14, 58, 11, 15,191,156, 78,133,
- 70,111,134, 72,192,133, 80,192,133, 88,192,125, 38, 31,187,122,163, 85,154,115,151, 94,104,130, 70,167,131, 66,107, 2, 1,112,
-235,177, 10, 90,131, 25,114,181, 9,237, 2,157, 94, 45, 16,194, 48, 39, 9, 33,253,159, 55, 68,207,155,165,167, 34, 82, 21,105,
-220,126, 90,163,252,243,149, 25,185,167,115,182, 0,212,104, 4, 23,239,121,231,248,244,178, 64,234,212,216,193,206,225,207, 51,
-167, 79,216, 30,190,203, 34, 34,166,212,100,153,180,133, 88, 62,115,100,166, 66, 86,216, 29, 64,146,181, 95, 38,113,109, 28, 44,
-178, 17, 94,252, 97,213, 47, 70,119,143, 90,236,161, 63,101,249,114,141,229, 25, 55, 97,209,235, 57,132, 37, 2, 93,222, 99,171,
-250, 16, 56, 28,198, 56,239,147,119,192, 18,130,249,171,246,227,251, 25,161,176, 21,143,150, 48, 12, 35, 81,235,204,248,124,193,
- 22, 44,255,102,156,157, 68,200, 3,195,148,230, 68,141, 25,241,142,117, 39,160,206,140,196,155,187, 85,202,228, 19,113, 79,119,
- 23,182,237,244,118,100,219,182,109,101, 78, 78, 78, 16,139,197,127, 69, 42, 42,193,195,195,227,155,121,243,230, 5, 76,158, 60,
-249, 73,177, 79, 30,143,135,143, 63,250,136, 99,177, 16,156, 62,189, 13,110,117, 67,112,236,220,159,232,219,163, 53, 84, 26, 29,
-138,101, 74,176,224,190,244,137,168,148, 21, 94,204, 77,189,215,166, 99,247,129,136, 56,123,132,252,121,122,235,132,154,212,232,
-113,114,118,202,136,186,151,216,152, 97,156, 75, 35, 90,101, 38,203, 96, 98, 81,199, 67,130,140,212, 68, 56, 58, 56,100, 88,171,
- 39,118, 11, 24,204,112,200,100, 6,100,155, 58, 47, 97, 63, 0,162,206,137, 27,185,255,247, 77, 49,177,247,239, 44, 30, 48,106,
- 26,175,247,240,143,184, 63, 47,153,250, 53, 0,107, 11,239, 25, 31, 61,122,244, 96,220,184,113, 29,110,220,184, 97, 1,160, 97,
- 24,198,196,229,114, 37, 6,131, 65,208,189,123,119,249,195,135, 15, 35, 80,113,210,226, 51,116,250, 96,191, 43, 35, 84,190,109,
-195, 26, 71,214,177, 83,190,213,189,115,123,180,111,234,131,140,206,237, 1, 96, 90,154,202, 54, 64,215,112,203, 94,147, 89,124,
-234,231, 95,143,127, 63, 33,180,215,231, 59,121,243, 87,228,156,152, 95,101, 34,106, 70,220,229, 62, 21,217,120, 30,151, 3, 59,
- 49, 31,182, 98, 30,236,196,124,216,137,248, 48,153, 73, 77,158, 28,137,201,204,150, 70,180, 12,102,168,180,102, 92,188,147,135,
- 92,185, 1, 50,165, 17, 90,163, 5, 4,164,244,105,212,138,214,188,224,241,117,199,242, 59,169,163,111,136,124,211,218,159,236,
- 15, 94,203,124, 50,162,207, 65, 98, 3, 59, 73,233,104,236, 43, 87,174,192,197,165,250,167,125,150,101,113,224,204, 45,172,216,
-126, 17,103,182,125, 5,145,128,139,224,193, 11, 48,118, 72, 91,176,132, 69,226,163,216, 60,255, 38,205, 61, 56, 28, 49, 56, 12,
- 3,189,137, 5, 64, 42,221,159, 6,131,193, 37, 61, 61, 93,225,231,231,231,233,237,237, 61,156,203,229, 18, 40,239,232,143,236,
- 41,214, 92, 56,241,187, 68,173,213, 91, 36,102,249, 54,191, 28,109,127,248,249,129, 97, 24, 98,111,111, 47,184,120,241,162, 42,
- 40, 40,200,237, 37, 47, 37,142,216,189,209,234,241, 83, 62, 27,222,176, 65, 3,236,255,125, 27, 8, 97, 14, 90,251,207,187,142,
-223,192,194,217,207,142, 48,252, 98,222,154,150,203, 23, 76,123,230,189, 41,179, 87, 84, 57,234, 80, 44,180,157, 49,116,228, 68,
- 68,222,250, 3, 63, 46,248, 98,143, 94, 85, 60,214,100, 54,189, 91,156,147,188,167,126,147,182, 32, 70, 37,194,247,253,132,208,
-247, 39, 8,123, 15, 24,142, 27, 87,207,227,251,175,167,236,210,200,242, 63,128,149, 73,206, 44,225, 79,238,222,103, 8, 95,171,
- 55, 98,205,178,111, 49,105,198, 98,180,235, 49,144,127,255,206,159,147, 1,124,103,117, 58,132,209,130,238, 65,174,165,230,217,
-196,226, 88, 50,151, 87,209, 25,200,227, 50,156, 22, 13, 28,161, 53,152,161,168,230,161,146, 39,224,231,202,228,138,186,235,190,
-255,140,171,214,153, 81, 32, 55, 32, 95,174, 71,161,236, 47,131, 85, 40,215,163, 64,110, 0,159,199, 32, 62, 41, 13, 28, 62,175,
-198,249,121, 37, 42, 19,218, 52,114, 42,189, 70, 95,178,119,196,196,179,111,123,230,242,221,161, 43, 86,172, 20,221, 77, 81, 34,
- 38, 89, 81, 22,201,226, 66,200,231,192,166,236,119, 11, 91,154, 27, 89, 21,246,110, 13,234,135,141, 25,221,211,222, 86,140,236,
-132,124,240,184,165, 37, 98, 28,220,125,224, 32,212, 97,234,148,137,112,117,113, 68,122,161, 30,171, 15,199, 35,230,193, 99,176,
-218,154,109,246,154, 95,246,244, 29,255,241, 23,142, 28,190, 13,118,156, 77, 41, 93, 79,174, 5, 15,255, 60,174,203, 78,188,167,
- 86, 41,138, 8,136,197,202, 28,100,134,152, 45,165,167,219,247,243,103, 97,207,246, 13, 56, 27,149,255,228, 12,188,118,112, 57,
- 62,155,189, 8,133, 10, 3, 42, 58, 47,171,242, 35, 0, 10,158,138, 68,189,176,252,148, 57,170,104,153, 41, 91, 54, 84,162, 97,
-120,206, 92, 25,158,123,223,240,156, 94, 69,181,255, 54, 85,219,117,248,130, 41,114,116,107, 38, 17, 73,255, 56,125,250,184,244,
- 72, 12,121, 98,178,140,154, 66,178,120,218,192, 76,133,172,160,119,141, 76,150,155,127, 51,161, 68,120,121,238,162,213,122,143,
- 90,117,205,167,238, 40,138,148, 58,139,249,197, 28, 4,169, 69,234,224,166,227,217, 8, 87,240,181,134,111, 11, 11,227,212,213,
- 69,158, 88, 66,112,226,102, 46, 8, 41,125, 68,218,119, 37, 11,101, 79,230,176,176,165,221, 42,231,238,228,131, 87,150,135, 98,
-109,248,123,227, 47, 27, 20,253,131,228,234, 81,223,207,127,210, 93,216,174,121,105, 36,203,222,222, 30,142,142,142,176,181,181,
- 69,117, 93,135, 12,195,140, 25, 63,126,252, 11, 79,255,249,249,249,232,213,179, 59,214,110,216,140,230, 61,195,112,238,250, 89,
- 24, 77, 44,130,155, 52, 64, 93,111, 39,100,228, 41, 95,234, 66,151,122, 4,124,220,166,251,144,175, 59,245, 24,136,139,103, 14,
-145, 63,207,252, 58,177,166,133, 16,251,247,234,112,124,225,194,249,245,231, 46, 94, 39,180, 19,241, 16,167, 50,128,195, 48,168,
-227, 33,129,139,148,131,136, 35, 59,116,161, 3, 59, 88, 93, 28,207,199,167,214,206,229,107, 55, 73,151, 47, 93,208, 61, 50,138,
-185,168,202,142, 47, 6, 0, 77,222,163,101, 15,129, 7,181,255, 8, 63,213,188,235, 59,240,240,110,240, 86,114,222, 67,171,205,
- 6, 0, 77, 82, 82, 82,242,220,185,115, 3,150, 46, 93, 74,184, 92, 46, 11, 64,184,106,213, 42, 77, 66, 66,194, 29,148, 14,205,
- 69,117, 55,155,158,111, 53,253,220,214,198,210,206, 89,194,105,218,192, 83,130,246, 77, 75,123, 69, 67,251,119,130,143,175, 47,
-146,114, 53, 45,138, 53, 44, 95,101,224, 54, 88,255, 75,204,237,122,174,220, 9,102,173,225, 1,128,163, 53, 61, 62, 12,254, 74,
-144, 47,143,102,217,137,249, 96, 75,207,149, 26, 25, 45,189,209, 2,173,222, 2,173,193, 12,181,193, 2,141,193, 2,150,148, 94,
- 19, 12,195,192,104,102, 97,213, 99,243,115,231,190,189,179, 43, 26,212, 99, 96, 47, 41, 93, 55,251,178,114, 15, 12, 0, 23, 23,
- 23,184,187,187, 91, 21, 21, 53, 24, 75, 47,113,131,137,125,210,173,111, 48,154, 65, 8, 65,124,252,163,175, 82,147,147, 7,251,
-249,251,117,105, 18,220,220, 89, 34,228, 0, 64,165, 70, 75,163,209, 88,236,236,236,220,157,157,157, 57, 89, 89, 89, 79,204,179,
- 95,139,238,230,195,135, 14, 98,232,208,119, 84,113,183,238, 62, 25,226,174,213,106,153,142, 29, 59,218,251,248,248,112,244,122,
-189,162,166,135, 73,234,214,104,136,147,139,243,226, 49, 31, 76,106,212,189, 87, 95, 92,186, 16,142,163,135,118,255,166, 41,136,
- 15,183, 86, 36, 32, 32,240,133, 81,135, 13,253, 27,189, 48,234,176,110,125,255, 42,141, 86,147,224,214,109, 9,195,195,217, 19,
-251,136,142, 99,156, 2,128,181,232,148,251,246,110,252,230,187,145,147,103, 55,236, 55,104, 36,198,188, 63, 22, 60, 30, 23, 17,
-231,142, 99,249,130,233, 39, 85,242,252, 48,107,210, 4, 74, 67,111,141, 5,181,196, 62,159,250, 54,108,134,168, 63,175, 34, 49,
-254,126,236,221,219, 55,154,250, 5,181,131,155,119,157, 79,211, 92,185, 75, 17, 23,103,172, 78,198,160,211,165,141, 13,123, 31,
- 79,143, 58,108, 31, 18,224,194, 60,127, 1, 0,208, 40,243,141, 91,127,250, 60,161,124,212, 33,107, 52,164, 85,166, 43, 47, 41,
- 56, 16,113,253,230,140,193,253,251,114, 10, 21,134,210, 8,150,220, 80,246,210,163,176,252,119,133, 30,254,222,182,120, 20, 27,
-197,234,228,133, 7,107,120, 93,234,198,190,219,231, 65,249,185,203,178, 4, 12,160,171,113,183, 20,223,126,226,178, 31, 87,136,
-238, 38,171, 16,147,162, 40,237, 42,228,115, 75, 13, 22,159,243,196,116,149,142,102,175, 38, 58,196,112,191,255, 48,108, 4, 10,
- 21, 70,176, 44,192,227,114,202, 94, 2,164, 43, 25,100, 40, 53, 40, 44, 41, 64,114,106, 26,100,185,137,224,112, 56,112,245,110,
-100,117, 37,105, 11,177,241,210, 24, 72,208,240,254, 93,120,135,254,200,129, 68,200,131, 94,153,135,211,123,127, 42,208,171, 20,
-139,181, 26,213, 33,107,234, 57,254,149,130,192, 20, 40, 84, 58, 15, 33,159,139,253,219,215,225,221,177, 83,158,105,125,191,154,
-179, 16,224, 48, 40, 46, 81,130, 97,152,130,154,181, 75,204,237,170,150, 95, 50, 50,246,202, 26, 21,152,173, 23, 31, 20, 42,127,
- 26, 37,167,195,207, 28,151, 94, 75, 21,226,214,163,156, 50,147, 85,192, 46,250,164,127,166, 82, 94,220, 7, 64,124,205,158, 11,
- 57,125, 66, 63,156, 17,219,160, 81, 19,253,165,251,170, 20,153,218, 84,105,158, 67,251,225,115, 99, 35, 79,174,237, 39, 55, 37,
-125, 36,245,106, 98, 97,205,230,101,218,130,248, 5,149,116, 29,218, 44, 88,189,255, 73,183,225,204,165, 59, 74,127,183, 88, 96,
- 33, 44, 8, 11, 76,253,102, 35,204,172, 5,172,197, 2,214, 66, 96,178, 16, 73,117,171,235,238, 93,247, 80,201,195,125,129,163,
-190,123,177,187,208,209,209, 17, 46, 46, 46,112,113,113,129,189,189,125,181, 70,139,207,231,219,242,120,207,238,234,180,180, 52,
-164,166,166,194,222,222, 30,132, 53,193, 96, 2,154,181,235,141,123,137,247,113,254,218, 29, 16,214, 2,169,109,205,103,121,145,
-122, 4,124,212,186,219,224,117, 61, 6,141,195,185, 67,191,144,219, 87,142, 79,210,230,199,111,177, 58, 66,111,177, 48, 38,147,
- 9,253,123,119, 75,139,142,125,124,102,206,140,201,125, 59, 12,152, 36,108, 31, 80, 11, 58,131, 5,153,169,137,136, 56,242,171,
-174, 81,125,175,179, 61, 59,183, 77, 51,153, 76,176, 88, 44,213,222,200,117, 6, 99, 33,151, 47,150,142, 24, 49,138,127,251,214,
-173,131, 82, 55,255,253, 22,134,115,151, 33,108, 48, 67,200,208,224,224,198, 48,154, 88,104, 52,138,146,154,110,179, 82,169, 76,
-222,182,109, 91,253,176,176, 48, 73,147, 38, 77,248,137,137,137, 88,190,124,121,145, 82,169, 76,182, 86, 35,252,202,163, 85, 60,
-166, 36,161, 60,162,149,222,169, 61, 70, 12,232,132, 61, 39,175, 33,226,234, 13,164,169,108,239,168,204,188, 35, 25,105,217,250,
-166,206,138,131,131,218,215,229,238,223, 94,114, 48,182,219,172,247, 8, 17,134, 23, 94,158,175,182,254,226, 6,148, 90, 19,236,
- 37,165,245,158,202, 35, 91, 92,134,177,218, 17, 49, 64,242,213, 27, 81,205, 90,249, 55, 65,116,178, 28,249, 50, 61,180,122, 51,
- 88,150,128, 5,129,139,157, 13, 68, 2, 14,210, 83,147,193, 18, 99, 74, 13,111, 21, 5, 93,187,116,229, 1, 12, 24,134,240,248,
- 60, 30, 8, 74,235, 43,138,197, 98,149,187,187,187, 85, 17, 45,163,217,140,161,125,219,162, 93,235, 96, 12,158, 84, 90, 51,243,
-194,111,179,224,100,203,199,158,157, 91,144,113,101,213,206,250,237, 39,135,223,191, 23, 59, 44, 54,250,143, 81,111,183, 20,183,
-240,228,101, 11, 42, 11,147,170,213,234,131, 0,108, 4, 2, 65,223, 46, 93,186, 56, 31, 60,120, 80,230,234,234,202,218, 8, 4,
- 5,131, 6, 14, 96,249, 2, 65,113,249,103,175, 95,191,206,159, 52,105,146, 93, 73, 73, 73,122, 94, 94,222, 13, 0,166,170, 31,
- 4, 3,122,129,131,221, 96, 24,145,173, 88,146, 86,175, 94, 3,239,214,237,218, 58, 12, 25,250, 46,132, 54, 66,156, 11, 63,131,
- 53, 43,151,238, 83,229,196,125, 88,147, 61,249,186, 70, 29,102,166,167, 36,107,180,250,160,102,173,186, 49, 87,195,143, 76, 51,
-194,117, 37, 87,104,252,169,215,208, 41, 13,147,179, 85, 88,179,228, 43, 56, 57, 72,145,146,248, 80,155, 16,119,111,163, 73,167,
-248,202,106,147, 5, 64, 82,100, 25,214,254,253,190, 78,122,163, 5, 87, 46,158,212,177,102,182,239,141,203,167, 18,107, 55,106,
- 45,106,214,186,167, 83,225,209, 45, 67, 53,192,158,234,116,178, 30,190, 24,193, 37, 6, 89,202,133,139,231, 29, 60,234, 52,229,
- 50, 96, 96,212,235, 80,144,116,219,172,201,123,168, 80,100,221,183,106, 20,110, 81, 6,190,153, 61,239,135,143, 90,183,106, 37,
- 37, 16, 61, 19,193, 42, 55, 88,133, 10, 3, 92,237,108,160, 85, 20, 32,225,246, 25,157,166,128, 91,101,189, 51,179, 65, 45, 41,
-204,207,179,249, 43,157, 33,190, 93, 85,159, 47,204,207,179, 49, 27,212,146,234,111,117, 92,216, 75,109,112, 47, 37,235, 73,226,
-187,144, 95,154,155,101,195,231, 62,201,211, 42,111, 11,170,161,155, 64,228,136,172, 34, 29, 24, 16,176, 22, 51,204, 38, 3,148,
- 10, 5,178,178,115,145,151,155, 7,165, 82, 6,137,173, 19,154,181,104, 3, 59,169, 8,119, 35,246,129, 16, 98, 85, 93, 67, 19,
-195, 15,104,221,174,179,240,126,106,105, 46,150,136, 79,112,124,247,210, 34,149, 34,191,179, 42, 39, 33,161,166,109,177,217, 98,
- 57, 31,243, 32,161,105,109,175,122,204,157, 68, 57,118,110, 94, 11, 67, 89,100,211,100,178,224,126,186, 26, 57,197, 26,164, 39,
-197, 17,214, 98, 57,143,255, 8,188,202, 3,128,224, 5, 55,107,140,222,163,135, 96,195,134,141, 72, 74, 78,101, 23, 79,235,151,
-174, 82,202,222,174,129,201,234,133,178, 90, 27,154,188, 71,203,180, 78,173, 51,143, 69, 23,115,180, 6, 82,101,130,143,200,173,
- 14, 58,127,184,252,172, 86, 89,108, 99,209,107,120,199,119,126,184,187, 34,205, 82, 7, 13,195,226, 47, 66, 97, 43,230,129, 97,
- 24,148,119, 23,174, 95, 56, 17, 18, 97,105,223,178, 86,111,198,232,207, 87, 96,231,138,233, 32, 0, 70,190,123, 77, 83,217,122,
-162,116,238,194,169, 94,184, 85, 59, 45, 53, 63,171,215,192, 47, 46,232,140, 66,253,128,119,194, 34, 91,181,106, 37, 19,139,197,
- 16,139,197,176,183,183,135,147,147, 19, 28, 29, 29,171,221,118,147,201,164, 50, 24, 12, 46, 54, 54, 54, 96, 89, 22, 41, 41, 41,
- 72, 73, 73,129, 92, 46, 71, 65, 65, 1,212, 42,133,249,214,133,253,188,102,237,251,193,187, 65, 16,234,248, 55, 7,159,203,128,
-199,227, 32,226,216,230,202,214,179, 98,147,213,117,208,250,158,131,199,227,220,161, 77,228,246,149,227,147,181,249,241,155,173,
- 61, 70,101,221, 61,119,135, 14, 29, 26, 52,105,210, 36,193,188, 25,147,206,158, 12,143,136,223,127, 98,211,192,146, 18,153, 15,
- 33, 4,142, 14, 14, 25,161, 3, 59, 28,239,222,177,117,218,133, 11, 23,216,221,187,119,235, 25,134,185, 87,149,102,105, 35,149,
-255,219,133,243, 23,231,119,238,218, 13, 91,182,239,238, 26,251, 32,174,107, 98, 98, 2,124,234, 52, 64,189,250,254,208, 48, 78,
-184,120,249, 42, 84,178,252,223,172, 89,207,231,162, 90, 76, 73, 73,201, 31,161,161,161,189,175, 93,187,198, 9, 13, 13,213, 20,
- 22, 22, 94,127, 42,138, 69,170,211,188,241,243, 59, 5, 0,126,171,211,117,236,190, 44,163,236, 83, 0, 75,125,235,248, 34,226,
-234, 13,220,184,118,115, 99,161,196,119,193,135,163, 63,152, 88,119, 16,119,252,160,246,117,185,238, 78, 18,252,190,105, 57,247,
-216,141,212, 21,169, 69,150, 45, 75, 47,207, 95,104,205, 49,122,114,227, 80, 26,209,177,177, 51, 76, 22, 2,150,148, 54,184,118,
- 34,126,101, 13,239, 11,154, 60,131,240,195,201,147, 38, 37, 54, 11,110,241,217,232, 15, 38, 11, 90, 52,240,193,173,199, 50,128,
- 97,224,236, 41, 69, 78, 78, 14,174, 28,216,100, 46,201,122,184,145,203,101,191,171,193,254, 68, 73,218, 29,191,167, 22, 39, 22,
- 22, 22, 34, 34, 34, 2,229, 6,203,205,205,173, 50,163,245,140,102, 81, 94,246,245,133, 63,254,210,113,194,152,119, 48,160, 91,
- 83, 92,190,157, 8, 67, 89,189,166,242,161,228,201, 55,126,182,249, 52,180,129,225,163,161,141, 20, 90,147, 77,234, 55, 41,242,
- 43, 40,157,131,149,173,100, 61, 13,197,197,197,199, 30, 61,122,212,169,121,243,230,117, 79,157, 58, 85, 28,123,243,236,180,167,
- 87,226,139, 47,190,176,221,176, 97,131,132, 16,114,221, 96, 48, 36, 89,181,237, 28,252, 30, 21, 25,233, 98, 52,177,184,122,243,
-110,227,158, 29, 91,128, 37,192,237,219,183,177,101,235, 22,221,189,152, 59, 63,169,243, 60,191,171,194,188, 84,184, 63, 45,175,
- 54,234,240,137,102, 78, 86,234, 79,231, 78, 30,216,217,186,235, 64,140,154,250,221,119, 17, 39,119,207,111,217,121, 0,167,113,
-235,222,136,186,113, 17,231, 79,157,249,193,168, 42,158,143,234,115, 71, 42, 92, 79,161, 88,242, 73,147,150, 93,145,158,150,138,
-148,132,251,191,233,138, 31,103,167, 37,114,127,203,206, 76,155, 92,191,105, 71, 92, 59,187,103, 90, 21, 70,171,202,115,222,199,
- 77,188,233,212,137, 99, 35, 50, 51,127,246, 84,107,117, 66, 66,136, 78,104,195,203,181,229, 40,247, 42,172, 94,207, 56, 99, 65,
-118,221,161,239,142,158,124,114,205,154,149,124, 15, 71, 9,114, 75,116, 80,104,141, 80,106,140,224, 48, 12,252,188,165,208, 40,
-139,113,249,192,143, 38,131,170, 36, 20, 72, 52, 86,166, 41,117, 15, 88, 84,242,248,226,212, 47,166, 92,130,141,131,143,119,189,
- 30,179,171,140,214, 41,179,238, 12,252, 98,202,241, 0, 66, 72, 79,169,123,128, 82,157,255,104,110,101,219,206, 48,165,215,247,
-168,238, 62, 48,154, 75,235,143,153, 89,192,194,178,101, 81, 62,128, 60,233,207,103,170,217,118,134,221,123,242, 58,178,243,100,
-208, 26, 76,208, 27,204, 48,154, 44,224,112,185,112,116,114,132,127,189, 16, 56, 56,218, 35, 47, 55, 27, 55, 46, 28, 67,124,204,
-229,235, 12,193, 2,109, 65,194, 5,107,142,145, 64,236, 24,224,229,237,201,201, 81, 24, 32,182,225,226,206,229, 83, 70,147, 65,
-255,147,149, 38,235, 5, 77, 89, 81,241,138,207,102,124, 57,242,215,109,219, 61,131,234,219, 35,179, 80,139,204, 2, 29,148, 58,
- 83,153, 17, 99,161, 87, 21, 34,230,226,246, 92,139, 78,185, 2,255, 17, 42, 53, 90,102,163, 78,121,240,204, 45,151, 89,243,127,
-228, 62, 78, 76, 50, 45,250,180,127,166, 86,165,232, 87,227, 72,214, 83,252,250,113,253, 61,111, 98, 35, 94,232, 46, 36, 44, 88,
- 66,112,252,102,238,147,238, 66,182, 44,243, 50, 58,177,234,105, 4,159,158,187,176, 91,191,105,231, 98, 30, 41,119,105,181,121,
- 14, 15, 31,255, 84, 2, 0, 92, 46,247,201,171, 60, 55, 75,167,211, 25,170,233, 66,217,177,121,243,230,153,147, 39, 79, 22,102,
-100,100, 32, 49, 49, 17, 50,153, 12, 34,145, 8,103,206,156, 49,129, 53,255, 20,115,237,112,202,163,168,240,111, 3, 90,245,174,
- 29,212,190, 31, 36, 18, 41,120,196,250,100, 76,137,123,163, 17,173,186, 14, 90,215,115,200, 4,156, 63,188,153,220,190,124,108,
-138,182, 32,126, 83, 77,247,165, 76, 38,139, 5,144,240,211, 79, 63,181,216,178,101, 75,253, 25, 51,102, 36,237, 88, 55,127, 13,
- 0, 20, 21, 21, 1, 0,162,163,163,201,148, 41, 83,244, 58,157, 46,185,164,164, 36, 10,213, 12,128, 0, 0,109,129,228,251, 45,
-235,151, 54,203,200,202,121,167, 65,179, 54,112,171,223, 6,158,126,109, 81,162, 52,226,214,227,108, 36,197, 93, 64,220,213, 3,
-167, 52,182,230,249,168, 97,125,227,230,205,155,251,112, 56,156,122, 42,149,202,179, 73,147, 38,205,165, 82,105,116,243,230,205,
- 67,120, 60, 94,102,100,100,100,106, 77,180,210, 46,111,215,215,233, 58,118,117,154,210,174,123, 82,174, 38, 36, 77,105, 23,173,
- 17, 58, 76, 47,184,184, 90,255, 43,183,214, 10, 98, 44,140,221,191, 93,113,240,247, 77,203,185,163, 39,126, 97,185, 47,119,250,
-148, 39,182, 57, 87,179,112, 53, 39,231,163,176,193,127,149,119, 40,139,100,149,253,110, 85,152, 94, 46,143,145, 3,152, 25,243,
-128,191,238,254,167,147, 22, 6,183,238,248,126,151,183, 67, 57,102,129, 45,206, 30,254,153, 36,199, 92,220,207, 35,150, 57, 90,
- 43,102, 3,168,182, 59,200, 96,176,198,100,189,184,142, 25,210,110,251,119,111, 29,123,240,240,161, 37, 67, 6, 13,118, 89,255,
-205,123,248,241,151, 35,144,138,133, 32, 44,139,247,186,251, 12,255,118,124,224, 64, 31, 15, 81,173,131,151, 50,175, 76, 93,121,
-127,166, 70, 99,140,183, 34, 18, 67, 10, 11, 11,175,218,218,218, 22,116,234,212,169,157, 80, 40,100, 10, 11, 11,121,238,238,238,
-102, 7, 7, 7, 67,102,102,166, 70,175,215, 31, 4, 80,163,178,227, 70, 19,139,148, 60, 29,142, 30, 58,136,187, 55, 47, 32, 46,
-238,145, 50,238, 65,220, 90,134, 71, 86,170,243, 18,138,129, 26, 63,224,131,173,112,212, 33,169,241,168, 67,139, 94,249,251,142,
-141,139,122,104,116,250,177,205, 59,244, 71,221,198, 29, 57, 70,147, 5,247,110, 95,194,165, 3, 43,127, 52,170,138,103,189,202,
- 49,246,174, 93,223,159,112,109,240, 71,196, 73, 16,150,221, 8, 0,132,101, 55, 70, 95, 59, 53,185,109,191,241,112,118,175,219,
- 92,150, 30,205,224, 37,170,135, 11,120, 28,245,233,131,191, 30, 78, 73, 73,193,195,135, 15,241,248,241, 99, 20, 23, 23,227,247,
-223, 83,106,116,124, 52, 37,169,231,226, 31,112,250, 12,123,111,212,241,225, 35,198,136,234,251, 7,113, 2,106, 59,193,197,150,
-135, 71,143, 83, 17, 31, 25,195, 62,186,117, 74,103, 84,228, 15,209,150,164, 86,106,252, 36,174,141, 61, 0,203,172,242,185, 11,
-219,183,239, 24,240,229,226, 37,237, 92,220,220, 43,108,199,139, 10,242,109,190,154,122, 44,224,198,159,127, 88, 53,215, 33,107,
-177, 20, 77, 28, 27,202,114, 75, 39, 10,197,147, 56,117,217,222, 43,125,152, 42,125,159,176,230,106, 35,248, 31,188,211, 25,102,
-150,133, 90,107,132, 66,173,135, 92,169, 67, 78,126, 17,238,198,196,224,242,241, 99, 72,124,116, 55,217,100, 48,132,115, 56,204,
- 1,109, 94,252,229,154,245, 52,241,234,187, 56, 59, 35,185, 88, 5,145, 13, 15,169,241,145,122,181, 66,190,235,101,207, 35,109,
- 81, 66, 78, 62,151,233, 29, 26, 58,226, 76,143, 62,131, 28, 90,119,232, 37,113,181,119,132,128, 71,144,144,146,141,168,235,103,
-212, 73,119,175, 40, 76, 6, 85,223,215, 49,235,203,223,156,234, 71, 29, 26,245,234,129, 35, 7,119, 61,196,229,242,108, 88,214,
-172, 55, 26,244,195, 94,197,100,189, 41, 8,177,100,142, 29,249,206, 51,207, 6,102,150,136, 71,190,123, 86,251,244,179,130,201,
- 66, 36, 35,223,189,174, 41,109, 64, 42, 79,236,243,242,114,238, 95, 62,119, 97, 90, 90,209,237,226, 98,253, 37, 0,153, 58,157,
-238,165,215, 49, 47, 47,111,225,226,197,139, 7,104, 52,154,192,110,221,186, 9,237,237,237, 81, 84, 84,132,240,240,112,211,137,
- 19, 39, 30,228,231,231,127, 11,228,155,181, 8,249, 45, 70,119, 56,236, 81,100,248,183,129,173,250,212, 14,234,208,207,250,198,
- 76, 40,158,208, 99,208, 56,230,252,145,205,228, 86,196,145,143,180, 5, 9,191,188,194,110, 53,234,116,186,155, 58,157,238,254,
-156, 57,115, 90,123,120,120,120,124,251,237,183, 34,133, 66,193, 95,191,126,189,174,176,176, 48, 87,161, 80,220, 64, 21,249, 52,
- 47, 18,109,146,103, 97,232,233,131,155,187,147,131,155,223,114,116,173,213,219,193,173,118, 67, 89, 65, 86,178,188, 32, 59, 28,
-192,249,178, 66,145, 53,162, 69,139, 22, 13, 24,134, 9, 5,208, 76, 42,149,250,217,218,218, 10, 9, 33,129, 12,195,196,178, 44,
- 27,211,164, 73,147, 19, 15, 30, 60,168, 81, 49,217,180,203,219,245, 62, 1, 29,119, 23,107, 88,129,129, 35,216,157,118,121,187,
- 30, 0,242,207,125,169, 1,112,244, 65,183,153, 67,143,221, 72, 93, 19, 91,226, 48,173, 32, 98,201,177,154,174,179, 60,243,174,
-223,235, 58,255,117, 57, 15, 50, 1,140,141,137,196,242,123,209, 55,230, 49, 4,124, 11,204,139,180,249,143, 35, 95,135, 62,159,
-207,215,213,170, 85,171,194,209,133, 66,161, 80,167,215, 87, 21, 64,185,108, 86,229, 96, 11,208,117,251,161,125,219,199, 30, 57,
-118,116, 73,151,158, 67, 92, 68,181,107,163,158, 59,131,237,179, 90, 78,187, 16, 93,112,107,208,151, 87, 54, 36,101,235, 98, 80,
-195,124, 24,149, 74, 21, 15,160, 68,165, 82, 13, 38,132,100, 48, 12,227, 83, 82, 82,114,199,100, 50,221,171,177, 33, 96, 49,170,
-125,251, 54,191, 51, 12,195, 35,102,118,217, 13, 62,119,183, 46, 39, 46, 19,175, 56, 45, 73, 80, 61,123,124,254,237,234,150, 13,
-253, 26,181, 44,159,235,176,105, 93, 59, 76,154,185,188,101,221,250,254, 45,255,154,255,176,218, 52, 1, 98,210,148,124,120,104,
-235,178, 43,209,127, 94,250,218,213,171,110,221,220,204,164,184,140,199,119, 22, 90,116,138, 67,175,122,156, 83, 30,199,174,220,
-242,211,204, 25, 57, 89,201, 91, 52, 5, 9,247, 1, 64, 83,144,112, 63, 46, 10,223, 20,230,102,206, 40,202, 79,250,233,101,247,
-133, 90,173,206,222,181,107,151, 99,199,142, 29, 57, 30, 30, 30, 40, 40, 40,192,165, 75,151, 88,150,101,179,106,172, 85,156,124,
- 73, 93,204, 56,255,246,203,186,101, 2,169, 93, 63,179,217,236, 77, 8,192,227,241,114, 12, 26,197, 25, 37, 71,250, 37, 74, 82,
-117, 85,223, 51, 88, 6, 0,167,124,238, 66,150,101,153,101,107,182,167,242, 69,118, 21, 22, 67, 52,233,148, 18,150,101,173,158,
-235, 80,150, 30,213,240,117, 93,223, 12, 33, 11,154,183,106,247,181,201,100,212,149, 93, 31, 58, 0, 58, 66, 80,196,225, 48,151,
-185,172,233,172,226, 21, 30,166, 24, 6,246,132,225,193, 78,204, 3, 3, 6, 42,121, 49,169, 73, 78, 86,133,134, 56, 63, 62, 86,
-147,223,181,206,105,195,190,176,139,231, 78, 53,148,119, 13, 0, 0, 32, 0, 73, 68, 65, 84,189,107,177, 88,234,149,197, 12, 82,
-244, 90,245,126, 85,142,211,111, 64,164, 25,255,126, 78,150,155, 45,230, 13,127,145, 85,221, 40,127, 39,205,128,250,226,193,181,
-107,121,132,165,164,230,223, 74,202,208,252,134,103,167,213,121,149,245,228,122,120,120,124,195, 48,204,251, 54, 54, 54,182, 6,
-131, 65, 77, 8,217,145,151,151,183, 16, 47, 76,254, 27,194, 23,187,107,195,108, 68,146,185, 70,157,250, 15, 77,126,252,168,234,
-182, 93,226,214,168,183, 72, 42,157,169,211,170,119,104,242,226,183,191,230,253,233, 32, 20, 10, 67,108,109,109,249,133,133,133,
- 55, 1,200,255, 78,199,189,121,243,230,190, 28, 14,167, 30,203,178, 30, 0, 28, 80, 58, 42,164,144,199,227,101,149, 69,180, 72,
- 77, 53, 59,125,176,223,181,231, 91, 77, 63, 15,191,242,104, 85, 89,183,226, 19,106, 13, 95, 33,122,191, 95,247, 47,126, 59,116,
-180,162, 81,135,255,184,115,254,255, 79,179, 43,207,214,171,112, 44,199,198, 97, 81,207, 0,157,166, 48, 59,107,202,213,123, 5,
- 55, 1, 40, 95,101, 61, 5, 2,193,104,163,209, 40, 22, 8, 4, 90,163,209,184,235,239,178,237, 98,247,128,113, 28, 16,171,103,
-166, 96,193, 68, 62, 55,104,229,223,114, 46,113,131,130,130, 58, 11, 4, 2, 95,139,197, 34, 49, 24, 12, 26,173, 86,155,146,154,
-154,250, 7, 42,159,248,252,141,174,167,212,221,127,165, 64, 32,252, 20, 0,140, 70,253,106,117,126,194,231, 85,253, 99, 21,159,
-255, 71, 31, 35,215,122,173, 18,120, 92,190, 27,202, 10,115,179,102,115, 65, 94,242,109,255,255,225,122, 82, 94,242,224, 82, 77,
-170, 73, 53,169,230,243,112,232,254,164,154,255, 75, 77,145, 87, 99, 31,145, 87, 99,171,139, 46, 87,242,121,186, 63, 41,229, 76,
-172,224, 5,192,138,130,165, 20, 10,133,242, 6, 96,233, 46,160,252, 47,209,229,196,101,188,201,207, 83,254,115, 84,154, 19,205,
- 84,225, 74,107, 18, 18,124, 25,103,123,158,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57,205,234,180,255,137, 93,146, 19,
-159, 91, 62, 9,224,255, 37,225,159,134, 85,169, 38,213,164,154, 84,147,106, 82, 77,170,249, 95,227,137,241,226,208,125, 65,161,
- 80, 40, 20, 10,133,242,102,160, 57, 90, 20, 10,133, 66,161, 80, 40,175, 70, 69, 93,135,212,104, 81, 40, 20, 10,133, 66,161,188,
- 6, 42, 77,134,167, 93,135, 20, 10,133, 66,161, 80, 40,175, 70,121, 68,203, 11,207,149,119,160, 70,139, 66,161, 80, 40, 20, 10,
-229,245,144,131,138,162, 91, 39, 78,156, 32, 21,253, 78,161, 80, 40, 20, 10,133,242,255,193, 63,220,139, 60, 29,201,154, 88,182,
- 12,224,169,136, 22, 53, 88, 20, 10,133, 66,161, 80,254, 46,102,235, 31, 70,121, 36,171,252,149,243,130,209, 26, 48, 96, 0, 67,
-205, 22,133, 66,161, 80, 40,148,255, 21,255, 70, 47,194,121,126, 3,233, 97,166, 80, 40, 20, 10,133,242,191, 52, 91,255,166,237,
-161,229, 29, 40, 20, 10,133, 66,161, 80, 94, 13, 47, 0,253,159, 90,254,127,155,130,135, 66,161, 80, 40, 20, 10,229,223,206,196,
-202,150,105, 68,139, 66,161, 80, 40, 20, 10,229,245,155, 45, 10,133, 66,161, 80, 40, 20,202, 63, 25, 58,179, 57,213,164,154, 84,
-147,106, 82, 77,170, 73, 53,255,237,148,215,209, 2, 42,171,163, 69,161, 80, 40, 20, 10,133, 66,121, 41,250,163,180,126,214,196,
-178,159,253,169,209,162, 80, 40, 20, 10,133, 66,121,189,188, 48,253, 14, 53, 90, 20, 10,133, 66,161, 80, 40,175,215, 96,109,162,
- 70,139, 66,161, 80, 40, 20, 10,229, 13, 67,141, 22,133, 66,161, 80, 40, 20,202, 27,130, 65,229, 35, 7,206,215, 64,231,101, 70,
- 31,156,167,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 58,237,243,248,231, 81, 94, 25,254, 36,254, 74,132,223,244,
-255,241,197,116,232, 43,213,164,154, 84,147,106, 82, 77,170, 73, 53,255,237, 76,124,238,231, 19,104,215, 33,133, 66,161, 80, 40,
- 20,202,235, 53, 91,116, 10, 30, 10,133, 66,161, 80, 40,148,215, 68,165,221,132, 52,162, 69,161, 80, 40, 20, 10,133,242,106, 84,
- 58,169, 52, 53, 90, 20, 10,133, 66,161, 80, 40,111,198,112, 81,163, 69,161, 80, 40, 20, 10,133,242, 26, 77,214,196, 10,255,122,
-226,196, 9, 66,247, 17,133, 66,161, 80, 40,148,255, 21,255, 90, 47, 82,190, 97,212,108, 81, 40, 20, 10,133, 66,161, 94,164,198,
-120,225,175,209,134, 19,203,150, 1,208, 81,135, 20, 10,133, 66,161, 80, 40,175, 74,127, 60, 59,242,112, 98,249, 50, 53, 90, 20,
- 10,133, 66,161, 80, 40,175,206,196, 42,255, 74,187, 13, 41, 20, 10,133, 66,161,252, 47,249, 55,122, 17,134, 30, 86, 10,133, 66,
-161, 80, 40,148, 87,162,162,104,214, 38,186, 91, 40, 20, 10,133, 66,161, 80,222,172,225,162, 80, 40, 20, 10,133, 66,161,188, 9,
-147,245,166, 11,150,210,153,205,169, 38,213,164,154, 84,147,106, 82, 77,170,249, 95, 49, 89, 79,151,120, 0, 64, 71, 29, 82, 40,
- 20, 10,133, 66,161,188, 42,116, 82,105, 10,133, 66,161, 80, 40,148, 55, 4,157, 84,154, 66,161, 80, 40, 20, 10,229,255,217,112,
- 81,163, 69,161, 80, 40, 20, 10,133,242, 26, 77,214, 51,102,139,230,104, 81, 40, 20, 10,133, 66,161,188, 26,149,230,104, 49,168,
-124,228,192,249, 26,124,193,203,140, 62, 56, 79, 53,169, 38,213,164,154, 84,147,106, 82,205,255,156,102,117,218,231,241,207,103,
- 34,254,159, 10,150,210,161,175, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,175, 65,203, 59, 80, 40, 20, 10,133, 66,161,188,
-110, 99,245, 60,212,104, 81, 40, 20, 10,133, 66,161,188, 26,180,142, 22,133, 66,161, 80, 40, 20,202, 27,194, 11,165, 81,173,242,
-159, 33,212,104, 81, 40, 20, 10,133, 66,161,188, 30,250,163, 52,170, 85,254,147, 26, 45, 10,133, 66,161, 80, 40,148,215, 72,133,
-117,180, 24, 0, 56,113,226, 4, 41, 91,238, 54, 96,192,128,203,116, 95, 81, 40, 20, 10,133, 66,249,255,228,223,234, 69,158, 68,
-180, 6, 12, 24,192, 0,136,160,135,154, 66,161, 80, 40, 20,202,255,130,127,163, 23,225, 60,231, 36,187,209,195, 76,161, 80, 40,
- 20, 10,229,127,193,191,209,139,240,158,115,145, 20, 10,133, 66,161, 80, 40,255, 19,254,193, 94,196, 11,165,137,240, 39,203,126,
- 2,101, 37, 31,104, 29, 45, 10,133, 66,161, 80, 40,148, 87,163,124,180,225, 11, 83,239,208, 40, 22,133, 66,161, 80, 40, 20,202,
-171, 81, 81,101,248, 77,116,183, 80, 40, 20, 10,133, 66,161,188, 65,104, 68,139, 66,161, 80, 40, 20, 10,229,213,121, 58,170,245,
-255, 22,205,162, 51,155, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243,191,100,178,158, 89,166,149,225, 41, 20, 10,133, 66,161,
- 80,222, 16,116,212, 33,133, 66,161, 80, 40, 20,202,171, 81, 62,226,240,233,101,106,180, 40, 20, 10,133, 66,161, 80, 94,163,217,
-122, 1,218,117, 72,161, 80, 40, 20, 10,133,242,106, 76,172,236, 15,212,104, 81, 40, 20, 10,133, 66,161,188, 33,195,197,160,242,
-145, 3,231,107, 32,252, 50,163, 15,206, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167, 89,157,246,121,252,243,248,159,
- 21, 44,165, 67, 95,169, 38,213,164,154, 84,147,106, 82, 77,170,249,159,133,118, 29, 82, 40, 20, 10,133, 66,161,252, 13,140,150,
- 27,143,199,251, 90, 44, 22,111, 16,139,197,191,240,120,188,159, 0, 56,213,244, 11,165, 82,233, 52, 79, 79,207,135,158,158,158,
-153,190,190,190,167,236,236, 36,159, 53, 16,162, 11, 0,254,107,218,158, 0, 0,159,137,197,226, 56,145, 72,148, 10, 96, 39,128,
-207, 0,184,190,138,240, 66,111, 12,187,255,233,224, 35, 11,189, 49,236,185, 63,245,247,240,240,184, 10,160,247,235, 58, 40, 35,
- 36,232, 53, 92,138,244,225, 82,164,143,144,188,252, 83,131,157,157,221,251, 94, 94, 94, 55, 92, 92, 92,178,188,188,188,174,139,
- 68,162,225, 53,148,112,247,240,240,248,209,199,199, 39,222,219,219,123, 21, 74,103, 39,255,219,210, 89,136,206,237,132, 40,104,
-111, 3,101, 71, 27,108,104,111,131,183,222, 2, 36, 47, 41,215, 9,192, 1,123,123,251, 59, 60, 30,239, 4,128,161,101,231,215,
- 80, 30,143,119,194,222,222,254, 14,128, 3,101,159,123,153,243,244, 71, 0, 89, 0,190, 47, 91,254,196,199,199, 71, 25, 28, 28,
-156, 26, 28, 28,252,171,159,159,223, 24,107,197, 36, 18,201, 91, 62, 62, 62, 7,125,125,125, 83,219,183,111, 95, 92,171, 86,173,
- 71,181,107,215,222, 46, 20, 10,187,209, 38,142, 66,161, 80,254,254, 12, 4,176, 4,192,218,152,152,152, 40, 66, 72, 20, 33, 36,
- 42, 38, 38, 38, 10,192, 6, 0, 75, 81,121, 8,241,153,247, 93, 92, 92, 22, 44, 90,180, 72,151,147,147, 67, 10, 10, 10, 72,124,
-124, 60, 89, 57,119, 38,219,199,153, 71, 26,184, 57,105,188,188,188, 18,235,212,174,189,167,169, 45,103, 38,128,134,214,104, 62,
-133,147, 88, 44,190, 57,119,238, 92,213,213,171, 87, 85, 6,131, 65,197,178,172, 42, 59, 59, 91,117,254,252,121, 85,199,142, 29,
- 85, 0, 62, 7,192,173,129,230, 19,190,243,198,101,178,245, 27,242,157, 55, 46, 63,253,126, 96, 96,224, 3,150,101,201,176, 97,
-195,244, 0,106,213, 68,243,121,106, 1,162,166,246,112, 28,110,139, 60,243,246,133,132,172,159, 65,134, 75,145,254, 50,154,238,
-238,238, 71,167, 77,155,166,200,202,202, 34,122,189,158,164,167,167,147, 73,147, 38,201,221,221,221,119, 89,185,237, 46, 65, 65,
- 65,121, 55,110,220, 96,101, 50, 25,137,136,136, 96,155, 53,107,150,103,165,217,234,245,220,186,108,242,246,246, 62, 85,147,151,
-187,187,251,150,154, 30,163,182, 66,164, 27,163, 46, 17,114, 59,156, 28, 27,214,158,172,108, 85,155, 12,117,182,145,117,178,193,
- 39, 93, 43, 46,101, 82,153,230,187, 93,187,118, 85,223,187,119,207, 82, 84, 84, 68, 30, 60,120,192, 78,152, 48, 65, 7, 32,118,
-194,132, 9,186, 7, 15, 30,176, 69, 69, 69,228,222,189,123,150,174, 93,187,170, 1,140,175,193,122,114, 0,108,155, 63,127, 62,
- 33,132,144, 69,139, 22,145,224,224, 96,210,163, 71, 15,162, 82,169, 8, 33, 36,149, 16,242,171,217,108, 30,107,141,166,131,131,
-195,251,211,166, 77, 83,105, 52, 26, 82, 14,203,178, 68, 38,147,145,181,107,215,170, 61, 61, 61, 79, 85,242,144, 65,187, 60,168,
- 38,213,164,154,127, 55,205,127, 50, 94, 40,205,211, 42,127, 89, 29,152, 24, 57,115,230,204,114, 83,117,186, 83,167, 78,183,198,
-142, 29, 27, 53,118,236,216,168, 78,157, 58, 69, 0, 56, 27, 25, 25, 25,245,213, 87, 95, 69, 1, 24, 89,205,129,112,234,208,161,
-131, 44, 55, 55,151,248,251,251,147,186,117,235,146,220,220, 92, 66, 8, 33,183,223,109, 73, 46, 52, 6,201,184,114,154,132, 31,
- 62, 64, 38,120,241, 72,103, 47, 7,147,151,167,103,145,171,171,235, 98, 60, 59, 39, 99, 69, 7,247,157,198,141, 27, 43, 99, 99,
- 99, 85, 9, 9, 9,170, 5, 11, 22,168,122,244,232,161, 10, 10, 10, 82, 13, 29, 58, 84,181,102,205, 26,149,209,104, 84,109,217,
-178, 69,101,111,111, 31, 91,129,217,122,105,163,197,227,241, 86,199,196,196,144,196,196, 68, 82, 22,165,168, 76,211,193,209,209,
-177,175,147,147,211,231,142,142,142,125, 1, 56, 0,128, 63, 96,219,220, 1,190,159, 52,111, 16,120, 98,100,175,134,107,123,181,
-110, 57,220,142, 35, 51,173,155, 65,200, 48,223,151, 50, 90, 14, 14, 14,239,127,246,217,103, 74,189, 94, 79, 52, 26, 13, 81,169,
- 84, 68,163,209, 16,165, 82, 73, 70,142, 28,169, 16,137, 68,239, 84,167,233,234,234,186,240,202,149, 43,230,220,220, 92,114,229,
-202, 21,114,234,212, 41,178,126,253,122,214,221,221,125, 69, 77, 47, 64, 79, 79,207,115,225,225,225, 81,209,209,209, 81, 55,111,
-222,140, 50,153, 76, 81, 70,163, 49,202,104, 52, 70,157, 56,113, 34,234,208,161, 67, 81,123,247,238,141, 50, 24, 12, 81, 6,131,
- 33, 74,175,215, 71,213,175, 95,255, 76, 77,143, 81, 27, 33, 50, 12, 87,143, 17,178,226, 99, 34,255, 97, 10,145, 77,239, 71,242,
- 39,117, 33, 27, 90,215, 38, 93,196, 56,142, 23,231,246,172, 80,147,207,231, 95, 78, 77, 77,101,103,207,158,109,104,210,164,137,
-252,195, 15, 63,212,233,245,122, 66, 8, 33,122,189,158,124,248,225,135,186, 38, 77,154,200,103,207,158,109, 72, 73, 73, 97,121,
- 60,222,249, 26,172,231,210,114,147,117,249,242,101,242, 52, 42,149,138,244,232,209, 35, 53, 56, 56,248,215,122,245,234,141,170,
- 78,211,214,214,118,240,172, 89,179, 84,164, 2, 76, 38, 19, 81, 42,149, 36, 37, 37,133,173, 91,183,110, 54, 0, 23,218,152, 83,
- 77,170, 73, 53,169,209,122, 99, 76,172,102,185,226,157,248,213, 87, 95, 69, 17, 66,162,230,204,153, 19, 85, 22,217, 18, 0,176,
- 45,123,241, 0,140,152, 53,107, 86, 20, 33, 36,106,230,204,153,229,159,169,236, 64, 12,220,191,127,191,113,213,170, 85,196,195,
-195,131,120,122,122,146,213,171, 87, 19,150,101, 73,238,137, 93,228, 66, 99,144,184,175,195, 8, 33,132,196, 47,158, 74, 46, 52,
- 6, 73,218,248, 29, 25, 61,122,180, 70, 34,145,140,172,226,224, 58,183,108,217, 82,169,213,106, 85,219,183,111, 87, 73, 36,146,
-219, 0,154,160,180, 43,146, 41, 91,215, 49, 77,154, 52, 81,220,191,127, 95,181,123,247,110, 21,128, 5, 86,158, 48, 13, 1,116,
-151, 74,165, 67,103,213,226, 39,144,173,223,144, 89, 30,184, 7,160, 25, 0,183,178,207,120,207,156, 57,147, 16, 66,136,143,143,
-207,149, 74, 52, 29,130,130,130,102, 38, 36, 36,204, 51,153, 76,243,162,163,163,231, 53,106,212,104,246,160,250, 94,237,143,140,
-124, 43, 68,254,221,148, 16,178,124,122,208, 79,111,183,233,181, 39,180,219,200, 15,234,185, 94,253,208, 93,164,121,207,129,171,
-124,174,235,208,170, 19,187, 86,173, 90, 55,211,211,211,159,152, 43,165, 82, 73,178,178,178, 72,114,114, 50,185,122,245, 42,241,
-242,242,186, 80,157,166,167,167,231,131,244,244,116,178,113,229, 74, 50,172, 89, 32,233,226,104, 71,186, 58,217,145, 86,182, 34,
-117, 99,160, 85, 77,141,214,157, 59,119,162, 0, 68, 1,136, 42, 42, 42,138, 42, 42, 42,138, 42, 41, 41,121,242, 30,128, 40,185,
- 92, 30, 37,151,203,163, 12, 6, 67, 84,131, 6, 13,106,108,180, 58,138,208,177,173, 8,197,237,133,208, 14,172,229,154, 61,165,
-190,171,229,207,145,237, 73,201,199, 61,200,170,144, 90,164,147, 13, 62,177, 82,115,160,141,141, 77, 4,128, 25,101,166, 60,172,
-111,223,190, 26, 66, 8,233,219,183,175, 6, 64, 88,217,251,159,149,153,172,190, 86,174, 39,199,207,207, 79, 93, 30,201, 2,240,
-135,159,159,159, 58, 56, 56,152, 4, 7, 7, 19, 31, 31, 31,101,153,182, 85, 13, 90,195,134, 13,227,181, 90,237, 19, 3, 40,147,
-201, 72,118,118, 54, 73, 74, 74, 34,177,177,177,228,246,237,219, 36, 53, 53,149,236,219,183,207,226,232,232,120,146, 54,230, 84,
-147,106, 82, 77,106,180,222,168,209,122,254,245, 44, 39, 78,156, 32,207,189,245, 67,100,100,100,212,172, 89,179,162,170,113,102,
- 19,231,204,153, 83, 30,245, 90, 82,197,205,127, 75,124,124, 60, 9, 11, 11, 35, 1, 1, 1, 36, 32, 32,128,140, 29, 59,150,200,
-229,114,162,122,124,159, 92,104, 12,114,251,189, 86,132, 16, 66,148,113,209,228, 66, 99,144,168,209, 29,200,221,187,119, 73,237,
-218,181,195,171,248,254,227,215,175, 95, 47,216,181,107, 87, 46, 74,243,177,248, 0,218, 1, 88, 45, 22,139,183,161,180,187,176,
- 46, 0, 39,127,127,255, 98,141, 70,163, 26, 54,108,152, 10,128,111, 21,154, 93, 3, 2, 2, 18,183,108,217, 66,242,243,243, 73,
-113,113, 49, 89,214,177, 17, 33, 91,191, 33,139, 90,213,101, 55,110,220,168,159, 49, 99,134,218,217,217,249, 4, 0,239, 97,195,
-134,153, 9, 33,164, 75,151, 46,121, 21,137, 57, 58, 58,246, 77, 72, 72,152,167,211,233,230,201,100,178,121,197,197,197,243,142,
- 29, 57, 50,175, 79,179, 70, 97,242,239,166,132, 28, 25,249, 86,200,219,181,156,134,174,232,221,122,114,214,236,241,195,230,116,
-104, 18,167, 91,250,233,165,119,235,123,252,248, 50, 71,219,205,205, 45, 71,175,215, 19, 0, 47,188, 18, 19, 19,137,139,139, 75,
-122,117, 26,206,206,206,115, 62, 27, 17,106,121,167,110, 45,146,184,106, 46, 49,157,219, 77, 76,167,182,147,199, 63, 76, 39,131,
- 60, 93, 21,237, 4,156, 89,214,174,143,167,167,231,185,155, 55,111, 62, 99,180, 74, 74, 74, 42, 52, 90, 10,133, 34,202, 96, 48,
- 68,249,249,249,157,121,213,179,190,157, 13, 26,116, 21,115,111, 71,135,117, 38, 5, 83,122,144,190, 14,252,212, 87,144, 27, 1,
- 32, 2,192,232, 26,254, 31, 7,192,210,114, 67,245,195, 15, 63, 16, 66, 8,241,243,243, 83,227,213, 6,163, 56, 4, 6, 6, 38,
-143, 31, 63,222,220,184,113,227,252,142, 29, 59,202,110,221,186, 69, 46, 95,190, 76, 78,157, 58, 69, 14, 28, 56, 64,238,223,191,
- 79,178,178,178, 72,124,124, 60,233,223,191,191, 12, 64, 87,218, 22, 82, 40,148,191, 51, 21,120,145,127, 60,156,242, 13, 27, 48,
- 96, 0,243,212, 6, 58, 0, 16,181,106,213,170, 96,233,210,165,203, 81, 90, 11,130, 9,226,226,221, 30, 98,222,221, 30, 98,222,
-221, 32, 46,222, 45,139, 24,109, 90,188,120,241,194,224,224,224, 28, 0, 98, 0,158, 21,125, 17, 33,164,179,139,139, 11,210,211,
-211,225,224,224, 0, 7, 7, 7,164,167,167,131, 16, 2, 51, 1, 76, 4,208, 27,141,208,106,181,208,177, 4, 90, 22, 80,168, 84,
-240,244,244,132,209,104,108, 80,201,250, 55,127,239,189,247, 26, 4, 5, 5, 21,124,245,213, 87,217, 40,205,149,217, 54,110,220,
-184,115,127,252,241, 71,144, 74,165, 42,142,141,141,213, 53,107,214,172, 47, 0,207,132,132,132,247,215,174, 93,139,176,176, 48,
- 84,113,211,105,214,191,127,255, 83,247,239,223,111, 48,122,244,104, 68, 68, 68, 96,217,178,101, 40, 44, 44, 36, 0,160,215,235,
-137,197, 98, 49,118,232,208,193,184,106,213,170, 54, 93,186,116,185, 89,191,126,125, 46, 0, 36, 39, 39, 63,174, 72,144, 97,152,
- 70,117,234,212,129, 94,175, 71, 65, 65, 1,238,223,191, 15, 59, 7, 7,196,100, 23,122,116, 91,177,177,232,235, 35,231,248, 35,
-218, 4, 57,127,254, 86, 71,253,247,225, 17,254, 77,188, 61, 60, 12, 70,147,103,124, 78, 94,246,203, 28, 84,129, 64,144, 94, 88,
- 88, 8,131,193, 0,173, 86, 11,133, 66,129,162,162, 34, 20, 22, 22, 34, 59, 59, 27, 2,129, 32,177, 58, 13,251,226,226, 43,201,
-215, 47, 51,251,126,254, 1, 13,204,197,224, 29, 92, 13,222,209, 13,104,104, 40,192, 47,115, 39,217, 25, 92,220,230,219,219,217,
-149, 56, 58, 58,110, 2,224, 87,157, 94, 72, 72, 8,138,138,138, 80, 84, 84, 4, 23, 23, 23, 56, 57, 57,193,201,201, 9, 50,153,
- 12,114,185, 28, 10,133, 2,254,254,254,104,222,188, 57,118,236,216,241, 90, 78,238, 63, 13, 72, 50,195, 50,229,220,163,108, 8,
-164, 82,212,119,178,173,211,218, 22,206, 85,252, 75, 15, 62,159,191,223,217,217, 57, 28,192,199, 0,164, 0, 62,118,118,118, 14,
-231,243,249, 67, 0, 44, 2,176,171,134,171,241,253,252,249,243,103, 38, 36, 36, 72,238,222,189,139,175,190,250, 10, 11, 22, 44,
-192,227,199,143,215, 1, 96,203, 62,243,145,139,139,203, 9, 14,135,179, 25, 64, 63, 0,125,189,188,188,122, 86,163, 59,100,198,
-140, 25,186,150, 45, 91,198,199,197,197, 13,185,126,253,122,171,233,211,167,203,211,210,210, 16, 31, 31, 15, 47, 47, 47,248,248,
-248, 64,165, 82,161,164,164, 4, 67,134, 12,113,176,183,183, 31, 73,155,113, 10,133,242,119, 54, 89,207,121,145,127, 90, 68,171,
-194,229, 10,159,168, 37, 18,201,252,168,168,168,246,193,193,193, 60, 0,251, 0, 32,136,139,225, 67, 58,180,216,118,100,211, 15,
-193,135, 86,205, 13,238, 19,236,191, 45,136,139,242, 81,108, 39, 90,181,106,229, 20, 21, 21,213, 65, 40, 20,126, 82,201, 74, 16,
- 0,112,114,114,130,131,131, 3, 28, 29, 29,225,228,228, 4,150,101,161,210,232,160,182, 0, 74,157, 1,114,185, 28,202,178,101,
-149,222, 8,181, 90,253,228,127, 43,160,219,248,241,227, 11,214,174, 93,155,159,147,147,243, 3,128,102, 97, 97, 97,131,215,172,
- 89,131,139, 23, 47,234,250, 5, 52,116, 89,220,185,197,194, 38, 57,143,231, 5,240, 49, 1,192,149, 43, 87,174,160, 67,135, 14,
- 96, 24, 38,180, 34, 65,177, 88,188, 97,207,158, 61,226,216,216, 88, 52,108,216, 48, 54, 52, 52,244,221, 31,126,248,161,129, 84,
- 85,124, 13, 0,204, 69,185,177, 83,167, 78,253,102,241,226,197, 5, 5, 5, 5, 70,141, 70,227, 62,104,208, 32,164,167,167, 35,
- 43, 43,235,143, 74, 76,102,124,116,116, 52,145,203,229, 72, 74, 74, 66,116,116,180,248,155,111,190,105, 99,225,112, 6,103,194,
-238,131,176,142,173,218,140,110,215, 2,187,110,220, 21, 92,125,148,236,216,170,110, 45,167, 59, 25, 57,245, 76, 12, 18, 95,230,
-104, 43,149,202,213, 11, 23, 46, 84,169, 84, 42,100,102,102,226,222,189,123,136,139,139, 67,106,106, 42,150, 45, 91,166, 42, 46,
- 46, 94, 83,157,134,183,136,247,197,143,211,199, 49,188, 7,127, 0,119, 47, 3, 26, 37,160, 85, 65,255, 48, 10,191, 62,204,197,
-250,131,135,109,210,210,211, 29,247,238,221, 59,222,215,215, 55, 10,128,127, 85,122,132,148, 30, 66, 14,135,243,188, 9, 5,135,
-195, 81, 2,200,149, 74,165, 25,118,118,118, 25, 28, 14, 39,151, 16,162,126, 45, 79, 18,102, 24,193,229, 2, 54, 98,112,248, 85,
- 78,237,249,110,104,104,232,158,140,140,140, 62, 73, 73, 73,237,215,172, 89,179, 80, 36, 18,197,172, 89,179,102, 97, 82, 82, 82,
-251,140,140,140, 62,161,161,161,123, 0,140,169,201,247,251,249,249, 77,157, 55,111, 30,150, 45, 91,134,230,205,155,195,223,223,
- 95, 51,127,254,252,213, 0,230, 2,248,196,207,207,239,218,212,169, 83, 63,204,207,207,247,204,204,204,108,190,110,221,186, 73,
-171, 87,175,110,157,157,157, 45,170, 70,186, 83,239,222,189,113,250,244,105, 0,200, 1,144, 84, 84, 84,100,206,206,206, 70, 96,
- 96, 32,218,180,105, 3,149, 74, 5,149, 74, 5,153, 76,134, 58,117,234,128,101,217,246,180, 41,167, 80, 40,148,255, 87,195, 85,
-177,209, 18,137, 68, 78, 33, 33, 33,168, 95,191,190, 19,202, 70,107,185,216,240,102,127, 62,126,132,196, 54,234, 12,152,232, 11,
- 8,237,220, 84,226, 98,195,155, 93,246, 47,188, 58,117,234, 8, 67, 66, 66, 32,149, 74,107, 85,242,229, 17,185,185,185, 8, 9,
- 9,129,163,163, 35, 28, 28, 28, 16, 18, 18, 2,163,209, 8,185, 82, 9,181, 5,208,152, 88,200,229,114, 20, 23,228, 65, 99, 1,
-204,118, 46, 72, 77, 77, 5,151,203, 77,174, 68,211,171, 97,195,134, 5, 49, 49, 49, 5, 0,174, 0,152,188, 96,193, 2,204,154,
- 53, 11,223,126,251,237, 30, 73, 78, 74,239, 61,167,143,186,252, 62,255, 35, 55,127, 27,102, 4, 0, 99, 70, 70, 6, 28, 29, 29,
- 33,149, 74, 43, 52, 6, 93,186,116,105, 41,149, 74,177,125,251,118,146,153,153,217, 17,165, 67,248,147, 25,166,212,236,137, 57,
-144, 3, 88, 29, 21, 21,213,246,155,111,190,121,212,171, 87, 47,126,187,118,237,176,104,209, 34, 0, 56, 81,145,166, 76, 38,251,
-115,204,152, 49,134, 75,151, 46,225,225,195,135,210, 35, 71,142, 12, 95,180,104, 81,211,180,180, 52,225,241, 83,103,222,222,153,
-161, 24,254, 67,248, 85,209,226,179, 17,127,186,218, 75,155,212,115,117, 70,116, 90,150,192,194,197,173,234,142,104, 91, 62,119,
-124, 55, 17, 47,186,179,144,147,211, 77,196,139,106,205,231,142, 83, 42,149,123,143, 29, 59,118,118,250,244,233,170,252,252,124,
-216,217,217,161,168,168, 8,223,127,255,189, 42, 58, 58,250,160,193, 96, 56, 94,157,174,133, 37, 45,125,234,250, 2,137, 49, 79,
-222, 51,178, 4,183, 12, 2, 12,152,252, 41, 2, 2, 3, 97, 48, 24,208,172, 89, 51,102,193,130, 5, 82, 7, 7,135, 47,171, 53,
- 61,156, 23, 78, 55, 51,195, 48,185,132,144, 44,149, 74,149, 41, 22,139,211, 4, 2, 65, 90,113,113,113, 38, 33, 36,239,117,248,
- 44,194,193, 23, 29,154,249, 1, 66, 49,210,138, 84,217,183, 85, 40,174,232,131,118,118,118,227,214,175, 95, 47,218,186,117,171,
-105,234,212,169,250, 73,147, 38,241,181, 90,173,251,164, 73,147,248, 83,167, 78,213,111,221,186,213,180,126,253,122,145,173,173,
-237,208,151, 89, 17,147,201,132,152,152,152, 31, 30, 63,126, 44, 69,105,185,145, 79,231,207,159, 31,150,144,144, 32, 90,187,118,
- 45, 14, 28, 56,128, 3, 7, 14, 96,240,224,193,152, 54,109, 26,230,205,155, 87,149,156, 36, 56, 56, 56,196,197,197, 5,151, 47,
- 95,206, 6,144, 6,160,165,173,173,173,221,224,193,131,209,167, 79, 31,232,116, 58, 24,141,198, 39, 70,139,203,229,194,209,209,
-209,133,182,129, 20, 10,133,242,198, 77,214, 51,102,139, 7, 0,229,161,186, 1, 3, 6, 48, 85,221, 24, 45, 37,249,144,169, 53,
- 72,149,107,144, 94,194, 62,243, 55,150,101,171,252,246,236,236,236,227, 55,110,220, 24, 23, 18, 18,194,203,206, 46,237, 17, 11,
- 9, 9,129, 70,163, 65,246,221,155, 80,179,128,180, 97, 16,212,106, 53, 74,226,238,192, 54,184, 61, 92,250,143,198,138,181,107,
-245, 69, 69, 69, 63, 87,164,105, 99, 99,195,175, 93,187,118, 65,114,114,178, 25, 64,177,131,131, 67,111, 95, 95, 95, 68, 68, 68,
- 0,192, 46, 2,252,136,232, 75,192,229, 67, 32,165, 33, 21,219, 58,117,234, 32, 63, 63, 31, 42,149, 42,162, 34,205, 27, 55,110,
- 36,152, 76,166,102,131, 6, 13, 98,126,251,237,183,125, 10,133,226, 91, 0,247,244, 44,184,119, 51,242,160,182, 64, 4,224, 45,
- 39, 39,167,207,230,205,155,215,115,234,212,169, 56,118,236, 24,194,195,195,141, 40,205, 5,187, 81,129,172, 60, 41, 41,233,151,
- 25, 51,102,180,227,112, 56,147,207,157, 59,103,246,247,247, 87, 24,141, 70, 75,163,128, 0,206,183, 11,190, 19,124, 60,121,162,
- 99,145, 6, 15,250, 52,242,234,192, 48,192,131,172,252,180,199, 42, 20, 85,181, 79,187,216,112, 79, 12,233, 24,220,101, 92,232,
- 64, 91,105,195, 38, 80,223,191,233,249,203,254, 83, 43,196,209, 9, 3, 46,231,231, 15, 62,118,236,216,240,136,136,136,143, 13,
- 6, 67,125,161, 80,152, 40,147,201, 86,169, 84,170,106, 77, 22,151,203,237,175,247,170,237, 36, 43, 46,134,168, 44, 18,165, 48,
-177, 40,212,155,241,208,209, 31, 35,107,251, 60,233, 6,205,205,205,133,167,167, 39, 99,177, 88, 6, 86,165, 25, 30, 30,142, 1,
- 3, 6,148, 27, 79, 48, 12, 3,134, 97, 10, 3, 2, 2,242,132, 66, 97,145, 64, 32, 80,252,248,227,143, 58,157, 78, 7, 30,143,
- 39,178, 88, 44,220, 87, 57,219,219, 72,224, 46, 36,204,134, 73,131,186,247,106,222, 36,144, 92,185,125,151, 41,209,232,126,173,
- 34, 10,184,206,207,207,143, 87, 92, 92,124, 28,192, 67,147,201,244,251,190,125,251, 68,239,191,255,190,110,255,254,253,163, 0,
- 52, 88,190,124,249,112,149, 74, 85,163, 41, 21, 30, 63,126,188,110,241,226,197, 51,231,204,153,131, 29, 59,118, 76,125,252,248,
-241,172,178, 72,215,224,121,243,230,225,199, 31,127,196,142, 29, 59,216,135, 15, 31,158, 98, 89,246,241,244,233,211,131, 61, 60,
- 60, 10,115,114,114, 30, 87, 33,219,170,111,223,190,250,107,215,174,217, 40,149,202,171, 0, 62,155, 50,101,202,248,182,109,219,
- 42, 66, 67, 67,109,139,139,139,101, 18,137,196,102,203,150, 45, 78, 60, 30, 15,106,181, 26, 12,195, 64,169, 84, 26,104, 59, 72,
-161, 80,254,174, 84,230, 69,254, 33, 84,122,111,224, 85,180,129, 26,141, 38, 47, 61, 61, 61, 48, 43, 43,203, 12,192, 12, 0, 69,
- 6,243,146,197, 91, 14,109, 29,218,206, 79,154, 99, 50,225,200,237, 88, 77,145,193, 92,158,252,110,206,202,202, 82,166,165,165,
-217,105,181, 90, 85, 37,223,245,199,134, 13, 27,180,151, 46, 93,178, 75, 74, 74,130,197, 98, 65,203,150, 45, 17, 31, 31,143,146,
-135, 49,144, 6,182,132,180,235, 0,196, 70,221, 70,116,248,121,164,168, 12,230, 71,115, 23,203, 85,106,245, 60,163,209,120,164,
- 34, 65, 62,159, 95, 12,128, 16, 66, 44, 0,160, 80, 40,238,169, 84,170,206, 30, 30, 30,120,240,224,129, 84,109,193,180,225,179,
- 87,172, 33,132, 88, 4,165,163,185, 62, 15, 13, 13, 69,100,100, 36, 0, 68, 86,164,169, 80, 40,166, 78,152, 48,225,210,246,237,
-219,121, 73, 73, 73,125,182,110,221,218,231,209,163, 71,132, 41, 78,183, 92,211,240,209, 32,108, 90,235,141,117, 2,194, 7, 12,
- 24, 0, 47, 47, 47,108,217,178, 5,171, 86,173, 50,125,244,209, 71, 9,171, 86,173,106,157,159,159,255,123, 37,219, 47,151,201,
-100,103, 92, 92, 92, 62,110,218,180,169, 82,173, 86,163,168,168, 8,217,217,217,112,118,113,225,152,193,233,224,230,232,248,251,
-241, 92,165,148,119,230, 79,220,204,204,169, 50,154,213,142,207, 29, 51,180, 75,139, 46,159,204,153,109,139,107, 71,192, 76,152,
- 7,178,117, 33, 62, 29, 59,220, 78,167,255,189,171,250,110,234,251, 81, 10,197, 78,133, 66,113,160,134, 39, 75,223, 14, 29, 58,
-236, 89,188,120,177,248,235,101,139,177, 60,176, 22,204, 69, 69, 40,208, 91, 80,168, 55, 67, 81,242, 16, 15, 30,196,194,197,197,
- 21, 41, 41, 41,208,233,116,136,139,139, 35, 92, 46,247,120,117, 17,157,114,158,234, 46,148, 9,133,194, 34, 62,159,159,199,227,
-241,138,147,146,146,212, 58,157, 14, 28, 14, 71,106,177, 88,196, 86,172,107,109, 87, 87,215,233, 40, 45, 38,122, 76, 89, 88,184,
- 58,132, 15, 71,240,208,173,142,171,203,219,115, 39,189,239,234,235,237, 46, 75, 74, 72, 52,253,124,246,122,161, 78, 95,249, 96,
- 13, 0, 39,138,139,139,159, 68, 36,247,239,223,255,233,254,253,251,199, 3,216,134,210,121,183,206,203,100,178,141, 47,113,241,
-205, 61,120,240,224,204, 57,115,230, 64, 44, 22, 63, 41,158, 42, 22,139, 69, 0,176,123,247,110, 60,120,240,160, 45,202,242,181,
- 88,150,221,147,147,147, 83,157,102,131,160,160,160,164, 67,135, 14,217, 0,240,158, 50,101, 74,251, 53,107,214, 96,236,216,177,
- 5,177,177,177,237, 0, 36, 3,104, 48,121,242,228, 91, 59,118,236,112, 98, 89, 22, 37, 37, 37, 48, 24, 12,201,180, 41,167, 80,
- 40,212,108,189, 17, 66, 0, 68,163,180,126, 86,127, 0, 39, 81,154,214, 81, 41, 62,101,238,236, 44,128, 65,229,247,199, 74,146,
-225,129,210, 17, 89,103, 0,108, 6,224, 81,153,168,139,139,203,151, 97, 97, 97,166,204,204, 76,146,155,155, 75, 14, 28, 56, 64,
- 62, 31, 23,102,121,171,161, 55,219,208,219, 67,237,230,230, 22,239,229,234,252,107, 11, 9, 62, 7, 80,219,138, 13, 11,123,244,
-232,209,196,176,176,176,113,101,223, 59,110,207,158, 61,170,115,231,206,169,184, 92,238, 9,148,150,118, 40, 55,148, 99, 6, 14,
- 28,168,210,235,245,170,128,128,128, 98,148, 38,238, 87,198,240,110,221,186,149,156, 62,125,154, 88, 44,150, 23,106, 20, 21, 20,
- 20,144,240,240,112,210,177, 99, 71, 25,128,247,123,246,236, 25,113,253,250,245,136, 78,157, 58, 29,172,110,133, 93, 93, 93,103,
-223,189,123, 55, 50, 53, 53, 53,234,228,201,147, 81,191,255,254,123,212,228,201,147,239, 5, 7, 7,107, 19, 18, 18, 88,179,217,
- 76,238,222,185, 67, 2, 26, 53, 82, 3,168, 83,153, 78, 15, 49,239,150, 98,203, 66,162, 91, 52,150,232,134,248, 16, 0, 68,185,
-226, 75,146, 55,181, 23,137,255,248,109,210, 93,196,189,241, 50,103,138,179,179,243,217,200,200, 72,162, 84, 42,201,253,251,247,
-201,152, 1,125,200,141,241,189,200,153, 62,126,100, 71,215,122,100, 69,239, 96,210,167,107,103,178, 97,195, 6,114,232,208, 33,
- 50,123,246,108,214,213,213, 85,137, 42,114,180, 60, 61, 61,207,237,219,183, 47, 10, 64, 20,151,203,141, 82, 40, 20, 81, 74,165,
-242,120, 70, 70,198,250,128,128,128,153, 77,155, 54, 29, 21, 24, 24,216,163,123,189, 58, 51,123,218, 9,227,123,217,139, 18, 27,
-217, 74, 86,224,197,186, 87, 79,112, 0,234, 52,108,208, 64,121,249,242,101, 86,175,215,147,171, 87,175,178,141, 27,249,235,150,
-191,215,247, 96,202,150,165, 7,117,167,127, 59,171, 57,186,233,250,254, 15, 6,196,116,147,112,126,107, 47,125, 82,142,227,101,
- 25, 1,224, 8,254, 26,117, 24, 6,224, 40,170, 30,133,200, 1,176,109,209,162, 69, 79,143, 52, 4, 0, 78,112,112,112, 20, 33,
- 36, 42, 56, 56, 56,170,166, 43, 34,145, 72,166, 31, 59,118,108,190,175,175,239,178,208,208,208, 45, 50,153,236,228,168, 81,163,
- 98, 80, 58, 24,132, 65,233,236, 8, 3,107,215,174, 93, 16, 29, 29, 77, 34, 34, 34,200,176, 97,195,148, 2,129, 96, 52,109,198,
- 41, 20, 10,229,141, 48,177,146,159, 85,178, 56, 38, 38,166,188,134,214,148,170,196,103,205,154, 21, 21, 25, 25, 25,133,210, 42,
-241, 85,194,227,241, 14,127,244,209, 71,196,195,195, 67,229,238,238,126,152,207,229,142,247, 17, 35, 4, 47, 55,212,189,243,206,
-157, 59, 7,175, 91,183,174, 63,128,182, 0,248,181,106,213,202,206,205,205, 85, 93,191,126, 93,213,177, 99, 71,149,171,171,107,
-126, 80, 80,144,106,249,242,229, 42,147,201,164,154, 62,125,186, 10, 47,214,251,170, 8, 17,128,143,109,108,108, 14, 55,110,220,
- 56,102,238,160, 30,166,101,211,198,147, 48, 63, 55, 21,128,117, 0, 62, 2,224, 8,128, 63,124,248,240, 11,113,113,113,103,131,
-130,130,126,177, 66,215,187,105,211,166, 23,247,236,217, 19,121,232,208,161,168, 47,191,252, 50,210,197,197, 37, 51, 33, 33,129,
-213,233,116,164,164,164,132,200,100, 50,114,242,228, 73,139,179,179,243,218, 74, 55, 92,200,205, 33,225,187, 42, 44,225,144, 49,
-103, 52,233,104,195,201,122,153, 51, 69, 42,149, 22, 23, 21, 21,145,220,220, 92,146,148,148, 68, 14, 30, 60, 72,250,118,104, 67,
-246, 78, 30, 74,118,141, 27, 76,126,236,219,134,180,181, 19,169, 61,237,108, 35,237,236,236,242,173, 25,117,232,233,233,121, 78,
-175,215, 63, 41,223, 80,187,118,237,168,128,128,128, 67, 65, 65, 65, 43,142, 29, 59,246,233,202,149, 43, 7,119,175, 87,103,230,
-247,125, 58,104, 53,231,247, 19,229,190,117,100, 86, 75,127, 93,153,153,175,144, 90, 46,206, 59, 47, 71, 68,176,229,230,215,108,
- 54,147, 35,135, 15,147,247,222,126, 43, 70,126,102,247,230,171,243,166,238,153,222,210,255, 72, 71, 17, 70, 84,101,216,158, 60,
-138,216,194,165,139, 61,103,125, 63, 95,231,156,206, 14,156,117,237,236,158,153, 94,234, 61,127,127,255, 36, 66, 72, 78, 96, 96,
- 96, 18,128, 93,129,129,129, 79, 47,127, 80,137,236,147,226,164,243,231,207, 39,101,215, 7, 7,192,183,139, 23, 47,142, 34,132,
- 68,249,249,249, 93, 3,128,230, 82,184,118,117,224,108, 30,212,192,163,168,171, 3,103,115,115,105,197, 83, 70,213, 17,160, 81,
-103, 55,201,213,193,126, 94,202,110,181, 28,174,236,250,117,235,178,126,253,250,109, 1,176, 22,192, 66, 23, 23,151,171, 35, 70,
-140,120,176, 99,199,142, 7,203,151, 47, 55,254, 31,123, 87, 30,214,196,181,190,223,153, 76,246, 4,194, 26,194,174,178,168, 32,
-168,184,111,184,224, 46,238,104,221,171,117,185, 86,175,214,214,218,186, 20,193,170, 85, 91,107,181,181, 85,107, 69, 69, 91, 20,
-113, 41,238,168, 21,173,187, 40,130,130, 32, 59,178,132, 45, 4, 66,246,100,126,127, 40, 92,106, 89,130,109,127,183,246,230,125,
-158, 60,132,228,204,155,115,102,206,153,121,207,119,190,243,125,105,105,105,244,156, 57,115, 20, 28, 14,231, 83,243,125,208, 12,
- 51,204, 48,227, 47, 67,109,100,120,199,150, 8,173,209, 31,125,244,209,125,154,166,107, 99,105,205,104,160,204,152,213,171, 87,
-223,167,105,186, 54, 58,252,171, 1,204, 26, 10,104, 22,182,115,231, 78,154,195,225,124,255,154,141,169,207, 41, 25, 55,110, 92,
- 79,185, 92,222,205,193,193,161,219, 75,203,149,171,157,157, 93,198,225,195,135,171,149, 74,101, 53, 77,211,213,122,189,190,250,
-222,189,123,213, 3, 6, 12,168,174, 55,235,111,174,158,191,193, 42, 9,174,223, 93,243, 14,189, 74,130,235,175,124, 53,125,223,
-190,125,103, 51, 51, 51,127,182,180,180, 92, 97, 34,167,171,189,189,125,168,141,141,205,121, 59, 59,187, 85, 54, 54, 54,133, 90,
-173,150,174,168,168,160,159, 62,125, 74,255,242,203, 47,244,205,155, 55,105, 27, 27,155,252,198,234, 25,196,163,110, 85,108, 89,
- 68, 27,247,109,160, 53, 59, 86,210, 0,104,217,182,143,233,210,111,195,233,187,243,134,209, 3,184,140, 27,175,113, 62, 97,101,
-101,181,231,248,241,227,198,244,244,116, 58, 54, 54,150, 62,125,250, 52,189,100,201, 18,186,173,147,163,186, 39,155, 44,238,199,
-161,206,191, 78,192, 82,181, 90,125, 95, 46,151,223,175,174,174,190,239,227,227,115,191,123,155,137,145, 13, 0, 0, 32, 0, 73,
- 68, 65, 84,247,238, 49, 61,123,246,252,242,232,209,163, 75, 55,110,220, 56, 54,200,130,243,180, 38,238, 40, 77,127, 56,130,166,
- 23,245,165,159,205, 29, 64, 15,226, 81, 15, 27,229,116,112,200,175,141,214,174, 80, 40,232,248,248,120,250,242,229,203,180,196,
-206, 78, 30,200, 99,204,239,195, 65,255, 62,150,176, 50,181,158, 3, 69,100,196,173,111, 63, 51, 40,207, 30,164,127,156, 53, 66,
- 63,192,138,220, 89,175, 92, 20, 77,211,133, 19, 39, 78,204,162,105,186,240,216,177, 99,121, 52, 77, 23, 78,152, 48, 33,139,166,
-233, 66, 0, 63, 53,196,249, 74,112,210,125, 47, 69,214,162,176,176,176,251, 52, 77,223, 15, 11, 11,187, 15,188, 8,162,218, 95,
- 68,238,191,189,251,115,163,250,244,126,250,232,156, 81,134,254, 34,114,127,131,245,180,162,126, 78,216,183,141,214,156, 63, 68,
- 31, 95, 50,205,208, 87, 98,121,213,219,219,251,243,165, 75,151,198,220,188,121,243,145,193, 96,120,156,145,145,241,248,235,175,
-191,126,220,171, 87,175,235,182,182,182,137,108, 54,251,221,230,174,209,159, 4, 51,167,153,211,204,105,230, 52,227, 85, 3, 83,
- 19,223,253,188,121,243,102, 1, 77,211,239,135,132,132, 96,211,166, 77,147, 59,116,232, 48,197,217,217,217, 30, 0, 10, 10, 10,
-106,146,146,146,228, 33, 33, 33, 8, 13, 13,197,150, 45, 91,190,196, 11, 95,150,255, 79, 20,157, 56,113,194,101,241,226,197,210,
-141, 27, 55, 26,231,204,153,211, 30, 64, 82,105,105,105,219,105,211,166, 45,162, 40, 42,196,221,221,221,191,176,176,176, 68,169,
- 84, 30, 2,176, 27,205,172,153, 54, 6, 14, 9, 67,215, 86,142, 56, 79,194, 80,239,227, 17,161,161,161,111, 77,152, 48, 65,187,
-109,219, 54,189, 92, 46, 63,101, 34, 93, 94, 73, 73,201,186,218,127,108,108,108, 36, 15, 31, 62,124, 87, 44, 22,147, 25, 25, 25,
- 80,171,213, 72, 79, 79, 55,226,197,210, 84,131,168,214,211,219,191, 59,118,177,221,251,211,131, 45,107, 82, 30,128,197, 96, 64,
-199,100,163,232,214,121,236,139, 79,145, 43,180,216,241, 58,237,148,201,100, 95, 44, 89,178,100,218,138, 21, 43,184,238,238,238,
-196,141, 27, 55,112,228,200, 17,181, 84, 42, 29, 14,224,234,127, 66, 63,181, 12, 70,163, 17,108, 54, 27, 0,240,241,199, 31,131,
- 36, 73,166, 84, 42,101, 19, 4,193, 33, 8,130, 79, 16, 4, 67,151,249, 24, 70,121, 5,138, 43,100,200, 43,150, 53,201,103, 48,
- 26,143,220,190,125,123, 89,231,206,157,201,187,119,239,162,164,164, 4,233,233,233,180,129,166,127,138, 87, 26, 94, 56, 37,170,
- 77,175, 31,223,198,118, 92, 39,107, 14,201,142, 8, 69,160,134,100,236, 50, 98, 34, 94,196,210, 2,128,125, 4, 65,176, 0,148,
-249,248,248, 12,124,242,228, 9,207,199,199, 71,153,146,146,114,150, 32, 8,103, 0,251, 27,226,228,241,120,165, 0, 74,143, 29,
- 59, 6, 0,243,240,226,228,117, 89,187,118,109, 97,124,124, 60,194,194,194,138, 1,236, 4, 0,161,181,237, 24,127, 17,139, 96,
- 31, 8, 67, 47, 53,200, 29, 70,186, 65,171,171, 80,236, 48,168,131,128, 4,243,135, 79,208, 77,210,142,100,235,181,126,225,225,
-225,241,213,213,213,234,168,168, 40,205,236,217,179, 25,105,105,105,119, 0, 92, 3,112, 12, 47,125, 44,205, 48,195, 12, 51,204,
-248, 75,241,170, 5,171, 89, 31,173, 87, 85,235, 38, 0,223,165,166,166,214, 37,149, 78, 77, 77,189, 15, 96, 23, 94, 68,131, 31,
-221, 2,197,187,230,165, 69,107,247,107, 54,230, 85, 78,110, 64, 64, 0,239,201,147, 39, 44, 52,156,196,145,120, 13,206,223,161,
-161, 92,135,222,222,222, 95,233,116,186,152, 93,187,118, 29,101, 48, 24,211,254,128,218,119,247,242,242,170, 56,124,248,176, 49,
- 54, 54,150, 94,179,102,141,193,209,209,177, 2,191,247,209,250, 13,103, 32,155, 17,189,188,189,179,252,222,140,190,244,179,165,
- 99,232,107,211, 7,208,243,157,133,242, 64, 46,227,200, 31,156,149,120,137, 68,162,125, 60, 30, 79,110,105,105,121, 17, 64,239,
- 63,114,141,108,109,109, 15, 74, 36,146,139,245, 95, 14, 14, 14, 49,246,246,246,223,216,217,217,173,177,178,178, 90,224,193,101,
-111, 91,218,214, 73,149, 56,206,135,142,235, 99, 79, 79,183, 99,191,186,116,248,106, 61, 29, 61, 60, 60,202, 34, 35, 35,141, 63,
-255,252, 51,189,114,229, 74, 99,171, 86,173,228,104,194,175,173, 73,139,150, 21,227, 72,244,132,158,198,226, 81,206,244,166,246,
- 22,198,129,214,140,198,118, 40, 78,127, 41,128,103, 53,199,233,233,233,185,139,166,233,136,245,235,215, 71,224, 63,185, 64,135,
-132,135,135,175,165,105,122,109,120,120,248, 90, 0,195, 0, 32, 80, 68, 70, 30, 26,219,213, 80, 48,210,137,254,172,189,208, 16,
- 40, 34, 35, 27,180,100,218, 80, 39, 78,206, 29,101, 44,156,219,135, 14,245, 18, 24,122,218,112, 46,177,217,236,165,120, 97,113,
-238, 14,128,109,158, 53,155, 57,205,156,102, 78,179, 69,235,111, 39,188, 76,130,196,198,198,102, 95,155, 54,109,142,186,187,187,
- 31, 21, 10,133, 95,226,133,211,124, 75, 47,132,199,134, 13, 27,228, 34,145,168,211,159,120,113,197, 0,156,241,251,196,185,127,
- 90,135, 89,231,136,197,105, 43, 38, 63, 92,231,136,197,245, 62,238,222,190,125,251,207,240, 34,154,247, 31,237,132,238, 54, 54,
- 54, 95,219,216,216,228,191,244,205,114, 55,133,179, 43,131, 49,109, 32,151,113,163, 55,155, 44, 26,200,165,126,237,198, 96, 76,
-125, 67, 7, 96, 83,155, 45, 26,227,116,177,179,179,219,102, 99, 99, 83, 96,103,103,247,117, 11, 69,214,111, 56, 59,241,224, 56,
-200,138,113,162,183, 5,161, 24, 36, 98, 28,235,202,111,124, 83, 71, 11,218, 30, 16, 22, 22,246, 54, 77,211,111, 59, 57, 57,133,
-212, 19,254,254,161,161,161,193, 52, 77, 7,215, 70,128,239,206,135,120,128, 21,227,112, 31, 75, 66, 54,192,138,113,184, 59, 31,
-226,198,234, 57,208,138,113,164,143, 37, 33, 11,180, 36, 15,187,113,208,202,124, 51, 55,115,154, 57,205,156,102,161,245,207, 16,
- 90,230, 14, 99,230, 52,115,154, 57,205,156,102, 78, 51,167,153,211, 44,180, 26, 22, 86,245, 95,117, 43,108,148,249,220,152, 97,
-134, 25,102,152, 97,134, 25,102,252, 33, 52, 26,176,148,104, 66,149,182,196,177,253,117,148,109,156,153,211,204,105,230, 52,115,
-154, 57,205,156,102,206,255, 57,206,230,184,255,191, 55,214,189,209, 48,155, 85,205,156,102, 78, 51,167,153,211,204,105,230, 52,
-115,254,207,130, 52,159, 2, 51,204, 48,195, 12, 51,204, 48,195,140, 63,132,128,151,127, 95, 13, 92,218,176,143, 22,213,125,125,
-177, 94,175, 23, 3, 0, 69, 81, 82,221,157, 53,142, 77,177, 51,129, 32,253,139,244, 59,160,128,121,122,224, 98, 3,156, 23,245,
-122,189,245, 75,206, 10,221,157, 53,195,154,228,236,190,254,124,253,242,250, 59,107,134,188, 90,134, 6, 24,204,238,235, 11, 94,
-169,171,147,169,103,133,192,111, 98, 98,253,101,245,124, 83, 56,255,151,193,236,177,190, 88,167,123,209,143,152, 76, 74,170,189,
-221,116, 63, 98,245, 88, 95, 80,191,188,238,246, 26,135,166, 56,249, 60, 78,153,167,179,253,151, 77,113,102, 20,148,190,175,168,
- 81,217, 54,197,217,210,177,233,234,232, 24,100,120, 57, 54, 25,192,188,252,194,194,139,127,179,190,212, 21,192, 26, 0,150,245,
- 62, 75, 4,240,158,185, 87,154, 97,134, 25,111,152,208, 74,192,139, 60,135,123, 94,138,173, 61,141, 10, 45,189, 94, 47,190,127,
-124, 45, 20,106, 32,104,230,122,177,199,184,221,191, 75,148,172, 87, 85,176,101,201, 81,254, 12,157,220,218,158,210, 90, 22, 20,
- 20, 16, 0, 64, 16,196,247, 0,220, 26,224,180,190,127,124, 45,106, 52, 64,224,148,112,107, 55,192,178,132,197,250,128, 39, 16,
- 12, 84, 42,149, 29, 0,128,199,227, 37, 43, 21,138, 43,246, 90,237,214, 87,203, 55,214,178,250,117, 29, 52, 99,189,184,253,184,
-221, 75, 12, 70, 35,251,249,221, 93,129,170,210, 52,138,169, 87,239, 92, 5,156, 93,219,128,168,106,132,239, 63,191, 59,105,165,
- 45, 19, 24,196,230,114, 59, 89, 89, 91,247, 51,210,180,143,209,104, 36, 12,122,253, 99,121,101,229, 53,163, 94,255, 80,175, 81,
-216,222, 63,245,153,177,169,122,190,218,150, 73, 0,117, 28, 8, 17, 8,133, 3, 25, 76,102,111, 0, 48,232,116, 55, 20,213,213,
- 87,198, 3,209,166,180,221,212,243,243,186,229,255,215,160,211,233,197,153,231,215, 66,173, 3, 2, 38,126, 38,238, 56,237,192,
- 97, 0,208, 72, 31, 58, 84,167,157,234, 1, 0, 2,207,224,219, 28, 73, 64, 49, 0, 80, 57,133,226,167,177,171,161,214, 1, 62,
-193,225,226,230, 56,103,135, 30,177, 93, 49,127, 2, 7, 0, 46, 28,251,166,237,229,152,239, 70, 0,192,160, 9, 11,207, 14,157,
-184,248, 41, 0,108,217, 19, 99,251,211,103,147,155,228, 52,109,108, 86,178, 42,211, 98,189, 52,242, 66, 43, 87, 1, 37, 73, 75,
- 75, 35, 1,192,201,201,201,164,177,233, 2,136, 10,129, 69, 36,131,209,207,211,203, 43, 0, 0,157,241,236, 89,130, 65,175,191,
-238, 8,236,252,147,251,210, 18,154,254,109,112, 86,130, 32,204, 29,210, 12, 51,204,120,211,112,250,165,184, 58,253,187,201,108,
- 99, 71, 40,212,192,213,116,160,127,207,142,152, 63,109,164,176,254,119,209,187,195,221,210,238,158,108,255,195,129,173,100,199,
-142, 29,145,153,153,105, 82, 45,106, 52,192, 47,105, 0,100, 79, 44, 42, 4,130,103,219, 62,255,220,114,200,144, 33,148,147,147,
- 19, 8,130, 64, 81, 81, 81,207,184,184,184,174,203,150, 45,251, 23,100, 79, 42,106, 52,168,250, 37,173,121,222,218,186,118,104,
-219, 10,107, 22, 79, 22, 1,192,170,153, 59,187,222, 77, 45,182,121,246,236, 89,208, 71, 31,125, 84,198,184,114,229, 59, 59, 32,
-162, 24,200, 51,165,158, 7,127,190,205, 21, 21,254,232, 49,125,241,226, 99, 94, 94, 94, 66,119,119,119,194,194,194, 2, 12, 6,
- 3, 21, 21, 21,110, 73, 73, 73, 35,238,220,185,163,136,187,250, 61,251,222,157, 49, 25, 82,110, 15,149, 73,109, 87, 22,112, 47,
- 88, 88, 36,207, 24, 63,222,101,242,228,201, 92, 79, 79, 79, 0,192,179,103,207,188,163,163,163,167, 28, 59,118, 44, 20,202, 2,
-125,141, 6,170,230,218, 94,199, 9,128, 11,244,182, 18,139,167, 51,152,204, 14,122,189,222,249,165,181,225,185, 65,167, 75,150,
- 73,165,135, 94, 45,111,198,239,161,214, 1, 79, 10,129,193,253, 2, 48, 99,194, 96, 1, 0,124,244,214,134,158, 57, 89,233, 44,
-141, 70,131,182,237,124,250,124,250,217,151,231, 65,146,136,140,137,171, 43,111, 10,103,226,147, 76,172,253,116, 27, 10, 30, 69,
-247, 52, 84,166, 15,172,146, 87, 50, 0,192, 82, 36,154, 16, 29,245,227, 21, 39,255,144, 91,233,165, 90,147, 56,155, 26,155,231,
-162,190,118,204, 79,186,226,251,237,133,125, 76, 55, 55, 55, 60,122,244,168,101, 99,179, 50,213,194,232,232,248,120,235,135, 31,
- 74, 2, 3, 3, 33, 20, 10, 65, 81, 20,244,122,253,224,235,215,175, 15, 94,187,118,237, 66, 84,166, 42, 76, 29,155, 38, 96, 43,
- 65, 16, 3,103,207, 95,226, 56,114,108, 8, 38, 12,239,211,100, 97,173, 70,195, 96,177,217, 6,115,111, 53,195, 12, 51,254, 70,
-168,181, 94,213,223,121,184,167, 73,161, 69, 81,148,116,200,172,141,226,126, 61,252,112,247,225,211,202,236,220,194,234,218,239,
-202,147,163,219,142,237,227,236, 27, 31,127, 21,106,181, 26, 55,110,220,192,195,135, 15,145,149,149,133, 5, 11, 22,168, 95, 46,
- 29, 54,196, 89, 17, 56, 37,220, 26,149,105, 66,111,118,106,235,184,148, 20,134, 74,165, 66,124,124, 60, 42, 42, 42,192,102,179,
-225,226,226,130,161, 67,135, 82, 41, 41, 41, 54, 65, 67,134,139, 2,135, 79,205,132,200,187,154,162,168,138,198,242,136, 80, 20,
- 37, 13,154,185, 94,236,235,221, 10,207,178, 11, 42,215,124,246, 67,181,209, 72, 83, 25, 89, 57,218,171, 87,175, 34, 32, 32, 0,
- 23, 47, 94,180, 45, 47, 47,255,100,231,206,157,107,152,155,191,221,174,211,148, 45, 71,227,124, 21,129, 83,194,173,109,165, 71,
-221, 47,159, 59,193, 74, 78, 78,102,237,218,181, 11,101,101,101, 96,179,217,176,178,178,130, 68, 34, 65,219,182,109,137, 85,171,
- 86, 9,131,131,147,241,239,121, 33,238, 90,143,185,169,141,213,179,174,237,213, 57,124, 59,249, 5,207,152,211,167,201,190,125,
-251,254,102,218,222,166, 77, 27, 12, 27, 54,140, 59,125,250,116,207,201, 83,166, 25, 3, 71,205,126, 6,161,123, 77,179,156,138,
- 60,158,109,205, 77,167,193, 83,166,156, 10, 15, 15,183,146, 72, 36, 16, 8, 4, 0,128,202,202, 74,151,236,236,236,158,161,161,
-161, 19,111, 39, 70, 81,129,193,121, 5, 16,184, 42,155, 58,159,255,171, 96, 50, 41,105,173, 21,201, 66,192,171,200,203, 47, 86,
- 0,128, 70,163,129, 70,163,129, 90,173,198,187, 11, 23, 48,230, 77,236,238,229,222,111,201,131,172,231,197,229, 62,113,183,108,
-106,143,213, 53,195, 73,213,100,201,100,185,151,230,173,253,240, 67,137,131,195,127, 86, 4, 35, 15, 30,100,148,151,151, 15, 94,
-187,118,173, 47,205, 31, 32,243, 9, 14,183,106,138,179,169,177, 41,123,122,186,245,167,139,135,117,218,253, 89, 44, 12, 6, 3,
-110,222,188,137,248,248,120,124,249,229,151,244,217,179,103, 43, 45, 5,130,121,104,114,108,166, 90,244,117, 44,242,216,188,249,
- 24,193,225,112,112,242,228, 73,164,164,164,128, 36, 73,116,236,216, 17, 51,102,204,192,224,193,131, 37,243,231, 47,160, 3,135,
-191,149, 1, 81,187,170, 63,216,151, 72, 0, 75, 86,174,221,236, 56,115,238, 34,108,249,116, 85,179, 66,203, 44,178,204, 48,195,
-140,191,177, 53,171,209, 16, 15,136,141,141,165, 95,190,250, 3, 0, 13,144,109,198,237,254,233,232, 61,227,233, 54,227,118,255,
- 68, 3, 36, 13,144,150, 64,171,206,157, 59,235,100, 50, 25,125,231,206, 29,250,221,119,223, 85,108,223,190,253,202,233,211,167,
-163,245, 90,237, 94, 39, 71,199, 47,232, 70, 28,236,105,128,116, 7, 68,124, 62,191, 36, 55, 55,151, 62,115,230, 12, 29, 22, 22,
- 70, 31, 58,116,136, 62,123,246, 44, 29, 23, 23, 71,159, 61,123,150,254,233,167,159,232,196,196, 68,250,233,211,167,180, 64, 32,
- 40,113, 7, 68, 77,112, 50,104,128,209,118,220,174,229,199,238,234,194,219,141,219,189,140, 6, 24,214, 64,251,206,157, 59, 27,
-162,163,163,233,200,200, 72,250,192,129, 3,116, 98, 98, 34, 93, 90, 90, 74, 83, 28, 65, 73,237,113,141,213,147, 6, 72,103,103,
-231, 18,153, 76, 70,187,186,186,210,108, 54,155,118,112,112,160,219,182,109, 75,247,236,217,147, 30, 49, 98, 4, 61,109,218, 52,
-250,147, 79, 62,161,101, 50, 25,205,229,114,139,107,143,107,140, 51, 0,224, 9, 4,130,220,251,247,239,211,141, 65,169, 84,210,
-165,165,165,244,249,243,231,105,129, 64,144, 27, 0,240,154,226,228, 1, 93,252,253,253, 75, 74, 75, 75,105,173, 86, 75,231,230,
-230,210, 73, 73, 73,116, 74, 74, 10,157,155,155, 75, 43,149,202, 58,238,167, 79,159,210, 30, 30, 30, 37, 60,160, 11,109,222, 4,
-209,104, 95,122,245,229,230,224, 48, 66, 34,145, 40,143, 29, 59, 70, 63,127,254,156,222,191,127, 63, 77, 2, 27, 94, 45,215, 20,
- 39, 27, 24,218,183,111, 95,195,205,155, 55,233, 7, 15, 30,208, 31,127,252, 49, 61,108,216, 48,122,248,240,225,244,218,181,107,
-233,252,252,124, 58, 63, 63,159, 30, 49, 98,132,129, 13, 12,109,174,127, 54, 52, 54, 69,128, 91,112,112,176, 82,171,213,210, 25,
- 25, 25,116,135, 14, 29,242, 25,192,116, 1,224,219, 31,224, 52,215, 63,157, 1,107, 71, 71,199,194,155, 55,111,210, 49, 49, 49,
-180,187,187,123, 9, 3,152,109, 9,180,177, 4,218, 48,128,217,109,218,180, 41,185,121,243, 38, 93, 86, 86, 70,187,185,185, 21,
- 58, 3,214,127,160, 47,145, 0,246,173, 92,187,153, 78,205, 87,208, 43,215,110,166, 1,228,210, 52, 77,163, 1, 31, 79, 51,204,
- 48,227,159,143, 87,181,200, 63, 5,117, 55,201,224,224, 96, 2,192, 47, 77, 21, 86, 50, 24, 27,183,108,217, 66,169, 84, 42,252,
-240,195, 15, 85,147, 38, 78, 60,218,191, 95,191,140,214,238,238, 50,130, 36,155,205, 54, 92,194,225, 44,221,178,101,139,149, 70,
-163,193,189,123,247,208,181,107, 87, 72, 36, 18, 8,133, 66, 8,133, 66,136,197, 98,180,107,215, 14, 82,169, 20, 22, 22, 22, 88,
-177, 98,133,168,132,195, 89,218, 28,175,209, 72, 83, 0, 96, 48, 26,217, 44, 96,190, 71,183,110,247, 66, 67, 67, 73, 91, 91, 91,
-216,216,216, 64, 40, 20, 34, 37, 37, 5, 26,141, 6,124, 30,223,164, 32,173, 36, 73,146, 66,161, 16,151, 47, 95,198,146, 37, 75,
-208,187,119,111, 88, 89, 89,193,194,194, 2, 29, 58,116,192,208,161, 67, 49,111,222, 60,100,100,100,128, 48,193,169,228, 49, 69,
- 45,154, 55,111,158, 56, 32, 32,160,193,239, 85, 42, 21,100, 50, 25, 74, 74, 74,224,226,226,130,144,144, 16,241, 99,138, 90,212,
- 24,159, 45, 32,113,241,246, 62,117,231,206, 29, 59,129, 64,128,200,200, 72,156, 56,113, 2,231,206,157,195,153, 51,103, 16, 27,
- 27,139,147, 39, 79,162,164,164, 4, 0,224,237,237,141, 35, 71,142,216, 9,197,226, 88, 91, 64, 98, 30,210,166, 33,167,184,248,
- 66,135,162, 34,187,233,211,166, 93,171,174,174,198,244,233,211,177,113,211,166, 85, 76, 96,153, 41,199,183, 3, 68, 54,142,142,
- 17,155, 55,111, 38,139,138,138, 48,126,252,248,210,173,155, 54,189,147,112,254,188,231,253,115,231, 60, 55,134,135,191,211,191,
-127,255,210,252,252,124, 28, 60,120,144,116,112,115,139,104, 7,136, 90, 90,207, 42, 96,201, 87, 95,125,197, 85,169, 84, 24, 50,
-100, 72,134, 49, 57,185,157, 30,248,177, 26, 72,249, 5,208, 54,119,124, 33,176,104,197,138, 21, 18, 14,135,131, 15, 62,248,160,
-180, 38, 39,199, 79, 15, 28,168, 4,178, 43,129,108, 61,112,160, 42, 51,211,111,230,204,153,165, 28, 14, 7,219,182,109,147, 20,
-254, 39,233,182,169,232, 10,224, 20,128,171, 0, 10,102,207, 95, 50, 59,160,123, 47, 28,220,187, 19,159,133,127, 20, 1, 96, 18,
- 65, 16,135, 0, 44, 55,247, 60, 51,204,248,223,132, 41, 90,228,111,138, 70, 83,238, 80,245,149, 36,128, 1, 77,177, 88,219,218,
-118,245,243,243, 67,124,124, 60,252,253,253,239, 88, 89, 89,233, 89, 28, 14,152, 76, 38,104, 99,179, 58, 11, 60,129, 32,104,240,
-224,193,212,173, 91,183,224,225,225, 1, 30,143, 7, 38,147,249,155, 23,139,197,130,163,163, 35,228,114, 57,130,130,130,152, 59,
-118,236, 8,130, 90,253,105,179, 15,196,180, 36, 97,201,173,205,211,190,223, 31,209, 38, 48, 48, 16,149,149,114, 24,141, 70,240,
-249,124,104, 52, 26, 80, 20,245, 98, 9, 72, 71,203, 77, 57, 99, 6,131,193,192, 96, 48,224,225,225,129,141, 27, 55, 66,165, 82,
-129,197, 98, 1, 0,228,114, 57,100, 50, 25,146,146,146,144,157,157,141,151,179,240, 38, 97, 33, 18,141,156, 60,121,114,131, 9,
-127,213,106, 53, 42, 43, 43, 81, 89, 89, 9,153, 76, 6,149, 74,133, 94,189,122,177, 79,199,198,142, 68, 89,217,214, 6,143,225,
-114, 39, 30, 60,120, 80,204,102,179,161, 84, 42, 81, 85, 85,133,188,188, 60,228,228,228,168,164, 82,169,222,194,194,130,116,119,
-119, 39, 57, 28, 14,103,220,184,113,132, 92, 46, 7, 65, 16, 8, 14, 14,182, 61, 28, 25, 57, 25, 26,205,151,230, 33,109, 26, 46,
- 0,234, 46, 26,205,232, 30,221,187, 95,190,115,247,110,192,210,165, 75,145,152,152,184,153, 31, 21,117,181, 6,120,216,212,177,
- 25,192,162, 47,234, 9, 24, 58, 39,199, 95, 11,148,212, 43,146,237,158,153,121,110,230,204,153,143, 18, 19, 19,237,182,109,219,
- 38,153, 52,126,252, 34, 0, 27, 90, 82, 71, 11,145,168,155,163,163, 35,206,158, 61,139,220,172,172,143,244,128,178, 69, 51, 46,
- 6,163,111, 96, 96, 32, 78,158, 60,137,252,156,156,143,244,191,173,227,139,137, 18, 80, 66,101,100,124, 20, 17, 17,177,111,206,
-156, 57, 96, 80, 84, 95,232, 91,180,112,248, 59,199,247, 57, 11,150, 34, 98,207,142, 8, 0,115, 1, 24, 1,220, 49,247, 56, 51,
-204,248,223,182,106, 53,167, 69,222, 32,177,181,167,197, 22, 45,177, 88,236, 44, 20, 10, 81, 80, 80, 0,159,246,237,165, 28, 14,
- 7,108, 38, 19, 92, 54,219,164, 26,212,212,212,248, 59, 57, 57,161,178,178, 18,118,118,118, 96,177, 88,117, 47, 54,155, 93,247,
-222,194,194, 2, 36, 73,194,205,205, 13, 53, 53, 53,254,205,242, 22, 39,137,163,118, 44,124,247,230,213,179,109,198,143,159, 0,
-107,107, 27,184,186,186, 64, 44, 22,131,199,227,193,213,213, 21,158,158,158,244,214,173, 91,193, 23,119, 52,233, 70, 94, 95, 60,
- 81, 20, 5,131,193,128,226,226, 98,164,166,166, 34, 49, 49, 17, 55,111,222,196,131, 7, 15, 80, 85, 85, 5, 19,116, 22,106,148,
-202, 78, 20, 69, 53, 40,178,100, 50, 25,100, 50, 89,157,208, 42, 41, 41, 65,118,118, 54,170, 21,138,206, 77,136,222, 9,126,126,
-126, 12, 0,224,241,120,232,220,185, 51,118,239,222,173,255,249,196,137,183,124,111,222,180,113, 61,127,222,234,251, 93,187,222,
- 10, 9, 9, 49,220,186,117, 11,114,185, 28, 79,158, 60,129,189,189, 61,197,230,114, 39,155,135,115,203,112, 31, 80,216, 85, 85,
- 13,239,221,187,119,102,101,101, 37, 62,255,252,115,146,105, 97,177, 39,188,145, 37,190, 58, 48, 24,125, 2, 3, 3,113,234,212,
- 41, 20,228,228,124,156,211,128,128,201, 1, 74,114, 51, 50, 62,142,136,136,192,208,161, 67, 65, 80, 84,159,150,214,175,103,207,
-158,126, 70,163, 17,143, 30, 61,130, 21,112,187,165,199,123,122,121, 5,212, 90,126, 5,192,181,198,202, 9,128,107, 9, 9, 9,
-224,241,120,240,241,245,237,210,194,159,217, 74, 16, 68,225,156, 5, 75, 17,115,238, 87, 0, 64,196,158, 29,197,245, 68,150, 25,
-102,152, 97,182,104,189,169, 22,173, 90, 97, 85,255,133,223, 8, 45, 19,197, 7, 0,128,201,100,130,205,225,128,205,102,191, 16,
- 72, 28,142,201, 28, 4, 65,128,203,229,214, 9,171,250, 2,171,254,123, 62,159,111,146,128, 1,128,138,244,115,253,230,190, 51,
-135,205,225,112,160,209,168, 65,211, 52, 56, 28, 46,172,172,172,224,225,225, 1,185, 92,142,222,125,250,171,243,100,172, 88, 91,
-159,113,137,175,115,246,244,122, 61, 20, 10, 5, 42, 42, 42, 80, 94, 94, 14,185, 92, 14,165, 82,105,242, 86,116,163,209,200,200,
-203,203,195,143, 63,254,136,178,178, 50, 0, 47, 28,173,107,197, 85,237,223,204,204, 76, 68, 70, 70, 34, 43, 43,171, 69,215,167,
- 95,191,126,136,141,141,101, 12, 8, 10,218,123,209,221,189,224,162,187,123,193,128,160,160,189,167, 78,157, 98, 56, 59, 59, 35,
- 59, 59, 27,247,238,221, 67, 69, 69, 5,104,154, 54,239,159,127, 13, 60, 3, 42,106,202,203,231,172, 90,181,138, 22, 10,133,248,
-252,139, 47, 58,109, 0,166,154, 42, 96, 68, 77, 8, 24,209, 31, 19, 48,160,105, 26, 70,163, 17, 6,195,235,249,138, 19, 4, 65,
- 48,153,204,150,134, 86,104, 73,225, 58,199,247, 21,159,108,196,153,147,209,181,159,167,153, 69,150, 25,102,152,241, 15, 64,163,
-142,240, 84, 61, 5, 89,247,183, 49, 20, 23, 23, 63, 87, 40, 20,109,220,221,221,145,159,159, 47,118,115,115,203, 97, 51,153, 96,
-177,217, 32,200,230, 53, 1,159,207,127, 84, 80, 80,208,199,217,217, 25,122,189,190, 78, 84,189,186,116, 88,107,165,121,240,224,
- 1,248,124,254, 35,168,154,140,156, 0,131,166,162, 85,151, 46, 93,234, 44, 67, 86, 86, 86,176,178, 18,129,195,225, 98,245,234,
-213,198,109, 91,183,238,116, 27, 20, 94,249,246,178, 85,244,170, 13,123,255,212, 51,107,234,131,137,207,231, 63,114,117,117,237,
- 37, 18,137, 16, 19, 19,131,236,236,108, 84, 84, 84,160,166,166, 6,106,181, 26, 53, 53, 53,208,104, 52,224,114,185,240,245,245,
-133,165,165, 37,226,226,226, 30, 65,173,110, 88, 92,150,149,197, 60,122,244,168, 87,247,238,221,235, 44, 42, 3, 7, 14, 36, 6,
- 14, 28,104, 87,103, 69,171,169, 65,105,105, 41,238,220,185,131,184,184, 56, 16, 4,129,180,180, 52,131, 90,169,252,201, 60, 38,
- 94, 15, 42,224, 6, 35, 34, 98,223,191,254,245,175,119,250,244,233, 3, 3, 48, 2, 64,228,127, 81,192, 0, 0,110,222,188,153,
-100, 48, 24,250,180,109,219, 22, 50,160, 7,128,147, 45, 18,145,233,233, 9,122,189, 62,168, 83,167, 78,136, 57,122,180, 31,128,
-236,134,202, 41,128,126, 1, 1, 1, 80, 42,149,120,242,248,241,253, 22,136,172,189, 43,215,110,158, 61,115,238, 34, 28,220,187,
- 19, 17,123,118,228,237,219,189,221, 21, 38,248,143,153, 97,134, 25,255, 83,214,172,102,181,200,223, 20,243, 27, 19, 95, 84, 75,
- 88, 42, 43, 42,238, 39, 36, 36,180,233,210,165, 11,246,238,221,219,189,119,175, 94,207, 89,108,182,158,205, 98,129, 52,225, 65,
-162, 84, 40, 46, 93,186,116,169,199,184,113,227,168, 91,183,110, 65, 34,145,212, 9,173,218,191, 20, 69,129,166,105,240,249,124,
- 28, 63,126, 92,171, 84, 40, 46, 53,107, 45, 50, 24, 13,228, 75,161, 71,211, 52,100, 50, 25, 88, 44, 22,190,252,114, 27,190,222,
-186,117,154, 1,136,246, 22,216,127, 8,128,251, 95,123, 64,215,212, 92, 62,115,230, 76,215,208,208, 80,166,139,139, 11,100, 50,
- 25, 42, 42, 42, 80, 86, 86, 6,185, 92, 14,185, 92,142,138,138, 10,200,100, 50,112,185, 92, 36, 38, 38,234, 84, 53, 53,151, 27,
-227,227,168, 84,199,102,205,154,181, 34, 33, 33,193,145,162, 40,232,116, 58, 24,141, 70, 24,141, 70,104,181, 90,164,167,167, 35,
- 57, 57, 25, 41, 41, 41, 40, 47, 47, 7,147,201, 4,131,193,192,131, 7, 15, 42, 4, 58,221, 81,141,121, 76,191, 54,152, 64,204,
-245,235,215,223,153, 49, 99, 6,156, 92, 92,250, 35, 63,223, 36, 1,115,162, 9, 1, 83,249,122, 2,230, 63, 2,168,170,234,110,
-102,102,102,159, 1, 3, 6,192,209,197,101,179,111,126,254,197,199, 45,240,211, 50,232,245,215,174, 95,191, 30, 52,115,230, 76,
-236,221,187,119,179,125,102,230,185,146, 87,150, 57,237, 1,251,214,158,158,155,103,207,158,141, 11, 23, 46,192,160,215, 95,107,
-130,178,126,196,247, 86,179,231, 47,113,125,197,241,125, 55, 65, 16,139, 1,124,110,238, 81,102,152, 97,198, 63,217,162,213,162,
-165, 67,158,193,176,114,249,242,229, 58,146, 36, 49, 97,194, 4,139,147,167, 78,133, 60,120,248,208, 67, 42,149, 90, 25, 12,134,
-102,185,236,213,234,237,203,151, 47,151,105, 52, 26,180,107,215, 14,229,229,229, 48, 24, 12,160, 40, 10, 20, 69,129, 32, 8,144,
- 36, 9,161, 80,136,132,132, 4,236,219,183, 79,110,175, 86,111,111,246, 33, 97, 48, 60,138,140,140, 4,131,193,160,185, 92, 46,
- 8,130, 0, 69, 81,216,182,109,155,244,107, 32, 6, 0, 24, 36,169, 1, 0,146, 36, 76,245,222,109,118,221,146,205,102,195,248,
- 98, 19, 64,179,101,173,213,234,175,182,108,217, 82,245,228,201, 19, 40, 20,138, 58,235, 91,117,117,117,157,115,189, 76, 38, 3,
- 65, 16, 80, 40, 20, 56,117,234, 84,149,181, 90,253, 85, 99,124,101, 64, 81,126, 90,218,152,238,221,187,151,101,102,102,162,178,
-178, 18,143, 30, 61, 66, 92, 92, 28,142, 28, 57,130, 11, 23, 46, 32, 61, 61, 29,122,189, 30,206,206,206,160,105, 26, 39, 78,156,
-168,212, 87, 85,141, 40, 3,138,204, 99,162,113,180,146, 72,130, 28,196,226, 92,123, 59,187,252, 86, 18, 73,208,171,223,139,128,
-167, 79,159, 62,133, 94,175,135,135,135,135, 77, 83,126, 90,180, 94,127,253,250,245,235,152, 57,115, 38, 92,219,180,217,228, 14,
-216,191, 90,198, 29,176,119,247,244,220, 84, 43, 96,104,189,254,122, 75,235,108, 1,236,248,240,195, 15,149, 44, 22, 11, 81, 81,
- 81, 30, 58, 47,175, 20, 10,152, 42, 4,218, 15, 0, 88,205, 29,239, 8,236,252,228,147, 79,138, 8,130,192,161, 67,135,236, 68,
-158,158, 73, 20, 48, 75, 4,180, 18, 1,173, 40, 96,150,200,211, 51, 41, 42, 42,202, 78,175,215, 99,217,178,101, 69,142,192,206,
- 38, 40,151,208, 52, 61,154,166,233, 64,154,166, 93,247,237,222,142, 51, 39,163,107, 69,214, 92,188,112,122,159, 1, 32,201,220,
-227,204, 48,195,140,127, 50, 26, 52, 67, 81,221,215, 23, 3,180,184,127,207,142,184,251, 48,181,210,206,218,242,124,237,119,229,
-201,209,109, 7,249, 91,118,252,246,219,111,193,100, 50,145,151,151,135,199,143, 31,195,210,210, 18,211,166, 77, 83, 43,171,170,
-198,212,203,117, 56, 24, 64,220, 75,206, 23,249,212, 42,211,132,158, 84, 98,155,115,103, 98, 25, 34,145, 8,213,213,213, 32, 73,
- 18, 92, 46, 23,124, 62, 31, 60, 30, 15,247,238,221,195,168,209, 99, 13, 37,252,192,255, 4, 44,253, 79, 62,181, 58,206,218, 88,
- 67, 61, 0,126, 2,240,129,216,201,105,249,154, 53,107,120,195,134, 13, 3,139,197,130, 75, 43,239, 34,143,225,159,239, 32, 73,
- 66,159, 95, 38, 95,237,217,202, 73,244, 56, 45, 27, 0, 33,213,221, 89,227, 84, 47,215,225,239,234,233,166,185,234,113,252,192,
- 86,203,206,157, 95,248,163,203,100, 50, 20, 23, 23, 67, 42,149, 66, 38,147, 65,161, 80, 0, 0, 98, 99, 99,113, 38, 62, 69,174,
-116, 9,201,104,172,158,255,105,123,170,133,147,246,118,235,195,145, 7, 24,246,246,246, 40, 46, 46, 70, 73, 73, 9,100, 50, 25,
-148, 74, 37, 12, 6, 3,202,203,203,241, 67,196, 1, 67,153, 48, 48,171, 46, 32,100, 83,156,138, 60,158, 77,245,175,206, 1,190,
-238,244, 59,239,188, 99, 97,105,105, 9,163,209,136,138,138, 10,228,230,230, 34, 51, 51, 19,241,241,241, 10,169, 76, 3,133,221,
-144,252,186,128,165, 13,112,254,137,120,227, 56,235,199,173,114,114,116, 44,200,201,201, 17, 27, 12, 6, 56, 59, 59,235,101,229,
-229,155,216,192, 5, 11,160, 16, 0, 93, 10,172,249,106,199,142, 57, 99,199,142, 69,183,110,221,242,138,138,139, 91, 55,212,151,
-104,128,209, 14, 16,213,184,184, 36,223,185,115, 71,146,155,155,139,153, 51,103,150,230, 60,123,246,113,173,191, 86, 37,208,207,
-221,211,115, 83, 84, 84,148, 93,155, 54,109,224,239,239, 95,196,205,205,237,144, 10, 84, 54,210, 63, 27, 29,155,178,167,167, 91,
- 47, 28,239,215,237,221,119,223,133, 94,175, 71,124,124, 60,110,223,190,141,156,156, 28,252,250,235,175, 50, 75,129,224,173,122,
-185, 14, 27,236,159, 35,188, 21, 30,135, 14, 69, 18, 44, 22, 11, 17, 17, 17, 72, 72, 72, 0, 0, 4, 4, 4, 96,246,236,217,208,
-235,245,152, 62,125, 6,125, 58,149,151,209, 84,255, 4,224, 7,224, 11,188, 16,121,221,104,154,230, 18, 4, 81, 0,192, 21, 45,
-243,201, 50,247, 79, 51,167,153,243,127,135,243, 31,137,102,115, 29,174,255, 14,162,223,166,249,152, 87, 16,189, 59,156,234,219,
- 47,176,125,120,216, 90,178,123,247,238,112,117,117, 69, 64, 64, 0,114,115,115, 57, 86, 86, 86,205,229, 83,171, 14, 28, 62, 53,
-179, 99,199,142, 86, 31,127,252,177,104,232,208,161, 76, 87, 87, 87,208, 52,141,132,132, 4,196,196,196,104,247,238,221, 43,175,
-113, 24, 45,187,127,229,199,106, 83,242,169,221, 6,106, 0,172,115, 41, 40,216,179,104,225,194,181,157,187,116,121, 39, 44, 44,
-140, 20,242,121,204,141,171,231,114, 1, 96,253, 55, 71, 68, 99, 67,166,225, 43, 47,160,255,212,134,243,200,213,175,103,110,254,
-188,156,145,227,131,188, 62, 88, 60,199, 48,121,242,100,129,165,165, 37, 92, 93, 93, 97,109,109,141,140,140, 12,228,231,231,211,
- 63,255,252,115,245,205, 7, 79,153, 39, 46,220,205,225,138, 28, 77,201, 75, 88, 21, 56,108, 82,214,200,145, 35,173,103,205,154,
-101,209,181,107, 87, 38,135,195, 1,135,195, 65,113,113, 49,210,211,211,181, 63,255,252,115,117,141,120, 68,197,253, 43, 81, 85,
- 38,230, 58, 84, 6, 78, 9, 79,191,118, 49,108, 89,242,163, 71, 51,140, 64, 39,173, 86,235,108, 48, 24, 8,146, 36, 11,141, 70,
-227, 35,109, 85,213, 62,117, 64,216, 54,115,174, 67,211, 96, 48, 24, 88, 6,131, 1, 50,153, 12, 23, 47, 94,164,158, 61,123,182,
-230,225,195,135,107, 10, 10, 10,160,211,233, 48,113,226, 68, 4, 4, 4,224,202,149, 43, 40, 41, 46,254,185, 41,174, 84,160,146,
-147,159, 63,123,222,188,121,103, 35, 35, 35,201,135, 15, 31,218, 69, 68, 68,252,208,144,128,153, 49, 99,134,177, 56, 55,119,182,
- 26,168,108,162,127, 54, 53, 54, 75,207, 69,125,253,112,220,132, 16,223,176,208, 53,204,222,189,123,195,206,206, 14,253,250,245,
-131, 86,171,181,242,241,241,105,110,108, 86, 5, 14,127, 43,163, 83,167, 78,130,109,219,182, 73,230,204,153,131,197,139, 23, 3,
- 0,148, 74, 37, 46, 92,184,128,101,203,150, 21,229, 82, 61, 20,205,245,207,151,150,170, 90, 1,118, 21, 64, 32,128, 12,152, 29,
-223,205, 48,195,140,127, 38,106,147, 74, 59,226, 69, 98,233,211,120, 49, 57,111, 62,215,225,181,219, 73,168,159,230,227, 5, 28,
- 31,235,221,102, 61, 91,176,124,147, 63, 67, 39,183,102, 18, 42,203,180,167, 79,137,230,114, 30,214,229, 83, 19,121, 87,219,102,
-254,212,125,227,250,245, 75,191,250,234,171,160,218, 16, 14,124, 62,255,145, 82,161,184,100,175, 86,111,175, 17,121, 95,106,105,
-110,190,124,160, 24,192, 66,235,251,247,119, 4,143,157,184,133,107,227,193, 92,181, 97,175,138, 65,146,154,244,130, 18,124,229,
- 5, 8, 76,216, 32, 89,163, 1,146,101,142,250, 98,219,144,212, 79, 62,252,240,131,245,235,214,117, 23, 10,133,253,181,122,189,
-183,209,104, 4,140,198,180, 26,133,226, 42,173,213,222, 81, 7,132,110,229,138, 28,105,147,243, 18, 90,249, 84,217,100, 69,119,
-223,191,111,223,146,163, 71,143,254,174,237,182,106,245,142, 26, 43,159, 56, 83,218, 94,191,140, 10,184, 1,169,244, 70, 83,166,
- 75,115,174, 67, 19,103, 31, 70,227,124,107,107,235,131, 65, 65, 65,220,193,131, 7, 99,212,168, 81,232,221,187, 55,140, 70, 35,
-104,154, 70, 85, 85, 21,142, 28, 57,130, 45, 91,182,164,181, 6,214, 53,199,167, 6, 46,113,206,156, 25,209,169, 83,167,136,166,
- 4,204, 75,145,213,172, 79, 98,211, 99,147,147,166, 23,141,201,158,178,104,163,151, 70, 94,104,101,203,215, 75,146,147, 30,145,
-166,143,205,118, 85,134,132, 35, 61, 38,142, 31,191,136, 65, 81,253, 94,238,128,164,159, 60,126,124,191, 54,169, 52, 2,102, 95,
-108, 97, 95,170,141, 93,103,118,124, 55,195, 12, 51,254,233, 66,107, 20, 94,248,107,213,165,228,105, 52,215, 97,173,213,135,162,
- 40,105,198,137, 5,211,154, 98,103, 2, 65, 47, 45, 89,104, 54,215,225,203,247,217, 64, 21,212,234, 79,127, 19,140,180,222,238,
- 66,230, 43,229, 91, 18, 22,177, 2, 72,133, 94, 29, 12,233, 99,224,212,194, 23,124,221,215,127, 84,191, 77,141, 62,100,127,243,
-187,172,114, 21,112, 13,213,213,215, 80, 93,221,160,211, 46,147, 98,149, 55, 87,207, 87,219,158, 11,200,255,104,219, 95,229,108,
- 86, 60,252,129,243,249,191,134,231,165,165, 39, 0, 8, 93, 98, 99, 29,206,197,198, 78,254,224,253,247, 39, 58, 58, 57,121,218,
-217,217, 89, 91, 88, 88,144,183,110,221,202,212,171, 84, 59, 58, 3,251, 95, 90, 83,155,133, 26,184,212, 46, 55,183,195,164,241,
-227, 23, 17, 20,213,183,190,128,161,245,250, 95, 61,128,157, 77, 89,178, 94,119,108,186,114, 28,131, 94, 90,178,192, 0,230,153,
-210, 55,242, 95,212, 99, 3,244,250, 13, 72, 76,108,160,207,183,184, 47,173, 39, 8,162, 10,102,199,119, 51,204, 48,227,159,139,
-218,124,135,167,255,191,127,120,176,153,211,204,249, 15,226,100,224,197, 46, 58,243,249, 52,115,154, 57,205,156,102, 78, 51, 76,
- 2,101, 62, 5,102,152, 97, 50, 12,248,207, 50,152, 25,102,152, 97,134, 25,102,212,162,214, 55,171, 62,246, 0, 47, 92,119, 26,
- 83,165, 45,217, 77,240, 58,202, 54,206,204,105,230, 52,115,154, 57,205,156,255, 21, 78, 62,126,191,236,109, 62,159,102,206,255,
- 47,206,230,184,223,196,221,140,181, 62, 89,117,190, 89,255, 95, 48,155, 85,205,156,102, 78, 51,167,153,211,204,105,230, 52,115,
-254,211,225,248, 82,100,213,127, 1,104, 97,192, 82, 51,204, 48,195,140,127, 42,194,194, 64,210, 52, 8,154, 14, 35,105,250, 40,
-131,166, 67, 24, 52,141, 63,148, 10, 36, 36,164,225, 96,182,255,158,102,109, 97, 62,227,102,152,241,143, 66, 33, 26, 73, 42,109,
-246,209,250,239,194, 77, 34,145,236, 6, 64, 20, 21, 21,205, 7,144,107, 62, 37,127, 63,216,216,216, 4,233,245,122,200,229,242,
- 75,127, 22, 39,131,193, 32, 12, 6, 3,253,119,104,159,175, 39,198,211, 36,124,234, 62,160,145,251, 36, 29, 7, 27, 42,235,227,
-133,153, 32,254, 19,139,139, 48,226,201,227,103, 56,222,130,159, 35, 71, 12,118,221, 9, 0,103,227,242, 22,225,175,137,171,213,
-214,222,222,254,114,207,188, 0, 0, 32, 0, 73, 68, 65, 84,254, 60, 69, 81,148,193, 96, 88, 40,149, 74, 99, 27, 23, 66, 33, 12,
- 0, 96,210, 87, 86,202,138,196, 31,191,247, 47,130, 89,163,222, 39, 83, 43, 21,149, 12, 38, 35,139,195,148, 92, 95, 48,135, 60,
- 91, 81,221,235,113, 67,199, 71, 71, 71, 55,154,197,187,131, 23, 70,144, 6,223,209, 1,126,153, 25, 95,108,239,254, 85,127, 15,
- 59,102,102,222, 3,225,230, 93,149,187,217, 86,238,163,103, 78, 38, 98, 41, 62, 49, 99,223,190,178,234,127,234,216,217, 8,144,
- 58, 38,179, 29, 97, 52,122,128, 32,248, 4, 0,218,104, 52, 18, 36,153,201,213,235,159, 46, 7,170, 95,131,211, 70, 11,248, 51,
- 57, 28, 87,131, 94,239, 64, 0, 52,131,162,138,117,106,117, 30, 11, 72, 92, 9,200,254,233,156, 44, 14,199,197,160,215, 59, 0,
-192,223,177,158,102,252, 22,141, 10, 45,161, 80,120,143, 36, 73,151,250,201,112,107,243, 9,214,126, 86,255, 59,130, 32, 96, 48,
- 24,242, 43, 42, 42,186,182,224,247, 45, 1, 76, 6, 80,187, 69,253, 48,128, 35,120,125,135, 99, 75, 22,139,181, 92, 32, 16, 12,
- 82, 42,149, 29, 0,128,199,227, 37, 43, 20,138,203, 90,173,246,139,215,228,165, 0, 76, 18, 10,133, 3, 73,146, 28, 72,211, 52,
- 65,211,244,149,234,234,234,203, 0,142, 2,120,157, 72, 9, 60,177, 88,188,193,198,198,102,234,202,149, 43,203,108,109,109,219,
- 45, 91,182,236,110,121,121,249,143,165,165,165,171,209,130, 28,117,127, 49, 60, 37, 18,201, 97, 38,147,201,200,203,203, 27, 8,
- 0,174,174,174, 87, 52, 26,141, 65, 42,149, 78, 3,240,172,133,124, 2, 0, 61,133, 66, 97, 87,161, 80, 24,104, 48, 24,124, 94,
-230,103,124, 82, 93, 93, 29,175,213,106,239, 1,184, 5, 64,241, 55, 26, 35, 22, 20, 69, 69,190,236,235,222, 0,170,254, 12,210,
-191,139,200, 2, 0,154,132,207,227,228,148,118,117,194,171, 67,251,198, 11, 19,112,107,160,172,201, 66,107, 80,127,199,209, 99,
-198, 12, 33, 1, 64,163, 59, 59,250,242,213,194,147,127,114,115,218, 78,152, 48,225, 70,100,100,164,181, 90,173,198,252,249,243,
- 15,199,197,197,237,148,203,229, 43,155,188,113, 8,173,151,125,190,237, 2,159, 32, 72, 0, 16, 27,141, 6,241,243,231,207,188,
- 31, 39,221, 24,158,156,124,115,163, 50,229,242, 45, 35,193, 92,160, 69,191, 20, 83, 42,225,227,129,224,209, 19,199,143, 90,183,
- 46, 12, 83,223,154,218, 42, 57, 89,197,115,182,204, 96,151, 43, 5, 94,182,246,226, 49,235,214, 71, 19,215,175,157, 24, 19, 25,
- 17,126,121,206, 28,219, 65,255, 64,177, 69,172,101,179,221,116, 6,195,112, 18, 40,164, 44, 44, 50,192, 98,213, 0, 0,105, 48,
- 48, 52,114,185,103, 13, 69, 77,255, 20,184,243,137, 94,255,192, 84,206,245, 20,213, 83,228,229, 21,248,214,137, 19, 16,186,186,
- 82, 20,135, 67, 2,128, 94,173,118,173,206,203,115,140, 26, 51,166, 71,216,211,167,191,132, 1,183,205,156,255, 21, 78, 51, 90,
- 34,180, 72,146,116,121,254,252,185, 88, 32, 16,188,184, 25,211, 52, 12, 6, 3, 12, 6, 67, 93,242, 98,154,166,235,254,234,245,
-122,180,111,223,222,164, 25, 45,128, 65, 0,222, 30, 48, 96, 64,200, 23, 95,124,193,244,247,247,175, 77, 25,210,111,213,170, 85,
-223, 36, 36, 36, 28, 3,176, 31, 47,130, 55,154, 58,227, 29, 38, 16, 8, 14,125,254,249,231,150, 67,134, 12,161,156,156,156, 64,
- 16, 4,138,138,138,122,198,197,197,117, 93,182,108,217, 66,133, 66, 49, 29,192,249, 22,156, 31, 63, 11, 11,139,232,241,227,199,
-187,244,239,223,159,235,235,235, 11,131,193,128, 7, 15, 30,204,185,119,239,222,148, 99,199,142,173,173,170,170, 10,129,233,249,
-218, 8,161, 80, 56,203,210,210,114, 67,104,104,168,205,244,233,211,217, 73, 73, 73, 21, 30, 30, 30,196,245,235,215,237,143, 28,
- 57,178,112,211,166, 77,147,228,114,249,234,234,234,234, 3, 48, 33,135,162,133,133,197, 61,146, 36, 93, 76, 17,194, 47, 31,240,
-166,138,225,206,173, 91,183, 62,114,237,218,181,214,217,217,217,134,113,227,198, 29, 4,128,203,151, 47,251,235,116, 58, 98,232,
-208,161,103,243,243,243, 39, 3, 48,245, 38,217,209,198,198,230,228,212,169, 83,109, 60, 61, 61,249,173, 91,183, 38, 4, 2, 1,
- 24, 12, 6, 42, 43, 43,157,146,146,146, 6,223,190,125, 91, 25, 23, 23, 87,174, 86,171,199, 0, 72,108,193,117,234, 45, 22,139,
-103, 48,153, 76, 63,189, 94,239, 12, 0, 20, 69, 61,215,233,116, 73, 82,169, 52, 18,192,141,215, 29, 32, 14, 14, 14, 95,111,216,
-176,193, 78, 42,149,210,155, 54,109,250,186,170,170,106,150, 41,199, 69, 68, 68,144,179,103,207,254, 75,162,160,175, 91, 23,206,
- 12, 13, 93,171,251,179,121, 15,255,120, 20,247,238,222, 6, 94,164,205, 33, 26,232,127, 4, 0,214,123,239,189,143,174,221,122,
- 96,218,212, 73,205,114,142, 12,114,249,156,201,102,217,170, 84,170, 27,149, 53,234,163, 2, 62,119,242,212, 41,193,105, 0,112,
-246,220, 47,147,187,119,183,190, 34,226,115, 38,113,185,220,222, 58,141,182,236,204,165,252, 15, 91, 34,170,156,157,157,207, 91,
- 91, 91,243,203,203,203,139, 74, 74, 74,190, 27, 61,122,244,250,253,251,247, 91,103,102,102, 34, 47, 47, 15, 75,151, 46, 21,230,
-231,231, 47, 74, 76, 76,188,169,209,104, 26,181,108, 85, 85,149,111, 95,245,241,216, 80,145,200,142, 33,224, 91,194, 66,100, 3,
- 15,207, 78,232,217,123, 52, 70,140,122, 7,233,105, 9, 61,247, 71,172, 75,120,254, 60,238, 51,161, 77,155,245, 50, 89,235, 70,
-175,173,111, 91,244, 31, 51,254,133,200, 10, 13, 13,195,211,148,148,170,236, 44,242,223,167, 79, 80,252, 17, 65,237, 57,122, 77,
- 81,246,245,107, 39, 90,247,237, 55, 14, 0,186, 70, 70,132, 95,254,247, 52,235,160,175, 15, 87, 84,253, 67,158, 43,196, 58, 38,
-211, 15,122,125, 91, 91, 71,199, 40,149,209, 72,235, 42, 43, 93,141, 53, 53,142, 0,160,103, 50, 53, 2,161,240,145,147,151, 87,
-252,211,251,247, 3, 63,165,168,126,159, 52,157,160,188,150,115,214,176,109,219,196, 1, 11, 23,178,170,179,178,180, 25,187,118,
-213, 20,199,199, 27, 40, 14,135,118, 29, 62,156,176, 31, 56,144,187,240,201, 19,214,175,155, 54, 5, 50,195,195, 61, 86,107,181,
-135,204,156,255,175,156,255,235,168,117,130,175,191,251,112, 79,147, 66,139, 32, 8, 8, 4, 2, 68, 69, 69,129,201,100,130,162,
- 40, 48,153,204, 70,223,187,185,185,153, 82,145, 9, 18,137,228,155,157, 59,119, 58, 12, 27, 54, 12, 92, 46,183,238, 11, 6,131,
-129, 33, 67,134, 96,240,224,193,204,130,130,130, 41, 81, 81, 81, 83, 54,110,220, 88, 44,147,201, 22,227,101, 98,232, 38, 48,176,
- 93,187,118, 49, 23, 46, 92,224,169, 84, 42,196,199,199,163,162,162, 2,108, 54, 27, 46, 46, 46, 24, 58,116, 40,149,146,146, 98,
- 51,100,200,144,152,167, 79,159, 6, 3,184, 98, 66, 93,187,138,197,226,171, 71,143, 30,229,118,234,212,137, 72, 79, 79, 71, 64,
- 64, 0, 0,160,178,178, 18,227,198,141,227, 78,159, 62,221,115,202,148, 41,183,164, 82,105,127, 0,247,154,225,235, 34,145, 72,
- 14,140, 31, 63,222,105,227,198,141,150, 22, 22, 22,200,206,206, 46,148, 72, 36,222,181,231,123,202,148, 41,236,209,163, 71, 59,
-110,217,178,101,123,116,116,244,135, 82,169,116, 22,128,251, 77,170,214,151,130,152,207,231,163,184,184, 24,135, 15, 31,198,162,
- 69,139,192, 96, 48, 32,149, 74,113,228,200, 17,252,251,223,255,174, 21, 52, 38,137, 97, 62,159, 63,216,203,203,235,135,203,151,
- 47,187, 88, 89, 89,193,201,201,137,252,228,147, 79,252, 60, 60, 60,120,173, 90,181, 98, 20, 22, 22, 34, 38, 38,198, 99,198,140,
- 25, 39,115,115,115,231,168,213,234,102,151,212, 28, 28, 28,246,157, 62,125,218, 45, 57, 57, 25,187,118,237, 66,121,121, 57,216,
-108, 54,172,172,172, 32,145, 72,224,237,237, 77,124,252,241,199,252,209,163, 71,243, 23, 47, 94,188, 79,163,209,116, 54,225, 26,
-117, 18,139,197,187, 7, 14, 28,232, 17, 30, 30,110, 37,145, 72, 80, 59, 49,168,172,172,116,201,206,206,238, 25, 26, 26, 26,114,
-239,222,189, 76,169, 84,186, 0,192,195, 22, 14,156,206,190,190,190,193,227,198,141, 99, 20, 22, 22, 34, 50, 50, 50,184,170,170,
-170,179, 41,226,146,162,168,191,204, 98,101,164,105, 14,128, 63, 93,104,221,187,123, 27,243,223, 93, 90,237,228,234,202,186,112,
-254,135, 9,209,199,219,222,181,226,189, 72, 72, 45, 83, 66, 27, 50,254,105,183,161,195,222, 97,141, 28, 53,174,122,207,183,219,
-133,166, 8, 45, 38,155,101,123,248,208,151,185,215,174,223,243,187, 24,119,123,248,132, 49, 99,104, 22,203,202, 3, 0, 62, 92,
-246, 30, 51,230,212,169,136, 33,131,123, 20,244,235,219, 53,119,218,244,247,221, 90, 80,221,182,109,219,182,253, 37, 33, 33,193,
-129,195,225,160,188,188,220,118,207,158, 61, 95,246,237,219,151,204,200,200, 64, 74, 74, 10,178,178,178, 80, 89, 89,137, 33, 67,
-134, 8,239,223,191,255, 29,128, 70,133,150,150, 28,180,193,169,149,110,135, 45, 79,208, 90,107,144,139,105, 93,161,239,197,211,
- 23, 59,254, 20,169, 12,112,112,108,239,253,246,236,181, 88,183,254, 24,243,199,195,155, 67, 47,197,253, 4,144,173, 27,207, 8,
- 64,163,247,170,213, 43, 33,175, 82, 99,250,212,121,152, 49,117,158, 45, 13,141, 35,109, 80, 9, 52,202, 10, 43, 11,214,147,216,
-157,123,191, 28, 15,192,165,158,216,186,244, 79, 17, 91,235, 88,172,214, 48, 26, 61,188,199,141, 59,145,113,238, 92, 27, 90,171,
-181, 99,176,217,249, 22, 54, 54,197,122,181,154,214,105,181, 44,165, 82,233,156,145,156,236,216,247,227,143, 47, 93,223,180,169,
-255,167, 12, 70,183, 79, 12,134,187,141,114, 82, 84,143,224,111,190,177,247,155, 59,151,243, 48, 60, 92, 81, 26, 31,175,244, 26,
- 57,178, 34,224, 95,255, 82, 3, 64, 85, 86, 22,235,233,218,181,124,251,192, 64, 94,175,229,203,173, 13, 26,141,100,221,186,117,
-221, 67, 95, 36, 47,111, 17,167,219,228,201,134,208,136,136,110,241,239,191, 63,128,208,233, 24,195,123,245,122,176, 41, 50,242,
-249, 31,225,252, 51,235, 89,112,245,170,186,220,195, 3, 1,227,198,149,185,137,197,234, 63,179,237,127,164,158,102,212,161,214,
- 87,107,126,253, 25, 42, 98, 99, 99,251, 3,248, 5, 64,120,112,112,112, 24, 0,136, 68,162, 98,153, 76, 38,142,137,137,105, 86,
-100, 49,153, 76, 56, 58, 58,194,219,219, 91, 42,149, 74, 29,154,168, 64,158,209,104,116,161,105,186,206,250,210, 24,212,106, 53,
-210,210,210,208,177, 99,199,124,188, 72, 68,219,168, 81,135,207,231,103,164,164,164,216, 61,126,252, 24,247,238,221,131,135,135,
- 7,172,173,173,193,100, 50,161,211,233, 32,151,203,209,174, 93, 59,112, 56, 28,116,233,210,165, 84,161, 80,120, 52,179, 4,196,
- 17, 8, 4,105, 87,175, 94,117, 13, 8, 8,192,157, 59,119,224,234,234, 10,137, 68, 2, 0,200,202,202,194,245,235,215, 49,114,
-228, 72, 36, 36, 36, 96,226,196,137,121, 10,133,194, 27,128,186, 49, 66, 27, 27,155,194,203,151, 47,231,251,251,251,171, 20, 10,
- 5, 89, 92, 92,204,140,143,143,215, 87, 85, 85, 9, 43, 43, 43,153, 50,153,140, 41,151,203, 41,133, 66,193, 36, 73,146,165, 84,
- 42,153,151, 46, 93, 98,104,181,218, 38, 3,100,214, 94,167, 83,167, 78,193,223,223, 31, 49, 49, 49,248,224,131, 15,240,235,175,
-191,194,213,213, 21, 71,143, 30,197,242,229,203,145,154,154, 10, 59, 59, 59,248,250,250, 54,119,141,224,233,233,153,254,232,209,
- 35, 79, 22,139, 85,155,215,177, 54, 95, 30, 74, 74, 74,240,236,217, 51, 60,127,254, 28, 94, 94, 94,152, 58,117,234,179,231,207,
-159,123, 53,215,243,156,157,157, 75,146,147,147,237, 58,118,236,136,226,226, 98, 88, 89, 89, 65, 36, 18,193,202,202,170,238,189,
-135,135, 7,222,127,255,125, 72, 36, 18,169, 74,165,114,104, 78, 4,249,251,251,159,191,116,233,146,157,165,165, 37,138,138,138,
- 32,151,203, 65, 81, 20,248,124, 62,236,236,236,234,132,124, 90, 90, 26, 70,141, 26, 85,154,145,145, 49,172, 5, 22, 56,210,193,
-193, 33, 37, 49, 49,209,155,166,105,228,230,230, 34, 53, 53, 21,239,190,251,110,154, 74,165,106,143,255, 98,206,190, 3,251, 15,
-112,102,189, 61, 75,253,103,241,213,243,187, 98,205,154, 61,159, 53,126,108,111,205,147,228, 88,130, 99, 76, 69,103, 63,203, 74,
- 0,120,144, 36, 23,169,201,118,240,233, 16, 76, 31, 63,121,131,125, 96,255, 30, 38,140,112, 0,129,212, 39,105,248,180, 49,238,
-161, 3, 29,231,190,247,222, 28,191, 1,125,251,147, 85, 10,133,248,187,239,182,117,201,200,120, 34, 6, 0, 15, 15, 31,233,194,
-133,203,238, 91, 8, 4,210, 95,174, 95, 53,126,245,213,190,164, 11, 87, 10,247,154, 80,101, 15,111,111,239,155,167, 78,157,178,
- 19,139,197, 16,137, 68, 80, 40, 20,208,106,181,120,252,248,177, 42, 42, 42, 74,103,105,105,105, 81, 84, 84, 4,153, 76, 6,130,
- 32,112,234,212,169, 92, 0,238,175, 18,213,250,104, 1,192,187, 35,124,152,190,131,188,173, 89, 28, 61,143,199,124,234, 8,194,
-192, 33,104,161,195,217,243, 15, 58,158,189,120,103,218,248, 9, 31,216,247,235, 63, 30,161,107, 66,116, 5, 5,185, 1, 90,244,
- 75,105,200, 71,171,189, 23, 6,141,155, 56,126,210,186,117, 97, 8, 11, 13, 71,236,169, 19,149, 66, 1,169,182,180, 98,138, 2,
-123,246, 81,189,191,104,108, 94,117,117,129,235,186, 45, 81, 83, 71,141,125,223,165,111,191,113,184,126,237, 4, 34, 35,194,239,
- 17, 60,250,141, 94, 70, 92, 11,176, 72,138,122,199,169,117,235, 67,210,130, 2,103,190, 80,200, 92, 26, 23, 39, 54, 24, 12,119,
- 39, 45, 95, 94,117,252,210,165,186, 9,200, 39, 36,233,196, 96, 48,156,188, 71,141, 74, 76,143,141,125,135,163,215,199,124, 4,
-148,188,202, 25, 6, 88, 91,121,120, 44, 88,146,150,198,122, 24, 22, 86,173, 47, 40,168,232,186,108, 89,105, 67,191,159,127,241,
-162,128,237,228,100,105, 61,102,140,205,118,119,119, 90, 39,149,238,110,200,199,168, 33,206, 56,161,208,234,167,179,103,131,104,
- 38,179,255,138,143, 62,226, 5, 7, 7, 67, 46,151,227,216,177, 99,216,189,107,151,218,209,209,241,145, 83, 82, 82,130,159, 92,
-190,198, 84,206,174,203,150,149, 26, 12, 6, 98,210,242,229, 67,146,179,178, 6, 21, 73,165,173, 0,192,209,198, 38,175,171,135,
-199,189,125,177,177,169, 95,183,110,109, 52,181,158,223,159, 59,231, 16,157,157, 61,215,198,198,134, 87, 44,149, 82, 28, 54,187,
-172,167,175,239,209,111, 87,175,254, 69,159,152,200,226,186,184, 88,138,130,131, 91,220,246,174,203,150,149,150, 87, 85, 81, 75,
-214,175,239,147, 83, 92,220,170, 90,173,246,146, 85, 85, 73, 12, 58, 29,105,201,231,151,181,105,215, 78,170,140,143, 47,108, 83,
- 83,179,116, 47, 32,253,171,250, 79, 67, 90,228, 13,194,171,113,180,126,151,235,240,151,224,224,224,223,237,174,161,105,218, 36,
-107, 22,147,201,252,205, 50, 85, 19, 96, 17, 4,129,251,247,239,195,214,214, 22, 18,137, 4, 28,206,111,147, 15,150,148,148,224,
-215, 95,127,197,147, 39, 79,208,169, 83,167,218,101,140,198, 21, 17,135,243,222,150, 45, 91,172, 52, 26, 13,238,221,187,135,174,
- 93,187,130,195,225,128,197, 98,253, 70, 4, 74,165, 82,116,232,208, 1, 43, 86,172, 16,109,220,184,241, 61,181, 90,189,174, 9,
-107,196,226,121,243,230,137,107, 45, 88,121,121,121,232,210,165, 75,221,247,246,246,246,120,240,224, 1,186,118,237, 10, 23, 23,
- 23,132,132,132,136, 35, 35, 35, 23,235,245,250, 47, 26,227,100,179,217,164,191,191,127, 55, 0, 16, 8, 4, 32, 73,242,169,165,
-165,165,189,131,131,131,192,210,210,146,213,192,210,147,140, 36,201,102,173, 22, 36, 73,162,168,168, 8,126,126,126,168,172,124,
-145,193, 69,161, 80,192,203,203, 11,114,185,188, 78,180, 58, 57, 57, 65,169,108,218,245,171, 99,199,142, 97,237,219,183, 31, 42,
- 16, 8, 56, 76, 38, 19, 15, 31, 62, 68, 64, 64, 0,162,162,162,224,230,230, 6, 62,159,143,180,180, 52,248,251,251,227,234,213,
-171,176,183,183, 71,135, 14, 29, 56, 98,177,248, 90,121,121,249,149,156,156,156,176, 38,234, 73, 10,133, 66, 92,189,122, 21,251,
-246,237, 67, 86, 86, 22, 10, 10, 10, 96, 97, 97,129,206,157, 59,195,215,215, 23,189,123,247, 70, 90, 90, 26,136,230, 59,147,196,
-219,219, 59,246,206,157, 59,118, 52, 77, 35, 50, 50, 18,213,213,213,208,104, 52, 32, 73, 18, 92, 46, 23,214,214,214, 24, 52,104,
- 16,236,237,237,225,237,237,141, 35, 71,142,216,141, 24, 49,226,140, 84, 42,237, 12,160,168,185,243,106,109,109,189,116,237,218,
-181,174, 98,177, 24,217,217,217,168,172,172,132,131,131, 3, 6, 12, 24,224, 28, 23, 23,183, 84,167,211,109,251,111,141,230, 63,
- 83,100, 1, 64, 61,199,119,226,194,249, 31, 38,120,183,169,240,239,212,142,239, 26, 19,235,224, 26, 21, 43,237, 0, 0,126, 62,
- 14,201, 19,130,249,121, 15,147, 99,243, 46,156, 63,113,239,201, 83,196,152,178,180, 93, 89,163, 62,122, 49,238,246,240,128, 78,
- 93,140, 91, 54, 47, 31,181,232,221,185, 28,177,195, 59, 40,206, 61,129,184,203,247,221,150,127, 48,207,254,139,173,223,159,189,
- 24,119,155,172,172, 81,175, 49,205,148,229,246,245,254,111,123,219, 85,149, 70, 35, 61,133, 13,158,133, 31, 60, 60,218, 66, 46,
-151,131,203,229,114,167, 78,157,106, 88,185,114,101,141,165,165, 37,159, 32, 8, 92,185,114, 69, 10, 96, 88,115,188, 42,177, 53,
-109,208,234,244, 52,155, 97,164, 9, 11, 37, 97, 40,103, 39, 61,206,196,208,193, 3,139,251,246,240,219,184,114,221,214, 85,222,
-109, 3,236,231,204, 13,103,174, 15,155,182, 11, 4,250, 53,196,147,146,142,203,196,209,227, 60, 0,163,214,125, 26,134,140,140,
- 52,235,249,111,203,194, 41, 14,207,169,189,123, 31,139, 93,251,174, 12,247,242,106,221,234,253,197, 33,167,191,252,230,203, 81,
-245, 45, 91,251, 35,214,158, 4, 16,100,202,185,253, 59,130,164,168,118, 36, 65,228,201,107,106, 24,180, 86,107,183, 52, 46, 78,
-121,225,214,173, 75,137,243,231, 91,116,100,177,218,118,100,177,192,208,106,203, 86, 3,165,159, 26,141, 5,107, 41,202, 50,243,
-228, 73, 39,138,205, 78, 80, 25,141,254, 48, 26, 27,138,159,212,113, 70,108, 44,170,115,115,117,229,215,174,169,130,190,249,166,
-212,117,216,176,109, 26,173,214,174,246, 86, 65, 18, 4,136, 90,215, 9,163,145,160, 86,172, 32,105,138,130,206,218,250,109, 84,
- 84,180,109,142,243,131,194,194, 9,211,230,206, 29,117,242,220, 57,180,110,221,186,238,121,102,101,101,133,229,203,151, 99,217,
-178,101,156, 7, 15, 30,116,143,142,142,238,254,197,231,159, 59, 0,152, 96, 74, 61, 47,220,186,101,253,175,117,235, 86,119,234,
-218,213,237,224,225,195, 28, 79, 79, 79, 0,192,179,103,207,188, 55,111,218,228,238,231,239, 95,188,241,189,247,246, 39,175, 92,
-217, 1,192,181,166, 56,139,226,227, 53,209,217,217,115, 47, 95,185, 98,229,231,231, 7, 0, 72, 77, 77, 21,111,223,190,125, 94,
-135,144,144,233,235, 22, 46, 92, 19,172, 82,201, 44, 75, 74, 56,193, 95,127, 77,253, 52,105, 82,179,156,181,245, 4,128, 1,115,
-230,188,215,111,224, 64,223, 9,115,231,218,184,185,185, 17, 66,161, 16, 90,173, 22, 5, 5, 5,214,201,201,201,158,177, 85, 85,
-242,227,183,110, 69,194, 96, 24,242, 23,118,161, 6,181,200, 27,102,201,250,253,184,120,249,119, 64,108,108, 44,253, 82, 77,214,
- 61,192, 13, 6,131, 73, 34,139,162, 40, 16, 4, 97,170,216, 2, 77,211, 40, 45, 45, 69, 82, 82, 18,158, 61,123, 6,133, 66,129,
-204,204, 76,236,217,179, 7,155, 55,111,198,221,187,119,161,211,233,160,213, 54,159,131, 86, 32, 16, 12, 30, 60,120, 48,117,235,
-214, 45,120,120,120,128,199,227,129,205,102,131,197, 98,213,189,184, 92, 46, 28, 29, 29, 33,151,203, 17, 20, 20,196, 20, 8, 4,
-131,155,177, 18,141,156, 60,121, 50,187,246,255,234,234,106, 48, 24,140, 58,209, 82, 93, 93,141,242,242,114,200,100, 50, 20, 22,
- 22,162, 87,175, 94,108,145, 72, 52,210,212,171, 81, 83, 83, 83, 45,149, 74,173,250,245,235,103,253,228,201,147,223,101,251,253,
-229,151, 95, 84, 42,149,138, 73,146,164, 73,142,246,135, 14, 29, 66, 76, 76, 12, 46, 93,186,132,252,252,124,236,218,181, 11, 7,
- 15, 30,196,169, 83,167,144,150,150,134, 29, 59,118,224,187,239,190,195,254,253,251,155,188, 70,237,219,183, 31, 17, 25, 25,217,
-163,103,207,158,124, 6,131,129,212,212, 84,188,255,254,251,144,201,100,176,183,183, 7, 0, 20, 23, 23, 99,219,182,109, 80,171,
-213, 16, 10,133,112,118,118,230,174, 91,183,174,175,189,189,253,208,166,234,104, 48, 24, 12, 12, 6, 3,238,238,238, 8, 13, 13,
-197,119,223,125,135,243,231,207,227,232,209,163, 88,184,112, 33,124,125,125,145,144,144,128,187,119,239,130,166,233, 38, 31, 50,
- 92, 46, 55,228,224,193,131, 98, 54,155, 13,163,209,136,170,170, 42,228,230,230,226,246,237,219,170, 19, 39, 78, 84,159, 62,125,
-186,230,218,181,107,170, 27, 55,110,208, 0,234, 4,103,112,112,176, 45,155,205,126,203,132, 83,106, 47,145, 72, 86,205,155, 55,
-143, 91,191,207, 22, 21, 21, 97,194,132, 9,124, 30,143,183, 18,128,125, 83, 4,145,145,145,127,217,205, 34, 44, 60,204,242, 47,
-162,166,163,143,183,189,203, 49,166, 34, 38,246,185,107, 78,190,161,207,242, 15,183,218, 44,255,112,171, 77, 78,190,161, 79, 76,
-236,115, 87,142, 49, 21,209,199,219,222, 53, 65, 8,144,131,250, 59,142,117,176,181,218, 61, 97,204, 24,250,187,239,182,117, 89,
-244,238, 92,142,123,219,229,224,138,166,194,217,227, 95, 8, 10,116, 35, 58,250,146,220,239,190,219,214,101,194,152, 49,180,131,
-173,213,238, 65,253, 29,199,162,153,176, 51, 98, 91,174, 51,159,163,128,167,183, 47, 6,244,239, 4, 38,145,142, 99, 71,247,161,
-176,176, 16, 5, 5, 5, 40, 46, 46, 22,140, 30, 61, 26, 69, 69, 69,170, 43, 87,174, 72,149, 74,101,127, 0, 79,155,107,124,126,
-254, 99,163,170,218,160, 53, 26,152,250,170, 74, 86,205,194,165,209,131,239, 38,179,102, 23,201,156, 71,179, 57,214,236, 17, 67,
-186, 31,222,183, 55, 20,109,218,248,161, 91,247,161,189,172,133, 55,125, 27, 21,175, 25,136,253,249,216,241,147, 83, 39, 79,213,
-103,101,102,103,182,117,224,106,104,154,214, 45,253,248,251, 33, 76,129,107, 71, 79,159, 64,251, 39,233, 6,199,208, 21,111,253,
-120,250,228,151,249,215,175,157, 64,223,126,227,224,236,228,221,255,237,183,193,126, 83, 45, 90, 4, 77,123, 48,133,194, 12, 93,
-101,165, 59,197,225,228, 26, 12, 6,187, 59, 11, 22, 88,105, 89, 44, 71,131, 86, 91, 96,208,106, 11,180,108,182,229, 78, 31, 31,
- 23,154,166,109,173, 92, 92,158,211,108,182,155, 94,171, 77, 39, 72,178, 77,131,179,115, 14,199, 69,232,238, 78, 21, 93,184,160,
-241, 24, 61,186, 2, 0, 52, 90,173, 93, 86,118,182,168, 88, 42, 21, 21, 21, 23,139,114,242,242, 68, 25,153,153,162,180,244,116,
- 81, 74,122,186,229,163,164, 36,225,131, 71,143,132, 4,131,225, 96, 10,103, 86, 65, 65,199, 21, 43, 86,128,199,227, 65,175,215,
- 55,116,207,134, 66,161,192,219,111,191,141, 26,160,167, 41,156, 6,131,129,248,215,186,117,171, 63, 90,189,218, 51, 38, 38,134,
-211,163, 71, 15,216,216,216,192,198,198, 6, 61,122,244, 64,244,177, 99,236,133,139, 23,187,172,218,187,247,109,146,195,113,109,
-142,179,212,203, 11, 54, 54, 54,188, 90,145, 5, 0,237,218,181,195,174, 93,187, 56,231,206,159, 23,125,250,195, 15, 91,195,111,
-220,240, 87,231,228, 40,108,219,182,165,217, 28,142,139,169,231, 19, 0,170, 84, 42,191,109,219,183,219,218,217,217, 17,197,197,
-197, 72, 79, 79, 71, 78, 78, 14,244,122, 61,186,117,235, 70, 28, 61,118, 76,164, 97, 48,186,255,197, 93,232,119, 90,228, 13,194,
-124, 52, 18, 71,139,122,249, 0,186, 10,128,136,141,141,165,107,151, 19, 95, 62, 28,235,196,148, 41, 66,235,117, 32,147,201, 32,
-147,201,176,119,239,222, 58, 97, 84, 11,141, 70, 99,138,104,241,119,114,114, 66,101,101, 37,218,182,109,251, 27, 75, 22,139,197,
- 2, 69, 81, 96,177, 88,224,112, 56, 80,171,213,112,115,115, 67, 77, 77,141,127, 83,156, 74,165,178,179,141,141, 77,221, 3, 86,
-173, 86,215,137,172,218,250,106, 52, 26, 84, 84, 84,160,186,186, 26, 85, 85, 85, 80, 40, 20, 1,166,180,215,104, 52, 34, 41, 41,
-233, 89,187,118,237, 58, 51, 24, 12, 8,133, 66,129, 66,161,168,243, 45, 42, 47, 47,199,129, 3, 7, 20, 51,103,206,180, 59,117,
-234, 84,179, 9,139, 9,130,192,191,255,253,111,112, 56, 28,212,212,212,224,187,239,190,195,146, 37, 75,192, 98,177, 80, 85, 85,
-133, 93,187,118,225,253,247,223, 7, 69, 81,208,104, 52,216,190,125,123,163, 92,143, 31, 63,206,186,117,235, 86, 64,151, 46, 93,
-172,143, 31, 63, 94, 50,100,200, 16,251, 97,195,134,129,199,227, 65,169, 84, 66,167,211,161,103,207,158,104,223,190, 61,164, 82,
- 41,206,158, 61, 91,234,237,237,109,119,251,246,109, 99, 81, 81, 81, 78, 51,226,154,174,103, 49,132,193, 96, 64,113,113, 49,100,
- 50, 25, 74, 74, 74, 80, 80, 80,128,252,252,124, 80, 20,133,102,116, 22,108,109,109, 39,250,249,249, 49, 0,128,199,227,161,115,
-231,206, 88,189,122,181, 94,169, 84, 78, 6,112,246,101,177, 17,223,127,255,253,241,235,215,175, 83, 78, 78, 78, 72, 73, 73,129,
-189,189, 61,197,229,114,223,210,104, 52, 77, 90,163, 36, 18, 73,196,207, 63,255,108, 83, 43,174,107,207,115, 77,205,139,203, 49,
- 97,194, 4,155,131, 7, 15, 70,232,245,250, 70,197,117, 97, 97,225, 95,103, 53, 32, 24,234,191,138,219,138, 7, 86,103, 63,203,
-202,168, 88,105,135,229, 31,110,165,218,251,189,152,188,206, 95, 0,234,139,207, 63,232, 48,125,172,229,105, 43,158,156,213, 28,
-207,136,193,174, 59,199,140, 25, 66, 78,157, 18,156,198, 98, 89,121,236,222, 19, 46, 22, 59,188, 83,175, 17,150,176,181,179,132,
-135, 59,155,136, 62,253, 68,252,241,202, 79,213,135, 14,126,153,241,227, 79,177,195,217,204,139, 67,207,198,229, 45,108,140,251,
-233, 51,217,169, 26, 53,215, 71, 94,150, 72,216, 56,244, 65,231, 78,237, 32,182,175,192,247, 17, 81,104,221,166, 27,212,106, 53,
- 44, 45, 45,249, 6,131, 65,203, 96, 48, 14,153, 34,178, 0,224,210, 37,153,177, 67, 7,153,134, 81,101,212, 47, 90,242,197,248,
- 33, 35,198,248, 14, 26, 52,216,120,225,226, 5,109,159, 0,109,225,136, 97,157,139,207, 93,220,153, 86, 88,144,233,221,193,191,
- 47, 30, 39, 95, 25, 78,211, 72, 34,136,134, 69,103,114, 58,206,169,140,143,175, 68, 69,205, 55, 42,141, 9,188,245, 27, 30,141,
- 24, 53,106,150, 95, 96,191, 64,227,197,184,203, 26, 54, 74,159, 88,246,237,253,124,209,220, 17,199,127, 56,180,125,232,185,179,
- 17, 94,149,242,156,216,253,251,161,198, 27, 10,154, 32,236, 45, 4,130,146,178,170,170, 78, 19,195,195,229,147,150, 47, 63,223,
-145,162,124, 13, 90,109,102, 56,160,164,105,154, 48,234,245, 43, 31, 29, 62,204, 8, 35,136,143,195, 1,227, 6, 6,131,153,111,
- 52,214, 56,147, 36,127, 45, 64,133,191,178,147,219,160,215, 59, 80, 28, 14, 89,114,229,138,222,255,157,119,212,181,227,145,207,
-231,227,228,201,147, 96,179,217,117, 47, 22,139, 85,247,222,193,193, 1,196,203,109,164,191,155,248, 53,192, 89, 59,110,139,138,
-138, 32, 18,137, 96,111,111,143,162,162, 34,220,184,113, 3, 79,159, 62, 5,147,201,196,240,225,195, 65, 54,226,219,252, 42,231,
-164,229,203,135,248,248,251,187, 45, 88,176,128,124,245,249,168,213,106, 81, 94, 94,142,177, 99,199,146,103,207,158,149,156,203,
-205, 29, 3,224, 80, 83,156, 1,163, 70,149, 21, 71, 71, 55,248,219, 93,186,116, 33,126,253,245, 87,206,240, 97,195,150,125,176,
- 97,195,206,175, 15, 30,204, 51,232,245,146,150,180,157, 36, 73,146, 32, 8,184,186,186,162,188,188, 28,213,213, 47, 86,176,133,
- 66, 33,172,173,173,161,211,233, 96,164,105,230, 95,217,127, 26,211, 34,111, 8,246,212, 19, 92,191,177,108, 81, 47,215, 69,107,
-111, 20, 3,234, 63, 88,140, 70,163, 73, 34,139,201,100, 54,235,115,101,138,149,235, 85,152, 34,180,106,235,202,229,114,127, 99,
-201,170, 21, 88,181,245, 36, 73, 18, 12, 6,163,217,135,248, 75, 49,196,168,170,170,194,177, 99,199,208,191,127,255,186,101,169,
-202,202, 74,200,100, 50, 84, 86, 86, 66,165, 82, 33, 43, 43, 11,151, 46, 93,130,151,151, 23, 96, 98,240,215,140,140,140,123,173,
- 91,183,238, 90,251, 16, 31, 56,112,160,203,254,253,251, 11, 70,142, 28,233, 68,211, 52,214,172, 89, 83,218,179,103, 79,187,250,
- 15,249,230,192, 96, 48,112,227,198, 13,120,121,121,129,166,105,176, 88, 44,164,166,166, 66, 44, 22,195,104, 52,130,162, 40,148,
-148,148,192,194,162,233, 24,137, 73, 73, 73,179,231,204,153, 83, 32, 18,137, 58,150,149,149, 21,114, 56,156,126,241,241,241,174,
- 90,173, 22,150,150,150,176,180,180,196,153, 51,103, 96,101,101,133,247,222,123, 47, 87,169, 84,222, 16, 8, 4, 14, 74,165, 50,
-177,168,168,104, 77, 75,174,183, 94,175,135, 66,161, 64, 69, 69, 5,202,203,203, 33,151,203,161, 82,169,154,173, 99, 67,232,215,
-175, 31, 98, 99, 99, 25,159,125,246,217, 15, 25, 25, 25, 0, 0, 15, 15, 15,188,247,222,123, 12,103,103,103,100,101,101,225,222,
-189,123,208,106,181,160,105,186,201,193, 75, 81,212,192,153, 51,103,246,117,115,115, 35,180, 90, 45,140, 70, 35,212,106, 53,106,
-223,231,230,230,194,199,199,135,116,119,119,239,149,145,145, 49, 16,141,108,172,168, 63, 97,248,179, 17, 26,250,137, 6,111, 32,
-138,115, 79,192,153, 41, 6, 72, 75,208,202, 19, 40, 43,125,189, 40, 46, 82,169,116,195,138, 79,126,125,231,235, 45, 90,135,252,
- 66,160,157,223, 56,120,251, 6, 97,246, 12, 61, 62,251,252, 24,220,220,219, 33, 39, 39, 7, 3, 7, 14,100, 21, 20, 20,204,169,
-174,174, 94,110, 42,247,197,139,183, 12, 23,206,156, 13,153,244,214,172,174,131, 7,143,212,159, 63,127, 6, 73,137,231,147,231,
-188, 53, 81, 74, 27,171, 9, 27, 43, 94, 66,106,202, 93,239,142,157, 7, 64,163, 55,244, 3,194,182, 0, 97,116,227,227, 29,154,
-211,167, 29,201,211, 39, 34,102, 76,157,254,118,167,160,160,161,186,243, 23,127,198,189,155, 23, 31,110,221, 50,239,234,103,219,
-143, 12, 28, 50,124, 98, 7,123,135, 27,103,252,218,170,231,186,218,138,158,125,191,191, 28,111, 48, 40, 22,151,171, 7, 64, 90,
-185,187,187, 28,191,116, 41,187, 51,147,201,176, 4, 12, 52, 77,183, 3, 96, 71, 82,212,170, 83,115,231, 6,248,188,124,144,234,
- 1,163, 15, 64, 86, 2, 26, 1,192, 70, 35, 33,115, 40, 46,215,136,151,247, 69,146, 32, 64,211,244,111, 68,214,171, 66,139, 36,
-201,102, 13, 0,245, 57,235, 63,139,106, 39,212,187,119,239, 6,135,195, 1,155,205, 6,147,201,108,214,253,162, 62,103,114, 86,
-214,160, 3,135, 14,113, 26, 18, 89,101,101,101, 40, 43, 43, 67,117,117, 53,166, 76,153,194, 10,191,123,183, 11, 94,186,126, 52,
-198,233,230,232,168, 22,240,120,197,143, 31, 63,118,242,245,245,253, 77,125,229,114, 57,120, 60, 30, 14, 29, 62,204, 10, 30, 53,
-234,221,160, 51,103,182,162,153,248, 87, 13,181,157, 32, 8,136,197, 98, 88, 91, 91,131, 32, 8,232,245,122, 20, 21, 21, 33, 57,
- 57, 25,119,239,222, 5,131, 32,244,127,101,231,105, 72,139,188,129, 86,173,223, 45, 31,214, 90,180,136,198,172, 47,166, 10, 45,
- 6,131,241,218, 86,173,198, 96,202,210, 33,159,207,127, 84, 80, 80,208,199,217,217, 25,122,189,190, 78,104,213,183,196,213, 62,
-244,120, 60, 30, 30, 60,120, 0, 62,159,255, 72,165, 82, 53,201, 73,211,116,175,238,221,187, 35, 38, 38, 6, 87,174, 92, 65,102,
-102, 38,106,106,106,160, 86,171,161, 84, 42,145,156,156, 12,163,209, 8, 63, 63, 63, 8, 4, 2,240,249,252, 71,181,150,175,198,
-160, 80, 40, 10,153, 76,102, 59, 30,143, 87,247,153,163,163, 35,202,202,202,140, 58,157, 14, 7, 14, 28,144, 75, 36, 18, 1,143,
-199, 51, 89,184, 18, 4, 1,169, 84, 10, 23, 23,151, 58, 31,173,170,170, 42,136,197,226, 90, 97, 1,181, 90, 13, 11, 11, 11,208,
- 52,221,220, 53, 82,165,167,167,127, 80,239,255,110,147, 38, 77,250, 49, 42, 42,170, 77, 92, 92, 28,110,223,190, 13,123,123,123,
-108,220,184, 49, 51, 59, 59,123, 42,128,187, 82,233,159,235, 23,105, 74, 31, 42, 43, 43, 59,246,232,209,163, 94,221,187,119,175,
-187, 75, 12, 28, 56,144, 24, 56,112,160, 93,125, 83,127, 73, 73, 9,238,220,185,131,184,184, 56, 16, 4,129,180,180, 52,131, 82,
-169,252,177, 9,106,150,179,179,243,254,213,171, 87, 11,245,122,125, 93,223,230,241,120,224,114,185, 96,177, 88, 96, 48, 24,200,
-206,206,198,216,177, 99, 69,223,124,243, 77,132, 90,173,246, 4,240,187,142,186,108,217,178, 55,210,199, 70,166,132,246, 65,146,
- 92,228,231,227,144,188,103,247,103,125,230, 47,120,113,143,216,179,251, 51,189,159,143, 56,249, 65, 82,177,168,171, 24,205, 14,
-204,179,113,121,139, 52,186,179,163,207,158,251,101,242,135,203,222, 99,122,120,248, 72,227, 46,223,119, 11,210,127, 74,216,218,
- 89,162,172, 84,142,236,220, 98,100,228,104,104, 15, 15, 31,233,189, 59,143, 56,159,111,251,202, 91, 81,163, 58,114,249,106,225,
-207,205,208,171,174,221,200, 28,183,117, 7,231,234,172, 57,221,216, 60,158, 19,202, 75, 31,193,205,205, 30, 99,131, 59, 98,223,
-193, 27, 16,137,108,224,224,224, 0,146, 36, 5,166,182,189,180,180,148, 56,246,211,181,119,102,190, 61,175,231,176,161,163,244,
-231,206,159,166,174, 92, 56,117, 35, 98,207,170,227, 52, 67,193, 39,232, 42, 94,171,214,146,196,103,233, 15,166, 14, 26, 60, 5,
- 60,150,133, 23,208,190,193, 14, 91,183,193,128, 70,110, 76, 84, 24,119,230,219,243,123, 15, 27, 54, 70,127,254,252, 9,156, 63,
-115,240,214,218,181,173,206,100, 62, 63,204,186,121, 55,159, 59, 46,100, 97, 69,236,217, 39,154,137,163, 91, 63,117, 18,116, 86,
- 2,153,111,172,202, 34, 9, 66, 94, 90, 82, 98,201,100, 50,149, 17,211,166,165, 1,128,142,162,202,170, 24, 12,123,130, 32, 82,
- 1,164,110, 0,236,192,102, 87, 78,210,235, 13,203,221,220, 88, 84, 97, 33,163,194, 96, 48, 48, 0,246,135,191,207,191, 8, 6,
- 69, 21,235,213,106, 87,151, 97,195, 24, 53, 57, 57, 76,161,131,131, 30, 0,116, 58, 93,179, 66, 11,141,108, 90,121,149,211,212,
-246,213,212,212,192,216,136, 16,124,149,179, 72, 42,109,245,114, 18, 94, 7,157, 78, 87, 39,178,202,202,202, 32,147,201, 32, 16,
- 8, 80,162, 86, 59,152,194, 57,180, 71,143, 3,225, 97, 97,203,163,143, 29, 99,213, 23, 89,181, 47, 38,147,137,205, 91,182,176,
-150,124,248,225,194,119, 41,106, 41, 26, 88, 6,109,236,124,214, 78,218, 25, 12, 6, 40,138, 66, 78, 78, 14,114,115,115,145,147,
-147,131,156,156, 28,240,120, 60,208,127,241, 38,160, 55,216, 63, 11,245,150, 10,231,191,106,229,106, 50,188, 67, 75,156,225, 77,
- 21, 6, 6,131,225, 79, 21, 90, 10,133, 34,238,210,165, 75, 61,198,141, 27, 71,221,186,117, 11, 18,137,164, 78,104,213,254,173,
- 93,142,226,243,249, 56,126,252,184, 86,161, 80,196, 53, 51,152, 46,157, 57,115,166,107,104,104, 40,115,246,236,217,120,252,248,
- 49, 22, 44, 88, 0,153, 76, 6,185, 92,142,178,178, 50,212,212,212,160, 71,143, 30,224,114,185, 72, 76, 76,212,213,212,212, 92,
-106,110,233, 76, 42,149, 86,219,219,219, 59,190,250, 93, 72, 72,136,195,183,223,126, 91,147,146,146,162,235,211,167,143,165,169,
-130,163, 22, 63,253,244, 83,157,165,238,233,211,167,248,246,219,111, 65,211, 52,104,154,198,253,251,247,241,197, 23, 95,212,197,
- 62,107, 33,238,150,150,150,234,117, 58, 29,188,188,188,224,236,236, 12,149, 74,133,175,190,250, 74, 15,224,238,127,171, 55,171,
- 84,170,232, 89,179,102,125,148,144,144,224, 72, 81,212, 11,147,246,203,246,105,181, 90,164,167,167, 35, 57, 57, 25, 41, 41, 41,
- 40, 47, 47,175,155, 8, 60,120,240,160, 66,167,211, 29,105,140,215,222,222,126,205,190,125,251, 36,124, 62,255, 55,253,185,214,
- 26, 90,107, 37, 45, 41, 41,129,149,149, 21,130,130,130,196,151, 46, 93, 90,163, 86,171, 67,241,207, 0, 17, 50,254,105,183, 37,
-139,198, 97, 66, 48, 63, 47, 38,246,249,175, 95,124,254,193, 3,214,187, 21, 0, 0, 32, 0, 73, 68, 65, 84, 75,103,120,113,242,
-132, 96,231,188,135,169, 86, 8, 25,127,162, 27,128,124, 52,237,167,101,188,124,181,240,100,247,238,214, 87, 98, 78,157,138, 88,
-185, 98,217,253,229, 31,204,179,175, 81, 62,227,122,184,179, 9, 0,200,200,209,208,137,143,141,170, 47,182, 46,187,255,217,150,
-111,200,226, 50,217,130, 59,119, 26, 15,111, 80, 95,188,144, 36,184, 30,237,251, 23,120,183,237,219,250,214,141, 67, 16,242,149,
-104,215,190, 27,134, 13,237,133, 43,191, 60, 64, 81,137, 10,133,133,133, 80,171,213, 77,134, 75, 72, 73, 60, 62,131, 38,104, 55,
-130, 38,114, 9,146,230,206,152, 53,183,223,168, 81, 99,232,216,216, 83,250, 19,199, 15, 93, 63, 18,185, 35,154,100, 49, 41,165,
- 70,164, 33, 8, 85, 37,200,164,199,213,138, 23, 19, 26, 38,135,213,184,249,245,101, 96, 87,223, 14,237, 37, 51,102, 45, 16,141,
- 28, 49,150, 62,115,230,132,241, 72,212,129, 43, 71,246,250, 31, 50,146,114, 86, 97, 94, 13,167, 82,174,171,164, 9,182, 85,181,
-220, 88, 83,156,225,169,114, 26, 21,162, 5,162,223,216, 14, 68, 27,141, 57,180, 70,211, 26, 76,102, 30,173,215, 75,160,211,149,
-135,171, 84,207, 63,101,179, 91,253, 31,123,215, 29,223, 84,245,190,159,155,221, 38,221,139, 14, 90, 70,129,210,197,178,128,178,
- 87, 89, 45,162, 40,136,162, 56, 25,138,162, 44, 65, 16, 16, 80,134,130,128,130, 44, 21,144,189,161, 32, 80,164,165,140,130,108,
-232,166,133,206,164, 77,186,146, 54,251,142,243,251,131,182, 22,236, 72, 10,250, 83,191,121, 62,159,124,114,115,115,239,147,115,
-206, 61, 57,247,185,239,121,207,251, 46, 16, 8,158, 1, 69,113,102,138,210,194,100,202, 2, 0,183,220, 92, 31,147,147, 83, 33,
-223, 96,104, 3,150,173, 51, 0,178,217,104,204,175,204,203,243,113,235,219, 87,114,111,225, 66,105,179,238,221, 13, 84,149, 15,
-113, 67, 66,139,207,231, 3, 60, 30,103, 9,167,165,245,211,235,245,224,234, 9,173,210, 24, 39,195, 48,143,136,172,106,161, 85,
-253,127,177,132,115,211,130, 5,151, 3,134, 12, 41,141,143,143,111,214,175, 95, 63,170,162,162, 2, 21, 21, 21,143,136, 45, 95,
- 95, 95, 42, 52, 60, 92,186, 59, 46, 46,208,210,246,180, 72, 68,243,120,127,185,208,250,151,163,222, 68,210,130, 70,166,208, 44,
- 22, 90, 22, 90,180,104,154,166,225,229,229,133,226,226,226,122,111,252, 60, 30, 15,246,246,246,213,115,196, 13,174,188, 51, 26,
-141,171,103,204,152, 49,101,216,176, 97, 30,237,219,183,135, 74,165, 66,179,102,205, 96,103,103, 87,227, 59, 86,205,119,253,250,
-117,252,244,211, 79, 26,163,209,184,186, 17,206,111, 87,172, 88,241,193,168, 81,163,220,188,189,189,225,234,234,138,219,183,111,
-195,213,213, 21, 26,141, 6,105,105,105,112,116,116,172,241,219, 57,122,244,104,133,209,104,252,182, 17,241, 70, 18, 18, 18,204,
-142,142,142,183, 85, 42, 21,191,180,180, 84, 80, 86, 86, 38,208,104, 52, 66,181, 90, 45, 60,121,242,164,135,179,179,179,238,236,
-217,179,170,128,128, 0,254,253,251,247,249, 52, 77, 55,170, 94, 41,138,194,212,169, 83, 33, 18,137, 96, 52, 26,177,122,245,106,
-204,152, 49,163,198, 39,107,197,138, 21,152, 59,119,110,141,112,222,188,121,179,117, 3, 39, 33, 48,155,205,160,105,218,226, 5,
- 10, 79,244, 68,108,153, 96, 47,204,200,200,136,238,214,173,219,233,125,251,246,185, 87,197, 36, 67, 81, 81, 17,138,138,138,160,
- 82,169, 80, 89, 89, 9,134, 97,224,231,231,135,162,162, 34, 28, 62,124, 88, 93, 81, 81, 49, 4, 13,172, 56,228,243,249,227,123,
-247,238, 45,120,188, 12,213, 79,121,213,226, 93, 34,145, 64, 46,151,163,127,255,254,226,248,248,248,241, 0,254,213, 66,171,118,
-120,135,193, 67,222, 17,133,132,245, 48,221, 74,138,201, 11,110, 85,148, 55,110,164,211,113, 0,184,121,183,200,249, 86,154, 11,
- 66,194,162,201,224, 33,174, 17, 69,133,155, 58, 0, 48, 55,148,174, 7, 0,156,165,146,209,145,131,186,203, 29,101, 50,222, 55,
- 43, 55,255,250,195, 15,223, 62,179,255,248, 31,225, 29,190, 89,249, 48,188, 67,228,160,238, 92,106, 74,234,104, 0, 91, 44, 21,
- 47,209,209, 35,110,252,180,245, 39,164, 38,157,245,253,116,106, 71,113,105, 17, 13,123, 7,127, 68,116,110,134, 77, 91,239,224,
-214,173, 91,133, 38,147,169,127,131,253,155, 34, 1, 73,201,119,131, 58,132,133,122,191, 62,126,130, 83,116,244, 72,196,196, 28,
-193, 47,219,182, 36,188, 52,118,212,143, 5,101, 26,190,151, 80, 42,146, 18, 78,204, 23, 57, 11, 68, 18,123,165,201,244, 48, 2,
-129, 80,104,231, 4,140,110,240,198, 51,105,194, 56,231, 1,131, 70,226,248,137, 35,248,101,219,166,115,159,135,189,188,165, 85,
-151, 16,170,251, 51, 95, 79,110,213,186, 85, 11,109,101,145,134, 71,137,205, 6, 3,231,248,245,182,236, 85, 89,115,199,103, 1,
- 88,137,127,233,170, 67, 49,203,222, 50,154,205,227,252, 35, 34,174,202,175, 94,237,240, 21, 77,187,125, 6,148,126,110, 50,101,
-239, 3,242,202, 1,222,196,170, 49,125, 37, 96,167, 23, 8,124,156,121,188,155, 21, 44, 59, 12,124,126, 18,234,126, 16,191,253,
-203,240,225,221, 62,202,204, 20,121,246,234,101, 47,143,139,147, 86,101, 34,105, 80,104, 9, 4, 2,144,250,167,186, 30,225,164,
-182,111,231, 1, 15,167,252,235, 27,227, 68, 34, 17,116, 58, 29,104,212,107,209,125,132,211,231,212,169,188,204,204,204,118,110,
-110,110,143,136,172,210,210,210,154,109,131,193, 0,157, 78, 7,123,123,251, 36,125,221, 51, 34,143,112, 22, 37, 36, 24,150, 77,
-157, 58,255,213,177, 99,215,158,249,237, 55, 59,119,119,119,168,213,234, 71,132,150,201,100,194,128,129, 3, 69, 43,110,220,120,
- 29, 26,205, 2, 75,218,179, 89,255,254,141,250, 3,243,249,124,112,127,241,212,225,127, 0, 19,234, 18, 94,188,198,166,112, 44,
- 93,117, 88,207, 13,242,241,213,125,115, 35, 34, 34, 12,233,233,233, 8, 8, 8,168, 17, 43,181,127,211,201,201, 9, 46, 46, 46,
-184,126,253, 58,190,252,242, 75, 61,128,185,141,112, 86,232,116,186, 87, 34, 35, 35,245, 2,129, 0,193,193,193, 53,241,179, 56,
-142,131, 88, 44,134, 76, 38,195,141, 27, 55, 48, 98,196, 8,157, 78,167,123, 5,127,142,161,245, 56,167, 90,167,211,189, 54,120,
-240, 96, 93,114,114, 50,122,247,238,141, 91,183,110,161,178,178, 18,149,149,149,120,240,224, 1, 66, 67, 67,161,211,233,176,126,
-253,122,189, 78,167,123, 13,128,186, 33,206,138,138,138, 17, 51,102,204,224,239,218,181,171,149,159,159, 95, 88,215,174, 93,219,
- 15, 28, 56,176,205,139, 47,190,216, 98,248,240,225, 62,237,218,181, 51, 12, 25, 50,196,115,216,176, 97,158, 58,157, 78,120,241,
-226, 69, 5, 77,211,195, 26, 41,103,141, 56, 73, 79, 79,175,153, 42, 20, 8, 4, 40, 46, 46,174,137,220, 95, 61, 40,213, 35,132,
- 7, 53, 38,182,171, 5, 86,181,224,178,192,207,173, 46,206, 70, 79, 18,139,197,213, 22, 79, 98, 1,231,205,148,148,148,200,190,
-125,251,222,124,231,157,119, 42, 10, 11, 11,225,232,232,136,192,192, 64, 4, 5, 5,193,195,195, 3,102,179, 25,135, 14, 29,210,
- 30, 62,124,248,142, 90,173,238,143, 63,199,208, 26,244, 88, 59, 62,168,107,144,173,182,102, 85, 11, 45, 59, 59, 59,248,249,249,
- 85,183,237, 3,107,218,179,137,248,107, 57,171, 4,204,192, 1, 67, 90, 15,143,122,193,249,208,145, 75,226,181,235, 14,223,137,
- 24,132,205,238, 45, 53, 71,221, 91,106,142, 70, 12,194,230,181,235, 14,223, 57,116,228,146,120,120,212, 11,206, 3, 7, 12,105,
-157,156,148,218,190,118,222,195,186,202,105,103,103,215,163,119,175,136,178,248, 11,231,184,165, 43,190,231, 13,232,255,210,141,
- 45, 63, 30, 58,180,229,199, 67,135, 6,244,127,233,198,210, 21,223,243,226, 47,156,227,122,247,138, 40,179,179,179,235, 97, 73,
-221, 39, 77, 24,231, 28, 53,124, 36, 98, 98, 14, 49,251,119,175, 95,177,231, 64, 70,223,119,167, 36, 20,165,167,223, 34,202,252,
- 83, 16,242,114,144,146,146,162,174, 18, 89,233,150,112, 78,124,111, 92,109,145,117,222,221,187,247,230,148, 20,176,177,177,199,
-232,223,126,187,161, 63,127, 83,169,190,150, 92, 92, 42, 87,149,222,215,104, 74, 76, 28,199,130,101, 89,254, 23, 95,212, 56,236,
-214,121,141,122,246,236,135,179,103,118, 98,219,214,141,106,142,131, 97,244,254,253,236,232,209, 11, 73,139,150, 45, 91,236,216,
-189,147,138,126,254, 5,103, 2,112, 35, 70,141,116,217,181,103, 23,213,186,109,235,150,129,129, 53, 33,109,254,117,125,233, 83,
-160,146, 2, 82, 20,191,255,222,213,161,119,239,219,140, 80, 24,180, 72, 36,106,179, 6, 16,143, 6,216,137, 0,189, 0,224, 45,
- 0,252,244, 2, 65, 39,123,134,185, 85,161,211, 53, 7,128,197,132,220,175,139,115, 33, 80,166,201,201, 57,119,253,251,239,141,
-205, 94,121,197, 77,220,172,153, 19, 88,150,170, 30,223,235,123, 9, 4,130,199, 45, 48,245,114,250,121,120, 20, 28, 61,122, 20,
- 65, 65, 65,240,243,243, 67,109, 31,217,234,128,220,238,238,238, 56,112,224, 0,200,163,193,169,235,229,236,210,170,213,245,229,
-203,150,153, 56,142, 67, 89, 89,217,159,172, 89,101,101,101,224, 56, 14, 39,142, 31, 55,105, 30,102, 2,177,168,238,253,249,252,
-202, 87,251,244, 89, 26, 21, 21,101,206,204,204,172, 89,121, 93,109,217, 82, 42,149,112,112,112,128,193,104,244, 7, 32,181,132,
- 83,121,242,164, 12,141,140,235,117, 88,180,254,138,190,244,111, 23, 89,181, 19, 74, 79,176,200,162,197, 48, 12,252,253,253, 31,
- 73,233,194,227,241, 30,121, 89,185,226,112,123,114,114,242,169, 33, 67,134,204,127,246,217,103, 39,205,159, 63,159,223,190,125,
-123,168,213,106,184,186,186,194,203,203, 11,105,105,105, 56,122,244, 40, 91, 92, 92,188, 1,192, 34,212, 17,192,174, 14,196,101,
-100,100, 68,119,236,216,113,207,236,217,179,157, 7, 15, 30, 44,244,247,247, 7, 33, 4, 55,110,220,192,193,131, 7,205, 91,182,
-108,209, 84,137,172, 56, 11,203,122, 90, 46,151,191, 52,108,216,176, 29,227,199,143,119,100, 89, 86,248,224,193, 3, 24,141, 70,
-208, 52,141,220,220, 92,115, 76, 76, 76,165, 78,167, 27, 7,224,180, 5,124,215,203,203,203, 67, 99, 99, 99,199, 95,188,120,241,
-203,119,222,121,199,125,224,192,129, 34,134, 97,112,225,194, 5, 85,151, 46, 93,188,148, 74,165,249,192,129, 3, 37, 6,131, 97,
- 46,203,178, 22,165,224,161, 40, 10, 26,141, 6, 30, 30, 30, 48, 26,141,224, 56, 14, 38,147, 9, 14, 14, 14, 53,105,147, 8, 33,
-176,198,185,254,177, 62,192, 55,155,205, 24, 59,118, 44, 56,142,195,234,213,171,193, 48,140,213,100,206,206,206,215,110,222,188,
- 25,221,185,115,231, 26,241, 82,221,135, 36, 18, 9, 60, 60, 60,224,238,238,142,152,152, 24, 8,133,194,107,141,249,187, 85,225,
- 86,113,113,113,151,216,216,216, 30,119,238,220,121, 3, 64,103,179,217,236,199,178, 44,197,227,241, 20,132,144,219, 26,141,230,
- 71, 88,152,130, 71,169, 84,126,249,230,155,111,118,217,185,115,167,131, 64,240,199, 95, 67, 32, 16, 64, 34,145,160, 58, 56, 38,
- 33, 4, 38,147, 9,243,230,205,211,104,181,218, 47,255, 43,163, 68, 68,215,238,216,180,126,141,195,111,103, 79,169, 82, 50,112,
-208,213, 53,229,241,254,151, 95, 84,184,169,131, 60, 47,207, 33,162,107,119,139, 56,105,147,185,228,181,113,211, 2,170, 82,240,
-204,123,240, 32,123,227,142,237,171,178, 0,224,235,111, 87,183, 43, 42, 41,159,152,146,156, 58,122,195,134,221, 61, 24,179,185,
-196, 18,206, 63,196,203, 14, 53, 8, 12, 0,174,220,184, 83,212,106,196, 43, 39,231,182,109,237,244,188,178, 68, 95, 80, 89,169,
-251, 16, 64,150,165,117,239,213,179, 47,206,158,222,133, 95,182,237,208, 16,142,111,240,240,240, 32, 0,144,146,226, 65, 82, 82,
-202,201, 31,126,197, 46, 90, 33,185,181,104,218,135, 3,167,169, 53,165,223,174, 94,223,240, 84, 74,199, 78,207,162, 99,167,103,
- 49,229,195,207,156, 67,195,130, 3, 0, 96,255,126,176, 97,109,147,143,205,255,124,225,243,139, 22, 45,132,166,194,136,234,116,
- 61,105,119,147,143,103,101,193,244,111,238, 71,243, 25,230,194, 34, 66, 94,212, 37, 36,116,232, 49,115,230,239,231,191,249,166,
-149,154,207,239,249, 5,192,241, 40,138, 5, 33,246, 60, 30, 79, 33,163,233, 27, 21, 98,177, 15,197,113,207, 56,178,236, 33,186,
-129,252,159,243, 25,230, 10,166, 77,107,167, 43, 45,245,236,245,233,167, 30,130,153, 51,121, 13, 57,195,215,254,255, 90,194,121,
-245,246,237,227, 19,223,125,183, 96,193,252,249, 67, 54,108,220,104,223,161, 67, 7, 20, 22, 22, 34, 56, 56, 24,126,126,126,136,
-141,141,197,129,189,123,181,229, 21, 21,115, 1,252, 96, 9,231,246, 19, 39,210,218,135,133, 21,111,220,184,209, 55, 42, 42,138,
-210,106,181, 80,171,213, 80,171,213, 48, 26,141,168, 10, 8, 77,210, 51, 50, 82,104,154,222, 96,105,221, 89,149,202,110, 81,247,
-238,249, 34,142, 91,254,210,168, 81, 51, 22, 45, 94, 44,105,221,186, 53,101, 52, 26,107,172, 90,102,179, 25, 14, 14, 14,102,147,
-201,228,142, 58,252,222,234,226,148,108,217,194,168, 84, 42,120,122,122,214,132,107,170, 29,151,176,162,162, 2,132,144,255,108,
- 2,244,191, 18,245, 42, 36, 87, 87,215,107, 2,129,160,121,109,235, 86, 93,185,243,106,239,163,105, 58,191,184,184, 56,226, 49,
-197, 91,159, 63, 84, 32,128,175, 6, 12, 24,240,210,244,233,211,169,248,248,120, 28, 62,124,152,100,101,101,237,175,178, 98,101,
- 53,240,244, 84, 31,167,163, 68, 34,249, 88, 38,147, 13,170, 14,225, 32,149, 74,239,104,181,218, 51, 85,211,133, 21, 77,224,116,
-146, 72, 36, 83,101, 50, 89,100, 85,250, 21, 56, 58, 58,222,212,106,181,177, 70,163,113, 13,234, 79, 84,221, 16,167,189,179,179,
-243,151, 30, 30, 30,175,205,156, 57,211, 61, 33, 33, 65,113,246,236, 89, 81,121,121,249, 78,147,201,212, 80, 82,233, 63,113,186,
-185,185, 93,227,243,249,205,255,162,107,132,142, 29, 59,198,140, 24, 49, 34,106,220,184,113,160,105, 26, 63,252,240, 3, 98, 99,
- 99,143,223,187,119, 47,186,145, 39,220,199, 57, 61,154, 55,111, 30, 63,105,210,164, 22, 99,199,142,149,186,186,186, 66, 32, 16,
- 64,171,213,226,222,189,123,184,113,227, 6, 57,114,228, 72,229,245,235,215,243,117, 58, 93, 63, 0,197, 86,180,231,147, 60,137,
- 63,194, 41, 16, 8,250,250,251,251,239, 94,176, 96,129, 99,100,100,164,189,187,187, 59,248,124, 62,104,154,134, 66,161,192,221,
-187,119,113,234,212, 41,237,254,253,251,181, 37, 37, 37, 99, 1,156,251,255, 40,231,211,228, 12,105,135,207, 31, 75, 20, 93,111,
-180,247, 70,142,109,180,156, 3,250,250,140, 28,253,210,176,161,132, 16,236, 59,112,242,100, 92, 66,163, 73,165,235, 45,103, 99,
-101,181,132, 51,184, 45,111, 65, 82,242,221, 71, 2, 90,134,133,134,167,135,116, 24,181,196, 18,162, 90,145,225, 31,169,123,173,
-233,216,218, 54,221, 71,166, 89, 67, 2, 17, 61,114,244,139, 81,159,205,157,131,175,190, 92,138, 35,251, 14, 29, 79,201,122, 36,
- 77,208,191,174, 47,213,190,183,124,193,231, 15,224,241,120,254,148, 88,252, 59,173,213,102, 56, 2,194, 10,128,255, 5,160, 93,
- 36, 18,181, 1,203,134,129, 16, 65, 5, 69,197,124,195,178,174, 0,228,141,113, 46, 17, 8,158,149,250,248,244, 89,205,113,115,
-110,221,189,235, 80,251,129,173,218,242, 92,251,161,210,215,215, 87,169, 80, 40,154, 89,194, 25,253,221,119,102,157, 76, 38,153,
-179,124,121,223, 74,131,161,239,162, 69,139, 4, 87,175, 94,197,250,239,191,103, 12,249,249, 59, 84,192,212,122,102, 67,234,229,
-108, 49,117,170,221,172,245,235,223, 10,108,219,214,235,141, 55,222, 16, 10,133, 66,104,181, 90,228,229,229,225,244,169, 83,166,
-228,148,148,100,141, 70,243,188, 53,117,143,254,238, 59,179, 75, 96, 32,164,158,158,228,183,184, 56,231,137, 31,127, 60,169,101,
-171, 86,206, 67,134, 14, 21, 58, 57, 57,161,172,172, 12, 15, 30, 60,192,161, 67,135,148,149,149,149,190, 0, 88, 75, 56,119, 92,
-188,216,241,196,185,115, 47, 47, 89,178, 68, 28, 30, 30, 14,103,103,103, 84, 84, 84,224,238,221,187, 56,119,238,156,113,195,134,
- 13,106,181, 90, 61,137,101,217,163,127, 97, 95,250, 79, 78, 29,254,213, 30,254,150, 92,136, 8, 0,159, 87,109, 47, 70,227, 57,
- 3,255,205,131,207,227, 8,112,115,115,219,100, 48, 24,136, 94,175,159, 8, 32,247, 31, 88, 78, 65, 68, 68,196,122,165, 82,217,
-131, 16, 2,103,103,231, 75, 73, 73, 73,239,163,158,149, 55,141,112,242, 1,244,112,112,112,232,238,232,232,216,215,104, 52,134,
- 84, 77,191,165,104,181,218,115,102,179,249, 74,149,245,137,253,127,174, 59, 31, 64,164,175,175,239,187, 28,199,181,165, 40,202,
-133,101, 89,208, 52, 93,206,113,220, 61,181, 90,189, 5, 64,236, 63,160,156, 79,133, 51,180, 13, 94, 36, 60,132,212, 39, 8, 30,
- 17, 90,143, 9, 8,138, 67, 74,114, 38, 14, 89, 81, 78,222,208, 65,254,235, 56, 22, 56, 29,151,247, 1, 26,119,174,253, 67,104,
- 89, 32, 94,172, 22,153,109,248,111, 18,138, 60,194, 73, 17, 42, 55,184,227,139,191, 60,137,208,178, 20,161, 65,232, 11,130, 30,
- 28,193,149,212,123, 56,251, 95, 27,235, 22, 0,205,120, 60, 94, 55,138,199,107, 67, 0, 45, 69, 81, 12, 8,113, 3, 33,153,224,
-243,147,230,155,205,153,168, 59,129,121,189,156, 95, 1,110,223,187,186, 94,226, 9, 4,222, 0,120, 85,214, 23,142,163, 40,150,
- 80, 20, 83,123,122,235,177, 7,203, 6, 57,205, 64, 7,161, 68,226,207, 50, 76,179, 66,192,225, 4,203, 62, 99, 32,164,178, 57,
-240,249, 77, 32,205,218,186, 87,115,242, 37,146,128, 19,132,140, 84,201,100, 29,149,122,189, 39, 0,226, 32,147,165,104,180,218,
-109, 6,131, 97,157,181,117, 55, 3, 29, 68, 18, 73,115,150, 97,154, 1, 0, 79, 32, 80,238, 49, 26,253,243,157,156,222, 48, 24,
-141, 45, 28, 28, 28,104,147,201,164, 49, 24, 12,227, 24,134,249,205,154,186,223, 99,152,208,139, 60, 94,111,179, 76,230,110,166,
- 40,153,137, 97,204, 38,179, 57,207, 96, 48,220, 1,176, 10, 64,230, 95,220,151,108,104,226, 31,208,198,105,227,180,113,218, 56,
-109,156,255,227,156,203, 0,167,175, 0, 55, 91,123,254,165,156, 82, 0, 1, 85, 15,139,255,198,186,255, 39,173, 91, 2, 91, 91,
-216, 96,131, 13, 54,216,240, 87, 99,118,253,110, 22, 54, 60, 61,232, 80,135, 79,150, 13,255,191,160, 26, 80,165,214,152, 4,155,
-162,108,207,216, 56,109,156, 54, 78, 27,167,141,211,198,105,227,252,159,227,108,140,251,223, 56, 37, 57,161,142,125,155,254,142,
- 31,182,153,127,109,156, 54, 78, 27,103,157, 24, 49, 98, 4,207,214,158, 54, 78, 27,167,141,243,191, 14,158,173, 9,234, 69,179,
-170,215,211, 62,214,134,255,118, 95,248, 59,224, 87,245,178,230,120,159,127, 90,163, 30, 59,118,140, 3,128, 59, 41,119, 37, 21,
- 21, 21,182,177,200, 6, 27,108,176, 9,173,191,249,166,245, 36, 55,183, 39,189, 49, 46,165, 40,200, 41, 10,114, 0, 75,159,226,
-177,141,193,215,195,195,227,163,208,208,208, 29,205,154, 53,155, 2,192,203,202,243,219, 73,165,210, 53, 50,153, 44, 94, 38,147,
-197, 75,165,210, 53, 0,218, 61,165,235, 70, 1,152, 40,145, 72,226,124,124,124, 10,196, 98,113, 28,128, 73,104,250,202,213,246,
-120, 24, 39,109, 49,128,142,214,156,232, 21, 54,114,175,103,216,200,219,158, 97, 35,239,186,135,143,104,231, 25, 54,242,174,103,
-216,200,219, 94, 97, 35,247,254, 5,253,245,105, 94,223,167, 85,158, 92,138, 66,174,133,229, 89, 69, 1,121, 20,133,252,127, 72,
-249,255,132, 14, 33,225,198,209, 99,198,216,219,134, 99, 27,108,176,225,127, 30,190,190,190, 47,249,248,248,156,241,241,241,137,
-245,245,245,125,201,130, 83, 6,213,113,147, 96, 41, 10,108, 35,131,126, 67,199, 53,102,174,172,125,238, 55, 22, 86,173, 54,103,
- 51,138, 2, 75,170, 64, 81,224,188,188,188,214,250,248,248, 44,125,252,229,229,229,181,150,162,192,213, 58,150,173, 37,240,172,
- 53,171, 54,123,253,245,215,247,149,149,149,197,152, 76,166,152,140,140,140,152,126,253,250,237,121,204, 18, 81, 47,167,157,157,
-221,171,221,186,247,184,126,238,194,149,140,244,123,217,242,228,180,251,217,199, 78,254,118, 53,188, 67,199,223,237,236,236, 94,
-181,226, 26, 81, 0, 38, 10, 4,130, 56, 7, 7,135,124,129, 64, 16, 7, 96, 50,159,207, 63,186,108,217,178,236,164,164,164,162,
-139, 23, 47,150,159, 59,119,174,224,157,119,222,185, 71, 81,212,177, 58, 4,251, 32, 11, 44, 48,243,115,114,114, 78, 42, 20,138,
- 83,246,246,246, 95, 90,112,124, 13,167,103,216,200,219, 74,181,153, 40,213,102,226, 25, 54,146,212,218,190,109,101,155, 55,118,
-141,254,212, 23, 36, 18, 73, 64, 35,130,254,175, 52,209,255,169, 60, 0,188,171,190,139, 0,240, 93,213,171,122, 57,187,183,157,
- 68,242,180,250,231,211,104, 79, 27,167,141,211,198,105,227,252,175,162, 75,213,187, 15, 30,250,107,213,220,187,173, 93,117,248,
- 65, 70, 70,134, 3, 0, 4, 5, 5,189, 15,224,128, 53, 66,130,162, 48,139,227, 8, 15, 0,120, 60,234,211,254,253, 7,116,177,
-183,183,127, 36, 10,178, 94,175, 23,199,197,157, 29,200,113,132,170, 58,110, 22, 33, 88, 3,160,200,210,223, 48,153,140, 60,161,
- 80, 12, 30,143,154, 22, 30,222,161,101,113,113,113, 2,143,199,219, 81, 80, 80, 80,102,181, 25,135,162,176,121,243,230, 32, 31,
- 31,159, 63, 69,107, 86, 40, 20,226,145, 35,159,183,138,239, 77, 64, 98,148, 72,186,139, 40,202,135,101, 24, 23, 0, 16, 8, 4,
-101, 87,197,226,136,175,150, 44,145, 82, 20,197,149,148,148, 64,175,215,227,147, 79, 62,177, 79, 78, 78,126,161,184,184,120, 93,
- 35,180, 65, 29, 59,117,249,228,212,169,147, 33,154,210, 50,195,230,111, 55, 94,215, 11, 68,186, 86,161,193,162,245,155,182,185,
- 78,120,107,220,135,169,169, 73, 55, 81,119, 58,146,218,224, 1, 56,244,241,199, 31,135, 69, 71, 71,139, 43, 42, 42,236,244,122,
-125,203, 29, 59,118,204,139,136,136,112,232,220,185,179,120,247,238,221,148, 90,173, 6, 33, 68, 26, 28, 28, 76,198,140, 25, 99,
-216,179,103,207, 20, 0,107, 27, 16,190,179, 30,182, 37,111,117,251,246,237, 23, 0, 64, 70, 70,134,168, 86, 27, 11, 67, 66, 66,
-100, 0,144,150,150,246, 5, 33,220,199, 0, 64, 8, 86, 0,152, 83,135,105, 45, 35,172,215,104,128, 66,219,164, 11,251,236,194,
-122,143, 54,128,224, 30, 5,100, 84, 61, 16, 44, 2,106,197,133,122, 20, 41,114,185,188, 73,185, 9,163,162,162, 41,138,162,246,
- 95,191,126,253,128, 82,169,108,197,113,236,123, 13,149,179,190,107,229,233,233,121,138,101, 89, 99,105,105,105, 77,160, 76,207,
-142, 47,246,112,119,148, 13, 84,149, 85, 36,148, 36, 31, 57,103, 97,223,164,220,221,221,223, 44, 46, 46, 94, 10,224,221,148,148,
-148, 46, 0, 16, 18, 18, 34, 2,112,205,201,201,169,167,217,100,162,108,227,159, 13, 54,216, 96,195,223, 34,180,110, 0,136,194,
- 31, 41,120, 54, 53, 69,104,137, 1, 32, 33, 33, 1, 0, 36, 77, 40, 8, 85, 91,192, 76,157, 58, 21, 62, 62, 62,143,139, 23,196,
-199,199, 61, 73,101, 31,249,141,197,139, 23, 59,148,151,151, 15,250,241,199, 31,251, 16, 66,190,145,203,229,151, 27, 57,191,136,
- 16,172,224,241,168, 79, 41,138,130, 68, 98,151, 62,105,210,164, 27, 85,223,181, 60,118,236,152,116,196,136, 17, 58, 0,217, 0,
- 32,145,216,249,241,249,188, 32, 66, 72,245, 13,183, 94, 65,248, 50, 16,200,136,197, 3, 38,126,247, 29,243,204,136, 17, 2,153,
-167, 39, 5, 0,217,169,169,238, 43,190,254,186,103, 89, 86,150, 88,239,238, 94, 82,162,213,234,211,211,211, 33,145, 72, 40, 62,
-159,255, 76, 99, 21,150,201,100, 31, 45,249,106,185, 76, 83, 90,174, 55,104, 42, 76,124,134, 54, 58,218, 75,217,162, 66,101,137,
-131,189, 76,247,233,231, 11,197, 31,188, 55,254, 35,173, 86,251,126, 35, 84, 83,166, 77,155, 22,210,173, 91, 55,191,189,123,247,
- 82,106,181, 26, 2,129,192,161,115,231,206,136,136,136, 96,207,158, 61, 75,181,106,213, 10,225,225,225,184,112,225, 2, 46, 93,
-186, 68,117,233,210, 69,122,240,224,193,215,105,154, 94,219,152,184,230,243,121,159, 4, 7, 7,119,150,201,100,166,160,160, 32,
-188,247,222,123, 32,132, 96,208,160, 65,225, 14, 14, 14, 7,180, 90,173, 56, 45, 45,181, 79, 99, 34, 91,153,116,100, 76,181,101,
- 11, 64, 7, 16,220, 83, 37, 29,169, 61,253, 24,146,150,150,246,108, 89, 89, 25, 30, 94, 23, 82,147,192,188, 79,159, 62,214,244,
-165, 34, 66,176, 98,196,136,232, 79, 1,138, 26, 52,104, 80,249,148, 41, 83,120,169,169,169,175,189,248,226, 11,225, 25, 25,247,
- 96,229,195, 64,208,224,193,131, 47,156, 56,113,194, 61, 40, 40, 72, 85, 90, 90, 90,243,133,183,187,203,144,115, 7, 87,127,244,
-229,154, 29,193,219, 9, 85,174, 74, 57,124,167,145,190, 73,189,249,230, 91, 69, 14, 14, 14,163,246,239,223,159,166, 80, 40, 4,
- 34, 81,141,118,229,123,121,121,121, 6, 5, 5, 77,118,115,115, 83,242,121, 60, 47, 2, 66, 26,235,159,255,223,200, 72, 79, 21,
-182, 11, 10,166,109,227,181, 13, 54,216,240, 47,196,241, 42,113,117,252,241, 47, 4, 0, 16, 19, 19, 83, 19,153, 54, 58, 58,186,
-222, 39, 96, 66, 72,209,173, 91,183,252,117, 58, 29, 8, 33,150, 12,216,181,151,104, 22, 81, 20,111, 61,143, 71,189, 79, 81, 20,
-194,195, 59,220, 95,189,122,117, 93, 57,189, 76,225,225, 29,238,243,249,188,214,132, 16, 80, 20,239, 7, 66,184,162,122, 56,235,
-188, 17,137,197,146, 89, 0,224,237,237,147,245,235,175,191,154, 94,126,249,101,124,253,245,215,162,217,179,103,207, 16, 8, 4,
- 83,114,115,115, 11, 27, 40, 39, 0,204,241,244,244,146,110,222,188, 57,104,210,164, 73, 55, 20, 10,197, 28, 0,240,241,241, 89,
- 10, 32, 20, 64,118,173,125,216,176, 97, 79,193,123,239,189,151,174, 84, 42,231,212,199, 57, 10,104,227, 31, 28, 60, 96, 81, 66,
- 2,225, 25,141, 84,241,249,243, 26, 85, 81, 17,157,169, 82, 73,183, 94,187, 22, 61,111,233, 82,161,127, 64, 0,226,143, 30,245,
- 40,214,233, 84,106,163,209, 80, 84, 84, 68, 24,134,185,100, 65,221,195,188, 60,189,164, 27, 87,253,112,213, 81,200,231,188,154,
-251, 81, 66, 55, 55, 1, 79,234, 36,230, 11,120,198,214, 45,219,137, 1,132, 53,118,141, 68, 34,209,235,131, 7, 15,150,238,217,
-179,135, 10, 15, 15,135,139,139, 11,206,159, 63,143,155, 55,111,162,172,172,140, 71,211, 52,186,118,237,138,229,203,151, 35, 32,
- 32, 0,229,229,229,200,205,205,245, 16,139,197,158, 52, 77,215,215,158,143,244,167, 89,179,102,193,199,199, 7, 12,195,160,180,
-180, 20, 12,195,192,193,193, 1, 0,144,159,159,143,163, 71,143, 88,210,151, 26, 5, 33, 4,207, 61,247, 92, 5, 69, 81, 41,143,
- 91,180,172,225,244,243,243,219,173, 82, 21, 15, 27, 48, 96, 0,202,202,202,232,133, 11, 23,162, 99,199,142, 8, 10, 10,106,180,
-156,190,190,190, 19, 25,134,153, 15, 0,102,179,121,171,157,157,221,219,191,252,242,139,123,237, 20, 33,213,150,172, 34,101, 73,
-217,165,171, 73,105,211, 38,190,220, 47,225,242,221, 60,179,112,100,174,250,246, 17,117, 29,229,156, 35, 18,137,127,108,209,162,
-197,170,169, 83,167,250,184,185,185,193,104, 52,206, 43, 44, 44,196,228,201,147, 1, 0,195,135, 15,239, 40, 20, 10,127,125,231,
-157,119,208,170, 85,171,130,210,210,210,220,235,215,175,191,167,211,233,238, 54,181, 61, 45,196, 19,113,214, 35,178,254,113,229,
-180,113,218, 56,109,156,127, 13,167,165, 90,228, 31, 10, 5, 30, 13,231,176,233, 17,161, 21, 29, 29, 77,197,196,196, 16, 11, 42,
- 86,210,188,121,115,127,123,123,123, 0, 40,177,182, 20, 28,199, 77,113,119,119, 87,206,153, 51,167, 87, 80, 80,144,105,202,148,
- 41,119,179,179,179,231,214, 62,166,101,203,150, 95,126,255,253,247, 72, 79, 79,207, 94,186,116,233,133,146,146, 18,107,243,152,
-205, 38, 4,171,171,172, 99,197, 71,143, 30,237,152,144,144,240,254,183,223,126,235,249,193, 7, 31,136, 62,250,232,163,113, 0,
-190,110,140,132,207,231,235,234,154, 46,172, 11, 62, 62, 62, 38, 62,159, 95,111,144,184,104,192,222, 78, 44,238,191, 40, 33,129,
-152,178,179,117, 63,173, 92,233,184,241,247,223, 23,208,132, 52,243,242,242, 66,239,158, 61, 43,237,248,252, 98,101, 97, 33,231,
-213,166, 13,255,193,175,191,122,232,197, 98,249,158, 61,123,212, 37, 37, 37,135, 27, 53,225, 81,148,134, 35,196,228,208, 60,128,
-126,249,133,200,240,171, 87,110,166, 58,122,121,240,186,116, 14,239,152,154,158,125, 29, 28,103,166, 40,170,209, 96,129,206,206,
-206, 65, 37, 37, 37,208,104, 52,240,244,244,196,234,213,171,225,237,237, 13,157, 78,135,164,164, 36,210,188,121,115, 42, 33, 33,
- 1,205,155, 55,135, 74,165,130,201,100, 66, 69, 69,133,210,104, 52,214,151,155,177,136,199,227,255,204,227, 81,111, 81, 20,133,
-214,173, 3,115,214,173, 91,103,226, 56, 14, 33, 33, 33,120,241,197, 23,113,240,224, 65, 36, 37, 37, 85, 91,158, 76, 45, 90,180,
-204,225,241,168, 22, 85, 90,169,201, 22,152,234,212, 62,114,185,124, 84, 19,255, 52, 60, 95, 95,223,113,109,219,182,125,255,213,
- 87, 95,165,197, 98, 49,180, 90,109,117, 91,208,195,134, 13, 47, 31, 49, 34,218,249,248,241,227,245,150,211,108, 54,207, 47, 40,
- 40,240,209,235,245, 24, 58,116,232, 71,223,124,243,141, 76, 44, 22, 3, 0, 88,150,125,196,146,181,228,219,237,167, 62,158,191,
- 46,238,212,238,229,190, 75,102,191,221,111,220,148, 47,227, 0,156,172,171, 96, 38,147, 41, 75,173, 86,191, 59,109,218,180, 29,
- 27, 54,108,112,157, 59,119, 46, 56,142, 3, 33, 4, 12,195,212, 36, 18,231, 56, 14,135, 14, 29, 66,102,102,230,151,143,137, 44,
- 27,108,176,193,134,127, 28,172,208, 34,255, 68,248,224,225,180, 33, 30, 23, 91,127,123,100,120, 62,159,191,241,244,233,211,157,
-251,244,233, 35, 24, 56,112, 96,248,201,147, 39,195, 11, 10, 10,238, 86, 89, 15,194, 7, 14, 28, 24,238,229,229,133, 53,107,214,
-232,248,124,254,198, 38,254, 76,205, 77,175,176,176,240, 6,128,111, 14, 30, 60,184, 98,226,196,137,240,246,246, 14, 85, 40, 20,
-127,107,157,157, 36,146, 46,239,172, 94,205, 8,105,154,247,221, 55,223, 56,173,140,139, 91,177,119,223, 62,193,115,207, 61, 71,
- 17, 66,112,231,246,109,251,229,107,215, 74,199,190,240, 66,118, 90, 86, 22,115,228,212, 41,186,168,160,160,180, 64,165,154, 15,
-160,180, 49,126,154,166, 19, 51, 50, 50,124,123,247,125,206,239,220,239,119,111,190,252,194,240, 1, 66, 1,143,186,151,157,127,
-205,199,219,195, 57, 62,238,140,158,166,233,196,198,120,180, 90,237, 3,134, 97,220, 8, 33,158,241,241,241,240,244,244, 68, 89,
- 89, 25,104,154,134,201,100, 50,233,116, 58,187,146,146, 18, 24, 12, 6, 24,141, 70, 56, 57, 57,225,206,157, 59, 69, 12,195,156,
-173,143,147,101,217,119, 36, 18,201, 98,161, 80, 40, 22,137, 68,242,107,215,174, 65,163,209,180,116,113,113,249,154, 97, 24,200,
-229,114, 36, 36, 36,204,116,114,114,202, 6, 0, 59, 59, 59,136,197, 18,119,163,209,200, 0, 40,104,106,155, 19, 66,154,124,189,
-188,189,189, 3,236,237,237, 23,125,250,233,172,144, 78,157, 58, 67,165, 82,129,227, 56,200,100, 50,232,116, 58, 56, 57, 57,161,
- 71,143, 30, 15, 22, 45, 90,164, 32, 4, 19, 26, 16,131,252,170,235,131,137, 19, 39,202,156,156,156,144,151,151,135,224,224,224,
- 26,161,165, 80,149,220,185,120,245,110,234,180, 73,163,251,238, 60, 26,151,114, 42,254, 90,202, 11, 67,123,118,162, 40,210,178,
-161, 50, 42,149, 74,149, 64, 32,152, 50,113,226,196,197, 65, 65, 65,173, 9, 33,104,215,174, 29, 6, 15, 30,140, 95,127,253, 21,
-233,233,233,208,106,181,236,229,203,151,119, 41, 20,138, 99,182, 33,220, 6, 27,108,176,225, 47,197,159,124,179, 30,177,104,253,
-157, 80, 42,149,170,212,212,212,147,215,175, 95,143, 30, 51,102, 12,226,227,227,223, 4, 48, 13, 0, 36, 18,201,155, 99,198,140,
-193,245,235,215,145,154,154,122, 82,169, 84,170,158,198,111,138,197, 98,131,201,244,208, 56,101,103,103,103,103,229,233, 45,171,
-166, 12, 1,160,101, 3,251,234, 55,141, 8, 4, 62, 29,134, 14, 21,148,221,188,169,217,124,229,202,226, 29, 59,118, 8,122,245,
-234, 69,209,102, 51, 88,142, 67, 96, 96, 32, 53,112,208, 32,217,207, 59,118,184,177, 90,109,194,146, 79, 63, 61,191,233,157,119,
- 42, 51,170,252,192, 26,131,209,104, 92,251,254,228,119, 7,197,197,159,247, 11, 13,110,227,118,242,116,220, 13,119,119,103,105,
- 80,219,182,178,146,178, 82,118,238,236,153, 2,163,209,248, 93, 99, 60,122,189,254,208,153, 51,103, 94,240,247,247,247,188,123,
-247, 46, 76, 38, 19, 88,150,197,192,129, 3, 65, 8,145, 0,224, 4, 2, 1, 82, 83, 83, 97, 54,155,149, 25, 25, 25,242,123,247,
-238, 73, 0, 44,107,164,124, 57, 70,163, 17, 41, 41, 15,103,237,154, 55,111, 30, 25, 21, 21, 5,134, 97, 48,116,232, 80, 28, 57,
-114, 36, 50, 37, 37,101,101,109,205,247,164,215,188,202, 66, 22,226,235,235,123,176,106,151, 69, 78,240,126,126,126,225,129,129,
-129, 27,150, 45, 91, 38,106,222,188, 57, 8, 33,112,117,117,129, 78,167, 67,113,113, 9, 66, 67, 67,225,239,239,143,101,203,150,
- 1,192,174,134, 44,110, 28,199, 65,161, 80,224,193,131, 7,200,202,202,130,191,191, 63, 40,138, 66, 69, 69, 5, 24,230, 97, 78,
-110,105,133,230,248,247, 63, 31,235,191,111,195,252,176,238, 29,218, 5, 92,185,145,172,124,125, 84,164,180, 93,171,128, 32,213,
-221,133, 60, 96, 97,189, 73,151,229,114,249, 61,185, 92, 62, 70,169, 84,138,202,203,203, 35, 34, 35, 35,215, 12, 26, 52, 8, 55,
-110,220,192,249,243,231,199, 74, 36, 18,165,217,108,102,188,189,189, 39, 80, 20,229,100, 54,155,119,150,148,148, 40,108,227,161,
- 13, 54,216, 96,195, 83, 71,181,143, 22,106,189, 91,103,209, 10, 9, 9,145,101,103,103,191,209,178,101, 75, 49, 0,216,219,219,
-135, 6, 6, 6,206,200,202,202,170,176,182, 52, 58,157,110,239,142, 29, 59, 6,175, 90,181, 74, 52,124,248,240, 54, 7, 15, 30,
-236, 6, 0,195,135, 15,111,227,232,232,136, 29, 59,118,152,117, 58,221, 83,139,137, 68,211,116,159,174, 93,187,162,180,180, 20,
-217,217,217, 86, 77,161, 28, 59,118, 76,138,135,126, 89, 13,238,107, 8,140,201,228,234,226,231,199, 43,136,139, 51,151,106, 52,
- 62,125,250,246,165,104,179, 25, 60, 30, 15, 37, 37, 37,200,205,205,133,179,139, 11,149,154,145,225,176,101,214,172, 99, 45, 59,
-117, 18,179, 38,147,187, 21,197,212, 22, 43,139,222,250,112,202, 7,135,118,238,220,229, 89,174,209,100,218,219, 75,141, 18,137,
-200,123,234,135, 31,178,165,165,165,227, 1, 84, 90,192,179,108,231,206,157, 67,135, 14, 29,122, 59, 32, 32,192, 75,165, 82,121,
-151,151,151,179,165,165,165,124, 60,244,181,162, 0, 32, 46, 46, 14, 26,141,134, 97, 89, 54, 1, 15, 99, 97,153, 44, 45,104,139,
- 22, 45,156, 35, 34, 34,250,121,122,122, 66,173, 86,195,221,221, 29,157, 59,119,238,199,231,243,127,204,201,201, 81, 63,205, 94,
- 31, 27, 27,235, 72, 8,121,150, 16,130,161, 67,135, 90,116, 14,203,178,111, 71, 69, 69,137, 40,138,130, 94,175,131,157,157, 61,
-100, 50, 7, 56, 58, 58, 33, 40,168, 61,228,114, 57,134, 12, 25, 98,202,204,204, 92,175, 80, 40,246, 54,194, 5,185, 92, 14,149,
- 74,133,220,220, 92, 20, 23, 23, 3, 0,138,139,139,107,156,243,159, 6,212,106,245,200, 30, 61,122, 76,159, 60,121, 50, 24,134,
-193,200,145, 35,145,151,151,183,242,193,131, 7,123,124,125,125,199,189,253,246,219,158,238,238,238,152, 62,125,186, 61,128, 47,
-108,227,161, 13, 54,216, 96,195, 83,199,227, 62, 90,127,182,104, 53, 52, 39,234,237,237,221,155,162,168,121,122,189, 94, 92, 61,
- 37, 67, 81,148,216,211,211,243,136, 94,175, 95,170, 80, 40,172,114,138, 43, 47, 47,215,220,191,127,255, 72, 98, 98,226,232, 81,
-163, 70, 33, 54, 54,118, 60, 0,140, 26, 53, 10,137,137,137,184,127,255,254,145,242,242,242,167,146,128,212,207,207,111, 88,223,
-190,125, 71,117,237,218, 21, 49, 49, 49, 96, 89,246,146, 53,231,215, 94, 97,136, 58, 86, 29, 86,239,179,136,201,113,202, 59, 0,
- 0, 32, 0, 73, 68, 65, 84,140,207, 7, 69, 81, 53,214,140, 98,149, 10,233,105,105, 40, 45, 43,131,209, 96,128, 86,167, 99,131,
- 90,181,210,171, 77, 38, 33, 5, 88, 59,247,149,115,253,234,229, 92,157, 86,235,229,238,234,166,151, 74, 37, 40,215,168, 69,215,
-174, 94,174, 4,144,105, 33,135,137, 16,210,247,215, 95,127,157,207,231,243,199, 56, 56, 56,224,253,247,223,231,247,235,215, 15,
- 34,145, 8, 70,163, 17,229,229,229,216,177, 99,135,138,101,217,214, 85,231, 56, 72,165,210,109,124, 62, 63,191,162,162, 98, 94,
-163, 63, 96, 50, 13,143,142,142, 22,152, 76, 38, 44, 89,178, 4, 11, 22, 44,192,208,161, 67, 5, 87,175, 94, 29, 14, 96,231,211,
-234,241, 28,199, 33, 50, 50,178,182, 51,124,138, 37,231, 9,133,194,240,182,109,219, 66,165, 82, 65,165, 82,193,211,211, 19,190,
-190,190,240,246,246,198,202,149, 43,201,154, 53,107, 78,154,205,230,245,197,197,197, 69,150,148, 33, 43, 43,171,198, 50,104, 48,
- 24,160,213,106,145,151,151, 87, 51,117,168,151, 57, 13,157,242,214,136, 78, 90,189, 94,119,229, 78, 70,238,188,143,198, 61,167,
-213,235,117, 25, 15,114,211,129,181,156, 5,253,123,194,248,241,227, 39,140, 30, 61, 26,149,149,149, 72, 76, 76, 68,207,158, 61,
-177, 98,197, 10,159,132,132,132,105, 93,187,118,133, 80, 40, 68,124,124, 60, 24,134,201,179,141,133, 54,216, 96,195, 63, 25,255,
- 82,255,172, 6,209,160, 69,203,223,223,223,133,101,217,153, 81, 81, 81,145, 47,188,240, 2,134, 12, 25,242,200,247, 59,119,238,
-116, 60,112,224,192,210,181,107,215, 14, 53,155,205,203,172,153,234,227, 56,238,208,206,157, 59,135, 63,247,220,115,210,254,253,
-251, 7, 2,128, 68, 34, 49,237,220,185, 83,199,113,220,161, 38,212,165, 58, 16, 99, 17, 0,248,250,250,118, 20, 8, 4,163,134,
- 13, 27,214,241,173,183,222, 66, 82, 82, 18,118,236,216,113, 47, 40, 40,232, 66, 81,145, 85,254,213,217,141,172, 58, 92,218,152,
-117,139, 47, 22,151,148, 23, 22,186, 56, 4, 4, 8, 93, 29, 29, 21, 49, 49, 49,254,131, 6, 13,162,242,242,242, 80, 86, 86, 6,
-131,193,128,171, 87,175,114, 2, 32, 71,224,234, 74,229, 36, 38, 82,124,177,184, 4,180,117, 43,221,253,125, 92,219,125, 62,123,
- 82, 75,131,209, 16,166, 86,171, 25,129, 80, 40,108,238,237,146,151,150,105,213, 76,156, 81, 42,149, 70, 0, 16,112, 28,167,115,
-115,115,147,158, 62,125, 26, 98,177, 24, 20, 69,161, 67,135, 14,176,179,179, 19, 17, 66,114, 1,192,209,209, 81,188,113,227, 70,
-231,113,227,198,157,111,140,184, 75,151, 46, 66,137, 68,242,124, 80, 80, 16, 18, 19, 19,113,247,238,221,156,196,196,196, 22, 93,
-186,116, 65, 64, 64,192,243, 62, 62, 62,251,110,220,184,241, 84,150,247, 63, 92,177,106,189, 51, 60,203,178, 28, 69, 81,224,241,
-120,224, 56, 14, 42,149, 10,173, 91,183,198,186,117,235,176,122,245,234, 37, 10,133,226,168, 21, 92,172, 70,163,129, 76, 38,195,
-221,187,119,141, 81, 81, 81, 18, 30,143,135,123,247,238,213, 8, 45, 47, 15,183,208,158, 93,195,131,151,124,187,253,148, 76, 34,
-145, 12,233, 23, 17,146,156,145,147, 79, 8,213,232,180,113, 72, 72,136,168,117,235,214,227, 71,143, 30,141,172,172, 44, 44, 93,
-186,180, 88,161, 80,196,157, 58,117,234,165,201,147, 39,243,123,246,236,137,146,146, 18,252,252,243,207,204,181,107,215,126, 42,
- 44, 44,220,110, 27,198,109,176,193, 6, 27,254, 33, 66,203,223,223,127,180, 72, 36,154,254,202, 43,175,240,219,183,111,143,162,
-162, 34, 56, 57, 57,209, 20, 69, 9, 1,192,197,197,133,182,183,183,199,164, 73,147,208,169, 83,167,222,179,102,205,234, 41, 16,
- 8,214,201,229,242,109,150,252,176, 82,169,212,241,120,188,253,239,191,255,254,178,155, 55,111,180, 6,128,223,127,255,253,190,
- 92, 46,159,173, 84, 42,117, 86,214,163, 58, 40, 38, 37,145,216, 93,105,215,174,221,131,136,136, 8,167, 23, 94,120, 1,158,158,
-158,184,126,253, 58,150, 47, 95,158, 97, 50,153,230,159, 59,119,142,249,187, 27,153, 49, 26, 11,175, 29, 62,236,216,239,181,215,
-156,166, 70, 69,125,243,193,251,239,175,250,252,243,207, 5,237,219,183,167,116, 58, 29,174, 92,185, 66, 14, 28, 56, 64,255,188,
-120,241,106,200,100,194,196, 3, 7,196, 38,147, 41,199, 74,203, 93,223, 94,125,122,183,255,102,213, 90, 24,244,149,184,114,233,
- 56,202,202, 84,216,184,233, 96,123, 63, 63,210,183,160,160,224,156,165, 92, 20, 69, 5,197,198,198,122, 17, 66, 32, 22,139,177,
-104,209, 34,248,250,250,194,201,201, 9, 21, 21, 21,152, 54,109,154,243,199, 31,127,236, 12, 0, 73, 73, 73, 53,225, 25, 26,131,
- 92, 46,239, 49,105,210, 36, 71,134, 97,112,242,228, 73, 19, 69, 81,243,206,156, 57,243, 99,135, 14, 29,196,189,123,247,118,220,
-190,125,123, 79, 0,241, 79, 75,104, 53,241,188,123,167, 79,159,238, 58,102,204, 24, 34, 20, 10,169,242,242,114,184,184,184, 96,
-221,186,117, 90,133, 66,113,220, 74,174, 69,179,103,207,158, 95,181,189,117,222,188,121,239, 46, 91,182,204,179,176,176,176,198,
-170,169, 44, 46, 61,219, 35,234, 67,182,164, 92,109,250,233,219, 89, 47,219,219, 73,196,243,150,253, 20, 79,243,113,185,209,126,
-197, 48, 98,169, 84, 42, 38,132, 96,255,254,253,200,201,201,121,187,164,164,164,144,101,217,131, 51,103,206,156,209,190,125,251,
- 86,105,105,105, 57, 21, 21, 21, 43,148, 74,229, 3,219,112,103,131, 13, 54,216,240,151,161,218, 9,190,122,245,225,113, 60,156,
- 78,172, 95,104,177, 44, 59,233,212,169, 83,124,142,227,176,105,211, 38, 92,187,118,141, 72,165,210,121, 82,169,244,123,123,123,
-123, 86,175,215, 79,124,239,189,247,198, 45, 88,176,128,215,187,119,111, 36, 38, 38,242, 90,183,110, 61, 30, 64,109,161, 53, 8,
- 13,196,218, 80,171,213, 87,139,138, 10, 91,215, 10, 80,217, 90, 34,177,187,218, 72,101, 30,231,124, 60, 40,102,247, 69,139, 22,
-105,125,124,124, 76,119,239,222,197,134, 13, 27,184,107,215,174,197,137,197,226,141, 10,133,194,104, 33,231,211, 64, 13,167,152,
- 97,174,255, 50, 99, 70,200, 51, 35, 71,114,239, 78,159, 94, 41,178,183,255,232,155,181,107,103,149, 87, 84,248,130,162,136,187,
-179,115,206,166, 69,139,150, 14,125,254,249,202,164,115,231,236,110,198,198, 10, 61,105,250,150, 53,229, 44, 40, 40, 56, 23, 31,
-127, 30, 91, 55,175,130,217,108,132,162,224,161, 78, 43, 46, 81,163, 17,145,245, 39, 78,134, 97,212, 47,189,244,146, 8,128,253,
-235,175,191, 46, 86, 42,149,104,211,166, 13, 0, 64,163,209,224,248,241,227, 8, 14, 14, 6, 0,220,185,115,167,102,187,177,114,
-202,100,178,231,123,246,236,137,156,156, 28, 36, 37, 37,253,166, 80, 40, 74, 0,252,150,151,151, 55,188,107,215,174, 56,116,232,
-208,136, 6,132,150, 85,215,200, 66,161,245, 39, 78,123,123,251,217, 7, 15, 30,124,251,210,165, 75, 99,102,204,152, 33, 28, 56,
-112, 32, 0,160,162,162, 66, 7,128,181,134, 83,175,215,111, 4, 80,179,114, 54, 59, 59,251,151,233,211,167, 39,124,242,201, 39,
-158,213,229, 83, 37, 31, 77, 84, 1,137, 97,253,222,254,188, 71,215,176,246, 95,174,217,113, 42, 55,175,104,135, 58,229,136,218,
-146,186, 19, 66, 64,211, 52, 56,142,131,155,155,155,182,164,164, 4, 74,165,242,129, 82,169,124, 63, 51, 51,211,170,186, 63,205,
- 62,111,227,180,113,218, 56,109,156,255,163,176, 60, 50, 60, 33,132,225, 56, 14,241,241,241, 56,120,240, 32,107, 54,155, 39, 40,
- 20,138,218,209,170,215, 94,191,126, 61,246,165,151, 94,218,150,150,150,198, 79, 78, 78, 6, 33,132,181,166, 52, 6,131,129,166,
-168, 63,239,123,210, 90,110,221,186, 21,133,133,133,230,188,188,188, 51, 12,195, 28,122,194,213,139, 79,188,234,112, 43, 96,124,
-213,100, 58,179,160, 87,175,200,249,177,177,146,119, 63,251,204,248,230, 91,111,205,100, 77, 38,154, 47, 18,113, 98,153,140,199,
- 74, 36,194,164,115,231,236,214, 76,158,236,166, 55, 26, 79,238,176,194,193,188,218,162,213,175, 95,111,188,249,238, 39,208,215,
-178,104, 37, 94, 77,135,209, 12,171, 44, 90, 70,163, 49, 76,161, 80,192,206,206, 46, 23,128,247, 27,111,188, 1,142,227,160,215,
-235, 81, 81, 81, 1,185, 92,174,126,235,173,183,216, 42,241, 36, 24, 53,106,148,147, 37,188,129,129,129,190, 66,161, 16, 39, 79,
-158,132, 80, 40, 60, 14, 0, 66,161,240,120,108,108,236,240,177, 99,199,194,207,207, 47, 48, 43, 43,139, 66, 35,254,105, 94, 97,
- 35,247, 18,160, 29, 40,180,125,104,130, 67, 91,207,176,145,183, 41, 32,163, 42,106,124, 74,151, 46, 93, 0, 11,253,178,106,163,
-106,113,199,106,154,166,247,205,154, 53,235,253,238,221,187, 15, 94,176, 96, 1,133,170, 80, 13, 79,136,244,130,130,130, 62,115,
-230,204, 57, 69, 8,121, 68,244, 43,139, 75,207, 62, 23, 61,133,148,151,171,111,170, 82,142,222,177,202, 98,202, 48, 79, 20,206,
-194, 6, 27,108,176,193,134,167,102,213,250, 19,234, 21, 90, 20, 69,109,234,219,183,239, 4, 0,124,138,162, 54,200,229,242, 63,
- 13,254, 10,133, 34,221,215,215,247,235, 86,173, 90, 77, 4, 64, 40,138,218,100,101,161,138, 8,193,114, 30,143,154,245, 80,220,
- 53, 41, 64,101,117, 90,146, 89, 0, 40, 30,143,191,237,198,141, 27,159,229,230,230,170, 44,180, 64, 52,136,167,177,234, 16, 0,
-118, 1, 15, 94,201,201, 57, 53, 61, 60,124,208,208,201,147,209,113,232, 80, 39,223, 22, 45, 88,189,217,204,221,185,112,129,186,
-180,127,191,232,102,108,172, 80,111, 52,158, 60, 4,228, 90, 91,206,130,130,130,115,103,227,206,157,126,121,212,240,193,129,173,
-124, 31,138,134, 7,114, 20,151,170, 79, 91, 35,178, 30, 19,189, 35,215,173, 91,119, 84, 36, 18, 9,106,167,178, 49,155,205,165,
- 70,163, 49, 12, 0,202,202,202,124, 55,109,218,180,155,199,227,229, 52,198,151,156,156,124,100,254,252,249,163,178,179,179, 79,
-231,229,229,101, 3, 64,110,110,110, 54, 77,211,219, 20, 10,197,168,156,156,156, 3,176, 96, 17, 0, 1,218, 37, 93,216,215, 1,
- 0,194,122,141, 70,210,133,125,118, 0, 58,132,245, 26, 13, 0,104,106, 46,195,218,168, 10,131, 48, 47, 49, 49,113,231,224,193,
-131,223,195, 19,196,244,122, 92,108,153,205,230, 22,143,239,172,182,108, 89, 67,100, 50,153,104,189, 94,207,176, 44, 43, 48,155,
-205,196,100, 50,217,210,215,216,208, 24,108,185, 47,109,248,215,130, 16,210, 21,128,103,245,176, 89,245,238,249,216,182, 9, 85,
-233, 2,171,135,202,170,207, 42,138,162,174,214,226,168,217,111,193,185, 0, 80, 12,224, 54, 69, 81,245, 25, 65, 54,213,247,185,
- 94,161, 37,151,203, 15,192,130,164,209,150, 30,215, 0,230, 84,229,137, 3,154,158,135,173,134,131,101,217,162,220,220,220, 39,
-190,160, 60, 30,239,193,136, 17, 35,172, 58,190,177, 99,246, 0, 57, 31, 26,141,219, 99,190,251,174,243,201, 13, 27,252, 88,134,
-113,167, 0,194, 23,139, 75, 76, 38, 83,182, 39, 77,223,178,214,146,245,136, 53,230,126,193,144,172,251, 5,104,219,182, 45,185,
-119,239,222,211, 24, 84,111,105,181, 90,255,198,186,128, 78,167,235,109,161, 24,220, 85, 80, 80,176,171, 14,193,190, 91,161, 80,
-236,182,226, 78,145, 81, 37,170,120, 28,197,189, 28,214,107,244,126, 0, 92,117, 82,233,167,137,194,194,194, 52, 84,197,121,251,
-167, 33, 39, 39,199, 72, 81,212, 47,203,151, 47,127,253,230,205,155,123,228,114,185,209, 54, 20,219, 96,131, 13,255,101,145, 69,
- 81, 84, 76,213,231,232, 42,163, 80,204,227,219,213,199, 84, 31, 87,251,152,106,142,199,247, 55,116, 46, 0,204,158, 61,251,179,
-165, 75,151, 74, 1, 88,154,140,185,201, 73,165,255, 42, 20,253, 67, 56,106,139,130,205,127, 69, 69,191, 3, 76, 96,152,203, 96,
-106,249,228,211, 79,215, 16,113,239,222,189,255,244, 83,107,117, 82,233, 90, 8,255, 95, 29,124,178,179,179,215, 5, 4, 4,108,
-148,203,229, 12,108,176,193,130,251,149,173, 9,108,248,151,194,179, 46, 97, 84,143, 40,139,110,232,251, 71, 30,220,235, 56,174,
-174,207, 20, 69,197, 44, 93,186, 52,218,138,242,214, 88,180,120,182,107,103,131, 13,255,110,252,127,172,164,181,193, 6, 27,108,
-248, 79, 60,121, 60,102,197,170, 22, 95,143,127,158, 61,123,246,103,104,120,198,201, 7, 15,173, 88, 62, 85,159,107,252,181, 40,
- 60, 92, 57, 80, 23,172, 89, 77, 48,168, 9,245, 59, 99,227,180,113,218, 56,109,156, 54, 78, 27,167,141,243,127,142,179, 49,238,
- 51,117, 8,162,168,250,166,250, 26,154, 70,124,124,187,177,115, 27, 59,150,162,168,250,194,252, 84, 79, 21, 62,254,254,151, 99,
-144,141,211,198,105,227,180,113,218, 56,109,156, 54, 78, 27,231,147,128, 16,210,149, 16, 18,133,135,211,223,132, 16, 18, 69, 8,
- 25, 58,123,246,236, 57,213,251,102,207,158, 61,135, 16, 50,176,250,184,170, 99,106,206,169,222,247,248,251,227,251, 26, 58,182,
-129, 34, 78,120,108,187,230,243, 63,197, 71,203, 6, 27,108,176,193, 6, 27,108,176,161, 78, 84,175, 24,172,101,109, 82, 1,184,
-179,116,233,210,178, 90,190, 83, 42, 0,183, 0,116,170, 58, 78, 85, 37,210,106,251, 86,153,170, 62,155,234, 56,198,100,201,177,
-245, 96, 83, 61,219, 54,161, 85, 31, 58,121,243, 22, 7, 52,247,138,168,186, 0, 32, 85, 73,128,185,170,120, 69,164, 58,112, 17,
-199,129, 16, 2,185,178,252,250, 29, 37, 62,111,234,239, 5,249,194,205,203,206,110, 53, 71, 72,175,170, 93,231,212, 37,198, 79,
-146, 52, 40,183,148, 35,184, 25, 66,236,120,152,201, 17,116, 4, 0, 30,133,219, 6, 14, 95,167, 22, 89, 31, 79,170,174,126, 30,
-230,137, 9, 98,123,233, 43,206, 46,174,109,203,202,138, 51,204, 6,227,190,100, 21, 54,162, 9, 14,182,129,174,120,150, 35,248,
- 12, 0, 79,200,195,202,140, 82,139, 87,114,216, 96,131, 13, 54, 60,169,117,228,137,226,226, 81, 20,197,214,193, 73, 61, 33,167,
-109,161,130, 5, 98,171,142,221,191,215,177,239,234, 63,169,220, 86, 9,173, 80, 79, 76, 6,133,133, 0, 8, 8,190, 72, 86,225,
- 7,171,206,247,193, 32, 59, 62,127, 11, 0,190,193,204, 78, 39, 28, 18,234,108, 76, 30,250,216,137,248, 43, 1,112, 6,150,125,
- 39, 89, 97,185,191, 88,152, 31,134, 10, 56,222, 47, 28, 33, 66,150, 35,219, 64, 16,227, 32,194,197,203, 5, 48, 88, 83,214,128,
-230, 94, 17,135,127, 87, 12,142,251, 97, 42,186,119,108, 3,194, 50, 0, 71, 67,218,123, 38,126,251,246, 13,116, 15, 9, 0,225,
-104,128, 99,224, 48,236, 27, 12, 11,119, 38,119,148, 77,203,131, 29,228, 11,183, 22, 30, 94,119, 55,111,222,226,237, 27, 24, 74,
-113,140, 25,105,191,159, 30,247,241,172,249, 3,194,160, 14,183, 68,108,117,244,193,187, 1, 45,219,207,252,100,225, 42,190,143,
-175,191,140,163,141, 76,225,131,148, 46,107, 87,204, 63, 32,226,229,172,188,173,192, 22, 75,251,114,168, 39, 38, 10, 36,226,209,
-246,118,178,182, 58, 93,197, 61,214, 76,239,227, 9, 5, 67,191,254,102,117,231,126,145,195, 29,216,138, 66, 30,205, 33,116,239,
-158,221, 45,190, 91,183,126,248, 93, 5,251, 60, 0,206,154, 58,115, 4,179,210,183, 79, 24, 46, 20,240,169,144,183, 55,243, 1,
-166, 73, 66, 43,196, 11,175, 82, 4,141,134,151, 32, 20,206,167, 40,177,171, 41,191, 17,236,133, 31, 41,130, 32, 80,216, 79, 17,
-236, 78, 86, 65,105, 27,242,108,176,225,191, 5, 30,143, 23,199,113, 92,255,167, 44, 12,158, 37,132, 92,182,181,238,255, 54,172,
-179,104, 81, 88,146,148,153,231, 10,214,140,176,160,192,197,128,117, 66,203,142,207,223,118, 53,163,200, 27,140, 25,155,191,124,
-127,143,137, 6, 24,218, 12,150,161,193, 50, 52, 24,198, 12,150,166, 65,104, 35,230,255, 20, 7,152, 42, 16, 17,222,110, 27,192,
-250, 88,250, 27, 66,194,251,229,250,133,211,110,148, 73,141, 93, 63, 44,253, 48, 79, 85,249,225,153,219,242,226, 80, 47,253,156,
-100, 37,126,182, 70, 16,196,109,152,138, 29,135,142,231,175,249, 81,155,202, 17, 2, 55, 39,251,246,227,162,147,252,183, 31,137,
-203, 91,189,205,144, 10, 0,206, 50,113,251,241,183, 51, 2,158,228, 34,120,217,217,173,222,184,254, 59,111, 31,119,123,138,185,
-180, 12, 12,203,194,191, 69, 20,127,206,148,113, 62, 75,190,221,242, 45, 52,198, 55, 27, 58,191,189, 23, 66, 91,182, 10,153,190,
-237,248,165, 0,173, 70,105, 58,189,243,179, 76, 24, 65,123,251,133, 8, 23, 47, 93,197,159,251,233,212,105, 38, 54,255, 74,154,
- 18,201,141,141, 53, 33, 94, 56,178,116,217, 55, 29, 7, 12,139,118,224, 42, 85,124,131,182, 50,104,243, 79, 91, 22, 6,119,236,
- 38,237, 29,222, 92,164,220, 55,137,210, 87,148,194,204,179,147, 12, 8, 27,228,164,127,125, 44,189,121,235,142, 41,201, 74,172,
-181,166,206, 44,249,163,239,113, 92,211,163,174, 83, 4,189,111, 94,142,155,200,202,175,130,176, 52,192,154,107,222,193,210, 32,
-220,195,247,238,147,126, 2,208, 52,161,197, 35, 24,124,230,194, 85,159,162, 66, 69,215,111,191,249,106, 14,185,122,245, 87,176,
-248, 37,165, 20,231,172, 21,152, 0,130, 90,187,243, 79,209, 44,140,121,229,108, 80,245,206, 1, 65,146, 30, 62, 14,212,192, 92,
- 53,149,112, 62, 83,127,206, 54, 52,217, 96,195,255,139,197,132, 33,132, 8,158, 50,231,112, 66,200,137, 39,164,153, 9,224,221,
-170,237, 45, 0,190,126, 10, 69,107, 14,192,187,106,187, 16, 64,190,173, 7, 60, 17, 30,119,126,111,114, 28, 45, 59, 16, 14,216,
-255, 2, 0,216, 91, 91, 10, 2,216,129,226, 3,180, 22, 35,135, 69,194,195,203, 27,160,117,128, 89, 7,208,122,128,214, 2,180,
- 30,197,138, 28,192,172, 5,178,126, 5, 67,136,196,234,234, 26,213, 64,250, 62, 12,236, 18, 0, 79,103, 59, 76, 29, 25,234,177,
-233,100,250,150, 45,167,211, 6, 37, 43,241,138, 69,101, 37, 4,221, 59,180,197,154, 45,218,212, 99, 55, 84, 67, 0, 96,120, 39,
-247,147,221, 67, 91,248,175,222,102, 72, 61,113,167,108, 40, 0, 12, 13,115,250,181, 91,123,159, 0,238, 9,194,211,112,132,244,
-246,109,217,150, 98,111,110, 4,167,201,135, 70,163, 71,254,131,237,112,245,123,134,199,114,232,219,216,249,246,124,204,254,104,
-238,114,161, 78, 83,100,226,204, 42,214,147, 95,198, 23,136, 57, 10, 5,231,140,149, 92, 57,251,201,132, 55,152,233,159,127, 57,
- 27,192,184,134,120, 66,189, 48,101,229,202,213, 29,122, 70, 4,123, 21, 30,152, 74, 85,150, 21,129,225, 75, 37, 35,159,235, 9,
-151,118,161, 92, 81,252, 74, 74, 28, 56, 8, 46,238,129, 40,184,180, 19,217,151, 15, 82,189,186,140,146,252,188, 75,244, 58, 96,
-174, 83,104,181,245, 64,175, 33,125,186,237, 9, 12,240,245, 33,132, 3,199, 17, 16,142, 69,165,129,198,156,189, 89, 96, 89, 22,
- 47, 13,233, 53, 80, 38,166, 8,199,113, 32,132, 67, 94, 97,137,238,236,149,212,129, 89,101,184, 98,137,165,170,211,179,253,123,
-221,190,126, 57,152, 78, 63,134,136,113, 75, 83, 41,224, 66,173, 62,215,235,198,169,159,131,129,159,154,174,229, 40,176,217, 39,
-151, 33,160,207, 4,254,198, 93, 39, 61,213,170,130,241, 7,182,175,127,249,135,141, 27,119,164, 42, 49,201, 26,145,245,113, 31,
-241,133,111,207,106,220,159, 11,148,169,242,106,217, 41, 91,187,242,134,108, 56,145,252, 81,226,162,238,193,115,143,147,242,132,
- 76,195, 29,219,184,101,131, 13,127, 47, 8, 33, 79, 93,108,229,228,228,200,159, 68,108,249,249,249,245, 41, 40, 40, 88, 81,237,
-173, 66, 81,212,138,150, 45, 91,206,255,227, 65,245,145,103, 61, 53,203,178,227, 10, 10, 10, 18, 26,226,140,138,138,242, 61,126,
-252,120,171, 90,156,173, 0,180,170,235, 88, 23, 23, 23,182, 71,143, 30,217,199,143, 31,151,219,122, 72,147, 4,151,213, 66, 43,
- 53,119,223,212, 46, 70, 69, 37, 0,164, 90,112,252, 35, 83,126, 6,154, 93,182,117,225, 27,203,194, 90,186,161, 66,107,194,233,
-107,217, 96, 89, 26, 44,195, 84, 89,182, 24,176, 12,141, 33,157, 60,208,195, 48, 9,107, 99,210,192,176,220,210,134, 56, 31,135,
-153,112,175,118, 30, 52,102, 47,199, 17,177, 68,200, 83, 7,249,187,123, 77,127,169, 19,111,234,200, 48,232,205,204,152,157,241,
-153,103, 83,148,216,108, 17, 39,247,231,240, 68,164,174,125, 44,211,104,221, 27,176, 70,117, 31,212,175,183, 19, 49,170, 65, 23,
-103,161, 66, 71, 35,171,132, 70,161,161, 28, 18, 74, 97, 17, 39, 71,208,177,185,159,143,244,226,158, 79, 31,184,243, 53, 2, 47,
- 62, 35, 18,243, 24,176, 28,225,147,242,100,163, 91,112,164,176,218,111,171,161,114,218, 75, 29,223,232, 51, 56,202, 57,119,231,
- 4,202, 62,104, 8,188,186,248,227, 65,194, 86, 40,175,197,160, 68,158, 77, 57, 25,202,209,204,189, 13,134,141,123, 5, 95,191,
-210, 21, 21,154, 10,240, 21,153,206, 98,161,196, 5, 48,215,201, 73, 88,140, 91,185,252, 75, 31, 1,159,247,176, 61,171, 95, 44,
- 13,189,209, 8,176, 12,236, 4, 28, 40, 82,253, 29, 13,150, 54, 75, 59,142,250,244,125,128,189,210, 88,221, 83,148,216, 21,234,
-137,222,224,232, 96, 66,235, 65, 1, 23,146, 85,127,136,159, 16, 47,188,250,204,144,183,122, 19, 10,231,155,114,141,194,221, 17,
- 29,209,202, 65, 38,211,164, 34,127,255,135,200,132, 29,105,214,243, 93,188,250,246, 20,233,166, 77,155, 70, 0,100, 50, 30,245,
- 81,171,225, 12,110,198,159, 72,179,152, 15, 0,122,154,108,117, 20, 83,111,175,220,157,232, 14,254, 31, 25, 30,170, 45, 89,153,
- 37, 92,153, 57,110, 94,218,179,211, 99,250,117,184,217, 47,143,162, 36,185,231,238, 25,213,214,244, 37, 43, 97,227,180,113,254,
-229,156, 78, 78, 78,173, 91,182,108, 57,159,166,233, 62, 34,145,168,153,217,108, 6,199,113,133, 98,177,248,124,118,118,246, 34,
-141, 70,115,255,159, 86,247,219,183,111, 91, 35,182, 26,229, 20, 10,133, 72, 75, 75,187,103,133,216, 58,243,216,249,191, 92,184,
-112, 1,123,247,238, 5, 0,164,167,167,163, 93,187,118,178,186, 78,124,240,224,129,172, 95,191,126,191, 0,240,111,136,243,206,
-157, 59,173,143, 29, 59,134,253,251,247, 3, 0,210,210,210, 16, 20, 20, 84,103, 97, 46, 92,184,192,127,237,181,215, 90, 3,144,
-255, 13,215,232,191, 32,178,106,191,255, 33,180, 98, 98, 98, 72,116,116, 52,245,248,118, 29,200, 10,112, 21,119,129,129, 5,128,
- 44,107, 75,144, 82,132,229,107,182,159, 26,250,219,254,117,125,236, 68, 60, 44,216, 60, 61, 79, 85, 90,241,172,128,122, 56,253,
-194, 16,240, 92, 29,196,137, 75,199,119, 10, 40,171, 52,224,232,239, 5, 9,201, 74,235, 76,164,201, 10,196, 2,156,203,195, 79,
- 44, 12,122,101,208,248,175, 99,119,239,158, 61,180,227, 39, 35, 59,226,200,165,236, 79, 0,166,209,168,239,132,227, 64, 56,166,
-198,249,189,234,209, 1,224, 30, 77,224,203,129, 60,220,199, 89,103,209,234, 11, 8,202,188, 48,204, 81, 42,254,126,226,196,247,
-156,104, 85, 6, 74, 77, 34,228,149, 25, 80,168, 23,162, 82,224,133,130,212, 59, 44,143, 66,108,163, 38, 23, 10, 26,194, 24, 92,
- 92,197, 14,188,240,200,247,253, 52, 39, 63, 43, 19, 83, 12,223,233,197, 37, 46,197,191,173,202,102,180, 42, 45, 69,161,209,240,
-243,206,206, 46,237, 12, 37,217,124,117, 89, 49, 92,188,195, 48,116, 76, 52,190,136, 10, 69,133, 70, 11, 85,105, 34,105,235,227,
- 68,229,156,223,129,185,195, 66, 80, 82,164,128,145, 6, 40,173,177,212, 96, 50, 84,214,219,142, 60,108,252,120,198,172, 87, 91,
-248,120,202,170, 23, 21, 16,142, 69,167,144, 64, 68,246,233,142,216, 11, 23,113,245, 78, 58,184,170, 69, 5,132,227,144,175, 44,
- 43, 50,152,217,173, 86, 53, 40,203,128,208,134, 58,133, 24,154, 48,101, 24,238, 5, 41, 11,124,222,181,181,227, 59,179,163, 91,
- 56,202, 36, 20, 12, 52, 11,131,137, 70,197,197,239,225,222,178, 3,164,118,118, 84, 23,232, 5, 55, 80,119,219, 26,104,204,191,
-175, 40,247, 65,101, 33, 94,139, 12,251,104,219,210, 15,100,148,221,195,174, 73,179,143, 90,178, 46, 46,236,122,234,181,197,135,
-227,246,238, 27,235,251,245,204, 55,250, 13,153,182, 53, 14,192, 73,219,184,101,195,191, 17, 47,191,252,178, 93, 81, 81, 81,188,
-191,191,127,104,100,100,164,180,119,239,222,208,106,181, 56,125,250, 52,180, 90,109, 11,127,127,255, 22,167, 79,159, 30,149,155,
-155,155,220,188,121,243,126,251,247,239,183,216,135,182, 74, 0,241,107,134, 96,128,161, 40, 10, 85,251,168,170,125, 77,206,115,
- 43, 22,139,145,147,147,243,212, 45, 91, 5, 5, 5,247,154, 98,217,170,172,172, 20,249,249,249,193,211,211, 19, 44,203, 66,171,
-213,226,240,225,195, 80,171,213,224, 56, 14,246,246,246, 88,178,114, 51, 82,111,196,227,202,149, 43, 80,171,213,162,198, 56,243,
-243,243,169, 78,157, 58,193,104, 52,130, 97, 24, 24, 12, 6,156, 57,115,166,230,179, 64, 32,192,172,197,223, 34,253, 90, 60,110,
-222,188,137,252,252,252,191, 37,219,136, 21, 90,228,159,136,122, 99,102,253,237,171, 14, 89,150,153,179,105,219,238,196, 57,147,
- 94,193,148,177,131,252, 23,173, 59, 56, 40,165, 24,219, 0, 32,196, 3,227, 95,239,223, 54,192, 69, 42,196, 23, 59,175, 1,132,
-204,121,210,223, 75, 42, 69,122,104, 51,238,147, 67, 87,114,226, 63,123,165, 11, 2,125,156,218,149,137, 75,197, 89, 89, 22,228,
- 20,228, 24,184, 58, 72,218, 15,239,228,126, 18, 28, 7, 23, 71, 73, 48, 88, 6, 46, 14,146,246, 67,195,156,126, 5, 0, 39,169,
- 48,184, 46,203, 87,125,136,240, 23, 78,144, 74, 4, 19,100,142, 46, 1,111,142,136,180, 31, 62, 98,148,189,131,144, 65,201,149,
-211,208, 8,155,131,118,107, 1, 35, 93,138,252,251,153,236,111,151, 83, 10,138, 43,140,211, 27, 45, 38, 65, 66,193,253, 52,207,
-214, 29, 35, 93,139, 99,230, 42, 91,191,181,179, 21, 15, 28,175, 98,199,139, 69, 50,175,110,246,191,103,221,175,228, 72,157, 22,
-157, 71,160, 81,171,179,105, 22, 62,122, 86,224,152, 25,247, 51,102, 15,235,128,178, 82, 37, 12,102, 6,106, 61, 99,246,118,177,
-147, 24,239,223,133,209,204,192, 68,115, 16,186,248,225,116,226,157, 98,142,166,127,173,143, 51,171, 4, 55,179, 14,223,116,168,
-189, 47,208, 3,157, 62,117,178,191, 9, 90,143,156,124, 57,182, 29, 79,236,146, 85,130,155, 79,114,157, 9,199, 60,156,126,174,
-101,201,162, 8,122, 55,197, 9, 62,216, 11,221, 68,118,162,239, 86,124,242, 90,232,115, 65,110, 18, 46, 63, 17, 20,103,134,140,
- 21, 64, 47,102,225,236, 31, 8,206, 84, 65,116, 6, 67,121, 18,208,208,197,231, 3, 0, 49,107,241,245, 27, 97, 50,202, 53, 16,
-108,214, 73, 8, 58, 79, 0, 93,101,237,207, 44,225,238,152,227,230,165,246,152,113,172,239,226,216,254, 41,242,227, 11, 82,252,
- 94,254,190, 19,176,181,165,237,118,109,195,191, 17,237,219,183,247, 46, 40, 40, 72,154, 49, 99,134,219,139, 47,190,136, 67,135,
- 14, 65,163,209, 96,235,214,173, 88,189,122, 53, 22, 46, 92, 8,154,166,177,105,211, 38,233,129, 3, 7,186,173, 95,191, 62, 63,
- 32, 32, 32, 44, 55, 55,183,176, 17,129, 69, 1,144, 0, 16, 86,221,187, 40, 0,220,137, 19, 39, 48,124,248,112,156, 56,113,130,
-171,218,199,226,225,195, 79,147,114,127,138,197, 98,136,197, 98,168,213,234,167, 34,182,132, 66, 33, 28, 28, 28, 32, 22,139, 81,
- 81, 81, 97,181,216, 98, 24,134,159,159,159, 15,181, 90,141,200, 17, 35,240,237,210,165,232,223,191, 63, 34, 35, 35, 65, 8,193,
-153, 51,103, 48,168,103, 56, 94,121,190, 31, 82, 82, 82,192, 48,140, 69,229, 45, 44, 44, 68, 81, 81, 17,134,142, 24,129,205,235,
-215,163,123,247,238,104,223,190, 61, 24,134, 65,124,124, 60, 94, 30,210, 19,118, 47, 12, 66,122,122,186,173, 83, 91,110,205,122,
- 42, 62, 90, 79,140, 36, 21, 46,115, 71,206,197,140, 29,210, 45,122, 68,175, 80,108,222,243,219,151,240,212,236, 6, 0,119,163,
-100,201, 27,253, 3,145,156, 91,134,223,110,202, 99, 82,138,241, 84, 86,107,112, 44, 60,220,157,164, 0, 95, 12,189,153, 99,156,
-178, 26,119, 96,230, 8,129,180,207,167,120,125, 68,178,127,247, 80,127,255,234, 85,135, 14,195, 87, 97,252,157,123, 1, 93,219,
-123, 7,128,165, 1,150,134,211, 43, 59,129,197,178, 70,203,209,179,149, 56,246,227,169, 83,123, 12,123, 97,140,189, 88,234, 12,
- 86,147, 7,186,240, 14, 74, 50, 18,160,149,182, 67, 97, 78, 22,246,158,186,162,206,200, 47,209,240,120, 56, 93,164, 54,206,204,
- 42, 67,101, 99,188, 6, 26, 75,231,207,157, 30,181,119,247, 30, 71, 73, 96, 47, 42,243,251,225,106,177,128,145,120,182,122,134,
-167,179,243, 32, 95,109,221,227,164, 53, 97, 89, 99, 60, 58,173,230,224,153,211, 39, 95,105,219,186,151,227,131,171,199,161, 55,
- 24, 97,164,129,176,110,253,192,178, 68, 76,241, 40,206,137,207,167,148, 37,101,160,104,182,232,252,173, 7,138, 11,183,178,248,
- 70, 71, 44,107, 48,186,200,227,234,158,226,127, 52,162, 95,103,128,214,227,249, 62, 29,240,237,142,223, 62, 4,216,183,158,236,
- 34, 63,180,104, 17,160, 87,168, 39, 54, 16,130, 94,215, 14,175, 14,142,120,225, 99, 88, 99,209, 10,243,192,176,144,214,190, 63,
-127,187,228, 83, 55,247,230,237,248, 20, 71,131,120,119, 4, 52,249,132,202, 79,132,179, 95,119,176,190, 61,177,105,237, 55,149,
- 28, 71,118,163,129,208, 22, 44, 7,112,185,231,192,166, 30, 66, 86, 86, 22, 60, 90, 92, 3, 40, 30, 72,203, 7, 48, 51, 15, 79,
- 51,154,201,241, 53, 91,143,245,159, 57, 96,105,216,136, 96, 65, 64,226,173, 76,229,152,183,125,165,207, 6,240,131,146, 21, 50,
- 94,177, 86,203,217,198, 47, 27,254, 77, 48, 24, 12, 7,151, 47, 95,238, 22, 29, 29, 93,109,145, 65, 98, 98, 34,182,108,217, 2,
-153,236,209,113,114,248,240,225, 32,132,184, 45, 88,176,224, 32,128,231,234,227,236,209,163,199,136,155, 55,111,202, 59,119,238,
-156, 85, 37,182, 68, 0,120,119,239,222,229,229,229,229, 81,174,174,174,196,215,215,151,150,203,229, 28, 0,246,237,183,223,230,
-239,219,183,175,173, 86,171, 61,215, 84,161, 37, 22,139,159,138,207,150, 80, 40, 4, 69, 81, 16,139,197, 16,137, 68, 32,132, 88,
- 37,182, 88,150, 21,156, 56,113, 2,215,174, 93,195,194,206,157,241,137,159, 31,220,220,220, 16, 31, 31, 15, 66, 8,100, 50, 25,
- 74, 75, 75,177,123,247,110, 12, 24, 48, 0, 12,195,136, 44,225,221,191,127, 63,174, 95,191,142,197, 17, 17,248,196,217, 25, 14,
- 14, 14, 56,115,230,225,108,160, 68, 34, 65, 78, 78, 14,206,156, 57,131,126,253,250,217, 58,245, 19,194,226,206,211, 23, 16,148,
- 82,240, 54,155,244, 32, 12, 1, 40,248,134,132, 64,148,146,242,168,115,142, 37,224,241, 48,119,237,182,152,168, 85, 31,143,160,
- 38,140,236,226,187,232,231,184,201, 0,240,206, 75, 65,126, 82,137, 0,107,142, 36, 19, 30, 15,115,159, 70, 5, 67, 66, 32,162,
- 74, 48, 57,178,123,123,200,203, 77,200,148,151,159, 77, 1, 44,202,226,252,219,170,215,177,253,104,124,222,234,237,134, 84, 66,
- 8, 92, 28, 36,237,199,223,206, 12,248,249,196,245,220,149,123, 13,169,132, 35,112,145, 10,131,223, 74,233,217,232,170,195, 8,
-127,225,132,105,211,167,247, 28,249,214, 12, 59, 38,117, 31, 76,153,167,192,153,245,208,152, 69, 40,231,123, 35, 63, 55, 23, 95,
-109,138,201,211,104, 77,175, 36,169,172, 19,152, 25, 37,168, 20, 80,154, 23,191,250,226,179,216,165, 75, 22, 56,232,179,226, 43,
-249, 20,163,231,183,236, 43, 88,178,112, 21, 85, 97, 52,141,201, 42, 67, 69, 99, 60, 70, 71, 44, 91,190,114,109,212,123,227, 70,
-165, 6,181,235,235,206,202,239,187, 27, 52, 26,229,206,147,215,189,171,158, 20, 41, 0,200,204, 47,129, 74,173,101, 88,134, 62,
-231, 40,196,162,100, 75,172,131, 85,104,237, 5,207,232, 94, 97,175,121, 58,138,160,175, 44,135,151,163, 16, 67,186,183,121,141,
-254, 61,253,211,251, 74,107,228,218,227, 66,139, 6,161,245,184,188,108, 64, 48, 97,233, 96,176, 52,204,183,127,177,222, 50, 70,
-225,147, 41,125, 28,156, 92, 77, 15,120,208,202, 0,123, 15, 80, 78, 45, 0,231, 86,148, 48,100, 12,228, 89, 73,204,135,175,141,
- 43,185,159,157,255,163,135,125,195,211,218, 52, 71,192,101,199,163,178, 40, 19,119,229,102,132, 41, 31,206,182, 59, 21,221, 0,
-107,139,152, 99,195,127, 20, 57, 57, 57,111,204,153, 51,231, 66,247,238,221,155,121,120,120,160, 67,135, 14, 56,122,244, 40,102,
-204,152, 81,115, 76,231,206,157, 65, 8, 65,105,105, 41,150, 47, 95, 94, 40,151,203,223,104,240, 1, 61, 41, 41,117,251,246,237,
-125, 66, 67, 67,205, 34,145,168, 28,128,164,188,188,220,174,180,180,148, 50, 24, 12,224, 56,142,115,118,118,102,229,114, 57,253,
-202, 43,175, 24, 47, 93,186,212, 70,171,213,230, 60,137, 69,203,223,223,255,110, 73, 73,137,154,162,168, 39, 14,253, 80, 45,178,
- 60, 60, 60, 60, 43, 43, 43, 57, 0,101, 77, 9,253,192, 48, 12, 34, 34, 34,112, 42,225, 6, 78,252,118, 9, 26,121, 26, 38,191,
-247, 6, 58,116,232,128, 83,167, 78, 53,249,154,117,234,212, 9, 39,207, 92,192,133,107,183,144,147,126, 27, 31, 78,126, 15, 97,
- 97, 97, 56,121,210,230,189, 96, 5,142,227, 81,223,172,227,143, 11,173,126, 49, 49, 49,213, 67,255,159,228,107,176, 7, 58, 9,
- 93,196,191, 44, 24,214, 38, 68, 24,185, 0,148,208, 30,251,218,157,236, 57,247,171,239, 83,249, 94, 57,227,238, 42, 27, 95, 29,
-246,200,159, 70,137, 36,114, 37,117,215,173,148,224,215,158,239,238,143,205, 71,165,159, 3,192,152,222,173,241,123,134, 10, 87,
-210,149,187,146, 85, 72,122,210, 90,135,123, 65,202, 22, 99,215,242,143, 70,246,107,209,220, 27, 91, 14, 93, 0, 69,225,160, 69,
- 55, 92, 66, 72,247,208, 22, 88,189,253,241, 21,134,222, 1, 43,247, 26, 82, 79, 39, 85, 12, 3,128,200, 96,233,175, 93,219,184,
- 6,144,218,142, 91,117,192, 94, 44,152, 56,108,212,235,118, 76,250, 81, 32,251, 12, 40,198, 8,189,153,131,162,184, 2, 58,103,
-127,196, 39,222,210,171, 13,166,143,147, 85, 77,179,226,165, 20, 35, 75,116,245, 86,110,165, 86,239, 35,245,108, 99,224,243, 56,
-174,210, 72,240,123,114,182, 38,185, 16,105,150,112,100,101,193,244,172, 31,211,123,195,182,189,243,133, 34,241, 24, 62, 5,202,
-203, 69,230,185, 97,213, 98, 56, 58, 58,128, 51, 85, 2, 90, 21, 94,252,224, 43,213, 93, 57,221, 26, 0,218,185,195,161,119,107,
-225, 54, 1,143,202,143,203, 52,207,107,236, 55, 40, 26,147,198, 13,233, 44,228, 76, 90,124,180,124, 15, 54,126, 58, 18,175, 15,
- 12, 17, 30,191,152, 62, 9,192,162,166, 94,107,194, 50, 32,180, 30,207,125,150,144, 74, 1, 23, 8,208,235,218,222, 37,193,192,
- 13,139, 57,186, 0, 66, 86, 64,133,116, 12,144,137,184,252,139,224,242, 47, 18,190,127, 79, 80, 1,125, 40,202, 59,130,124,183,
- 98,161,118,243,230, 45,167, 57, 30,190,176, 32, 84, 6, 88, 14, 40, 78,191, 0,147,201, 4,154, 5, 12, 6, 3,180, 90, 45,100,
-153, 39,107,124,180, 68, 66,106,232,212, 55, 71,116, 34,149,114,221,177, 84, 38,119,203,123,193,207,145, 74,185,238,114, 46,155,
- 94,172, 53,218,172, 89, 54,252, 27,145, 37,151,203,135, 14, 31, 62,252,183, 83,167, 78,185,133,135,135, 3, 0,174, 93,187,246,
-240,161, 51, 34, 2, 65, 65, 65, 40, 42, 42,194,216,177, 99,139, 21, 10,197, 80, 52,226,243, 91, 81, 81,113,127,255,254,253,205,
-180, 90,109,231,121,243,230, 41, 91,180,104,161, 49, 24, 12, 84,121,121, 57,199, 48, 12, 92, 93, 93,197,157, 59,119, 70,143, 30,
- 61, 42, 19, 19, 19, 91,230,229,229, 85, 0,200,110, 74,225, 71,142, 28,137,132,132,135,139,246,158, 70, 92, 45,145, 72,132,240,
-240,112,191,172,172,172,130,170,123,139,213, 99,124,237,219,203,173, 91,183,112,238, 70, 62, 4, 38, 61,196, 42, 57, 46, 31,218,
-143, 17, 19,223, 7,195, 52, 61,183,252,173, 91,183,112,248,204,101,200, 36, 2,164,165, 37, 97,255,254,253,152, 60,121,242, 19,
-113, 54, 17, 13,106,145,127, 56, 20,168,199, 79, 75, 0, 0,209,209,209,231,170,173, 21,181, 17, 24, 8,177,164, 18, 11, 34,187,
-248,205, 26,211,171, 13,159,214,200,193,177, 28,248, 66,192,203,195, 9,191,252,178,171,245,174, 61,123, 18,215,175, 91,191,150,
- 99,152,185,119,149,208, 89, 81,168, 5,171,246, 92, 24,243,203,244,126,130,201,195,130,221, 0, 64, 36,224, 97,205,209, 36, 6,
-192,130, 39,169,237,179,126,197,208, 97,164, 0, 0, 32, 0, 73, 68, 65, 84,176,171,164, 49,193,203,221,249,243, 57,239, 70,185,
-245,139, 8,194,185, 43,119,177,118,127, 98,130, 88,137,237, 22,119,110,142,198,227,250,169,174, 85,135,224, 26,247,187,100, 89,
-226, 45,146,185,194,156, 29, 7,152, 13, 48, 24,205,200, 43, 97,145, 87,106,128, 64, 42,194,181,244,124,189,123, 33, 98,158,160,
-218,148, 76,106,231, 59,255,203,149,205, 13,250, 74, 70, 83, 86,204,136,196,151,133, 82,123,137,194, 26, 87,133,203, 5, 48,244,
-105, 37,124, 6,224,248, 98, 59,162,251,108,218,155,178,130,228, 83,104,203,147,131, 34, 4,246, 33, 81,112,180,231,139,122,181,
- 20,230, 2,128, 76, 38, 21, 47,255, 98,134,243,199,159,126,209,168, 15, 88, 8, 32, 10, 10,244,254, 56,188,133, 43, 18,174,167,
- 34,225, 78, 78, 82,194,181,180,176,254, 29,124, 17,212,220,101,170,184,172,124, 89, 10,172,183,144, 62,188, 48, 12, 64, 27,106,
- 86, 29,134,120,225,213,174, 99,230,213,183,218,176, 78,180, 2,184,116,150,128,226,243, 1,138,247,112, 5,100,222, 69, 8, 92,
- 2,201,174,189,135,117, 91,182,108, 95,156, 82,108,249,226, 12,154, 5,171,209,104, 32,147,201,112, 50,157, 49,190, 62, 68, 36,
-225,241,120,200, 75,191,241,135, 51,188, 27, 47, 84,212,127, 73,240,197,133, 93, 79, 57,138, 41,137,111,212, 23, 33,204,157,237,
-249, 77,189, 73,216, 96,195, 63, 1,106,181,250,118, 74, 74,202,144,142, 29, 59,110,253,232,163,143, 28,199,141, 27,231,251,222,
-123,239,241, 0,160,168,168,136, 91,189,122,181,252,187,239,190, 83, 23, 23, 23,191, 69,211,180, 37,161, 76,136, 66,161,184,244,
-227,143, 63,170,206,159, 63, 31,214,173, 91, 55,201, 51,207, 60,195,185,186,186, 10, 36, 18, 9,107, 50,153, 12,233,233,233,108,
- 86, 86,150, 79,121,121,249, 61, 0,153,104, 66,198,138, 42,235,213, 34, 62,159, 63,159, 16, 18,254, 52,124,180,164, 82,169, 47,
-128,123, 20, 69,181,181,118,218,240, 79, 55,108,129, 0,101,101,101,208, 21, 38,193, 46, 63, 3, 29,101, 60,132,186, 58,192,201,
-201,233,137, 68,145, 90,173, 6,180, 5,184,112,225, 22,192, 48,112,118,118,134,179,179,243,223, 46,180,234,211, 34,255, 18, 76,
-168, 99, 95,195, 62, 90,161,158,152,108,111,194,234,137, 81,109, 68,173, 2,154,195,152,127, 13,183,242, 42, 49,247,217,110,201,
-124,137,163, 97,226, 27, 35, 35, 70,189,220, 18,253,122,116,165, 90,249, 56, 79, 93,182,234,135, 15, 66, 81, 60, 35, 89,137, 53,
-150,148, 40, 89,133,251, 28,148, 91,226,110,231, 79,106, 46,213,131,227, 8,226,238, 40,112, 39,187,108, 75,170, 10,247,173,169,
- 93,168, 15, 6, 9,192,219, 67, 8,177,115,150,201, 42, 66,131,154,123, 12,122,174, 19,111,104,223, 8,136,248,192,133,223,111,
-225,147, 85, 7, 47,115, 28,137,186, 97,225,180,225,195, 21,134,143, 10,168,135, 43, 12,233, 71, 86, 24, 18, 66,200,195, 85,135,
- 13, 27, 31,248,124,170, 80,151,115,213, 91,232,222, 14,250,204, 56,100,151,113,200, 81, 86, 64, 35,240,134,177,160, 0, 32, 92,
-238,185,134, 29,171, 27,132,135,135,135, 87,235,208,160, 54,223,111,219, 15,179, 78,141,251,241, 91, 81, 89,166,192,146, 13, 71,
-219,248,249,185,247, 45, 40, 40, 56,103,197, 96, 19,244, 91,204, 46, 47, 16,128, 47,148,224,248,250,189, 40,118,183,135,135, 84,
- 4, 78,175,194,196,143,199, 57, 15,139, 28,231, 12, 0, 57,105, 55,209, 66,170,183,136,215,236,142, 81, 99,250,183,119, 1,173,
-199,182,147, 55, 13, 60, 96,232,246,211, 73,153,253,131, 93,236,198,244,106,225,186, 72, 94,254, 18, 74,154, 22, 84,180,218,162,
- 85, 99,225,107,194,106,195,253, 0, 27,204, 33,115,207, 37,165,236,229,200,103,164, 34, 1, 69,145,202, 2, 16,123, 15,252,176,
-109, 95,165,152,182, 46, 19, 59, 7, 44,234,190,244,254,252,135,253, 4, 91,135, 45,189,246,110,236,231,207,122, 22, 22, 22,194,
- 92, 53,119,120,191,148, 59,251, 70,100, 40,155,175,230, 76,167,151,189,248, 50,101,239, 41,158,249,245,246,120, 2,216,162, 73,
-219,240,175,134, 94,175,191,174,215,235, 59,204,156, 57,243,213,207, 62,251,172,143, 76, 38,107, 13, 0, 90,173,246, 62, 77,211,
- 9, 85,255, 79,107, 86, 7, 18, 0,247, 50, 51, 51,239,103,102,102, 54,219,177, 99,135, 11, 0,187,170,239, 12, 0,202, 1, 20,
-225, 9, 86, 28, 86,139, 42,138,162,230, 63,173,118,168, 22, 85, 20, 69,181,109,202,249, 60, 30,143,165, 40, 10, 20, 69, 65, 34,
-145,224,252,249,243, 24, 29, 21,137,148,227,229, 8,119,113, 64,183,183, 38, 98, 79,108, 44,248,124, 62, 40,138, 2,159,207,183,
-234, 62, 34, 16, 8,112,225,194, 5,188, 62,246,101, 72, 4,128,179,179, 51,102,206,156,137, 35, 71,142, 64, 32,176,101,233,179,
- 2,155,106, 9, 46, 11,227,104, 81, 88, 20,187,245, 43, 17, 88, 26,199,182,126,131,152,255, 99,239,188,195,162,184,218, 40,126,
-166,108, 99, 89, 58, 75, 47, 34, 17, 16,197,222,149,168,177, 37, 17, 99,139, 45, 49,182,168,196,104,212,152,216,141,198, 24,187,
- 17, 99, 47,201,103,239,198,130, 73, 84, 18,123, 65,197, 2, 34, 32, 40, 74,239,157, 93,182, 76,249,254,160, 4,148,178,139,166,
-153,249, 61,207, 60,179,101,246,236,204,220,221,185,103,222,123,239,123, 35,138,180,209,153,152,231,147,137,160, 35, 40,228, 50,
-191,219, 29,120,238, 74,196,170,177,195, 2,228,111,117,239,133,183,186,117,167,155,182,237,186, 0,168, 98,180,122,162,150, 92,
- 27, 44,135,111,182,253, 26, 53,241,224,133, 24, 2,186, 66, 12,235,221,150,103, 57,124, 83,199,193,188,160,105, 97,162, 56,120,
-229,250,117, 43,232,138,240,244,238,239,178, 6, 13,223, 0, 88, 29, 98, 99, 31, 97,253,174,159,184, 11, 55,163,247,104, 25,124,
-246, 56, 23,197,134,106,150,214,148, 12, 44, 76, 37, 62,111, 55, 53,255,133, 3, 15, 75,185,184, 49,207,177,176,148,139, 26,247,
-106, 44,255,133,231,121,222,204, 68,212,152,103,245,117,106,170,181,204,214, 93, 63,238, 88, 51,110,220, 56,211,172,164, 52,164,
- 20, 68,160, 72,226, 12,189,220, 21,113,119, 47,169, 85, 26,198,144, 74,188,198,243,153,149,149,149, 17, 22,154,131,131, 91,150,
- 65,175,213, 32, 35,169,212,171,166,100, 21,192,220,214,249,122,114,114,178,193,154, 58,134,203, 31,244,225, 4,177,137, 25, 76,
- 70, 14, 10,144,196,101,107,208,202,201,172,244,162, 81,148,137,135, 33, 87,208,173,172,143,233,227, 68, 18,238, 45,156, 12,218,
- 79, 51,153,248,179,119, 90, 59,227, 73, 66, 42, 46, 63, 72,222,245, 36, 7, 41,108, 84,234,174,184,148,188,192,254, 29,220,176,
-246, 68,228, 20, 64,191,223,152, 99,247,181,195, 8,158, 71,151,210,206,240,106,240, 64, 23, 95, 59,140, 48,112,164,225, 11,154,
-180, 24, 31,172,249,229,217,252,195,183,178,250,207,252,192,223,188, 83,167,119, 37, 96,180, 40, 84,107,244, 15,243, 80, 96,140,
-102,129,154,219, 10, 96,107,249, 27, 97, 73,220, 30,255,133,215, 47,237, 31,239,170, 44,247,234,151,226, 52,215, 1, 92, 31,219,
-222,100,129,184,251, 18,159,235,139,219,159, 9, 79,229,246, 94,138,171,200,161, 85,231,255,168,158, 8,154,130,230, 95,161,201,
- 2,216,163,215,235,247,228,229,229,189, 74,205, 20,188,152,215,233,165,142,189,114, 51, 33,207,243,116, 89, 52,171,174,206,240,
-181,106, 86,110, 38,228,121,254,231,178,104, 86, 93, 81,173, 42,154, 28,199,165,180,105,211,198,186, 95,191,126, 96, 89, 22,143,
- 30, 61,194,179,196, 68,244, 12,156, 2, 75, 75, 75, 92,186,127, 31,209,209,209,248,234,171,175,160,215,235,113,252,248,241,164,
-186, 52,105,154,214,189,241,198, 27,226, 1, 3, 6,128, 97, 24, 60,126,252, 24,201,201,201,152, 62,125, 58, 44, 44, 44, 16, 22,
- 22, 86,161,153,149,149, 5,154,166,117,213, 68,183,254,140,223,210,191,157, 23, 76, 86,237, 70, 11, 96,193,234,145,127,110, 33,
-214, 93,134, 78,167, 71,227,200, 76,196, 71,254, 17,145,218, 76,133,222, 63,117, 63, 34,234, 73,216,213,183, 36,200, 8,135,177,
-119, 18,143,178,145,106, 38, 43, 44,132,174,208, 28,143,127, 65,124,122, 97,209,163,108,164, 26,125,199,192,177, 4,116, 42, 32,
-245, 54,174, 93,186,136, 11, 55,238,225, 86,120, 20,123, 45, 44,230, 32,201,225,155,135,217,120, 84,143,187, 16, 40,250,174,197,
-232,240, 88,183,182,222,246,110, 96, 25,240,156, 30, 22,195,246, 99, 76,100, 39,183,182,158,150,110,165,145, 44, 61,172, 62,254,
- 29, 88, 35,171, 85,239,118,162,126,155,228,196,153,193,133,121,217, 29,122,116,237,104,106,225,251, 14,178, 98, 99,240,232,222,
- 21,117, 88, 68,220,181,219,137,250,109, 47, 83,186,206,206,206,111,246,232,234,131, 97, 19,231, 64,167,202,199,227, 11, 63,162,
- 40, 39, 13,151,175, 43, 16, 85, 80,208, 17,128,193, 17,173,235, 9, 76, 83, 36,228,162,115, 3, 81,130, 25, 52, 14, 31, 5,244,
-131,148, 40, 1,167, 41, 0,161,202, 66, 92,178, 54,127,240,150, 68, 22, 0,228, 82,130, 54,229,243,205, 13,138, 60,186,219,120,
-201, 41, 61,118,159,123, 0,142, 43,157,190,137,227,176,121,247,239,113,129,223,140,108,133, 38,110, 86, 45,238, 38,103, 16, 48,
- 34,228, 79,240,240,191,117,240,235,198, 37,191, 45, 0, 56, 29,174, 76,181,110,236,191, 46,199, 31,245,156,110, 39, 34, 5,201,
- 0, 2, 65,171,182, 78, 93,247,235,130, 54,231, 34,187,204,248,184,191, 57,248, 87, 50, 66, 55, 38, 50,141,125,179,253,242,103,
-103, 56,190,106,123,110,105,100,203,151, 79, 41,224,239, 94,138,211, 8, 89,225, 5, 4, 4, 0, 0, 69, 69, 69, 19,199,140, 25,
-179, 85, 36, 18, 41, 1, 16, 28,199,129,227, 56,122,213,170, 85, 34,150,101, 73,146, 36, 89,138,162,152,159,127,254, 89,207,178,
-108,102, 73, 73,201,196,186, 52, 25,134,137,155, 52,105,210, 27,117,141, 80, 60,112,224, 64,185,201,138, 19, 74,194, 32,147, 85,
-121, 93, 17,229,162,107, 9,210,126,221,121,228,194,133, 0, 8,240, 88, 20,153,137,248,231, 55, 9,207, 65, 74, 19, 74, 55,189,
-105,219,174, 11,203, 63, 99,236,158,149,176,236,251,109,155,121, 31, 0, 0, 13,207,142,172,207,209, 21,104,212, 67, 91,182,237,
-120,144,227,121,154,225,249, 29, 36,135,163, 37, 12, 30, 26, 50,210,174, 38, 82, 50,242,194,222,241,179,224,129,210, 38,195,138,
-230,194,178, 52, 14, 60,207,243, 21,205,133,171,101,200,202,215,212,153, 7,234,106,188,182,151,150,185, 53,225,236,213,187, 19,
- 89,150,119,160, 40, 34, 77,173,101,182,190,172,201, 2,128,228,228,228,139, 33,231,146,207,222,111, 97,223,219, 86, 94, 22,229,
- 82, 1, 89, 42,156, 77,206, 44,186, 88, 31,205,220, 98,125,255,185, 65, 39, 78, 74, 68, 20, 13,158, 47, 77, 40,202,243, 40,209,
-177, 57,215, 19,152,166, 0,208,204, 26, 78, 95, 30,103, 14, 80, 20,241,172, 46,189,208,232,212,181,195,150,135,124,241,224,105,
-238,142,167,121,136, 0,128,167,121,136, 56,116, 37,126, 65, 92, 90,225, 23, 17,207,114, 87,195,200,126, 21, 60,129,203,109,135,
- 45,124,225,181,151, 61,159, 81,169,184, 7, 96, 32,144,212,107,216,140,245, 51, 8, 2,175,106,250,137, 24,181,142,119,127,254,
-197,242,200,150,112,173, 18, 16,248,103, 80, 30,213, 34, 73,114,241, 43,212,252,153, 32,136,119, 1,196, 26,241,177,208,162,162,
-162,102,175,248,240,178, 25,134,201, 54,100,195,191,161, 67,252,191,149,109,127,215, 23,247, 20, 52,255,122,205, 70,141, 26,241,
- 70, 24, 22,225,124, 10,154,130,166,160,249,159,210,228,121,158,122,153,165, 6, 77,226,101, 22,161,140,254,245, 76,168,233,185,
-208,211,237, 53, 36, 54, 54,150, 16,206,130,128,128,128, 64,245, 16, 4,193,254, 9,154, 66,118, 60,129,114,131, 85, 37,186, 69,
- 10,231, 68, 64, 64, 64, 64, 64, 64, 64,224,149,152,172,202,235, 82, 19,142,154,195,127,198,140, 38,168, 79, 8, 49, 68,208, 20,
- 52, 5, 77, 65, 83,208, 20, 52, 5,205,255,156,102, 93,218,194,104,198, 63,217,128, 9,154,130,166,160, 41,104, 10,154,130,166,
-160,249,223,211,252, 55, 83, 99, 31, 45,161,233, 80, 64, 64, 64, 64, 64, 64, 64,224, 79, 66,232, 12, 47, 32, 32, 32, 32, 32, 32,
- 32,240,114,212, 57,169,180,128,128,128,128,128,128,128,128, 64,253,168,125, 82,105, 1, 1, 1, 1, 1, 1, 1, 1,129,122, 99,
-252,164,210, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6,177, 77, 56, 5, 2, 2, 2, 2, 2, 2, 2, 2,127, 13, 85, 71, 29, 6, 7,
- 7,243,149,215, 2, 2, 2, 2, 2, 2, 2, 2,127, 37,175,171, 23, 17,154, 14, 5, 4, 4, 4, 4, 4, 4, 4, 94,142, 9,130,
-209, 18, 16, 16, 16, 16, 16, 16, 16,248,115,168,177,143, 86,121,194,210,110,101,161,186,110,194,185, 18, 16, 16, 16, 16, 16, 16,
-248, 27,120,189,189,136,208, 63, 75, 64, 64, 64, 64, 64, 64, 64,240, 34, 2, 2, 2, 2, 2, 2, 2, 2, 2,255, 36,132,185, 14,
- 5, 4, 4, 4, 4, 4, 4, 4,254, 98,195,245,167, 27, 45, 97,102,115, 65, 83,208, 20, 52, 5, 77, 65, 83,208, 20, 52,255, 75,
- 38,171,138,217, 18, 70, 29, 10, 8, 8, 8, 8, 8, 8, 8,188, 28,117,142, 58, 20, 16, 16, 16, 16, 16, 16, 16, 16,168, 31, 19,
- 0, 4,148, 61, 14, 64,165,168,150, 16,209, 18, 16, 16, 16, 16, 16, 16, 16,120, 57,182, 1,112, 44, 51, 88,167, 1,164, 10, 70,
- 75, 64, 64, 64, 64, 64, 64, 64,224,213, 80,185, 95, 86,223, 74,230, 75, 48, 90, 2, 2, 2, 2, 2, 2, 2, 2, 47, 73,141,125,
-180, 8,212, 60,114, 32,196,136, 47,168,207,232,131, 16, 65, 83,208, 20, 52, 5, 77, 65, 83,208, 20, 52,255,115,154,117,105,135,
-224,223,199, 4, 99,204,215,171, 68, 24,250, 42,104, 10,154,130,166,160, 41,104, 10,154,130,230,127,150, 87, 62,234,176, 21, 96,
- 34,156,214,215, 18,251,178, 69, 64, 64, 64, 64, 64, 64,160,118,254,156, 81,135,190,192,199, 31,250, 41,183,232, 35, 50,205, 35,
- 0, 85,109,219, 42,149,202,173,114,185,252, 67,149, 74, 85, 76, 16, 4, 87,254, 58,207,243, 0, 80,121,174,163,199,153,153,153,
-254,117,125,183, 68, 34, 9,178,183,183,255,184,168,168, 72, 69, 16, 4, 79, 16, 4, 8,130, 0,128, 23,214, 44,203, 38,101,103,
-103,183,249, 87, 23, 33,207, 83,182,246,246, 55, 69, 20,229,108,236, 71, 89,142,139,207, 72, 79,239,104,196, 71,150, 17, 4,102,
-150,126, 45, 86, 2,152,243,186,253, 35,120,128, 50,100, 59, 63,192, 44, 6, 24,198,146,228, 20, 17,176, 81,195,113, 91, 0,128,
- 0,216,250,126,183, 38, 20,111, 16, 60, 90, 16, 4, 44,120, 30,249, 60,129,123,210,246,136,251,155, 78,197, 32,145, 72,212,223,
-220,220, 92,145,157,157,125, 17,192, 1, 0,195,109,108,108,186, 22, 20, 20, 20,233,245,250, 19, 0,142,213, 71,216,191, 5,102,
- 73,196,162,177, 37, 58,253,138,171,247,240, 99,215, 86,176, 97, 56, 44,151,137,105,127,141,150, 89,121,229, 62,118, 24, 41, 73,
-148, 45,229,215, 12,163,231, 72, 59,108, 96,185, 3,192,113, 43, 43,111,169,210,252, 55,145,132,138,207, 75, 47,250,240,253,140,
-140,196, 33, 47, 81,238,255, 68,108,109,109, 71,147, 36,249, 45,207,243, 96, 89,118, 94, 78, 78,206,206, 87, 36, 61, 15,128,101,
-217,227, 60, 0,223,190,164,222, 51, 0,110,101,143, 19, 0,184, 11,245,122,189,217,252,211, 79, 63, 5,118,239,222, 29,107,215,
-174,197,230,205,155,159,102,102,102, 46, 7,176, 11,128,246,111,208, 17,168,137, 38,192,187,171,250,180,103,245,255,251,134,171,
-244,114,207, 26,254,204, 63,124,244,209, 71, 58,158,231,249,232,232,104, 94,171,213,242,122,189,158,103, 24,134,103, 24,134,215,
-235,245, 21,139,179,179,115,242,115, 31,127, 65,147, 36,201,117,131, 7, 15, 46,228,121,158,191,125,251, 54,175, 86,171,121,141,
- 70,195,107,181, 90,190,164,164,132, 87,171,213, 85, 22,123,123,251,244,218, 52,205,205,205,111, 91, 89, 89,165, 91, 89, 89,165,
- 91, 91, 91,167, 91, 91, 91,167,219,216,216, 84, 44,182,182,182, 21,139, 82,169, 76, 87, 42,149,233,214,214,214,183,235,218,207,
- 50,250, 0,184,104,192,210,167,154,207,246,172,108,180, 28, 29, 29,211,249,122,224,226,226,146,104,192,126,150, 99, 79, 16, 96,
-203, 63, 75, 16,224,164, 82,169, 91,229,247,241, 98,164,171,206,144,178,147,147,211, 96, 71, 71,199, 16, 71, 71,199,115, 78, 78,
- 78,131, 13,248,137, 85,209, 52, 51, 51,187,109,107,107,155,238,224,224,144, 81,190, 56, 58, 58, 86, 89,156,156,156, 42, 22,123,
-123,251,116, 43, 43,171, 26,203,136, 7,168,154,150, 11, 0, 45, 5,222,162, 41, 42,216,222,222,190, 32, 60, 60,156,229,121,158,
- 39, 73, 50,185,124, 27, 99,142,253,121,147,165,186,130,121, 89,231,165,161, 69,241,203,243,179,206, 75, 67, 85, 87, 48, 79, 19,
-138, 55,234,171,105, 32,213,105,142, 26, 53,106,212,189,244,244,244,228,188,188,188,212, 45, 91,182,196,200,100,178, 43, 91,182,
-108,137,201,203,203, 75, 77, 79, 79, 79, 30, 53,106,212, 61, 0,147,140,208, 4, 0,116,108,129, 14,227, 6, 57,170,238, 29, 31,
-169,122,171, 45,125,183,179, 31, 2,122,117, 20, 39,111,152,237,171,186,180,189,139,170,123,107, 50,194, 72, 77,130,166,233, 78,
-110,110,110, 99,149, 74,229, 71,101,203,200,242,197,193,193, 97,164,131,131,195, 72, 43, 43,171, 33,181,105, 30, 6, 40, 67, 22,
- 87,153,172,211,144,134,110,170,103,139, 23,241,225,211,166,240, 99, 61, 93, 11,222,183,179,107,240, 55,148,209,159,170,105,103,
-103,151,162,215,235,121,157, 78,199,219,216,216,164,188,194,253, 92,205,243,252,106,158,231, 87, 3, 88,253, 10, 52, 43,174,103,
- 70, 24,236,218, 52,101, 52, 73,206,144, 75, 36,231,164, 52,157, 33,165,233, 12,185, 68,114,142, 38,201, 47, 0,200,254, 73,101,
-244, 39,104, 42,148, 74,229,147,160,160, 32, 94,165, 82,241, 42,149,138, 15, 10, 10,226,149, 74,229, 19, 0, 10, 35, 52,235,171,
-243, 58, 69,176,158, 95, 94, 93, 68,203, 23,104,243, 86,139, 70, 71,167,142, 30, 6,238, 72, 16, 81,199, 29,211, 15, 29,219,180,
- 25,187,107,215, 46, 0,192,135,253,251,163,119,187,118, 48, 83,152, 66, 34, 41,221, 29,130, 39, 32, 22,137, 49, 96,250,231,134,
-124,253,202, 1, 3, 6,124,112,228,200, 17, 5, 0,108,222,188, 25,131, 6, 13,130,181,181, 53,228,114, 57,196, 98, 49, 68, 34,
- 81,149,117, 93, 80, 20,229,146,156,156,108, 39,147,201, 42,162,108, 28,199, 85, 89,120,158, 47,143,190,129, 97, 24,120,121,121,
- 25,122,186,102,231,231,231,191, 89, 92, 92, 92,161, 81,221,210,176, 97, 67, 0, 56, 99,136,224,183, 75,190, 1,199, 20,131,166,
- 1,134, 1, 52, 58, 18, 28, 95,173,185,193,164, 73,147, 42,246,187, 62,244,237, 27, 64, 16, 4,113, 36, 44, 44,236,104, 70, 70,
-134, 7,199,177,227,235, 25,233,250,244,209,163, 71, 10, 0,240,246,246,158, 4,224,168, 49,251, 65,211,180,203,253,251,247,237,
-164, 82,105,141,145,203, 74, 17, 76,232,116, 58,180,106,213,138, 49,230, 59,236, 1,183, 28,146, 28,223,178,117,235, 9, 11, 7,
- 12,144,221,188,121, 83, 70,146, 36, 24,134,193,170, 85,171, 24,158,231, 45,155, 0,230,145, 64, 65, 45, 50,115, 1,140, 46,171,
- 12,118, 0, 88, 85,197, 45,240,104,161,214, 75, 3, 30, 23, 13,104,215,190,193, 44, 68, 62, 8,111,231,169, 56, 14, 51, 90, 19,
- 7,252,181, 81, 45,115,115,243,254,107,215,174, 85,238,216,177,163, 32, 58, 58, 90,183,101,203, 22,229,196,137, 19,205,116, 58,
- 29, 2, 3, 3, 51,125,124,124,196,107,215,174, 85, 30, 59,118,236,173,226,226,226, 77, 70,149, 23,129,111,134,247,239,141, 18,
- 61, 9,189,158, 81, 58, 42,205,246, 76, 29,213, 77,196,243, 90,236, 62, 17, 6, 61,195,253,104,100, 36,171,227,251,239,191,239,
-185,127,255,126, 58, 42, 42,138,110,220,184, 49, 56,142, 3,203,178,208,235,245, 0, 0,142,227,208,168, 81,163,151, 62, 47, 99,
- 1,111, 91,123,235,115, 29,223,125,199,196, 81, 38,133,117,110, 38,198,137,105,179,157,114,205, 94, 0,157, 94,171,200, 46,207,
-131,166,105, 36, 38, 38,194,206,206,206,132,227,184, 84, 0,139,114,115,115,183,225,245,165,157,132,166,143,238,254,113,157, 67,
-251, 78,157, 40,123, 71, 59,196, 60, 74, 0, 77,176, 61,239,223, 10,235, 54,246,147, 25, 83,181, 12, 51, 24,192,205,215,237,192,
- 29, 58, 77, 26, 72,144,212,102,130,231,240,245,134,147,133,203, 86, 6,201, 3,199,143,162,166, 79,159, 14, 87, 87, 87,143,129,
- 3, 7,174, 4,240, 73,157, 58,237, 39, 13, 4, 69,110, 6,207, 99,225,250,147,133, 75, 87, 6,201, 63,169,135,206,191,156, 26,
-255, 35, 47,109,180,124, 1,207,166,174,118,103,151,205,252, 68,196,255,242, 63, 82,149,157, 81,227,182, 74,165,114,235,219,111,
-191,253,225,206,157,127, 68,163, 59,250,249, 97,224, 91, 93, 96,103, 99, 1,185,169,164,180, 58,226, 8,220,139,142, 55,200, 16,
-184,186,186, 6, 30, 61,122, 84, 81,217, 76,136,197,226,138,165,178,201, 42, 95,202, 43,224,218,144,201,100, 8, 9, 9, 1, 77,
-211,160, 40, 10, 52, 77, 87, 44,149,159, 83, 20, 5,123,123,163,186, 46, 45,183,176,176,104, 94, 88, 88,104,158,151,151, 7, 55,
- 55,183, 2, 0,247, 43,189,223, 60, 51, 51,211,220, 24, 65,142, 41,198,244,113,190, 16,105,111, 64, 43,106, 7, 53,221, 25,215,
-110, 61, 68,240,153,139, 72, 78, 73, 67,151, 14, 45,241,209,136,247,113,238,220, 57,176,172,209, 45, 29,233, 60,143,149,253,250,
- 5,204, 2, 8,162,103,207,158,121,147, 39, 79, 38,163,162,162, 62, 24, 56,112,128,223,163, 71,177,101, 81, 69, 98, 38,207, 99,
- 29,128,116, 3,117, 37, 0,112,233,210, 37, 0,144,214,231,183, 39,149, 74,113,253,250,117,148, 55, 19,147, 36, 9,146, 36, 65,
- 81, 20, 78,197,218,162, 88, 75, 66,149, 30,129, 41, 1,110,104,216,176, 33, 72,178,238, 46,137,221, 0,217, 53, 96, 32, 33, 18,
- 77,119,116,114,242,232,234,233, 41, 15, 9, 9,161, 0,192,221,221,157, 79, 77, 77,205, 59,113,226, 68, 33, 13,108,118,231,249,
- 93,181,153, 44, 87, 87,215,206,201,201,201,223,150,159,115,130, 32, 86, 54,104,208,224,171,138,114,227, 56, 44,250,177, 88, 52,
-117,234, 52,113,251,110,243, 1, 0,237,251,237, 71,193,227,101,190, 68,206, 92,139,191,250, 42, 81, 80, 80,112,176, 81,163, 70,
- 84,118,118,246, 53, 0,207,244,122,253,236, 61,123,246,216,141, 27, 55, 46, 99,239,222,189,203, 1, 56,173, 88,177,162, 91,113,
-113,241, 33, 99,116,187, 52,199,187,173,155,251,117,112,115,117,197,197,107, 55, 33,150,136, 44, 39,141, 14,128, 66, 65, 99,245,
-142,211,220,179,164,156,201, 87,238, 99,151, 17, 38,171,221,251,239,191,239,177,127,255,126, 9, 0,220,191,127, 31,105,105,105,
- 80, 42,149, 48, 49, 49,129, 72, 36, 2, 69, 81, 16,137, 68,175,196,100, 89,184,218,132, 30, 63,126,194,196,218,218, 18, 27, 62,
-159,138,143, 50,210, 97,105,166,128,190,168,216,227, 53,171, 40,188,253,253,253,101, 44,203,162,184,184, 24, 23, 46, 92,176, 48,
- 49, 49,177,112,113,113, 89, 8, 35, 70, 79,201,100,178,244,146,146, 18,187,178,199, 25, 37, 37, 37,246, 0, 10,164, 82,105,249,
-117,186,168,108,109,104,115,226, 51,188,216, 76,152, 64, 16, 68,229,215,234, 75,219,118,109,155,135, 28, 59,178, 79,145, 95,152,
- 6, 75,171, 12,144,200,199,182,109, 27, 97, 98, 98,142,133, 11,231,210,241, 61,223,114,238,243,238,224,144, 7, 15, 99,122,190,
-118,102,139, 39,182,245,236,247,161,181,137,220,172,172, 46,209, 99,231,246,169, 32, 73, 18, 95,125,245, 21,154, 54,109, 58,225,
-193,131, 7,243, 1,228,212, 46,131,109,205,222, 28,106, 45,145,149, 22, 49,199,234,177,229,192, 23,165, 58,115, 38, 98,120,191,
-134, 19,190,124,255,201,175, 77, 61, 81, 88,118, 99,174, 22,145, 72, 32,218,163,194, 48, 4, 7, 7,119, 13, 8, 8,184, 88,211,
-243,127, 1,142,248, 35,127, 86, 21,243, 69, 7, 7, 7,243, 1, 1, 1, 68,165,131,171,242,188, 54, 90, 0,182, 86, 22,242,144,
-205,139,166, 42,232, 27,167, 41,117, 66, 44, 82, 74,170, 84,228, 85,134,104,202,229,242, 15,119,238,220, 89, 37,164,228,102,111,
- 7,177, 88, 4,145,152,128,165,127,105,246,250,188,203,193, 32,136, 26, 77, 86, 21,205,226,226,226,146,187,119,239, 42,118,236,
-216, 1, 59, 59, 59,120,120,120, 64, 46,151, 67, 38,147, 85, 49, 87,149, 13, 87, 53, 70,171,138,102,249,251, 52, 77,131, 36, 73,
-156, 59,119, 14, 12,195,224,253,247,223,127,193,100,209, 52, 93,147,113,171,105,120,234, 25, 0,247,121,158,127,179,172, 2,190,
- 15,160,107,165,247,251, 40,149,202,217, 0,150, 27,170, 73, 81, 60,168,146,107,224, 92,130, 64, 39, 78,133, 86,212, 2,231,175,
-132, 97,231,214,181, 0, 0,143,198,109, 49,100, 96, 64, 69, 52,206,192,253,172,192,217,217,249, 64,102,102,214, 59,111,189,245,
- 22,114,115,115,245,139, 22, 45, 66,243,230,205,225,237,237,109, 80, 25,213,112,231,156,126,255,254,125, 87,181, 90, 13,158,231,
- 13, 49,103, 47,104, 18, 4,129, 61,123,246,160,164,164,228,133,141,173,186, 46,197, 23,131,220, 49,102,202, 46,172,140, 62,132,
- 77,155, 54,213,122,236,114,160,121,137, 69,163,117, 18,138,105,190,124,238,167,210,143, 62,250,136, 26, 51,102, 12, 18, 18, 18,
- 48,110,220,184,146,115,231,206,105,211, 82, 83, 79, 72, 56,110,131,174,170, 49,174, 81, 83, 42,149,238, 62,115,230, 12, 14, 29,
- 42,245, 37, 49, 49, 49,240,242,242, 50,173, 98,146,115, 14,163,240,217, 6,132,158,138, 66,251,126,251, 17,122,106, 4,216,188,
-211,162, 54, 94,200, 55,230,124,214,131,234, 52, 15,101,103,103, 87,152,168,189,123,247,154,236,221,187,119, 0,128,147, 0, 14,
- 1, 64, 78, 78,206,119, 70,106, 2, 4,198, 12, 29, 52, 0,180,216, 12, 81,177, 73,232,218,177, 21,236,237,236,112,255, 97, 28,
-158, 37,231,164, 19, 4, 70,247,233, 36, 89,174, 86,107,231, 95,190,135, 31,234,208, 36, 92, 92, 92,188, 15, 31, 62, 44,174, 20,
-129,174,248,143, 83, 20, 85,241,188,220,120,215,231,247, 89,110,178,204, 92, 20,161,223,108,236,108, 26, 26,190, 23, 94,238,239,
-194,234,221, 0,252,112,246, 44, 30, 61,136, 44,209,170,152, 30,127, 67, 25,253, 89,154,222,131, 6, 13,186,182,111,223, 62,203,
-196,196, 68, 92,186,116, 9, 30, 30, 30, 80,169, 84,134,220,240, 86,209, 44, 41, 41,177, 43,255, 12, 65, 16,118,229,129,119,173,
- 86, 91, 94, 24,229,127, 68,203, 74,219, 89,214,162,233, 86,105,187,114,115,229,254, 10,142, 93, 34, 19,139, 15, 31, 63,118, 64,
- 17, 25,117, 9, 45, 91,116,128,194,162, 9, 56, 54, 13,217, 57, 69,200,141, 77,193,146, 37, 43,177,112,209, 60,156,252,233,136,
-194,199,183,197, 81, 45,195, 52, 2, 80,242,218,148, 59,193, 79, 8, 57,181,119, 51,193,115, 80,167, 71, 73, 69,197, 79,228, 31,
-142, 24, 76, 13, 27, 54, 12, 39, 79,158,196,131, 7, 15, 54,215, 98,178, 66, 42, 69,230, 39, 68, 92, 58,180, 25, 60, 15,117, 70,
-148, 84,172,126, 34, 31,245,193, 16,234,163,225,189,113,227,247,117,232,221,242, 73,132,147, 29, 6,230,150, 89,108,154, 66,182,
- 84,134,171,124, 40,110, 84, 50, 91, 23, 0, 16,149, 12,214, 5,252,209, 7,243,223, 64,223, 50, 99, 53,225,249, 27, 19,186, 62,
- 6, 11, 0,188, 0, 5, 33, 17,135,238, 92,248,169,147, 60,225, 1,173,137,184,142, 20, 13,199,111,121,202,112,173, 0,147, 59,
-128,250,249,207,168, 84,170,226,184,184, 56,147,209, 3, 7,162,147,159, 31, 28,109,108,208,200,197, 5, 38, 82, 9, 36, 98, 81,
-149, 91, 86,131,219, 16, 8,130,247,241,241, 65,191,126,253, 32, 18,137, 32,151,203,161, 80, 40, 32,145, 72,170,141,102, 25,122,
-151,203,243, 60, 40,138, 66, 68, 68, 4,158, 61,123, 6, 75, 75, 75, 92,189,122, 21, 61,122,244,120, 33,170, 85,217,156, 25, 19,
-162,175,166,226, 47, 55, 98,103,140,209, 98, 89, 2, 69,124, 11,200,158, 78,134,138,104, 5,141,134,129, 70,163,193, 15, 87,116,
-184, 25, 87, 12,157, 78, 11,141, 70, 83,219,119,214, 4,233,228,228,244, 97,163, 70,141, 38,141, 24, 49, 66, 47,145, 72, 80, 92,
- 92, 12,149, 74,133, 7, 15, 30,232,223,121,231,221,188,126,253, 2, 44, 78,159, 62,205,151, 53, 29,166, 27,161,157,237,236,236,
-236, 90,214, 60,155, 93,159, 95, 53, 65, 16, 21, 38,230,121, 70,127, 23, 9,154, 42, 45,147,205,155, 55,131,101, 89,240, 60, 95,
- 99, 33,149, 16,196,111,139,150,174,177, 88, 17,244, 35, 44,172,237,113,241,226, 69,246,215, 95,127, 45, 36,128,152, 71, 15, 30,
-124,247, 30,240,243, 97, 64,103,204,254,229,230,230,154,120,120,120,192,197,197, 5, 28,199, 65,175,215, 87, 68, 95,178,179,179,
-161, 86,171, 97,109,154,135, 55,108, 92,192, 20, 94, 64,106,196,215,112, 84, 68, 97,215, 25,173,190,181, 55,238,253, 3, 46, 28,
-255, 43, 91, 94,242,174, 25,206,118, 14,174, 32,121, 61, 82, 50,178, 49,160,111,111, 80, 98, 5,226, 19,179,208,162,137,167,227,
- 7,239,117,118,164, 8, 6, 51,151,239,159, 4,112, 63,212, 37, 87, 84, 84,196, 70, 69, 69,225,254,253, 82,191,107,110,110, 14,
- 83, 83,211, 42,255,113,146, 36, 95, 42,162, 85,110,178,150,110,238, 97, 74,138,138, 81,192,134, 96,199,158, 48,180,240, 9,192,
-150,208, 91, 37,108,122, 78,207,213, 37, 37, 49, 7,254,197,193, 12, 7, 7,135,137, 28,199, 45,228,121, 62,175, 75,151, 46,246,
-251,247,239,183, 74, 78, 78, 70, 88, 88, 24,190,250,234,171, 76,150,101, 25,158,231, 9,158,231,191,126, 5, 95,199, 85, 50, 88,
-175, 18,145, 92,134, 41,182,230, 68,127,154, 52,247, 96, 10,138,226,179,180,252, 9, 21,195,173, 7,160,175,245,226, 70,146, 31,
- 31, 57,184,217,201, 86,201,161,155,242, 45,164,166,235,176,244,243, 81,200,206, 46,196, 15,219,151, 1,144, 64,199, 80,120,179,
-219, 96,216,217, 57, 99,194,248, 9, 14,155,183,110,249,148,225,184,213,120, 77, 72,187,182,233, 39, 0, 33, 74,165,242,193,167,
- 19, 38, 40, 61, 60, 70, 66, 38,147,225,192,129, 3,216,191, 97, 3, 27, 4, 12,145, 2,231, 3,129,159,106,213, 9,253, 67,103,
-106, 96,160,210,215, 55, 16, 82,169, 20,191,255,250, 63,148,164,237, 41,236,219, 9, 58, 85, 9,250, 54,232,199, 91, 63, 61, 69,
-228,136, 68,136, 5, 0,145, 12,169, 0,158,111, 6,251,183, 25,172,114, 78,227,143,126, 89, 19,170, 68,180,234,125,237, 20, 73,
-194,183, 79, 27,238,110, 15, 13,161,189,114, 10,201, 26,142, 93,241, 72, 71,221,201,231,191,120, 88,141,201, 42,251, 97,115,110,
-110,110,120,171, 77, 27, 12,244,247, 7, 77,211,144, 73,196, 48,147,153,128,103, 75, 35, 89,229, 77,135,181,212,137,168, 46,250,
-100, 99, 99, 3,177, 88, 92, 97,176,140,136,102, 85,171,201,113, 28,104,154,198,253,251,247,209,165, 75, 23,184,186,186,226,208,
-161, 67,232,211,167,207, 11, 77,137,198,154,172,114,163,245, 92, 51, 94, 31, 0,229,145, 44,163,140, 86,137,150, 64,150,182, 5,
- 8,194, 15, 12, 3,176, 60,160, 41, 41, 1,207, 3, 60, 15,232,117, 90,148,148,148, 84,124,167, 33, 77,178, 14, 14, 14,110, 38,
- 38, 38,139,103,205,154,233,219,162, 69, 75,100,102,102,130,227, 56,152,154,154, 66,165, 82,193,220,220, 28,157, 58,117,138, 95,
-188,120,113, 42,207, 99,130,145, 38,235,165, 41, 63,231,103,207,158,173,210,108, 88,190, 20,167, 38, 97,204,103,123, 33,161, 75,
-155,150,202,251,240,212,118,221,237,254,102,103, 92,187, 19,195,124, 60,115,157, 70,148, 29,182,220,129,227,118, 38,189,196,113,
-241, 60,143,172,172, 44,164,167,167,163,255,128, 1,216,191,111, 31,158, 62,125,138, 38, 77,154,160,123,247,238,176,179,179,195,
-211,167, 79,113,243,178, 6,154,220, 28,228,104,195, 32, 55,107,143,227, 23,227, 52, 95,109,214,197,253,141, 23,140,254, 0, 70,
-153,155,155, 55, 84,169, 84,169, 12,195, 28, 6,112, 24,192, 16,154,166,135,200,229,114,199,130,130,130, 39, 40, 29, 77,116,162,
- 46, 49, 19,153,204, 70, 42, 51, 7,199,104, 64,211, 52, 92, 93, 61,192,179, 90,228, 22,168, 49,122, 88, 63,220,185,255, 16,191,
-158,191,193,232,245,220,247,134,156, 86,138,162,120,111,111,111,100,100,100, 64, 36, 18,193,196,196, 4, 10,133, 2,115,230,204,
-193,134, 13, 27, 42, 76, 86,125,141,214, 88,192,219,220, 77,113,227,219,141,165, 38, 43, 45, 37, 21,233, 73, 34, 40,109,236,241,
-253,134,160,226,220,167,105,237,127, 4, 98,254,237,149, 44,199,113, 95, 39, 39, 39,219,209, 52,237,192, 48, 12, 18, 19, 19,113,
-251,246,109, 76,158, 60, 57, 61, 59, 59,187, 27,234,121,140, 50,153, 44,163, 60,146, 85,214,116, 88, 83,115, 98, 94,165, 72, 86,
- 94, 45,146, 53, 53, 19,122,122,184,152,157,219,190,118,186, 91,219,246,157, 72, 57,109,158, 91, 20,155,214,229,202,165,139,157,
- 38,175,253,225,211,103,185, 69,189, 1, 60,174, 73, 84, 42, 18,189,211,161,115,103, 26,124, 58,104, 73, 23,172, 92, 49, 12,153,
- 89, 5,200,205, 41,132, 88,108, 10,173,158, 2,203, 17,232,212,197, 31,255,219,117, 16, 77,199,143,163, 36, 34, 81, 47, 70,171,
-125,109,140, 86, 25,203,214,175, 95,239,230,227,227,131,157, 59,119,226,252,238,221,248, 40, 63, 31, 23, 73,146,210,139, 68,182,
- 63,235,245,219, 80,135,209,170,172,211,180,105, 83,252,248,227,143,216,179,103, 79,194,135, 61, 50,142, 78,255, 16,118, 58, 29,
-222, 14,139,134,117,131,126, 64, 88, 52,172, 91,251,160, 17, 67, 35,150, 32,170,166,131, 10, 14, 14,238, 90,121,253, 47, 35, 21,
- 53, 52,177,211, 0,186, 5, 7, 7,243,149,215,117, 94, 56,149, 94,129,203,122, 55,116,247,123,195,141,208, 31, 90,135,196, 98,
- 70, 59, 63, 90, 39,121, 84,196, 79,127, 8, 4,213,114, 7,193, 83, 20, 5, 51, 19, 19, 40, 45, 45, 75,195,252, 36, 9,112, 0,
-167, 7, 8,182,212, 0,240, 28, 1,158, 53,234,130, 1,137, 68, 82,109,199,119, 99,251,102, 85,214, 44, 44, 44, 68,124,124, 60,
- 38, 76,152, 0,185, 92, 94,234,220,211,210,224,238,238, 14,154,166,145,156,156,140,223,127,255, 29, 13, 27, 54,132, 84, 42, 53,
-202,109, 85,138, 46, 53, 71,233, 40,195,230,169,169,169,230,142,142,142, 48, 58,162,197,241, 80,105, 8,104,181, 44, 30, 61,122,
-132,148,148, 20,196, 63,137, 69,219,226, 2,240,160,192,243,188, 81, 17, 45,103,103,103, 63, 79, 79,207, 45,203,151, 47, 23,187,
-184,184,128,231,121, 88, 89, 89, 66,165, 82, 33, 43, 43, 27, 77,154, 52,129,171,171, 43,150, 47, 95, 14, 0,251,255,106,147,245,
-220,111,170,194,104, 85, 54, 92,159,189,231,134,156, 28, 5, 40,138,172, 48,206,117,244,209, 18, 3, 64,183,222,131,232,115,191,
-254,108,202, 0,139,211, 40,106, 49, 93,119, 57,234, 89,142,147,215,244,126, 98, 98, 34, 68, 34, 17,142, 28, 62,140,156,244,116,
-180,104,209, 2,237,218,181, 67,108,108, 44,238,220,185, 3, 27, 27, 27, 40, 93, 58,226,226, 19, 29, 34, 83,212,176,176,176, 64,
- 92, 18,249,119,166, 12, 24,223,179,103,207,175,190,251,238, 59, 59, 7, 7, 7, 81,102,102,166,207,198,141, 27, 91,108,220,184,
-113,234,167,159,126,106,255,233,167,159, 90, 41,149, 74, 58, 45, 45,205,251,243,207, 63,111, 29, 18, 18,210, 16,192,154,218, 4,
- 77, 77,205,172, 41,177, 41, 8,130,134,165,133, 21,104,137, 41, 56,134, 6,203, 1,230, 22, 74, 92,187,115, 4, 87,195, 11, 39,
-102,100,227,176, 65,241,177,178,114,183,177,177,121, 33, 82, 61,121,242,100,108,223,190,189,162, 25,177,190, 38,107,233,198, 30,
- 10,162,204,100,165, 37,210, 32, 52, 13,113,234,167,235,121,185, 79,211,186,188, 14, 38,171,252, 26,199,243, 60,158, 60,121, 2,
-149, 74,133,203,151, 47,227,235,175,191,206,124,222,100,217,217,217,141, 55, 55, 55, 95, 84, 84, 84,180, 50, 45, 45,109, 93,157,
- 55,126,165, 38,170,252,113,249,186,218,230, 68, 3,119,213,189,186, 72,150,171,163,236,204,157,203,123,221, 45,248,123, 4,158,
- 77, 0, 30, 21, 60, 48, 11,181,123,243,221,182,125,201, 86,155,190,105,208,110,226,156, 51,137, 5, 37, 62, 53, 69,182, 56,150,
-109,101,170, 48, 3,144,129,176,219, 23, 42, 76, 86,118, 78, 62, 52, 58, 10, 26, 45,129, 18, 29,137,183,122,190,141, 13, 91,246,
- 32, 57, 35, 7, 44,203, 54,123,205, 76,150,181,159,159, 95,224,144, 33, 67,176,120,241, 98,132,124,247,157,246, 19,130, 40,160,
- 1,254, 52,203,130,227,121,130, 52,172, 19,123, 21,157,213,171, 87,255, 4,200,224,209, 35, 0, 0, 32, 0, 73, 68, 65, 84, 96,
-248,242,201,232,152, 91,132,209, 78,253,120,235, 6,253, 74, 55,124,127, 22, 15, 0,214,153, 33, 85,171,204,128,128, 0,162,188,
-101,205,216, 22,182,127, 58,116, 64, 64,192,197,224,224, 96, 84, 94,215,246, 1, 51,123,159,119,191,156, 49,105, 69,219, 62,254,
- 68,234,140, 94,200, 41, 40, 97,230, 70,234, 36, 73,234,218, 77, 86,101,190,220,184, 17,119, 98, 74,255,199, 46,118,118,152,249,
-193, 7,224, 25,224,234,131, 72, 28, 12, 9,193,176,158, 61, 97, 42,147, 25, 28,217,224, 56,174,218, 40, 86,229,104,150,177, 81,
-167,188,188, 60, 28, 62,124, 24,237,218,181,131, 92, 46, 7, 77,211,104,222,188, 57, 30, 62,124, 8, 79, 79, 79, 16, 4,129,227,
-199,143, 99,224,192,129,120,252,248, 49, 58,118,236,168,120,246,236,153,209, 70, 43, 50, 50,210,156,231,249, 55,203,163, 31,245,
- 69,163,209, 32, 42, 42, 10,253,250,245,131,149,149, 21,156,157,247, 35,228,204, 94,200,253, 62, 2, 65,192, 40,163,197,178,236,
-216,190,125,251,138, 9,130,128, 90,173,130, 76,102, 2, 83, 83, 5,204,204,204,225,237,237,131,148,148, 20,244,233,211, 71, 27,
- 23, 23,183, 41, 53, 53,245,144,177,251,234,235,235,107,250,244,233,211,143, 26, 52,104, 32, 1, 0, 19, 19,147, 38,158,158,158,
- 95, 60,126,252,184,208,216,168, 86,185,193, 34, 8, 2, 20, 69, 85, 24, 45,154, 36,225,232, 96, 87,241,188,172,127, 26, 81,139,
- 86, 65,114,182, 70, 10, 0,110,110,110,216,176,245, 36,217,183,111, 95, 76,157, 58, 21,122,189, 30,155, 54,149, 14,178, 27, 49,
- 98, 4,116, 58, 29,142, 30, 45, 29, 36, 73,211,116,173, 97,147,219,183,111, 35, 44, 44, 12,122,189, 30,249,249,249,248,229,151,
- 95,112,241,210, 37, 28, 56,254, 27,158, 62,137, 69,115, 31,119,140, 27, 55, 22, 34,145, 8,187,118,237, 66,151, 46, 93,254,214,
- 11,130, 72, 36,250,112,251,246,237,142, 59,119,238,204, 59,126,252,120,113,135, 14, 29,164, 65, 65, 65,118, 27, 54,108, 80,106,
-181, 90, 76,155, 54, 45,227,198,141, 27,154, 1, 3, 6,152,110,219,182,205,241,141, 55,222,232,197, 48, 76,117, 70,203, 20,192,
- 48, 0, 35,115, 11,181,116, 94,161, 26, 28,163,197,147,167,241,200, 47,210,130, 99,117, 72, 72, 74, 65, 81, 9,139,236,156, 66,
- 52,111,213,123,253,133, 11, 23,230,233,116,186,185, 0,130,235,218,207, 7, 15, 30,224,198,141, 27,120,250,244, 41,158, 60,121,
- 82,213, 41,142, 31,143, 61,123,246, 24, 29,209,170,222,100, 81, 32, 52,158, 8, 62, 30,154,151, 17,155,250,218,152,172,178,107,
-208, 66, 71, 71,199,133,142,142,142,178,179,103,207, 90, 52,104,208, 0, 12,195,104,159,143,100,117,235,214,109,254,246,237,219,
- 29, 61, 61, 61, 39, 3, 88,247, 79,216,119,146,196,248,149,155, 3,109,205, 36, 9, 41,120,180,166, 44,151, 32, 5,168, 10,128,
- 11,251, 64,119, 94, 16, 63,121,192, 44,171,217, 59, 23,143,231,192,213, 56, 66, 54,238,113, 34, 54,111,222,128,233,211, 70,227,
-127, 63,172, 4,199,209,208,232, 41,184,121,116,128, 70,199,129, 32,105,180,104,213, 6,231, 47, 92,134,136, 4, 14,239,220,252,
-154,249, 44,228, 68, 68, 68,108, 58,126,252,248,148,169, 83,167,130,227, 56,201,162,205,155,213,153,153,153,203, 96, 92,254,171,
-231,117, 6,110,222,188, 57,102,246,134,204,159,166,127, 8,234,233, 41, 34, 39, 44, 26,214,239,207,226,113,100, 5,129,214, 62,
-200,145, 87, 95,197, 95,122,110,253,122, 24,173,114, 39, 89,121, 93, 29,173,188, 26,126, 99, 97,109, 53,150, 52,115,182,157, 57,
-245, 19,250,113, 90, 9,142, 54,248,160,232,247,221,223,155,166, 49,210,245,113, 40, 9, 50,230,139, 15,254,254,123,197,227, 85,
-251,247, 87,251, 94,234,251,239, 27,124,103, 86, 83, 20,203,216, 72, 22, 0,200,229,114,203, 94,189,122,161, 71,143, 30, 24, 60,
-120,112, 69,159,172,150, 45, 91,226,192,129, 3, 24, 52,104, 16,238,222,189, 11, 71, 71, 71, 52,110,220, 24,141, 27, 55,198,207,
- 63,255,108,236, 69, 14, 44,203,194,207,207,175,124,212, 97,243,164,164, 36,243,250, 22,164, 70,163, 65,118,118, 54,172,173,173,
- 33,145, 72,208,190,125, 59, 76,249,172, 61,108, 29,127,132,159,175, 15,138,139,139, 43,134,191, 27, 80,217,250, 53,106,212, 8,
-153,153,153,200,204,204,132, 82,169,132,147,147, 19, 28, 28, 28,176,102,205, 26,126,221,186,117,191,234,116,186, 77, 89, 89, 89,
- 70, 71,178, 28, 28, 28,252, 9,130,152,175, 86,171, 37,149,238,112, 37, 74,165,242,132, 90,173, 94,150,154,154,106,112, 71, 80,
-130, 32,160,211,233, 64, 16, 4, 78, 63,113, 66,177,150, 64, 65, 82, 24,166,190,231, 94,197,120,137, 68,162, 58,155, 75,121,158,
- 47, 30, 62,124,184,157,171,171, 11, 18,227, 30,224,200, 17, 30,223,125,247, 93,249,168, 72,196,148,221, 24,148, 63,239,222,189,
- 59, 60, 60, 60,192, 27,145, 43,131,227, 56,220,191,127, 31,251, 79, 92,132,163,187, 47, 18, 30, 69,225,206,207,167,208, 64,105,
-141,166,173,218, 64,175,215,191, 84,234,141, 87,129, 94,175,223,225,229,229,197,107,181,218,139, 0, 54,132,135,135,143, 78, 77,
- 77,157,118,242,228, 73,167, 33, 67,134,164,156, 58,117, 42, 8,192,206,240,240,240,192, 37, 75,150,244, 96, 24,166,218,209,130,
- 20, 69,253,239,243,207, 63,239, 54,100,200, 16, 66, 76,234,181,103,207,236,162, 25, 70, 79,124, 57,119, 7,123,225,202, 69,146,
- 97,244,196,224,225,159,115, 63,255, 30, 78, 78,252,108, 21,219,178, 67, 95, 68, 68, 68, 56, 4, 4, 4, 44,209,235,245,181, 26,
-173,242, 72, 85, 77, 17, 74,138,162, 48,122,244,104, 28, 56, 96,120, 15,170,113,128,167,185,187,226,198,210,141, 61, 21, 4, 93,
- 84,201,100,189,129,224,227,161,121,233,143, 82, 94, 43,147, 5, 0,217,217,217, 91, 1,108,229, 56, 46,221,212,212, 20,133,133,
-133,213,253,254,100,225,225,225, 50,137, 68,130,222,189,123, 91,135,132,132,196,144, 36,185, 46, 37, 37,165, 70,199, 81, 93, 51,
- 97,117,205,137,120,137, 81,135, 86, 74, 4,180,247,111,101, 22,109,177,216, 76, 70,151,220,109, 16, 35, 51, 39, 0,228,107,236,
-159, 92,123, 54,172,128,200,144,182,108,211,189, 53,204,105,211,128, 60,166,176, 90,163, 69, 82,212,157,252,220,188,119, 10, 10,
-181,184,114, 53, 2,195,135, 53,130, 70, 71,128,227, 72, 20, 21,107, 0, 74, 4, 18,192,136, 15, 70,129, 39,104,228,164,167,128,
-162,168,112, 48, 12, 94, 51,230, 4, 6, 6,190, 51,119,238,220,134, 51,103,206,196,204,153, 51,221,183,111,223,190,117,233,210,
-165, 51, 51, 51, 51,155,161,142,228,227,181,232, 52, 56,117, 96,193,140, 19,151,183,228,247,237,164,126,212,218,167, 52,242,213,
-218, 7, 57, 34, 17, 98,105, 10,217, 60, 95,181,155, 81, 64, 64, 64,215,202,235,127, 25,207,119,130,175,120,110, 80, 31,173, 70,
- 13,157,223,110,213,210,239,179,121,115,231,153, 61,188,118, 1,179,191,217,192,123,181,233, 85,184,245,242, 29,109,145,169,199,
- 59, 69, 89,177, 87, 13,245, 23, 0,240,246, 91,131,208,188, 73,187, 23,222,236,210,189, 52, 89,251,149,243,183,145,158,153,108,
-112,101, 91,102, 14,170,237,147,101,200,144,254,231, 81,171,213,121, 17, 17, 17,118, 73, 73, 73, 85, 58,190,123,120,120,128, 32,
- 8,132,134,134,226,198,141, 27, 24, 62,124, 56,104,154,134, 72, 36,194,197,139, 23,141,138,198, 84,138, 46,149,143, 58,236,227,
-226,226, 82,211,104,195, 58,181,212,106, 53,242,243,243,113,230,204, 25, 52,106,212, 8, 75,151, 46,133,147,163, 61,230,205,155,
- 1,142,227, 80, 80, 80, 0,150,101, 13,141,104,113,229,209, 34,142,227,144,153,153,137,134, 13, 27, 98,227,198,141, 8, 10, 10,
- 90,146,154,154,122,210,216,125,116,117,117,181,100, 89,246,203,190,125,251,246, 26, 48, 96, 0,250,244,169,154,143,117,223,190,
-125,102, 71,143, 30, 93,246,253,247,223,191,173,211,233,150,103,100,100,100, 26,162,251,227,143,165,233,151,228, 29, 22, 98,246,
-144, 6, 24, 57,105, 23,214,172, 57, 6,169, 84, 90,165,226, 93,188,120,113,173, 38,134,227,121, 47,113,214,181,148, 25,179, 86,
-219, 45, 91, 22,130,144,144, 12,144, 36, 9, 71, 71, 71,144, 36,137,248,248,120,144, 36, 9,119,119,119,144, 36,137,228,228,228,
-242, 62,129,185,168,102,212, 99,245,119,225, 36, 74, 74, 74,144,152,240, 20, 73,113, 49, 80, 20,164, 65,105, 46, 71,238,131,251,
-104, 62,110,124, 69,254,167,191,153, 61, 90,173,118, 79,165,231,171, 79,157, 58,165, 37, 8, 98, 48, 74,251,105,148, 71, 52,150,
- 48, 12,179,164, 38,145, 14, 29, 58,180,156, 59,119,174,168, 60,221,134,147,219,183,140, 78,167,227, 0,192,167,249,155, 85,220,
-126,108,108, 44,214,172, 89,131,226,226, 98,136,197, 98,177, 33,231,129,227,184,138, 17,134,213,153, 48, 99, 76, 22, 0,216,184,
-187,172, 15, 13,187,200,222,139,219,162, 14,143,254,197, 36, 53,129, 4,169,125,125, 77,214,243,145, 45, 23, 23,151,133, 28,199,
-241, 60,207, 47,168,244,150,212,205,205,237,242,217,179,103,109, 24,134,193,247,223,127,111,153,150,150,102,249,230,155,111,206,
- 6, 80,163,209,170,174,153,176,186,230, 68, 84, 26,117, 40,149, 74,173,181,218, 26,131, 39, 47,140, 58,100, 89,120,155,155, 89,
- 34, 23, 73,208,216,234, 91,230,217, 48, 57,231, 82,199,223,117,122,214,170,137, 41,171,111, 72, 22,104,225, 44,183, 4,199,243,
- 53, 14,141,214,232,245,191,220, 13,187,211,219,205,181, 17,117, 50,248, 18,250, 15, 28, 2,141,134, 68,137,158, 0, 65,137, 64,
- 80, 98, 52,107,222, 10,141,155, 54, 7, 15,224,246,205,107,140, 86,175, 63,247, 58,149,189, 99,231, 41,195, 9, 2,235,192,115,
-124, 53,121,180, 26, 14, 28, 56,112, 25,128,207,234,210,177,235, 48,101, 56, 73,150,234, 84,206,163,245,249,148, 64, 60,184, 41,
-178,184, 20,182, 66,220,167, 3, 78,103,134, 16,144,203,254, 24,117, 40, 34, 95, 42, 53,199,191,197,112,213,109,180, 92, 93, 93,
- 45,205,165,178, 31, 63, 29, 55,214,236,217,189,235, 72,139, 12,197,213, 75, 49,185, 7,143, 30,203, 41,206,206, 24,103,132,201,
-170,104,230,179,113,104, 0, 15,223, 23,141,150, 76,161, 4, 0,120,248,182, 3,101,106, 92, 26,161,234,162, 89,245, 49, 89,149,
- 47,216,213,229,208,154, 56,113, 34,182,111,223,142,206,157, 59,195,203,203,171,226, 98,111,108,212,172,154,232,146,209,163, 13,
- 43, 83, 88, 88, 8,119,119,119,108,219,182, 13,225,225,225, 48, 51, 51,195,240,225,195, 81, 88, 88, 88, 97,176, 12,237, 12,207,
-243,124,236,217,179,103,219, 14, 29, 58,148, 23,137, 68, 68, 94, 94, 30, 44, 45, 45,177,113,227,198,226,212,212,212,211,245, 48,
- 89, 67,196, 98,241,140, 97,195,134, 81, 62, 62, 62, 72, 79, 79,135,185,185,185,158, 32, 8, 17, 0, 88, 90, 90,234, 77, 76, 76,
- 16, 24, 24,136, 22, 45, 90,248,207,156, 57,179, 51, 77,211, 27, 83, 82, 82,118,213,246, 91, 34, 8,162,162, 66, 29,183, 46, 10,
- 90,109,105, 5,189,105,211, 38,148,245,117,251,163,137, 32, 46, 14, 48, 96, 36,139, 66,161,128,151,151, 87,181,101,239,239,239,
-143,219,183,111,151, 54, 77,210, 52,236,236,236,112,245,234, 85,131, 70, 82,149, 39,130,140,136,136,128,175,135, 45,194, 67,206,
-194, 86, 46, 66, 11, 39, 7,184,248,119, 69, 76, 76,204,223, 25,205, 34, 80,218, 15,163,103,217,111,112, 7,128,137,149,158,111,
- 4,176,222, 24, 65,134, 97,120,146, 36,137,196,196, 68,157, 92, 46, 39,172,173,173,105,169, 84, 10,141, 70, 83, 97,184, 98, 99,
- 99, 17, 28, 28,140,164,164, 36, 88, 91, 91,147, 22, 22, 22,208,233,116,185,134,232,123,123,123,195,193,193,161, 74,199,247,113,
-227,198,213,203,100,141, 6,252,182,127,187,188,129,148,164, 44,124,109,223,198,147,168,248, 18, 82, 11,217,127,193,100, 1, 64,
- 94, 94,222, 86, 0, 91,203,159,219,218,218,142,161, 40,106,158, 70,163,177,184,120,241,162,165, 82,169, 36,118,237,218,165, 95,
-176, 96, 65, 30, 69, 81,185, 4, 65,172,253,251,205, 33, 34,179,242,227,220, 69, 86, 78,220,189, 18,254,218,180,196,217,141,115,
- 69,141,148, 68, 83, 63, 12,204,120,120,101, 12, 19,215, 41, 61, 53,141,228,193, 69,214,114, 13,222, 49,123,238,226, 47, 99,162,
-238,184,201,204,101,152, 24, 56, 23,167,127, 61, 15,130, 20,225,242,181, 80,104,117, 44,178,114,242, 49,108,196,135,112,113,180,
- 69,228,141, 51,153, 12,199,109,124,189, 76, 54,183,161,119,255, 49, 86, 82, 19,121,217, 57, 97,177,231,135, 25, 32,201,117,248,
-234,171,175,224,231,231, 55, 41, 34, 34,226,107,212,145, 71,139, 32,184, 13,205,186,142,176, 18, 75, 75,117,120,142,197,182,195,
-179,203,242,104, 77,199,198,173, 71,155, 53,245,120,178,168,182, 60, 90,175,145,201,170,188,174,221,104,185,187,187, 75, 77, 69,
-152, 32,162,232,153,159,126, 48, 64,153, 17,247, 0, 73, 15,239,148, 54, 47,232,212,186,180, 71, 15, 13, 73,133,222, 19, 85,243,
-119,240,181, 53, 93,149,148, 24,116, 71, 95, 69,179,188,194,125, 62,154,101,164,201,122, 65,179,178,217,170,156, 55,203,213,213,
- 21,203,150, 45, 51, 36,143,214,243,199, 94, 78, 31,148,118,128,175,220, 25,190,143,129, 38,171, 90, 77,165, 82,137,236,236,210,
- 12, 9,221,186,117, 67,183,110,127,140,103,208,233,116, 21, 81, 44, 51, 51,179,234, 34, 90, 47,104,154,152,152,204, 62,118,236,
-216,216,107,215,174, 13,253,226,139, 47, 68, 61,122,244, 40, 55,115, 42, 24, 54,183, 91, 21, 77,150,101, 3,207,156, 57, 67,113,
- 28,135,109,219,182,225,246,237,219,188, 92, 46,159, 47,151,203, 55,152,152,152,176,106,181,122,226,248,241,227, 63, 92,180,104,
- 17,233,239,239,143,235,215,175,147, 13, 27, 54, 28, 5, 84, 73, 98, 89,237,177,135,134,134,130, 36, 73, 48, 57, 9,152, 52,251,
- 32, 76, 77,104, 68, 69, 69, 33, 39, 39,231,133, 36,166,134,156,207,202,145,146,242,197,223,223,191,162, 25,178,125,251,246,160,
- 40, 10,119,239,222,173,169, 25,182,178, 38,111, 99, 99, 83,241,251, 16,139,197, 56,127,254, 60,190,249,230, 27,184, 89, 91, 34,
-247, 97, 56, 28,186,189,133, 94, 99,199, 99,248,240,225,160, 40, 10,214,214,214, 21,145, 95, 3,126, 75, 47, 67,101,205,177,190,
-190,190,163, 34, 35, 35, 93,154, 53,107,230, 24, 17, 17,209,221,207,207,207, 61, 60, 60,188,252,185, 20,134,245,205,169,208,188,
-117,235,214,145, 13, 27, 54, 4,142, 30, 61, 90,204,113, 28,251,236,217, 51, 61, 0,194,193,193,129,186,117,235, 22,119,242,228,
- 73,168,213,106,184,184,184,144,206,206,206,196,185,115,231,184,135, 15, 31,134,242, 60, 63,215,144, 99,103, 89,182, 74, 26,135,
-242,199,251,246,237, 51,250,255,222,160,177,247,210, 30,111,250,184,102,165,220, 69,106,114, 28,216,124,165, 46,248,248, 41,141,
-145, 38,235,207, 46,163,191, 82,115,241,163, 71,143,156, 53, 26, 13, 36, 18, 9, 54,109,218,164, 91,182,108, 89,100, 86, 86, 86,
- 23, 84, 63,162,188,138,102, 61, 71, 29,230,212,162,249,194,168,195,252,108,156, 62,126,226, 86, 91,197,192, 29,152,148,146, 89,
-209,177,145, 39, 8,235, 99,246, 77,186,200,219, 53, 75, 38,127, 94, 72, 22,178,170,211,181, 28,187, 86,173,213, 14, 25, 56,104,
-196,111, 7, 14,236, 87, 44, 88,184, 16, 87, 67,195,145,157, 87, 4,142,167,192, 17, 4,230,205, 91, 0, 7, 91,107, 20,164, 60,
- 82,105,116,186,129,168,154, 67,235, 95, 95,238, 4, 65, 78, 62,119,114,215, 58,146, 0, 87,156, 30, 45,165, 10,227,228, 35,135,
- 15,164,135, 12, 25,130, 99,199,142, 33, 34, 34, 98, 75, 45, 38,171, 66,147,231,201,201,225, 23, 15,174, 35, 0, 78,157, 25, 45,
-165,139,158,200, 71,125, 48,144, 30, 62,124, 56,126, 10,190,134, 3,167,158,108, 62,112, 10,167,240,122, 99,124,102,120, 51, 26,
- 17, 93,154,120, 58,251,183,106, 42,163, 89, 53,146, 30,198, 33,167,184, 4,231, 30, 60,203, 35,121,178,222,185,117, 74, 47,144,
- 98, 36, 36, 60,170,230,206, 74, 86, 86,161,151, 24,165, 73,146,100,149,104,214,203, 68,178, 42,239,167,189,189,125,149,233, 92,
- 42, 87,220,229,125,128,234,145,218, 97,118, 66, 66,130,121, 66, 66, 2,120,158, 71,104,104,168,121,251,246,237,103,191, 76, 52,
-107,198,140, 25, 21, 81,171,231,215,213,189, 86, 23,101,157,210,131,244,122,253,225,153, 51,103, 78,106,223,190,125,239,133, 11,
- 23, 18, 48, 98, 2,222,231,162, 57, 12,199,113,184,112,225, 2,142, 29, 59,198,234,116,186, 9,169,169,169,225,149, 54,249, 62,
- 44, 44,236,220,160, 65,131,118, 69, 71, 71, 83,145,145,145,224,249,186,199,157,170,213,106,120,121,121,129, 97, 24,172,152,228,
-138,194,194,102, 96, 24, 6, 44,203,194,212,212,180, 34,138, 87,217, 60,215,245, 59, 98, 89,246, 5,163, 21, 26, 26, 10,138,162,
-208,165, 75, 23,220,185,115,167, 34,162, 85, 87, 4, 74,167,211, 37,216,219,219,219, 47, 94,188,184, 98,191, 50, 51, 51,113,246,
-236, 89,116,232,216, 9, 77, 38, 76, 68, 74, 74, 10,214,174, 93, 11, 39, 39, 39, 44, 93,186, 20, 57, 57, 57, 96, 24,230,175, 14,
-167,191, 19, 25, 25,233,242,193, 7, 31,100,132,135,135,187, 4, 7, 7, 91, 6, 4, 4,152,142, 24, 49, 34, 35, 60, 60,220,133,
- 32,136, 78, 48,178, 19, 52,199,113,115,230,205,155,247,235,210,165, 75,103,127,246,217,103,237, 71,143, 30, 45, 18,137, 68, 92,
-114,114, 50,179,127,255,126,194,203,203,139, 20,139,197,196,153, 51,103,184,155, 55,111,222, 96, 24,102, 5,128,203,198, 68,156,
- 43,155, 44,138,162, 12, 53, 89, 85,152,102, 39, 29,101, 70,102,118,217,176,105, 25,233,227,225,162,219,189,255,108,226,229,235,
-143, 30, 83, 26,102,218,143,181,164, 6,120,157,161, 40,234,144,175,175,239,152,201,147, 39,155,244,233,211, 71,186,104,209,162,
-252,194,194,194,154, 76, 86, 53, 55,204,127,201,168,195, 31,230,124, 17, 60,237,243,102, 99, 60, 63,118,104,128,144,226, 12,228,
-210, 20,105,110, 73,162,149, 59,133,194,172, 88,229,169,223,118,198, 3,168, 43, 47,219,173,176,251, 17, 61,155, 54,107,121,116,
-197,210, 21,118,243,103,205, 20, 29, 13,254, 5, 60,163, 67,232,197,139, 80,136, 89,254, 97, 88, 72,186, 70,167, 29,128,215,112,
- 10,158,212,171,235, 15, 0, 56, 97,109,109,125,111,236,232,209, 94,190,190, 35, 32,151,203,113,228,200, 17,236,249,254,123, 54,
- 8, 24, 42, 5,238, 4,214,145, 79, 47,227, 70,133,206,221,241, 99,199,122,183,106,245, 49,228,114, 57, 14, 31, 62,140, 93, 65,
- 65, 6,235,252,203, 41,207, 12,127, 26,127,100,136,175,163,143, 22, 73, 20,222,120,244,172, 40,244,209,179, 34,112, 60,207,241,
-188,134, 36,145, 88,172,211, 45,125,244, 36,185, 94,166,160,188,233,112,201,183,147, 95, 93,155, 71, 37,243, 83,223, 33,221,213,
-152,172,164,202,115,164, 85,174,164,107,122,172,215,235,147, 12,148, 95,238,230,230,246,194,107,245, 15,253,242, 70,153, 44, 67,
-243,104, 1, 64,118,118,118, 42,128,249,215,175, 95,223,215,187,119,239,241, 0,146,235, 89, 70,219,186,118,237, 58, 1, 0, 69,
- 16,196,150,148,148,148,240, 23,254,240,169,169, 49, 78, 78, 78,171, 60, 60, 60, 38,150,222,152, 18,219,234,168,200,159, 52,107,
-214, 76, 87, 93, 89,212,244,156,227,184, 58,203, 40, 47, 47, 15,237,218,181,123, 97, 78, 75,158,231,241,236,217,179,242,136, 83,
-197,185,175,205,192, 21, 21, 21, 77,156, 50,101,202, 86,145, 72,228, 6,128, 40, 55,185, 44,203, 82,235,215,175,151,177, 44, 75,
- 1, 32, 72,146,100, 68, 34, 81,201,177, 99,199, 24,134, 97, 18, 52, 26,205,196,191,248, 2,113,152, 40,157,138,161, 56, 50, 50,
-210,167, 44,146,149, 20, 17, 17,113,247,192,129, 3, 74, 0, 7,235,169,123, 89,165, 82, 93, 94,182,108,153,255,166, 77,155,230,
- 76,156, 56,177,221,240,225,195,233,110,221,186,225,244,233,211,236,133, 11, 23, 66,213,106,245,114, 99, 12, 86, 89, 89,230,187,
-186,186, 86, 24,174, 58,254,203,181,118,228,181,113,151,110,248,240, 19, 39,217,182,229,103,139,178, 82,180,215,244, 69,218,185,
- 59,129, 8,252,135, 73, 79, 79,255, 2,192,130,181,107,215,166,180,104,209, 66, 42, 22,139,181,134,154,172,191, 16,134,203, 43,
-122,247,187, 94,239,159,232, 58,111,138, 71,175,238, 93,228,174, 13,236,156, 31,198,165, 35,246,250,233,226,123,167,190,125,202,
-107,114,251, 3, 48,164,231,250, 77,141, 78,215,104,198,204, 25,147, 36, 34, 81,111,150,101,155,247, 56,119,156,167, 40, 42, 92,
-171,215,159, 43,107, 46, 44,121,141,139,124,201,170, 85,171,188,124,125,125,113,228,200, 17,156,219,187, 23,195,178,178,112,158,
-162, 40, 82, 44,182, 57,165,211,173,134, 97, 6,105,201,154, 53,107,188,253,252,252,112,232,208, 33,156,217,181, 11, 67,235,167,
- 83, 83, 93,215, 22,128,178,236,105, 22,128,104, 0,173, 1,152, 0,208,160,116,106, 39,219,202, 85, 88,217,123,229,239, 95, 34,
- 8,226,207,236, 8, 91,119,102,248,231,137,136,125,218,250, 85,239,133, 90,173,206,241,242,242, 50,106,204,181, 94,175,175,181,
- 13,151, 97,152, 36, 79, 79, 79,131,163, 22,134,152,162,156,156,156, 54,127, 98, 97,188, 84, 95,172, 42,149, 8,199, 61,117,116,
-116,228,202, 43,253,234, 76, 88,117,175,241, 64,188, 49,223,147,150,150, 22, 13,224,243,250,238,103, 74, 74,202, 81, 24, 48,105,
-180,161,219, 1, 64,110,110,238, 43,159,204,151,224,249,228, 69,139, 22, 25,101,176,193,243,181,153,207,240,162,162,162,246,134,
-124,183, 78,167,195,223,200,161,178,133,140,136,136, 24, 79, 16, 68, 31,148, 54, 9,108,193,171,201,230,125,185,160,160,224,242,
-202,149, 43,253,183,109,219, 54,141,231,121, 20, 20, 20, 4, 25,107,176, 42,238,158, 51, 50, 78,191,170, 3,207, 73,215,254,190,
-127, 75,210, 91,234, 60,221,180,237, 69,218, 93, 16,168, 8, 70,241, 60,255,191,145, 35, 71,118, 0,176,243,101,197,106, 24,117,
-248,178,196,115,185,249, 45,206,207,248,102,236,121, 75,179,190, 96,105, 31,104,201, 83,208,102,159, 6,240, 35, 12,235,230, 80,
-113,188, 12,199,173, 97,180,218, 53,149, 42,151,255, 66, 57, 91,251,249,249, 77, 27, 51,102, 12, 22, 44, 88,128, 51,171, 87,235,
- 62, 33,136,124, 17,192,255, 90,122,163, 73, 18,192, 44, 67,117, 70,141, 26,133, 5, 11, 22,224,231, 21, 43,234,171, 83, 27, 74,
-130, 32,130, 1, 96,246,236,217,115,151, 45, 91,102, 53,103,206,156,230,203,151, 47, 95, 90,246,252, 65,249,251,101,117, 93,192,
-156, 57,115,154, 86,122,191, 16,192,173, 63,249,124, 86,155, 25,254,207,166,167,160, 41,104, 10,154,130,166,160, 41,104, 10,154,
-130,230,203,192,243,124,223,210, 85,205,235,154, 30, 87, 90,255, 45,208, 16, 16, 16, 16, 16, 16, 16, 16,248, 23, 82, 57,138, 85,
-159,247, 95, 33,229,125,180, 42,179, 13, 40, 29,214, 93,147, 43, 53,102,212, 67,125,156,109,136,160, 41,104, 10,154,130,166,160,
- 41,104, 10,154,255, 57,205,186,180, 95,248, 60,207,243,125, 9,130, 8,230,121, 62,160,166,117,185,177,122,254,113,165,245, 43,
-235,118, 80, 13,229,125,179, 94,232,163,245,103, 35,132, 85, 5, 77, 65, 83,208, 20, 52, 5, 77, 65, 83,208,124, 41,202,155, 0,
- 1,240,179,103,207,158,243, 15,108, 58,116, 44, 51, 89,149, 23, 0,181, 52, 29,242,252, 97, 42, 57, 25,230, 18,137, 92, 12, 0,
- 90,173, 74,231,236,140, 2,130, 24,242,119, 78,120, 43,240,239,164,124,184,119,250, 43,222, 86, 64, 64, 64, 64,224,191, 65,102,
-121,164, 10, 64, 38, 0,162,236,185,182,108,157, 89,102,200,158,127, 92,229,253, 63,145, 84,212, 16,201,162,107, 50, 89, 89, 89,
-114, 91,154,206,245,102,217,146,198, 0, 64,211,100, 84, 86,150, 85, 12,207, 31,206,170,143,217,178,181,179, 11, 19, 81,148,179,
- 33,219,234, 89, 54, 57, 43, 61,189,106,234,120,130,120, 29, 12,158,161, 38,226,101,204,198,159,110, 84,108,109,109,237,237,237,
-237,223, 51, 55, 55,239,152,151,151,119, 51, 51, 51,243,167, 90,230, 61, 92, 70, 16,152, 89,250,187,194, 74, 0,115,106,145, 54,
-102,219,231,241,146,203,229,147, 8,130,240, 43,251,131, 69,168, 84,170, 77, 0, 30,253, 7, 47, 72, 38, 0, 6,208, 52, 61,202,
-214,214,182, 93, 90, 90,218, 34, 0,245,205,230, 77, 3,152, 97,105,105, 57,204,210,210,210, 51, 39, 39,231,113, 65, 65,193, 33,
- 0,107, 0,212, 57, 84,122,209,103,142, 29,187,245,233, 54,255,194,153, 11, 75, 22,125,159,122,253,133,247,103, 56,218,244,238,
-213,121,193,133, 83,215, 22,207,221,152,146, 99,228,190,145,101, 11, 80, 58, 58,146,199,139,201, 94, 95, 22, 17,128,126, 0,186,
- 1,184, 0,224,148, 33,199, 93, 3, 29, 0,204, 45,219,231, 53, 0,206,255,195,127, 71,166,246,246,246, 43, 0,244,163,105, 58,
- 50, 57, 57,121, 2,128,164,191,121,159,104, 0,109, 1,248,161, 52, 13,199, 45, 24,150,194,161, 78,108,108,108, 2,104,154,158,
- 84,150,218,101, 83,118,118,118,240, 63,181, 96, 36, 18, 73,144,131,131,195,199,106,181, 90, 69, 16, 4, 95, 57,223, 35,195, 48,
- 73, 89, 89, 89,109, 94,183,139, 26, 65, 16,183,254,225,187, 56,161,154,215,106,206,163,149,156, 12,115,154,206,245,206, 72, 11,
- 31,150,146,122,127, 40, 0, 56, 57, 54, 63,100,231,208,236, 96,114,178, 68,231,224, 51, 80, 33,146,211,155, 40, 74,212,178, 68,
-171,177, 21,209,162, 44, 29,163,191, 75,106,249, 73,105,209, 63, 85,155,108, 81, 68, 81,206, 79, 99,206,219, 49,186, 28,136,100,
- 78, 16,153,184,213,184,183, 78, 78, 78,245, 58, 74, 43, 43, 79, 51,157, 84, 54, 77, 36,162,122,113, 60,227,199,115, 0, 73,136,
- 34, 24, 86,255,155, 88,163,249, 46, 55,247,113, 97,125,207,160,143, 13, 28,120, 96, 56, 8,244, 2,143,115, 4,112, 32, 58, 27,
-105, 70, 72, 24,106, 34, 94,198,108, 84,254,236, 90, 0, 95,188,234, 95,146,179,179,179, 85, 64, 64, 64,208, 55,223,124, 99,162,
- 80, 40,136,132,132,132, 62,179,102,205,122,243,246,237,219,159, 39, 39, 39,167, 60,111,250, 8, 2, 51, 57,142, 39, 1,128, 36,
-137, 89, 74,165,157,156,162,168, 23,114, 27,177, 44, 43,207,204,204,152,204,113, 60, 81,182,237, 76,158,199, 58, 67, 12,163, 76,
- 38, 27,225,215,172,229,231, 43, 86,173, 81,216,219,217,153, 50, 44,167,139,127,246, 84, 62,127,246, 23,237,227, 98, 31,173, 43,
- 41, 41,217, 95,159,255, 53, 69, 81,195,164, 82,105, 0, 0,223,178,215, 30,106, 52,154, 96,150,101, 15, 26, 90,161,219,219,219,
- 95,162, 40,170,129, 49, 95,204,178,108, 66,122,122,122,151,122, 22,209, 16, 55, 55,183, 31,187,118,237, 42,111,215,174, 29, 36,
- 18, 9, 22, 44, 88, 48, 35, 53, 53,181, 46,163, 69, 3,152, 33,151,203,135,153,154,154,122, 22, 21, 21,197,169,213,234,163, 18,
-137,164,231,186,117,235, 92, 59,119,238,108,150,158,158, 78, 80, 20,101,255,243,207, 63,127, 20, 20, 20,212,135, 97,152, 30,117,
- 85,114,249,113,252,124,105, 63, 95,255,252,184,243,243, 1,188,243,252,251, 76,137,108, 20, 79,185, 6,168,249, 59,137,101,230,
-195, 96,147, 37, 18,137,214, 57, 56, 56,140, 41, 41,205, 21,192, 63, 95,225, 0,128, 86,171,205,205,203,203,243,169,207, 95, 30,
-192, 56, 75, 75,203, 49, 95,126,249,165,213, 59,239,188,131,189,123,247,126,186,125,251,246,220,130,130,130,255,161, 52, 17,102,
-180,145,154, 51,211,210,210,222, 21,137, 68,132,171,171, 43,165, 86,171,141, 49, 90,222, 40,157,132,249, 22,128, 77, 40, 77, 93,
-208, 29, 40,253,191, 3, 88, 89,110,220, 72,146,220,228,227,227,243,222,195,135, 15, 55, 3, 88, 82,223,255,186,131,131,195,214,
-141, 27, 55, 14,237,223,191, 63,149,153,153,233,220,162, 69,139,125,105,105,105,254,175,224, 50, 50, 86, 42,149, 78,111,222,188,
-121,147,232,232,232,152,130,130,130, 53,101,231,179,182,255,148, 11,128,158,150,150,150, 61,230,205,155,167, 8, 8, 8,192,182,
-109,219,222,221,190,125,123, 81, 97, 97,225,111, 40,237,211,243, 82, 38,144,166,233, 73, 73, 73, 73,182, 60,207,195,209,209,113,
- 18,128,127,164,209, 34, 73,114,221,160, 65,131,198,236,219,183, 79,254,244,233, 83,185,179,179,115, 69,242,108,130, 32,234, 93,
-127, 10,188, 52,219, 42, 25,174,186,243,104, 73, 36,114, 49,203,150, 52, 78, 73,189, 63,244,205,174,235, 45, 0,224,210,197, 41,
- 67,237, 28,154, 70, 72, 36,242, 24,169,185,236,216,160,126, 61, 91,190, 31,208,149,112,113,180, 67, 82,106,134,253, 15, 7,206,
-188, 29,124,230,252, 49,148, 38, 16,171, 22, 70,151, 3, 19, 93, 8,162,175,124, 15,219,110, 41,216,240,115, 18,174,223,139,135,
- 42, 63, 11, 13, 28, 76,176,106, 90,111, 56, 88,201,235,119,235,101,231,213,157,161,165, 7, 63, 24, 49,210,226,189, 1,190, 34,
-119, 7, 7,240,188, 20, 49,113, 69,157,126, 57,123,190,237,209,195,251, 39,153,138,188,134, 21,103, 60, 50,248,226,214,202, 17,
- 38,197, 58, 12,160, 41,226,163,206,109,154,244, 24,241,174, 63,217,196,183, 17, 34, 31, 60,236,125,226,247,208, 85,228,181, 7,
-191, 49, 44,191,219, 84,140,227,119, 82,107, 77,232,247,130,225,232,209,163,167,191, 84, 42,173,146, 60, 73,163,209,136,127,251,
- 45,164, 67,125,204, 70,249,119,104,181, 26, 82, 36,146,128, 36,137,207,253,252,154,249,102,101,101,157, 39, 8,226,199,148, 20,
-227,162, 5, 83, 0, 73, 46, 77,183, 38,165, 82, 71, 86,171,181, 1, 0, 66, 34,201,141, 39,201,102,243,230,206, 85, 80, 20,197,
-101,103,103, 67,165, 82, 17,227,199,143,151,197,197,197, 13, 74, 78, 78,254,190,142, 59, 18,108,223,190,221,219,209,209,241,133,
-217, 99, 83, 83, 83, 37,253,251,191, 87,159,162,247,110,222,162,213,244, 51,103,126,245, 45,200,201, 45,217,190,118,107,152, 94,
- 38,215, 52,244,245, 17,109,218,182,203, 98,194,152, 15,167, 68, 69, 61,184, 11,227,230,171,115, 51, 49, 49, 57,182,122,245,106,
-191,238,221,187,139,236,236,236,144,158,158,142,135, 15, 31,250,253,254,251,239, 3,118,237,218, 53, 67,173, 86, 15, 2, 12,154,
- 16,213,235,183,221, 63,218,153, 90,219,128,213,235,225,212,188, 85, 69,126,179,216,223,207,130,209,233,192,233,245,240, 13, 24,
- 80, 22, 77,230,225,235,235, 91,223,172,187, 78, 77,155, 54,221,179,116,233, 82,177, 70,163, 65,104,104, 40,206,159, 63,207,165,
-166,166,214,149, 16,151, 38, 8,226,236,194,133, 11, 93,186,116,233, 98,150,149,149, 5,150,101,109,143, 31, 63, 62,169,101,203,
-150,230,174,174,174,146,221,187,119,163,168,168, 8, 12,195, 88,123,122,122, 90,143, 24, 49, 66,187,123,247,238, 25, 0, 86,212,
- 20,201, 42,136,227,231,167, 18,158,111,251,180, 30,133, 52,226,215,183,167,191,141, 95,204,223, 32, 42, 34, 91,111,123,122,154,
- 21, 36,203,103, 41,204,155, 89, 23, 36,135,204,122,219,211,115,251,175,143, 13,186, 25, 34,203, 42,155, 15, 14, 28, 56, 32,127,
-248,240,161,220,215,215, 23, 28,199, 85,100,224, 47, 79, 56,235,229,229, 85,159,243,184, 60, 48, 48,112,214,208,161, 67,209,188,
-121,243,138,164,168, 95,125,245, 21,102,205,154,101,117,233,210,165, 25,251,247,239,159,241,211, 79, 63,173, 0, 48,219,200,104,
- 76, 57,198,150,241,215, 79,158, 60, 25,114,236,216,177, 15,103,206,156,233, 5, 96, 50,128, 5,217,217,217, 93,203,162, 49,146,
- 50,163, 53,118,198,140, 25,159,204,158, 61, 27,239,190,251,238,130,208,208,208,111,235, 25,229,163, 24,134,121,183,127,255,254,
-148, 94,175,135,169,169, 41,244,122,253, 27, 47, 27,148, 0,176,113,226,196,137,159, 4, 6, 6,194,202,202, 10,122,189,222,251,
-192,129, 3,219, 23, 44, 88,208, 17,192,184, 26,246,117,212, 39,159,124, 50,120,228,200,145,104,211,166, 13,104,186,244, 52,174,
- 94,189, 26,139, 23, 47, 86,156, 61,123,118,192,238,221,187, 7,156, 56,113,226, 40,170, 78,219,101, 20, 28,199,129,166,105, 36,
- 38, 38,194,206,206, 78,202,113,220, 25,130, 32,182,229,228,228,252,244, 15,170,204, 87, 14, 25, 50,228,131,125,251,246, 41, 0,
- 96,213,170, 85,152, 62,125, 58,236,237,237,161, 80, 40, 4,171,243,207,137,104, 77,168, 51,162, 85, 23, 42,149,170,213,156,207,
- 62, 2, 73,150,222, 53, 54,106,232,134,101,115, 39, 16, 39,130,207,180,170, 53, 6, 47,115, 66,244,149,239, 33,117,157, 6,141,
-158,193,141,123, 79,112,110, 85,159,210,218,242,157,121,208,232,122,148, 87, 54,214, 18, 19,147,149, 90,150,189, 10, 7,135, 80,
- 60,123,150, 89,151,201, 82, 58,216, 7,111,217,178,194,196,239, 13, 31,232, 24, 61,146, 51,146, 65, 16, 82,184, 56,155, 97,236,
-168,119, 68, 93,187, 58,217,126,253,245,214,211,105, 28, 6,170,178, 30,213,153, 48,212,219, 22, 59, 91,249,121, 13, 29,209,183,
-139,180,153, 95, 83,136,165, 38, 21,239,181,110,211, 6,173,219,180, 33,103, 23, 21,246,186,121, 43,172,215,145,179, 55, 52, 42,
-253,179, 67, 49, 89, 24, 93,199, 69,166,194,112, 76,157, 58, 21,246,246,246, 85, 54, 72, 79, 79,199,239,191,255, 86,237,103,140,
-184,144, 85,124,199,183,223,126,107,150,155,155,251,206,142, 29, 59,222,226, 56,238,219,180,180,180, 43,134,136,140, 4, 26,228,
- 75,165, 61,198,172, 89,195,181,124,239, 61,202,210,193,129,228, 88,150, 72,121,252,216,102,237,247,223,119,203,137,141, 53, 41,
-182,182,206,201, 85,171, 85, 49, 49, 49,144,201,100, 4, 77,211,109,171,145, 74,231,121,172, 36, 73, 98, 22, 65, 16,144, 74,101,
- 49,129,129,129,119,202,222,107,112,234,212, 41,121,191,126,253, 84, 0,158, 2,128, 84, 42,115,166, 40,210,187, 52, 19, 59, 86,
- 26, 98, 48, 77, 77, 77, 63, 91,178,116,133,105, 65, 78,158, 90, 87, 92,172, 87,154, 43, 8, 66, 97, 70, 21,228, 23, 22, 38,167,
-102,106,230, 45, 90, 76, 77, 28, 59,242,179,226,226,226, 73,134,154,172, 22, 45, 90,220, 60,118,236,152,157,141,141, 13,242,242,
-242,144,157,157,141,155, 55,111,130,227, 56, 12, 26, 52, 72,218,169,125,187, 86,115,231,205,191,158,152,156,220,209, 16,179,101,
-106,109,139, 85, 93, 90,150, 86,214, 79,179, 43,202,103,219,144,128,138,109, 22, 39,229,151, 71,231, 94,102, 10,169,142, 61,122,
-244, 16, 3,192,184,113,227, 10, 10, 11, 11,151, 1,216,135,186, 51,250,207,152, 63,127,190,115,195,134, 13,221,247,237,219,135,
-162,162, 34, 0,176,107,216,176, 33,188,189,189,217, 11, 23, 46,192,219,219, 27,102,102,102,184,116,233, 18,174, 95,191,142, 54,
-109,218,152,137,197,226,161, 58,157,174, 90,163,213,173, 79,183,249,210,126,190,254, 62,173, 71, 65, 97,238,136,237,251, 15, 34,
- 58,108,151,191, 70,247,112,190,152,189, 56, 82,205, 75, 71,103, 38, 40,102, 55,104,211,213,166, 81,211,247,224,222,250,142,109,
- 9,123,249,201,252, 94, 13,151,211,178,146, 93,139,214,164,102,215,100,178, 0,172, 26, 52,104,208,144, 3, 7, 14, 88, 2, 64,
-120,120, 56,210,211,211,161, 84, 42, 33,147,201, 32, 18,137, 42,230, 39,173, 39,163, 55,109,218, 84, 97,218, 24,134,169,152, 5,
- 64, 46,151,227,205, 55,223, 68,203,150, 45,241,211, 79, 63,141,174,193,104,117,105,223,190,253, 94,119,119,119,215,202, 47, 22,
- 23, 23, 99,248,240,225, 0,128,174, 93,187,246, 48, 49, 49,225,203, 13, 97,106,106,106,209,173, 91,183,122, 1, 8,173,193, 89,
-170,147,147,147,241,229,151, 95, 34, 62, 62,254,211, 45, 91,182, 60, 3, 32,147, 72, 36, 21,247,199, 0,188,155, 54,109,186,110,
-250,244,233,136,139,139, 67,100,100,228, 77,212,191, 41,149, 53, 53, 53,141,213,235,245,109, 24,134,129, 90,173,198,192,129, 3,
-101, 71,143, 30, 77,167, 40, 42, 42, 43, 43,235, 67,148,246, 73, 49, 20, 25,128, 53,129,129,129,159,204,156, 57, 19,191,253,246,
- 27, 78,156, 56,129,145, 35, 71, 98,218,180,105, 80, 40, 20, 99,166, 77,155,118, 29,165, 19,154, 63, 79,143, 77,155, 54,129,101,
-217, 23,254, 27, 50,153, 12, 93,186,116, 65,147, 38, 77,112,226,196,137, 30, 47, 97,180,220,187,116,233, 34,225, 56, 14,197,197,
-197,184,112,225,130,194,196,196, 68,225,226,226, 50, 30,192, 63,198,104,185,187,187, 7, 30, 56,112, 64, 81,185,245, 71, 42,149,
-162,210,239, 64,224,239,143,104,213,122,135, 85,129, 86,171,210,209, 52, 25,229,228,216,252,208,165,139, 83, 42,154, 14, 1, 50,
- 74,171, 85,233, 0,128,229,120, 20,168, 24,152, 72, 73, 60, 77, 43,196,131,199, 89,213, 73, 85, 25,162, 41, 50,113,131,180,170,
- 8,231,172, 0, 0, 32, 0, 73, 68, 65, 84,221, 83,240, 60, 15,173,142,133, 38, 63, 13,203, 78,171,240, 48,169, 4,218,226, 92,
-104,117,165,221,176,108,109,109,233, 51,103,126,153, 30, 18,242,251, 39,255,251,223,255,168, 36, 11,139,200, 66,160, 85,117,154,
- 86, 86,158,102,156, 68,114,104,243,150, 5, 38, 60,245, 24, 49, 9,197,104,228,210, 14,182,150,174, 72,203, 42,198,213,200,159,
- 17,245, 40, 24, 13, 29,221, 49,237,179,183,101, 75,150,238, 59, 40,102, 60,220,242,242,226, 11,106,218,207,242,187,168,173,191,
-198,128,201,121, 12, 54, 59, 14,108, 97,202, 11, 27, 40,148,110,104,221,221, 25, 74,215, 55,164,163,167, 45, 30, 5, 84, 49, 90,
-149, 53,211, 9,130,220, 76,146,196, 39, 4, 65,160,121,243, 22, 73,107,214,172,169, 46, 21,184,174,121,243, 22, 73, 20, 69,186,
-148, 94,216,201, 77, 60,207,165,215,177,159, 85, 76,141, 68, 34,157, 89, 26,246,119, 76, 60,125,250,180,110,200,144, 33, 88,189,
-122,181,100,214,172, 89,243, 40,138, 26, 87, 77,243, 94, 21,205,129,128,155,229, 27,111,244,254,246,234, 85, 94,164,215, 19, 57,
- 55,111, 22,228,165,166, 50,105,133,133,146,195, 81, 81,239,126,252,197, 23, 18, 87, 87, 87, 92, 9, 14,182,201, 44, 46,230,243,
- 52, 26,117, 94, 94, 30,207, 48,204,205, 26, 52,231, 40,149,118,242,237,219,183,123, 7, 6, 6,222, 73, 77, 77,157, 3, 0,142,
-142,142,203, 0, 52, 1,240,180,210,107,216,178,229, 96,242,248,241,227, 99, 50, 50, 50,230,212,182,159,149,104,106,167,180,147,
-239,223,186,251,190,181,153, 9,169,116,113, 34, 69,150,150, 52, 35, 49, 17,115,128,186,161,235, 27,166, 0,154,214,240,217,231,
- 53, 9, 19, 19,147, 99, 39, 79,158,180, 19,137, 68, 96, 89, 22, 74,165, 18,241,241,241,200,203,203, 67, 97, 97, 33,158, 68, 61,
-132,135,171, 43,190,158, 61,203,113,242,172,217,199, 84, 42, 85,155,231, 42,179, 23, 39, 64,214,235, 94,136,236, 85, 55,139,193,
-243,205, 94, 6,150,123,101,226, 19, 18, 18,160, 80, 40,224,231,231,167,184,122,245,234,229, 90, 76, 86,229, 73,128,135,118,238,
-220,217,108,223,190,125,104,211,166, 13, 44, 44, 44,112,225,194, 5,132,135,135, 67,167,211,145, 69, 69, 69, 80, 40, 20, 88,190,
-124, 57,220,220,220, 80, 88, 88,136,167, 79,159,218,136, 68, 34,219,231, 50,218, 87,104, 94, 56,115, 97, 73,126,220,249,249,105,
-196,175,111,111,223,127, 16,227, 71, 12,131, 3,255,248,178,197, 27,196,146,222,253, 58,127,197, 83,174, 1,166,102,205,173,188,
-252,250, 65, 44, 81, 96,242,204,197,136,137, 56,101,165, 42,188,255, 41,193, 38,186, 46, 90,115,120,106, 53,199, 78, 0, 32, 93,
- 93, 93, 63, 62,124,248,176, 89, 69,232,133,162, 42,230, 60,172, 60, 9,124, 45, 19,190,215,121, 62, 9,130, 64,124,124, 60,236,
-236,236,160, 80, 40, 42, 38, 16,127,248,240, 33,110,220,184,129,242,217, 40,106,208,252, 48, 36, 36,196,213,212,212,180,202, 6,
- 60,207, 35, 43, 43, 11, 12,195, 64, 46,151,131,101, 89,232,116, 58,232,245,122,148,148,148, 40,154, 52,105, 50, 73,175,215,135,
- 86,167,201,113,220,231, 67,135, 14,237, 28, 26, 26,234,249,253,247,223, 67,171,213,174, 74, 75, 75,195,224,193,131,193,113, 28,
-122,244,232,209,129,231,249,232,121,243,230, 1, 0,166, 79,159,174, 47, 46, 46, 14,172,207,177,151,209,164,117,235,214,158,191,
-253,246, 27,252,253,253,161,209,104,176,122,245,106,243, 45, 91,182,152,239,222,189, 91, 57,115,230,204, 31, 51, 51, 51,251,212,
-161, 73, 0, 88,229,224,224,240, 73,183,110,221, 76,202,230, 48,197,174, 93,187,240,245,215, 95, 31, 0, 48,239,151, 95,126, 89,
-120,226,196,137, 81, 31,127,252, 49,190,254,250,235,105,121,121,121, 59,106,210,124,242,228, 9,148, 74, 37,204,205,205, 75, 47,
-150, 58, 29,238,222,189,139,115,231,206,161,113,227,198,134, 28, 83, 77,251,233, 62,104,208,160, 31,247,239,223,111,150,152,152,
-136, 75,151, 46,193,195,195, 3, 42,149,202,144,185, 97, 67,254,132, 10,187, 70, 77,181, 90, 93,146,144,144,160, 88,177, 98, 5,
- 28, 29, 29,225,238,238, 14,153, 76, 6,130, 32,160,215,235,107,155, 94,173,206,253,236,218, 21,116, 86,178, 85,127, 11, 75,171,
- 79,121,158,167,243,243,115,183,234,144,119,228,241, 99,104,255,194, 99,255, 55,211, 10,192, 29, 84,157,243, 48,181,194,104, 5,
- 7, 7,243, 1, 1, 1, 68,249,218,217, 25, 5, 89, 89, 86, 49,118, 14,205, 14,218, 57, 52, 45,155,247,139,140,162, 40,171, 24,
-123,123, 85, 1, 0,232, 24, 30,215,162,242,112, 63, 54, 13,225,177,105, 48,149, 26, 22,124,209,232,152,210, 30,171, 60,143,146,
-162, 63,110, 90,117,170, 92,104,116,165,221, 61,180, 26, 21,242, 51, 35,137, 33, 3,123,201, 62,249,100, 34, 28, 29,157,149, 53,
-233,233,164,178,105,147,167,191,107,105,109, 41, 66,240,213, 95,209,161,241, 64,200,164, 34,100,231,151, 0, 4,240,232,241, 57,
-128, 51, 67, 68, 76, 2,218, 55,149,163, 79,111, 95,197, 79, 71,162,191, 0,176,192,144,253,101,146,110, 66,236,245, 14, 68,172,
- 30,250,172,104,112,121,207, 0, 83, 7,168, 9, 5,178, 83,159, 33,234,242, 81,131,238, 25, 57,142,251,212,214,214, 54,111,222,
-188,121,221, 26, 53,106,164,155, 52,105,210,189,103,207,158,125,254,220,221,202,119,155, 54,109, 66,108,108,108,242,183,223,126,
-123, 33, 43, 43,107,190,145, 5, 61,155,231, 17, 84,214, 20,151,117,252,248,241,214, 23, 47, 94,156, 22, 20, 20,100, 63,101,202,
- 20,201,148, 41, 83,198, 2,248,166,182,230,194, 2,169,180,231,183,151, 46,241, 76, 82,146,102,207,250,245,146,141,215,174,205,
-211,113,156,147,173,157, 29,209,169,125,251, 98, 57, 73,102,101,167,167, 51, 74, 79, 79, 42,254,220, 57, 27,222,196, 36,229,151,
- 95,126, 41, 40, 42, 42,170,113,234, 28,138,162, 84,213, 53, 23, 86,135,163,163,163,182,186, 62, 92,181, 84,136, 5, 28,207,235,
- 44, 27, 54,228,123,247,232,216, 40, 54,250,241, 99,153,165, 37,229,213,200,195,231, 65, 84,252, 77,158,101, 75, 8,130, 40, 48,
-168,173,132,162,134, 5, 5, 5, 53, 51, 55, 55, 7,199,113,176,176,176, 64,102,102, 38,180, 90, 45, 10, 10, 10,160, 45,204,135,
- 54, 63, 31,225,207,226,209,185, 91, 55, 12,121,187,183,239,238,227, 39,135,177, 44,123,160,214,246,188,230,173, 42, 34, 89,139,
- 27,216,252,209, 22,148,152, 87, 97,186, 86,180,242,130, 88,161, 64,175,207,103,191,204, 31,253,206,233,211,167,127, 30, 52,104,
-208,187, 95,124,241, 5,153,154,154,250,107,124,124,124,103, 0,145,181,125, 72,161, 80,188,145,149,149,133,162,162, 34, 88, 88,
- 88, 32, 40, 40, 8,246,246,246, 80,169, 84,184,117,235, 22,239,226,226, 66, 92,184,112, 1, 46, 46, 46,200,206,206,134, 78,167,
-131, 90,173, 78,211,106,181, 53, 54,151,151, 53, 15,190, 51,253,109,252, 18, 29,182,203,223,153,120,114,107,232,140,174,177,209,
-225, 81, 9,103,207, 93,253,134, 41,145, 37,230, 37,133,204,106,216,246,142,237,167, 95,126,141, 13,171, 22, 34, 58,244, 82,142,
-189, 91,193, 70, 19, 66,179,179,182,253, 45, 46, 46, 46,137,138,138, 50,187,119,239, 30, 8,130,128,133,133, 5,228,114,121,181,
-102,171, 30,144,149, 35, 80,197,197,197, 16,139,197,176,177,177,193,142, 29, 59, 42, 42, 94, 15, 15,143,218, 52,182,246,234,213,
-107,152,155,155,155, 89,229, 23,219,182,109,139,137, 19, 39, 98,243,230,205,184,118,237, 90,149,249, 52,211,210,210, 82,245,122,
-125,109,199,157,151,158,158,254,246,192,129, 3,195, 46, 95,190,108,190, 99,199, 14, 48, 12, 83,237,178,125,251,118,220,184,113,
- 99, 1,128,168,122,254,142, 26, 15, 30, 60,248,210,222,189,123, 45, 51, 51, 51, 81,254,219, 40, 46, 46, 6,203,178,240,241,241,
- 33, 24,134,169,171,223, 27, 73, 81,212,241,245,235,215,247, 27, 63,126, 60,104,154,134, 86,171,197,250,245,235, 49,107,214,172,
-244,178,155, 82, 29,128,121, 59,119,238, 28,245,222,123,239,161, 69,139, 22,190,231,207,215,220,179,163,168,168, 8, 69, 69, 69,
- 16,137, 68,112,112,112,192,146, 37, 75,160,213,150, 94, 86,188,189,189, 43,254,198, 0,182,122,123,123,247,139,137,137, 89,141,
-210,190,107, 47,224,224,224, 48,144,231,249, 9, 44,203, 22,250,251,251,219,236,223,191,223, 44, 57, 57, 25, 97, 97, 97, 88,176,
- 96, 65, 46,199,113, 44,199,113,132, 90,173,126, 98,103,103, 23, 38,149, 74, 77, 84, 42, 85, 78,118,118,246, 82, 0,191,254, 93,
- 53, 57, 65, 16,132, 72, 36,194,184,113,227, 64,211, 52, 76, 76, 76, 80, 82, 82, 2,189, 94, 95, 97,230, 97,100,179,116,163, 70,
- 10, 27, 26,226,241, 86,102, 77,166, 13,153, 26,160,116,116,114,134,165,185, 20, 15, 31, 70,118,254,253,183,115,235, 37,116,244,
- 22, 78,171,223, 18,253, 52,255, 79,159,236,254,121, 47,242, 47, 53, 90, 47,204,121, 72, 87, 95,152, 67, 88,158, 63,156,149,156,
- 44,209, 73, 36,242,152,242, 40,151,189,189,170,128, 32,134,176,202,166,253,193,232,244,101, 23, 10,190,108, 49,208,104,233, 89,
-196, 70, 71,224,242,217,147,176, 85, 37, 35,235, 73, 75, 64,220, 12, 90,117, 62, 74,180,186, 50, 83,194,226, 94,216,111, 40,200,
-207,129, 95,155, 0,128, 36,111,212,164,103, 97, 67, 4,116,106,221,156,138, 77,136, 64, 91,239,247,225,233,226,143,103,169, 5,
-200, 43,210, 32,183,160, 4, 45,253,102, 35, 51, 87,141, 2, 85, 9, 34, 99,119,195,217,201,147, 36,232,199, 61, 12, 53, 90,154,
-200, 99,208, 68,157,128,216,189, 51, 36, 62,239,129,114,239,130,132,251,231,113,239,151,181, 72,122,112, 5, 60,199,254,159,189,
-235, 14,139,226,106,191,103,102, 59,187, 75,239, 69,177,130, 98,239, 13, 69,108,104,236, 29, 75,172,209,168,216, 27,106,172, 81,
-209,104, 98,239, 37, 6,123, 55, 98, 23, 21, 11,118, 64, 64,172,244,178, 82,151,182,125,103,103,126,127, 80,130, 72, 89,208,228,
-251,126,249,246, 60,207, 60,187, 51, 59,115,246,157,123,239,220,123,230,189,247,190, 23,246,174,109,245,125, 72,118, 92,191,126,
-189,109,167, 78,157,216, 61,122,244,104,126,245,234,213,230, 18,137, 36,172, 80, 96, 52,239,209,163, 71,115,107,107,107,108,219,
-182, 77, 65, 16,196,142,106,102,118,177, 7, 44, 45, 45,237, 25,128,117,231,207,159,223, 49,117,234, 84,216,216,216, 52, 77, 73,
- 73, 41,247,194,116, 14,167,249,248,245,235, 25, 14,139,197,156,220,185,147,187,250,250,245, 95,127, 63,114,132,219,205,211,147,
- 96, 24, 6,161,161,161,194,141, 59,119, 10, 71, 15, 28, 24, 23,159,150, 70, 5, 5, 7,107, 36, 73, 73,121,105, 50,217,106,137,
- 68,242,233, 63, 81,178,181, 90,237,227,152,216, 24,199,214,237, 90, 88,135, 68,197, 68,122,117,235,216,145, 36, 73,242,109,116,
-124,176,181,181,137,240,214,205, 91, 26,173, 86,251, 88, 31, 46, 62,159,223,175, 91,183,110,108,169, 84, 10, 7, 7, 7,164,167,
-167, 35, 57, 57,185,192,227,144, 35,133, 38, 39, 7,218,220,108,232,100,249,136,121,254, 12, 45,234,214,225,159,225,243,251,201,
-229,242, 10,133, 86,209, 91,102, 89, 11, 93, 23, 29,227, 25, 27,131, 39, 22,131,168,122,183,225, 64, 51, 51,179,197,217,217,217,
- 87, 1,172,213,104, 52, 62,139, 23, 47,110,179,125,251,118,171,117,235,214,153, 76,153, 50,229, 76,126,126,126, 11, 20, 44,170,
- 90, 94, 3,246,145,162, 40, 75, 0,182,129,129,129,176,177,177, 65, 78, 78, 78,145,167, 69, 45,151,203, 5,153,153,153, 80,169,
- 84, 80,171,213, 48, 49, 49,193,139, 23, 47,178, 40,138,186, 92,153,113, 38,245,136,181, 42, 77,212, 79,150,110,162, 20, 13,101,
-238,145,150, 69, 75, 87,253, 42, 89, 3,224,215,222,117,235, 30,208,208,247, 99,222, 71, 92, 54,143,125,126, 47, 43,229,189,172,
-238,193,171, 49, 21,141,209, 98, 0,208, 4, 65, 48,174,174,174, 72, 79, 79, 7,139,197,130, 80, 40,132, 88, 44,198,146, 37, 75,
-176, 99,199,142,234, 8, 45,129, 72, 36, 90, 79,146,228, 72,146, 36,173,117, 58, 29,124,125,125,209,191,127,127,240,120, 60,104,
- 52,154, 98,143,102,145,151,170, 18, 79, 71,232,147, 39, 79, 76,158, 60,249,172,218,242,180,178,178,186,163, 82,169, 16, 29, 29,
-141,139, 23, 47,118, 5, 16, 84,197,188,142, 14, 13, 13,237,237,238,238,254, 71,171, 86,173,234, 49, 12,131,166, 77,155,194,219,
-219, 27,254,254,254, 8, 11, 11, 67, 78, 78, 14,125,235,214,173,223, 1,108,174,106, 27, 94,152,190, 13,134, 14, 29,250,240,248,
-241,227,230,153,153,153, 80, 40, 20,144,201,100, 56,115,230, 12, 58,117,234, 4, 43, 43, 43, 28, 59,118,140, 98, 24,166,162,188,
- 39, 73,146, 60,184,119,239,222,254,147, 39, 79,198,174, 93,187,112,242,228, 73, 12, 24, 48, 0, 35, 71,142, 68,122,122,186,237,
-166, 77,155,198, 21,118, 19,174,244,246,246, 70,126,126, 62,158, 63,127, 30,165,231, 51,143,236,236,108,100,103,103,195,200,200,
-168,228, 51, 70, 0,240,223,178,101,203,168, 57,115,230,160,110,221,186, 43, 99, 98, 98,182,160,140, 89,162, 52, 77,255,152,156,
-156,108,206,102,179, 45, 41,138, 66, 98, 98, 34, 94,188,120,129, 25, 51,102,100,101,101,101, 77, 5, 16, 15, 96,217,164, 73,147,
-214,206,155, 55,175,184, 44,205,155, 55, 47,224,234,213,171,189,255,105,111,142,171,171, 89, 99, 30,139, 63, 91,154,199,178,148,
- 74,165,197,117,135, 90,173,134, 74,165,250,204,147,197,229,114, 44,219,180,168,121, 69, 33,207, 91,250,250,125,118,185, 11,164,
-187,213, 51,109, 38, 20,153,206,233,212,185,219,152, 94,189, 7,177, 40,173, 22, 55,110, 92,198,161, 67,187,225,233,238,138,186,
-245,155, 98,230,172,217,166, 42, 53,229,123,235,214,245,197,102, 79, 30, 92,207,203,205, 94, 82, 17,231,255, 56,174, 20,138,171,
- 43,101,118, 29,150,165, 32, 11, 67, 56, 72, 11,119,173,204,205,205,119,234,116, 58, 79, 19, 19, 19,208,217,239,240,250,197, 83,
-100, 73, 57, 80, 41,116,160,153, 2,177,165,151,112, 81,169,113,255,198, 37,108,221,242, 43, 50, 51, 51,225,222,165, 43,242,217,
- 53, 80,179, 70, 77, 40, 21,242,194,135, 6,208,168,181,176,182,117, 70, 72, 72,152, 54, 87, 38, 43,183, 66,226, 10, 52,110, 53,
-109, 93,161,210,116,128,128,199, 67, 78,158, 26,210, 66,145,117,236,236, 8,168,228, 10, 80,106, 13, 40,181, 22,214, 53,135,162,
-161,109, 55,208,186,203,141,171,148,124,180, 14,154,216,251,208,196,222,135, 81,135, 89,248,211,111, 84,169,134, 84,191,117,119,
-211,211,211,211, 34, 35, 35, 47,135,134,134, 14, 30, 49, 98, 4,238,222,189, 59, 5,192,180,194,238,155, 41, 35, 70,140, 64,104,
-104, 40, 34, 35, 35, 47,167,167,167,167,125,139,156,231,241,120, 10,149,170,160,141, 21, 10,133,130, 74,206,117,108, 51,100, 8,
-153, 19, 18,146,187,229,209,163,149, 7, 14, 30,228,246,232,222,157,208, 82, 20,104,157, 14,245, 93, 92,136, 94,189,122,137,252,
- 79,159,182,100,105,181, 79, 22,250,248, 4,238, 25, 59, 54,239,153, 76,166,239, 64,243, 90,133, 93,134, 0, 80,171,130, 99,122,
- 67,165, 82,109,255,241,135, 9, 61,130,238, 63,172, 81,179,134,163,201,141, 91, 65, 97,124, 35, 30, 89,183,118, 61,150, 52, 39,
-139,189,102,229, 82, 35,149, 74,165,175,104,117,179,178,178,194,167, 79,159,240,225,195, 7,168, 84, 42,104,181, 90,208,114, 25,
-212,210,108,168,115,178, 64, 40, 21,224,235,116, 80,102,164,162, 86,221, 58,192, 95, 51, 18, 43,237,138, 42, 75,104, 21,125, 10,
- 76, 76,192, 21,137, 65,114, 56,122, 47,142, 14,160, 85,219,182,109, 79,159, 59,119,142, 59,113,226,196,118,183,111,223,222, 9,
- 32, 62, 57, 57,185,251,242,229,203,159,237,220,185,147, 63,117,234,212, 6,155, 55,111, 30, 7, 96, 95,121, 36, 74,165,242,244,
-149, 43, 87, 70, 59, 59, 59,219,134,135,135, 67,169, 84,130,166,105,244,233,211, 7, 40, 24, 91, 3, 0,120,251,246,173, 66,169,
- 84,166, 69, 68, 68,228,198,199,199,107,160,199, 44,193, 85,219, 37,143,115, 63,221, 31, 98,107,231,248, 68, 96, 84,171, 54,147,
- 31, 50,120,238, 48,199, 77, 91,206, 38, 43,175, 71, 71,231,253,212,179,206, 6, 89,222,171, 25,102, 78,249,187,174, 7,196,232,
- 51, 16,190,120,118,161,165,165, 37,216,108, 54, 56, 28, 14,184, 92, 46, 8,130,192,172, 89,179,176,127,255,254,202,186, 14, 63,
- 19, 89,198,198,198,145,171, 87,175,118,154, 58,117, 42, 87, 32, 16, 64, 42,149,226,216,177, 99,152, 52,105, 18, 14, 29, 58, 84,
-230,248, 23, 61,186,148, 74,123, 75,231,140, 29, 59, 22,106,181, 26,222,222,222, 56,112,224,192, 28,157, 78, 23, 84,141, 71,250,
- 73, 88, 88,152, 75, 88, 88,152, 9,128, 1, 35, 71,142, 60, 50,116,232, 80, 4, 5, 5,225,242,229,203, 93, 81, 48,233, 67, 1,
-192, 15,128, 77,225,103, 69,207,167,200,214,214,118, 55, 77,211, 3,172,173,173,195, 92, 93, 93,155, 28, 63,126,220, 44, 45, 45,
-173,104,242, 3, 98, 99, 99,113,248,240, 97,201,193,131, 7,115,117, 58,157, 37, 73,146, 87,178,179,179,151, 84, 32,216, 14,110,
-217,178,101, 66, 97,119, 32,206,157, 59,199,252,250,235,175,196,242,229,203, 33,149, 74,225,233,233,137,189,123,247,206,206,207,
-207,111,254,235,175,191,254, 48,124,248,112,172, 89,179, 6, 50,153,108, 75,101, 47, 43, 21,136, 47, 2, 64,199, 45, 91,182, 56,
-207,153, 51, 7,231,206,157, 67,171, 86,173,140, 98, 98, 98,246, 0,152, 92, 86,254, 49, 12,131,152,152, 24,200,229,114, 60,124,
-248, 16, 43, 87,174,148,150, 16, 89,179,167, 77,155,182,118,246,236,217, 88,191,126, 61, 19, 30, 30,158, 54,116,232, 80,219,253,
-251,247,179,234,215,175, 63, 91, 46,151,255, 99, 66,171, 65,125,139, 13,109, 90,117, 94,108,239, 88, 31,199,142,159, 64, 86, 86,
- 86,113,154, 20,165, 11,195, 48,200,203,203,195,167, 79,159, 96,106, 98,140, 77,155,215,126, 55,125,202,132, 26, 40, 8,131,241,
-165,203,178,174,249,230,161, 35, 39,206,247, 30, 61, 1,225, 97, 47,225,127,100, 31, 34,194, 67,139,249, 40,173, 6,239,162, 94,
-224, 93,212, 11,216,218, 57,163, 87,143,174,196,168, 81,163,250,140, 29, 61,210, 26,192,223, 22, 58,226,255,177, 55, 11,248, 50,
-142,214,254,207,132, 86, 37,238, 58, 43,115,115,243,200, 83,167, 78, 89,186,187,187,179, 40,138,194,245, 27, 55, 48, 99,218,247,
- 24, 55,214, 23, 26,152,131, 82,115, 65,115, 5,122, 89,162, 80,200,193,128,129, 76, 38, 67,112,112, 48, 24,154,130,255,254, 95,
-193, 48,116,177,208, 2, 24,168, 53, 26, 56,214,108,128,221, 7,214, 81,224,112,158, 65, 91,118,232,154,220, 76,150, 78, 75, 49,
- 72, 78, 75, 64,130, 36, 2,166,198, 53,193,230,212, 68,102,182, 28,108,210, 14, 90,229, 91,232, 10,175,149,203,146,160,208,124,
- 93,254,233,202,240,158, 50, 85,168,116, 21, 10,197,209,163, 71,143,126,247,219,111,191,241,250,246,237,235,122,246,236,217,142,
- 0,208,183,111, 95, 87, 19, 19, 19, 28, 61,122, 84,173, 80, 40,142,126, 67,143, 79,183,182,109,219, 66, 42,149, 34, 54, 54, 54,
-172,194,123, 83,171, 45,197, 54, 54,172,180,187,119,181,233, 82,105,141,110,221,186, 17, 90,138, 2, 73, 16,200,202,201, 65,124,
- 92, 28,204,204,204,136,200,183,111,197, 59,102,206,188,224,218,164, 9,187,104, 70,162, 62,184,124,249,178, 16, 5,227,178, 42,
- 60, 86, 69,200,210, 82, 63, 77,240,241,241,185,112,244,232, 49,211,212,180,212,119,124, 30,143, 18,139, 5, 14, 99,199, 76,103,
-103,103,103,143, 6,144,175, 47,153, 84, 42, 69, 76, 76, 12,140,140,140,192,229,112, 64, 43,228,208,201,242,161,204, 74, 7, 75,
-163, 6, 79,167,131,133,144,143, 26,182,182,168,105,109,165, 23,231,135, 59, 55,139, 7,190,151,236, 46,220,212,214, 13, 60,145,
- 24, 60, 99, 49,166, 7,220, 43,124, 27,229, 2,203,127,214,135,214,202,209,209,241,207,227,199,143,115,211,211,211, 17, 26, 26,
- 26, 6, 32, 7,128, 49, 0, 58, 42, 42,234,118, 68, 68, 68,191,194, 89,119,149,205, 22,251,245,252,249,243, 61,221,221,221,169,
-218,181,107,139,210,210,210,106, 72,165, 82, 90, 34,145,124,230, 18,186,121,243, 38, 63, 47, 47, 79, 70,211,244,133, 66,145, 85,
-105,252,162,185,195, 28, 5,193, 33,152,229,225, 85,171,169,137, 85, 51,100, 81, 33, 77,159,132, 73,102,205, 29,230,184,125,203,
-217,100,165, 17,161, 58, 66,232, 18,107,176, 5, 74,125, 7, 49, 51, 64,193, 88,169,224,224, 96,196,199,199, 35, 38, 38,230, 51,
- 65, 53,101,202, 20,248,251,251,235,229,209, 18,137, 68,235, 87,173, 90,229, 52,103,206, 28,110, 9, 81, 4, 31, 31, 31,228,228,
-228,224,192,129, 3,240,241,241,169,114,195, 95, 10,117,186,117,235,214,215,222,222, 30,153,153,153,176,179,179,131,187,187,123,
-255,160,160,160,218, 0, 98,171, 89,238,167,123,121,121,173, 93,189,122, 53,180, 90, 45, 38, 77,154,132,247,239,223,159,126,255,
-254,253,214,154, 53,107,206, 90,180,104,145,173,173,173, 45, 70,140, 24, 33,162, 40,106, 72,121, 36, 22, 22, 22,126,251,246,237,
- 27,221,183,111, 95, 82,163,209,116,185,115,231, 14,226,226,226,160, 86,171, 65, 81, 20, 62,126,252, 8, 31, 31, 31, 73,225,236,
-198,143,122,216, 53,113,217,178,101, 19,102,205,154,133,141, 27, 55, 98,213,170, 85,191,155,154,154, 54,105,209,162, 69,203, 85,
-171, 86, 97,225,194,133,112,118,118,134,165,165,101,195,229,203,151,187,205,155, 55, 15,219,183,111,199,202,149, 43,127, 7,112,
-184, 58, 9, 65,211, 52,177, 97,195,134,230, 91,182,108,177, 47, 18, 89, 36, 73,226,212,169, 83, 8, 9, 9,233, 31, 29, 29, 93,
-214, 53,123,237,236,236,166,216,219,219,243,110,221,186, 37,118,118,118, 6, 69, 81,218, 66,145,181,163,102,205,154, 51, 62,126,
-252,136,190,125,251, 34, 58, 58,250, 40,128,113,166,166,166,178,121,243,230, 9,141,140,140, 76,229,114,249, 63,213,120,131, 69,
- 18,227,215,175, 89,136,231, 33,111,113,254, 60, 23,207,159, 63,135,173,173, 45,248,124, 62, 24,134,129, 74,165, 66,122,122, 58,
-180, 26, 21,154, 54,174,131, 63, 14,110, 64, 90, 90, 58, 64, 18,229, 14,185, 33, 72, 98,204,132,239, 7,227,193,195, 27,216,179,
-103, 31,242,243,101,229,188,124, 11, 80,223,213, 13,142, 14, 54, 72, 76, 74, 4, 65,194,234,239,188,215,255,231, 93,135,197, 85,
- 16,244, 9,239, 80, 18,102,102,102, 91, 79,158, 60,105,233,233,233,201,146,201,100,160,105, 26,157,221,221, 49,107,206, 28, 92,
- 62,126, 28, 46,237,188, 65,168,197,160,132,250,205,122, 80, 42,228,104,212,178, 35,134,143, 24,137,132,248,120,120,245, 27, 10,
-165, 82, 94,252,134, 81,228,209, 82,171, 53,176,178,169,129,155, 55,111,178, 48,105,210,107,236, 40,219, 41,161,211,240, 94,189,
-251,168,236,148,173, 8, 65,240,115,127,104, 84, 26, 52,109,186, 28, 26,218, 18, 54, 78, 83,160,213, 94, 68,110,250,157,130,110,
- 12, 75, 79, 36, 37, 36,128,100,113, 35,171,155,130,180, 44,253,171, 42,221,156,156,156,156,152,152,152,179,193,193,193, 99,134,
- 12, 25,130,155, 55,111,254, 0, 0, 67,134, 12, 65,112,112, 48, 98, 98, 98,206,230,228,228,228,124,139,220,182,183,183, 31,208,
-181,107, 87,239, 54,109,218, 32, 32, 32, 0, 12,195, 60,208,235,193,230,112, 24,146, 36, 65,211, 52, 8, 0,153,217,217,120,255,
-254, 61, 50, 51, 50,160,213,106, 33,203,207,167,221, 92, 93,243, 25,154, 54,174,138, 61, 37,103, 24,162,140, 89,135, 69,199,170,
-113,171,241,207,158, 60, 74,200,203,207,183, 54, 55, 51,207,227,241,120, 58,105,118,118,206,235,200,112,181,158,141, 67, 17,162,
- 34, 34, 34,154,164,164,164, 32, 33, 33, 1,148, 44, 15, 44,149, 26,164, 74,142,238, 29, 59,192, 8, 12, 4,160,193,161,181,224,
-176, 56,200, 43,152,157, 87,105,119,135,174,196, 75, 66,145,200, 34, 8,162,160,187, 80, 36, 2, 79,108,252,153,135, 75,159,242,
-196,231,243,143,159, 57,115,198,222,209,209, 17,107,214,172,129,147,147, 83, 67, 7, 7, 7,185,169,169,169,145,173,173, 45, 26,
- 53,106,132,142, 29, 59,226,218,181,107,208, 35, 13, 40,134, 97,122, 61,120,240, 96,254,163, 71,143,134,139, 68, 34, 98,230,204,
-153,236, 62,125,250,128,207,231, 67, 46,151, 67, 42,149,226,196,137, 19, 25, 52, 77, 23, 77, 74,177, 20, 10,133,135, 9,130,136,
-149,201,100,115, 74, 19,254,241, 91, 83,135,180, 44,122, 18,147, 47, 28,236,225, 85,171,105, 55,175, 30,168,227,210, 13,221,188,
- 18, 0, 96,131, 5, 59,206,251,151,101,102, 23,204,140,137,195, 55,175,223, 90,233,238,209,109,217,226,252,187,107, 55,238,207,
-174,116, 60, 29, 65, 16,160,105,250,179,216, 65,165,127, 31, 55,110, 28, 78,157, 58, 85,105, 58,146, 36, 57,114,234,212,169,220,
- 82,158,103, 36, 39, 39,163, 95,191,126, 24, 50,100,200,103, 66,203,202,202, 10,118,118,118,136,139,139, 3,128, 76, 61,203,213,
-172,137, 19, 39, 18, 10,133, 2,147, 39, 79,198,129, 3, 7,224,237,237, 77, 4, 5, 5,205, 2, 48,167,170,133,157, 36,201, 77,
-139, 22, 45,154,239,227,227,131,172,172, 44, 92,189,122, 21,125,250,244,193,169, 83,167,172,175, 94,189,186,222,211,211, 19, 44,
- 22, 11, 1, 1, 1,160, 40,170,194, 88, 95, 92, 46,119, 64,223,190,125,201,196,196, 68,112,185, 92,180,110,221, 26, 73, 73, 73,
-144,203,229, 72, 78, 78,198,236,217,179, 63,101,102,102,118,213,247, 57,226,114,185,115,102,205,154,133,147, 39, 79,194,215,215,
-247, 8,128,201, 57, 57, 57,195, 31, 61,122,116,114,224,192,129, 72, 78, 78,198,133, 11, 23,176,114,229, 74, 98,220,184,113,216,
-181,107, 23,102,207,158,253,123,161,215,169,188,130,159,151,150,150,102, 90,175, 94, 61,164,166,166, 34, 63, 63, 31, 23, 46, 92,
-176,185,118,237, 90,109, 71, 71, 71,147,152,152, 24,221,207, 63,255,204,155, 51,103, 14,182,110,221,138,208,208, 80,248,251,251,
-163, 91,183,110, 84,116,116,116,153, 94,178,194,144, 13, 23, 24,134,185, 37, 18,137,144,151,151, 87,244,220, 45,240,245,245,245,
-241,243, 43,112,178,167,164,164, 96,252,248,241, 99, 3, 3, 3,105, 79, 79, 79, 33,151,203,133, 82,169,148,253,147,173, 54,173,
-163, 1,208,168, 93, 67,140, 27,151, 15,226,101, 88, 52, 94,134, 69,128,199, 47, 24, 4,175, 80,200,209,178,105,125,180,107,221,
- 22, 41,146,100, 28,245, 63, 8, 11, 43,199, 10,235, 17,134, 97,192,101,235,224,230,106,135,227,254,251, 16,112, 53, 16,254, 71,
- 79, 20,143,121, 99,179, 57,104,209,178, 29, 90,183,118, 71,116,204, 71, 28, 60,184, 7,214, 54, 53, 12,157,131,213, 68,113,215,
- 97,201,207, 82,202,191,155,187,187, 59, 43, 63, 63, 31, 74,165, 18,159, 62,125, 66, 92, 92, 28,204,204,205, 16,157, 18,139,174,
- 66, 13, 62,209,185,136, 10,139,212, 17, 44, 78,104,101,127,216,215,163, 5,224,209, 2, 51, 38,122, 87,240,202,202, 64,100, 98,
- 85,208,117, 67, 81, 31,176,125, 59, 85,158,208,162,116,218,219, 55,110,221,105, 59,113,220, 0,206,205, 59, 7,160, 85,211, 80,
-104, 77, 33, 83,170, 33,211,112, 64,154,246, 1, 50,130,192, 98,243,209,190,121,125, 92, 56,127, 77,195, 80,218, 64,189, 19,200,
-182, 9,168,212,136, 18, 66, 43,173, 84,191,131,133,222, 93,135,197, 13,175, 78,119,234,216,177, 99,131, 58,116,232, 32,244,244,
-244,172, 87,216,112,106,142, 29, 59, 38, 47, 12,134, 89, 85,124, 22, 13,222,206,206,174, 37,151,203,245,238,211,167, 79,203, 9,
- 19, 38,224,245,235,215, 56,122,244,232,187,250,245,235,223,149, 72,202,159,145,205,226,241, 50,243,211,210,204,196,181,107,179,
-205,141,141, 83,174, 93,189,234,220,163,103, 79, 34, 33, 33, 1,153,153,153, 80, 42,149, 8, 13, 11, 99, 56, 44, 86, 18, 97, 98,
- 66,190, 13, 9, 33, 89, 60, 94,102,121,222,198, 50, 16, 87,201,172, 67,191,234,122,183,106,216,155,215, 91,233,251, 99, 29,165,
- 74,217, 36, 55, 55,151, 98,115, 56, 28, 39, 59,179,248,183, 31,245,175, 19, 85, 42, 85,192,237,219,183, 7,245,232,209,131,255,
-238, 85, 40,168,156, 28,168,115,164,224,210, 58, 88,180,108, 14,150, 70, 5,168,181,112,116, 99,160,204, 22, 34,232,233, 91,173,
- 74,165,170, 52,168, 97,145,208, 34, 75, 9, 3,158, 88, 12,190,177, 9,248, 98,113,105,193, 80,217,155,156,176, 87,175, 94,221,
-219,183,111, 15,134, 97,176,127,255,126,104, 52, 26,158, 70,163,129, 90,173,134, 70,163, 65,110,110, 46,252,253,253,177,123,247,
-238, 71, 0,126,215,227,246, 41, 35, 35,163,129, 4, 65,216,176,217,108,185,181,181,181,232,212,169, 83,197,225, 38, 90,180,104,
- 1, 99, 99, 99, 46, 10,131, 66,218,216,216,112, 14, 29, 58,100,214,191,127,255,251,101,118,119, 52,109,184,176, 14,101,238, 33,
- 48,170, 85,219,196,170, 25,234,184,116, 3, 0,244,236, 55, 17,117,234,215, 68,110,198,171,218, 74, 69,220, 96, 46, 91,106, 30,
-185, 61,249,181, 81,223, 38, 19,100,105,247,222,163,236,233,253,101, 54, 20, 36, 73,150,219, 29,171,143,200, 42,208, 44,164,117,
-209, 56, 31, 0,200,204,204,132, 68, 34, 65, 84, 84, 20, 26, 52,104,128,172,172, 44, 56, 58, 58, 66,173, 86,163, 77,155, 54, 80,
- 40, 20,216,178,101, 11, 30, 62,124,248, 8,192,108, 61,254,195,200,197,197,101,124,203,150, 45,113,245,234, 85, 60,127,254, 60,
-249,198,141, 27,142,238,238,238,168, 93,187,246,132,216,216,216,165,133, 93,125,250, 66,228,238,238, 62,211,199,199, 7, 17, 17,
- 17,248,241,199, 31, 51, 19, 19, 19, 47,156, 62,125,122,242,202,149, 43, 73, 47, 47, 47, 72, 36, 18,108,218,180, 73,247,240,225,
-195,205, 0,214, 84,146,142,111, 18, 19, 19,157,148, 74, 37,178,178,178, 64, 81, 20,228,114, 57,174, 93,187, 6,127,127,255,212,
- 66,145,245, 65, 95,227,154, 55,111,222,136, 36, 73,156, 60,121, 18, 0,126, 66, 65,196,254, 11,131, 7, 15, 78,254,249,231,159,
- 29,151, 44, 89,130, 31,126,248, 1, 26,141, 6, 27, 55,110,196,146, 37, 75,174, 20,138,172,138, 42,209,223,236,236,236,166,252,
-248,227,143, 13,231,205,155,135,224,224, 96,155, 23, 47, 94,180, 14, 13, 13, 69,141, 26, 53,144,153,153,201,182,180,180,196,214,
-173, 91, 49,119,238,220,115, 0, 50, 30, 63,126, 60, 50, 38, 38,198, 15,192,166, 74, 68,251, 94, 71, 71,199, 41, 12,195, 48,114,
-185, 60,206,215,215,119,211,186,117,235, 48,119,238, 92, 68, 70, 70, 34, 39, 39, 7,198,198,198,196,162, 69,139,198,255,244,211,
- 79,152, 52,105, 18, 35,147,201,118,255,211, 13, 53,195,232, 32,151, 70, 64,167, 50, 71,139,166, 13,208,162, 73, 45,220,184,243,
- 18, 0,208,125,168, 59,228,178, 60, 28, 57,178, 31, 31, 62,188, 7,155,195,129,153,133,157, 62,158, 64,168,115,223, 32, 91, 35,
- 65, 15,207,214,232,227,213, 21,191,255,113, 10,148, 86,131,201, 19, 71, 67,154,157,141, 63,254, 56,136,232,152,143, 96,115, 56,
-176,180,250,251, 3,161, 86,164, 69,254,223, 11, 45, 61,186,159, 64,211, 52,146,147,147,241,226,197, 11,196,198,198, 66, 40, 20,
- 66, 65,233,232, 61,183, 31,210, 4,193, 77,162, 25,230, 17, 67, 21, 71, 41,254,146, 67,167, 75, 46, 17,177,214,212,220,220,156,
-167, 82, 41, 64, 81,218, 18,173, 10, 1, 16, 0,151, 13,216, 59,212, 65, 98, 66, 34,163, 84, 42,239, 85,248, 6,165, 82,110,189,
-116,225,140, 79,199, 78,238, 86,125,186,175,198,133,139,203, 33,205,205,133, 82,195,129, 76,169,129, 92, 9,152, 89,184,162, 77,
-211,102, 72, 73,201,196,171,231, 65,249,108,149, 92,159,129,162,239,119, 44,155,232, 50,113,198, 66, 24, 57,119,130, 42,234, 2,
-232,252,212, 98,143,150, 64,108, 14,139,154,110,200,150,169,112, 38,240, 37, 80,133,165, 94,210,210,210,228, 44, 22,235,152,143,
-143,207,198,151, 47, 95, 56, 1,192,203,151, 47,147, 36, 18,201,226,180,180,180,170,250,164,139,162,193, 19, 2,129,209,203,250,
-245,235,167,180,110,221,218,116,240,224,193,176,178,178, 66,104,104, 40,252,252,252,222,104, 52,154,133, 65, 65, 65, 21,118,245,
-168,213,234,228,151, 23, 47,154,116,253,254,123,179,133,253,251,111,242,241,241,217,186,102,205, 26,142,139,139, 11,161,213,104,
- 16, 30, 30,206, 28, 63,118, 76,187,123,201,146, 45, 60,145,136,253,236,210, 37, 14,165, 82, 37,255,167, 11,177,163,163,163,135,
-123,151,206,110,155,127,219, 14,165, 34, 31, 79,131,175, 64, 42, 77,199,190,253,231,221, 28, 29, 25,143,228,228,228, 32,125, 5,
-240,225,195,135,231,183,107,217,178,101,221, 26, 53, 16, 30, 31, 11, 30,173, 3,151,162,192,210,168, 64, 82, 74,212,104,194,128,
- 32,141, 33,249,148,139,117, 39,207, 70,232, 35,140, 27,126, 55, 0,107,146,114, 64, 16, 4,126,237,208, 4, 60, 99, 49,184, 34,
- 49,166,255,121,167, 88, 24, 4,172, 89, 2,158, 88,140,122,237,244, 10, 8, 47,191,123,247,238,139,240,240,240, 54, 77,154, 52,
-193,252,249,243, 17, 23, 23, 7,154,166,145,154,154,170,148, 72, 36,201,233,233,233,113, 40,136,255,115,160,146, 70,172,164,234,
-112, 12, 10, 10, 42,238,110, 8, 12, 12,132,131,131, 3, 76, 77, 77,145,155,155,139,169, 83,167,154,173, 88,177, 2, 0,240,226,
-197, 11,148, 20, 40,165, 17,254, 50,106,115,118, 30, 35,101,242, 67, 6,103, 81, 33, 77,187,121, 37,162,103,191, 9,184, 21,240,
- 59,238,220,184, 13, 11,118, 92, 44, 68,121,215, 50, 98, 51,114,147,100, 46,123,221, 90, 77,102, 73,100, 55,246,206, 28,240,142,
-101,111, 79,159, 89,178, 39, 55,187, 34, 91, 93, 92, 92, 96,107,107, 91, 60, 70,139,205,102, 99,210,164, 73, 96, 24, 70, 95,145,
- 85,216,214,208,233, 74,165,210, 86, 32, 16,224,211,167, 79,248,248,241, 35,162,163,163,139, 67, 7,208, 52,173, 93,176, 96, 1,
-103,230,204,153,216,179,103, 15,238,221,187,247, 8,192,106, 0,250,190,172,141, 30, 49, 98,132,177, 90,173,198,137, 19, 39, 40,
- 0,253,206,156, 57,243,162, 77,155, 54,236,222,189,123, 27,239,218,181,107,116, 97, 30,233, 45,180, 76, 76, 76,184, 26,141, 6,
-187,118,237, 66, 98, 98,162, 7,128,168,103,207,158,237, 29, 49, 98,196,238, 38, 77,154,212,143,136,136,120,159,159,159, 63, 29,
-192,171,202,200, 82, 83, 83, 39,182,110,221,250, 12, 77,211,206, 61,122,244, 16,253,246,219,111, 38,111,223,190,133,147,147, 19,
-104,154, 14, 71, 21,151,176,122,255,254,125,148, 68, 34,113,235,218,181, 43,174, 93,187,182, 65,167,211,173, 7,176,113,218,180,
-105,142,241,241,241,104,217,178, 37, 44, 44, 44,240,246,237,219, 60,137, 68,178, 27, 5, 75, 18, 85,230,194,141, 1,176,120,239,
-222,189,205,246,238,221,235,109, 97, 97,209, 62, 52, 52, 20, 15, 30, 60,192,230,205,155,177, 98,197, 10,116,238,220, 25,243,231,
-207,207, 0,224, 13,128,138,137,137,209, 43,110, 94,145,103, 11, 0, 90,181,106,149,226,231,231,135,201,147, 39, 51,135, 14, 29,
-218,118,236,216,177, 57,163, 71,143, 46,110, 3,199,143, 31,207, 28, 61,122,116, 60, 10,150, 97,250, 39,161,213,104,212, 48,177,
-168,131,252,236, 4,164, 39, 6, 67,104,108, 7,175,110,205, 33, 87,168,113,249,210, 57,188, 10, 15, 3, 73,146,176,181,171, 1,
- 51,115, 43,188,123,247, 30,168,120,182,177, 86,163,209,192,216,188, 22,242,115, 18,161, 78,123, 9, 35,177, 13, 38,124, 63, 24,
-114,133, 6,231, 47,156, 67, 68,196, 43,176, 88, 44,216,217,215,128,169, 89, 1, 39,193, 84, 60,131,217, 0, 0,101,196,211,170,
- 84,104,177, 88,172,187,215,175, 95, 31,214,174, 93, 59,246,135, 15, 31,240,225, 67,193,203,141, 84, 42,165, 8,232,206,166,133,
- 95, 26, 85,193,229, 61, 80, 56, 59,163,228,218,133, 98, 99,227,228,183,111,162,108,165, 89,169, 8, 11,121,136, 15,239,194, 17,
- 27, 29, 5,141, 70, 9, 22, 73,130,100,145,168, 85,167, 49, 30, 62, 10, 86, 43, 41, 42,184, 60,206, 2, 59,162,243, 68, 54, 46,
- 35,215,174, 89, 26, 48,119,225, 42,163,225,195,246,224,213,219,215,200,167,236,192, 48,128,157,165, 8, 45,234, 46, 66,114, 74,
- 58, 78,254,190, 75, 78,107, 52, 99, 74,197,208,250,130, 19, 0,108, 51,208,104,247,254,223, 39, 29,240, 63,190,106,225,204,169,
-182, 3,135,140, 1, 47,235, 53,180, 41, 47, 81,167, 77, 31, 16,124, 51, 92,189,121, 7, 65, 47, 94,167,210, 58,102,149,109, 38,
- 14,189,171,132,179, 36,178,179,179, 31,127,250, 36,113, 42, 17, 5,222,137,207, 23, 84, 54, 59,174, 52,231,103, 17,231, 89, 44,
-178,213,218,181,107,181,182,182,182,154,136, 61,213,231,155, 0, 0, 32, 0, 73, 68, 65, 84,136, 8,236,217,179,135,126,249,242,
-229, 77,146, 36,119, 72, 36, 18,101,101,156,214, 90,109,216,113, 95,223, 70,109,135, 12, 97, 70,205,156, 41, 7,159, 63,107,211,
-175,191,250,166, 75,165, 14, 12, 77,195,218,194, 34,105,211,146, 37,126,195, 70,140,144, 70, 62,124,104, 20,124,241,162, 17,143,
-162, 94,234, 97,231,183, 64,185,156,201,201,201, 65,247,238, 61,192,145, 3,191, 65,163, 81, 65,146, 28, 15, 0,200,200,204, 65,
- 37, 34,171, 52, 39, 35,151,203,135,252,180, 98,197,147,159,230,206,177,235,210,189, 7, 18,194, 66,161,201, 74, 7,161,165,192,
- 33,216,144,165, 9,145,150,154,143,197, 71, 79,167,229,203,229, 67,202,104, 36,202,180,179,200, 99,197, 55, 49, 6, 87, 36, 6,
- 79,108,252,153, 23, 75, 96, 98, 2,158, 72, 12, 54,143, 87,214, 0,238, 47, 56,243,243,243,135, 14, 27, 54,236,213,179,103,207,
-204, 39, 79,158,140,142, 29, 59,134, 40, 20, 10, 79, 0,121,213, 77, 79,154,166,147,187,116,233, 66, 18, 4, 33, 30, 51,102, 12,
- 63, 61, 61,189, 56,178,122,126,126, 62,174, 93,187,134, 6, 13, 10,102,245, 71, 70, 70,162,113,227,198,229,114,254,176, 56, 34,
- 25,192,154,185,195, 28, 55, 61, 9,147,204, 2,176,161, 78,253, 26,184,115,227, 54, 30,220, 9,246,109,223,132,222,254,221,152,
- 54, 63, 11, 61, 71, 44,116,107, 53,153, 37, 54,177,199, 31,231,207,177,162, 94, 30, 92, 39,151,135,215,195,158, 11, 11,202,179,
-147, 32, 8, 48, 12,243, 69, 40, 7, 22,139,133, 99,199,142, 85,245,222, 79, 31, 56,112, 96,218,143, 63,254,200,149, 72, 36,120,
-243,230, 13,100, 50, 25, 4, 2, 1,110,220,184, 65, 1,216,117,236,216,177, 27,199,142, 29,235,141,130,217, 68,129, 85, 41,159,
- 34,145,200,199,203,203, 11,111,222,188,193,243,231,207,207, 1,120, 21, 18, 18,114,238,195,135, 15, 35, 59,119,238,140,223,127,
-255,221, 71,161, 80, 28,168, 10, 39, 77,211, 37, 99, 38, 21,173,248, 16,150,159,159,223, 62, 56, 56,184,170,249, 46,201,204,204,
-236, 84, 40,172, 19,109,109,109, 77,194,194,194, 80,179,102, 77,104, 52,154,118, 85, 45, 75, 57, 57, 57,191,237,216,177,227,208,
-196,137, 19,241,243,207, 63,143, 57,125,250,244,152,239,190,251, 14,125,251,246,197,225,195,135,241,234,213,171, 13,208,111, 89,
-177,178,238,253, 21,128, 87,182,182,182, 51,106,212,168,129,205,155, 55, 35, 60, 60,220,111,205,154, 53, 75, 94,189,122,133, 6,
- 13, 26,240,163,162,162,168,234,212, 33, 0, 96, 98, 98, 98,162,213,106,113,241,226,197,167, 0,230,142, 25, 51,198,102,235,214,
-173,222, 98,177, 24, 89, 89, 89,138,136,136,136,209, 0, 46,253,211,117, 29, 67, 16,203, 38,255, 48,107,239, 15,147, 71, 11, 90,
-183,106, 1,121,110, 18, 20,249,169,144,231,125,194,142, 3, 55, 65, 16, 36,172,173,237, 97, 99,231,132,248,248, 4, 60,186,114,
- 85, 45,147, 43,182,242,180,244,134,138, 57,103, 22,112,182, 44,224,148,203,210,160,200, 79, 43,230,180,177,113, 40,228,140,199,
-195,224,171, 74,133, 76,246,155,154, 33,126,249,155,239,253,255, 51,170,182,214, 97, 73, 72,165,210,217, 83,167, 78,245, 92,188,
-120,177, 37, 69, 81, 44, 11, 11, 11,196,199,199, 83,103,207,158,205,202,207,207,159, 93, 29,107,216, 28,206, 43, 23,215, 6,158,
- 3, 7, 14,164, 6, 12,232,207, 29, 59,177, 55,219,218,198, 6, 57,217,153,120,247, 38, 20,111, 95,191,132, 75,131,230, 88,185,
-102, 11, 96,102, 86,233, 66,146,133,203,234,244, 91,253,211,130, 83,157, 60,122,153, 52,104,220,156,219,162,158, 41, 52, 90, 10,
- 73, 73, 73,184,116, 49, 76, 19,241,226, 65, 46, 77,169, 71,202, 51,244, 91,130, 39, 8,160,144,137,125, 77,108, 52,199,214,111,
-218, 49,127,215,190, 35, 11, 23,207,154, 44,234,236,222, 19,225,183,127,199,185,128, 83, 50,165, 74,189,137,203,194,175, 17,153,
-144,191,171, 98, 26, 40,149, 74, 77,233,246, 84,169, 84,106,190, 54,167, 15, 31, 62,140,212,212, 84,117, 92, 92,220,117,138,162,
- 78, 87,176,216,243, 23,216, 1,168, 7,171, 84,183,127,114,119,239,253,211,141, 27,130,241,139, 22,169,199,140, 29,187, 0, 42,
-149, 6, 60, 30,195, 22,137, 72,240,249,156,200,135, 15,141,182, 77,155,102, 65,168,213,183,142, 84, 16, 54,160, 12,124,243, 89,
-135, 69, 30,173,174, 93, 59, 99,252,228,185, 80,148,240,104, 61,126,254, 14, 42, 13,244,246,104, 21, 34, 33, 46, 49,177,253,172,
-101, 63,157, 31,233,213,221,173,137,115, 45,190,117,237, 90, 16,219,217, 33, 51, 61, 29, 15,159,191,213,174, 57,117, 62,162, 80,
-100,233, 21, 87,134,166,233,130, 65,238, 0,186,207, 94, 12,130,197, 2, 10,195, 56, 20,205, 28,170,221,166, 35, 8, 54, 27, 58,
-134,134, 74,165,210,103,208, 95,210,199,143, 31,135,142, 25, 51, 38, 48, 32, 32,128,244,242,242,106,113,225,194, 5,250,107,202,
-142, 66,161,104, 15, 0, 2,129, 32,214,204,204,204,113,226,196,137,208,106,181,144,203,229,200,201,201, 65, 82, 82, 82,246,196,
-137, 19, 53, 0, 96,100,100,196, 27, 54,108,152, 73,101,156, 91,206, 38, 43,231, 14,115,220,110,193,142,243,206,205,120, 85,219,
-130, 29, 23,219,190, 9,189,125,203,217,100,165,137,131,108,109, 70, 92,208, 59,137,236,198,222, 63,206,159, 99,141, 27, 60, 84,
-231, 36,126,239, 43,176, 97,206, 86,198, 75, 16,196, 23,193, 73,245, 20, 89,159, 33, 47, 47,111,201,242,229,203,251, 74,165, 82,
-167,222,189,123,115,221,220,220,240,228,201, 19, 4, 4, 4, 80,143, 31, 63, 78,148,201,100, 75, 1, 40, 1,220,172, 78,154,186,
-186,186,214,102,179,217, 69, 93,105, 59, 11, 15,239,188,112,225,194,200,201,147, 39,163, 86,173, 90,141,162,162,162,248,168,194,
-115,196, 48, 76,113, 47,195,183, 4, 65, 16,209,219,182,109,115,180,179,179, 35,174, 93,187, 70,177, 88,172,234,120,110, 14, 31,
- 60,120,176,157, 86,171,253, 97,202,148, 41,240,240,240, 0, 69, 81, 56,122,244, 40, 14, 30, 60,168,175,200,170, 16,239,222,189,
-123,153,152,152,216,101,193,130, 5,216,188,121,243,146, 5, 11, 22, 32, 49, 49, 17,239,222,189, 11,253, 26,222,220,220, 92, 69,
- 66, 66,130,176, 67,135, 14,173, 35, 34, 34, 34, 60, 61, 61, 27, 79,158, 60, 25, 27, 54,108, 96,238,221,187, 55, 12,192,181,255,
- 68,235,253,246, 67,150, 63, 71,199,190,177,102,237,111, 43,234,213,173,253,227,164, 9, 35, 88,174, 46,141, 33,203, 73,130,165,
-149, 45,156,106,212, 65,122, 90, 6,174, 95,191,166,203,200,200, 62,172, 35,137,213, 31, 62,100,165,124, 13,167,163, 83, 29,164,
-165,165,225,234,213,171,186,108,105,238,126,104,201, 53, 81,241,217,169, 48, 64, 31, 79,214, 20, 84, 16, 37,190, 34, 88,153,155,
-155,159, 48, 49, 49, 73, 53, 49, 49, 73, 53, 55, 55, 63, 1,232, 53,251,160, 71,137,218,129,245,217, 54,108,152, 0, 2, 65,123,
-176,217,243,204,204,205,175,153,154,154,102,118,237,218, 85,189,119,239, 94,101, 84, 84, 36,157,156,156,200,152,154,154,230, 20,
-159, 95, 22,103, 41,152,155,215, 53, 22,217, 55, 94, 97,234,212,226,161,216,190, 81,158,216,190, 81,158,169, 83,243, 71, 34,251,
- 70,171,204,205,235, 26,235,101,103, 57,168, 99, 3,107, 23, 43,236,106, 96, 77, 40, 92,172,176,171,142, 13,172,245,190,247,138,
-187,253,116, 4, 1, 29, 10,166, 97,163, 26,156, 69, 28, 52,139,197, 58,226,228,228,100,143,170, 5,172,251,130,115, 44, 80,107,
- 44,159,255,195, 25, 95,223,241,177,247,238,141,201,141,137, 25,149, 19, 29, 61, 34,244,212,169,145, 59, 71,142, 28, 59,138,207,
-159, 50, 12,168,171, 47,167,189,189,189,223,203,151, 47, 3,244,221, 74, 8, 47,189,211,179,110, 29,199, 27, 94, 61,218, 49, 62,
- 83,135, 48, 62, 83,135, 48, 94, 61,218, 49,117,235, 56,222,248,138, 60, 34, 88, 44,150,183, 80, 40, 60, 33, 18, 10,195, 69, 66,
- 97,184, 80, 40, 60,193, 98,177,188, 81,241, 24,170,207, 56, 45, 45, 45, 95,216,218,218,166, 86,101,179,178,178, 10,169,130,157,
-163,106,215,174,157, 72,146,228,150, 42, 62,211, 21,113,186, 24, 25, 25, 69,139, 68,162,164,146,155,145,145, 81,201,192, 80,150,
- 66,161,240,178, 72, 36,218,170, 15,231, 47,203, 26,175,120,116,115,198,171, 95,150, 53, 94, 81,250,183,153,131,204, 39, 62, 9,
- 92,157, 57,115,144,249, 68,125,236,180,177,177,185,103, 99, 99, 35,177,177,177,145,216,218,218, 86,184, 89, 89, 89,189,208,131,
- 83, 96,108,108,188,213,216,216, 56, 85, 36, 18,233,196, 98,113,170, 72, 36,218,130, 18,161, 45,170,155,158, 36, 73,110,104,212,
-168,145,146,197, 98, 29, 42,245,211,230,122,245,234, 41,217,108,246,166, 42,114,154,116,238,220, 89, 23, 22, 22,198,120,120,120,
- 48, 0,204,191, 97,190,219,153,155,155, 95, 51, 49, 49, 73, 48, 54, 54,222, 1, 64, 84, 77, 78, 2,128,183,163,163, 99,104,183,
-110,221,228,142,142,142,193, 0, 6,126, 67, 59,251, 14, 26, 52,136, 78, 72, 72, 96, 24,134, 97, 18, 18, 18,152, 65,131, 6,209,
- 40, 8, 20,249, 53,117,242,178,105,211,166, 49,143, 31, 63,102, 30, 63,126,204, 4, 7, 7, 51,125,251,246,165, 1,124,255,149,
-245, 60,190,213,189,187,213,177,170,219,176,190,249,233,209, 67,221,233,155,151,182, 48, 43,151,254,200,244,244,104,204, 52,168,
-103,126,222,197,197,210,229, 91,112,174, 88, 58,149,233,209,165, 17,237, 86,215,252,148, 91, 29,171,186,255,240,189,255, 27,189,
- 90,248,187, 7,156,253,229, 90,252, 92, 44,149, 13, 7, 7, 7,100,102,182, 19,176,217,238,124, 62,223,147,100,177,238,102,165,
-167,207, 41,124,221,210,253, 83,174,218, 10, 27,244,186,224, 85,176, 36, 65,117, 56, 63, 27,200, 94, 77,206,170,112,232,197, 89,
-222,162,210,180, 74,149, 98, 73, 81, 47,118,160,194, 52,248,140,211,209,209,241, 7,154,166,107,235,107, 16, 73,146,177,201,201,
-201, 7,170,147,158,245,235,215,103, 10,187,183,137,111,153,239,127, 71, 89,250, 95,226,252,227,183,166, 14, 13,154, 54, 92, 24,
-254, 50,106,115, 97,183, 98, 49, 86,205, 52, 55,118,239,214,117,249,195, 59,247,126, 94,181, 67,154,247, 31,190,119, 18,122,142,
-105,251, 6,156, 69, 65, 66,171,196,201,225,112,246,182,109,219,246,135, 39, 79,158, 28,210,233,116, 83,254, 71,203,103, 95, 22,
-139,181,192,213,213,181,197,187,119,239, 66,117, 58,221,102,148, 17, 40,178, 26,118, 46,173, 93,187,246,116, 46,151,203,207,207,
-207,151,166,164,164, 44, 7,112,250,191, 45, 61,221,234, 91,180,102,152,226,160,219,235,222,124,204,122,246,205, 56, 25, 90, 71,
- 51,172,181,239, 98, 50, 67,254, 3,249,254,111, 19, 89,251,255,137, 63,238, 97,224, 52,112, 26, 56, 13,156, 6,206,111,206,105,
-100, 72, 79, 3,231,191,144,243, 95, 9,182, 33, 9, 12, 48,192, 0, 3,254,223, 65, 97, 72, 2, 3, 12,248,175, 67, 73,175, 86,
-177, 55,139,168, 64,149, 86,197, 37, 88, 29,101,123,219,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,231,255, 28,231,191, 85,
-100,237,175, 96,255,111,131,193,173,106,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243,127, 65,104,149,185,111,232, 58, 52,
-224,111,199,246,193,112, 4,128, 89, 23,144,252,119,156,111,128, 1, 6, 24, 96,128, 1,255, 97,236, 71, 57, 93,135,255, 13, 66,
-203, 1, 64,123, 20, 44,124,251, 22,192, 3, 0,210,175,224,179, 2, 48,130, 32,136,225, 0,192, 48,204, 25, 20,204, 26,201,208,
-231, 98,129, 64,144,170, 84, 42,109, 10,191,167, 41,149,202,146,107, 25, 16,248,114, 54, 27, 83, 98, 43, 19,181,107,215, 78, 85,
-169, 84, 54,122,252,125, 14,195, 48,175, 72,146, 12, 23,139,197,119,222,189,123, 23, 80,149, 27,247,244,244, 28,207, 98,177,214,
- 1,128, 78,167, 91,118,247,238,221, 35,127, 99,190,181,171,225, 96,247,187, 70,171,161, 82,211,179,150,227,203, 64,126, 0,128,
- 93,253,224, 71, 80, 88, 88,248,125,211,140,128,138,227,232, 84,245,252, 10,208,154,195,225,248,216,218,218,246, 73, 74, 74,122,
- 1, 96, 17, 80,121, 84,227, 26, 53,106,124,207,102,179,199,232,116,186,186, 44, 22, 43,154,162,168, 99,137,137,137,254,134, 58,
-196, 0, 3, 12, 48,192, 0, 61,196,214, 23,168,146,208,106, 96, 9, 59, 6,240, 6,129,158, 96,112,139, 0, 78,190,205,196, 39,
-125,175,255,174, 1,180, 90,170,224, 63,185, 36,116,215, 62,146,251,251,244,233,227, 52,115,230, 76,116,236,216, 17, 79,158, 60,
-233,112,248,240,225,137,167, 79,159,126, 69,211,244, 93, 0, 79, 0,189, 66, 41,136, 80, 16,167,101,116,159, 62,125,122,172, 91,
-183,142,213,184,113, 99, 40, 20, 10,220,187,119,207,125,211,166, 77, 91, 31, 61,122,116, 27,192,241, 66, 65, 80,238, 2,120, 74,
-165,210,166,104, 49, 78,130, 32,108,134, 13, 27,246,172,164,184, 42, 92, 95,141, 96, 24,230, 49, 65, 16,193, 58,157,238,201,217,
-179,103, 19, 27, 0,237,166,214,230,158,157, 19,171,113, 42,205,169, 82,169,108, 46,254,178, 30,108, 62, 31,170,188, 92,116,152,
-240,151,232,189,181, 98, 33, 8,154, 2, 11,140,212,115,237,214, 87, 0,194, 83, 82, 82, 94,121,120,120,196, 86, 53,135, 89, 44,
-214,186,235,215,175,219, 51, 12, 3, 47, 47,175,117, 0,254, 46,161,197,111,223,186,249,221,203,231, 78, 8,242,179, 82,209,123,
-224,200, 99,239, 19,211,198, 3, 56,247,153,104,234, 3, 91,130,192,194,105,235,143,179, 0, 96,247,210,209,139,182,244,194,246,
-185, 55,241, 9,128,103,161,248, 1,128, 95, 0,220,221,213, 7,182, 0, 22, 79, 91,127,156, 0,128, 61, 75, 71, 47,220,213, 7,
-219,102, 92,171,114,216,138,233,227,199,143,223,190,110,221, 58,150,189,189, 61,146,147,147,123, 55,106,212,200, 53, 55, 55,183,
- 17, 42, 24, 68, 92,171, 86,173, 83,157,187,245,175, 51,100,184,183,208,218,202, 28, 41,146, 12,147, 83, 39, 14, 77,101, 61,190,
-215, 39, 46, 46,110,164,161, 14, 49,192, 0, 3, 12, 48,160, 28, 84, 63, 50,124, 75,123, 24,201, 52, 24,196,102, 17,223,119,106,
-221,168,251,168,239, 58,147,141,220,234,227,117,100, 84,175, 75,119,158,110, 34,131, 35, 3, 41, 29,227, 47,226,226, 98,136,164,
-226,153, 48, 90, 10,236,155, 23,143, 23,180,132, 19, 71,179,158, 61,123, 86,191, 85,171, 86,197, 75,195,116,239,222, 29,221,187,
-119, 39,118,239,222,221,252,230,205,155,205, 15, 30, 60,168, 9, 12, 12,252, 29, 21,199, 71,241,169, 87,175,222,166,237,219,183,
-243, 61, 60, 60,192,231,243,139,127, 16,139,197,232,223,191, 63,250,247,239,207, 74, 73, 73,241,186,124,249,178,215, 47,191,252,
-162,142,143,143, 95,128,191,162, 52, 87,136,229,203,151,183, 46,227,240,117,130, 32, 62, 82, 20, 21,218,188,121,243, 68, 87,160,
-254,212,239, 58,222,154,222,201, 69, 52,103,201,225, 50,121,216, 60, 30,254, 24, 95,208, 86,151, 20, 90,177,119,174, 65,108, 98,
-156, 41, 52, 54,126, 5, 32, 28,192, 43,134, 97,194,163,163,163,163, 26, 2,205,219,155,147,191, 31,146,210,205,170, 32,182,144,
-152,152, 8, 83, 83, 83, 35, 15, 15, 15, 9, 65, 16,171,238,221,187,247,173, 7,228,181, 91,181,112, 58, 87, 26,247, 10,159,222,
- 60,198,188,225,238,194, 57, 59,254,252, 89,169,214,158,171,232, 34,130, 32,201, 95,130,105, 95, 20, 44,198,187, 60, 51, 51,211,
- 3, 0, 44, 45, 45,121, 0,238,110,121,138,239,230,118, 34,190, 38,182, 27,151,197, 98,237, 58,124,248,240,228,239,191,255,190,
- 96,233,136,135, 15, 33, 22,139,177,102,205,154, 90,243,231,207,247,163, 40,106,118,121,158,172,206,221,250,215,217,182,249,231,
- 70,121, 89, 57,170,125,187, 78, 63,119,104,210,128,156,230, 51,223,120,155, 70,101,167,211,233,190, 55,120,182, 12, 48,192, 0,
- 3, 12,168,138, 55,171, 82,161,229,106,133, 35, 45,155,184,140, 24,213,215,157,223,180, 73, 99,112,249,127,133,110,105,213,186,
- 53, 90,181,110, 77,250,230,231,245,124,246,252,101,207,179, 55,159,168,228,218,248,211,239, 50, 48, 94, 95,171,138, 22,165, 93,
- 55,208,182,155, 44, 59, 77, 0, 0, 34, 51, 27,229,210,139,159,238,116,234,212, 9, 78, 78, 78,220,192,192,192, 73,149, 8,173,
-165,111,223,190,229,179, 88, 21,199, 67,117,112,112,192,176, 97,195,208,160, 65, 3, 94,215,174, 93,151,150, 39,180, 4, 2, 65,
- 26, 65, 16, 54, 0, 96, 97, 97,161, 91,181,106, 85, 40, 83, 0, 0, 96, 24,134,121, 76,146,228, 19,154,166,159,254,249,231,159,
- 73,141, 0,155,222,173, 26, 60,152, 62,118,152,144, 57,187,181, 92,145,160,204,205, 45,243,184, 80, 44, 74, 55, 18,137, 94,241,
-133,130,112, 20,172,229, 21,238,228,228, 20,213, 8,112,106,219,160,246,205,221,115, 71, 27, 31,154,242,115,165,105,217,178,101,
- 75,215,102,205,154, 9,116, 58, 29,100, 50, 25,246,236,217, 99,106,100,100,100,218,167, 79,159,149, 37, 11,128, 27,208,116,168,
- 3,107,202,234, 20,221,140,106, 20, 36,179,206, 29, 90,199, 13,235,223,199,164,117,251,206,120,127,247, 40,178,178,242,144,147,
-157, 15,154,166,191,136,235, 51,227, 26, 82,119,245,195,166,221, 75, 70, 47, 38, 72,146,104, 62,120, 17, 6,216,229,204,218,187,
-119,111, 36, 0, 14,143,199, 43, 89, 14, 29,140, 28,155,108,170,223,171, 51,246, 44, 27, 11,134,166, 25, 0,155,170,224,205,178,
- 49, 54, 54,190,116,243,230,205,118,109,218,180,193,147, 39, 79, 16, 19, 19,131,233,211,167,171,103,204,152,193, 29, 55,110, 28,
- 49,111,222,188,153,191,252,242,203, 89, 0,143,190,120, 16,216,236, 49, 3,135,140,228,229,103,231, 42,213, 42,141,218,194,202,
-140, 86,201,148,242, 12,105,174,114,228,232, 31,212,145, 33, 79,199, 0,248, 66,104,125,101,122, 26, 96,128, 1, 6, 24,160, 7,
- 24,134,105, 3,192, 26, 64, 58, 65, 16,207, 75,238, 23,158, 82,180, 90, 75,233,253, 12, 20,244, 74, 89,150,160,203, 64,193,112,
- 31,107, 0, 58, 0,207, 8,130,144,126,165,137, 21,207, 50, 12, 8, 8, 96, 74,126,150, 16, 90, 12,195, 48,140, 54,243, 35,163,
-122,119,141,145, 63, 63,240,197,166,136, 60,199, 72,158,157,102,158, 30, 95,193,184, 90, 85,188, 10,251,119, 13,160, 29,221, 12,
-204,180, 54, 96,102,119, 53, 83, 62,123,246, 44,144,166,233, 0,223,206, 96,152,215,199, 25,230,245,113,102,110, 7, 48,103,207,
-158,189,238,231,231, 23,224,239,239, 31, 0,160,178,113, 74,169,121,207,131,153,167, 54, 96,202,195,219,183,111,153,189,123,247,
- 50, 75,150, 44, 97, 14, 29, 58,196,160,146, 8,234, 94, 94, 94,247, 34, 34, 34,152,113,227,198,133,162,130,192,128,110,128,104,
- 76, 45,187, 55,170, 83, 91, 53,234,239,155, 50,210, 46,130, 50,239,223,222,222,254, 51,123, 54,184,216, 49, 59,219,186, 48, 71,
-122,182,250,196, 48,204,117,134, 97, 54, 48, 12, 51,146, 97,152, 6, 0,208, 18, 48, 25,104,111,249, 65,121,122,155, 66, 61,165,
-125,165,235,222,181,108,217,210,117,193,130, 5, 89,106,181,154,137,141,141,101,246,237,219,199,220,186,117,139,185,120,241, 34,
-227,238,238,158, 82,194, 94,219,137, 13,156, 83,213, 7, 87,171,170, 83,138, 56, 44,214,206,231,183,206, 50, 31, 30,156, 97,158,
-157,244, 99,142,253, 52,138,153, 57,176,157,198,196,136,175, 4,208,173,188,235,102,116, 66,253, 6,181,172,223,197,199,199, 51,
- 26,141,134,153, 48, 97, 2,227,229,229,197,244,234,213,139,233,209,163, 7,211,189,123,119,166, 91,183,110,204,157, 59,119,152,
-148,148, 20,166, 71,231, 86,178,126,110,104, 93, 5,211,154, 56, 59, 59,127,138,141,141,101, 52, 26, 13, 19, 24, 24,200, 28, 61,
-122,148, 9, 12, 12,100,124,125,125, 25, 0, 71,166, 77,155,166,144, 74,165,140,151,151, 87, 18,202,136, 26,239,236,236, 28, 21,
-241, 46, 49,113,203,250, 3,119,254,216,121,226,206,249,179,183,238, 92,186,241,236,202,197, 27,207, 79, 63, 13,139,190,232,236,
-236, 28, 85, 70,254,127, 85,122, 26, 96,128, 1, 6, 24, 80,185, 22, 41, 20, 90,125, 11,157, 29,125, 25,134,233, 81,106,191,111,
-161,112,250, 98,223,215,215,119, 73,201,253,162,115,124,125,125,151, 0, 96, 58,116,232,112,130, 97,152,250,223,192,252, 41,101,
-108,149,123,180,138, 64, 37, 61, 3,215,165, 15, 56, 58, 45,180, 25,111, 65,103,199, 3, 34, 59, 40, 8, 49, 50, 37,241,120,243,
-224, 92,197, 11, 73, 20,226,234, 91,112, 0, 4, 70, 69, 69,225,205,155, 55, 72, 76, 76,132, 80, 40,252,226,188,135, 15, 31,194,
-200,200, 8,246,246,246,250, 41, 93,245,231,237,220,171, 86,206, 16,119,240, 64,198,168, 31, 17, 24, 24,136,180,180, 52,112,185,
- 92,240,120, 60, 80, 20, 85, 41, 31, 73, 22,172,248, 91,228,197, 42,235, 28, 15,128,205,183, 16, 95,222,189,114,118,109,242,113,
- 0, 71,145,240, 1, 41, 74,157,126,158, 60,177, 8, 66,145, 80, 98,100, 36, 44,238, 46, 4, 16, 78, 16,196,251,150, 0, 71, 36,
- 22, 92,254,125,237, 60, 59, 86, 72,160, 64,241,225, 85,153, 28, 61,122,244,152, 10, 96, 37,195, 48,217,205,154, 53,179, 93,183,
-110,157,121,114,114, 50, 94,191,126,141,211,167, 79,167, 83, 5, 55, 74, 48, 12,179, 26, 0,218, 3, 2, 51,107,179, 27, 59, 87,
-204, 54,198,221, 83,188,234,148, 34, 83,183,254, 87,134,142,155, 54, 99,251,236,254,144,229, 41,112,252, 86, 8,174,191,252, 56,
- 0,192, 67, 84, 48,238,109,215, 35,124, 0,210,187, 15, 25, 50, 36,244,254,253,251, 86, 7, 15, 30, 4, 69, 81,101,110, 7, 15,
- 30,196,237, 7, 47,103, 1,120,161,167, 89, 14,181,107,215,190,253,244,233, 83,107,161, 80,136, 91,183,110, 33, 59, 59,187,216,
-147, 53,126,252,120, 34, 59, 59,219,123,207,158, 61, 67,227,226,226, 54, 63,120,240, 32, 19, 5,107, 65,126, 86, 16, 88, 44,214,
- 71,138,210, 52,180,119,171,207, 30,222,191,115,231,252,204, 87, 16, 91, 54,195,227,176,143,151,179,165,153, 10, 22,139,245,177,
-228,249,223, 34, 61, 13, 48,192, 0, 3, 12,168, 26, 8,130, 8, 96, 24,166, 31, 65, 16, 1,165,143,149,254, 94,116,158,159,159,
- 95,241,126,209, 53, 27, 54,108, 88, 95, 98, 95,254,141,204,171,112, 48,124,215, 66, 5,217,181,172,147, 84,175,207, 67,245,230,
- 18,184,206,157,192,107, 48, 0, 44,103,119, 36,188,186,139,176,107, 91,144, 20,249, 16, 12,173,131,189,107, 91,125, 13, 81, 54,
-108,216, 16, 74,101,193,208, 44,149, 74, 5,174,200, 92, 57,111,202,104, 1, 0,208,108,129,170,132,130,213,139,208,184,147, 39,
-218,166, 50,120,102, 91,224,168,104,155, 90,112,221,218, 9, 19,192,229,114,193,229,114, 65, 20, 14,253,209, 71,104, 17,133, 39,
-211, 5,221, 87,101, 25, 65,200,249,156,227, 39, 87,250,180,229,199,133,243, 84, 17,143,145,162,162,153,203,169,186, 43,250,216,
- 43, 20, 9,147,141,132,194,112, 35,177,168, 88,104, 17, 4,241, 17, 0, 24, 14,199,255,232,106,159,102,162,212,104,145,242,121,
- 32, 36, 74, 90, 83, 14,205,234,107,215,174,217,176,217,108, 59,157, 78,135,132,132, 4, 68, 70, 70, 98,219,182,109,169,121,121,
-121, 93, 67, 66, 66,222,149,212,142, 58, 35,222,105,255, 53,179,235,176, 95, 5, 9, 84, 31, 35,170, 92,122,172,154, 12,242, 26,
-208,181,249,149,169, 99,151, 97,208,119,189, 48,174,107, 35, 38, 54, 37, 75, 9,224, 86,161,235,181, 50, 36,135,132,132,244,236,
-210,165,203,177, 22, 45, 90,184, 49, 12,131,166, 77,155,194,219,219, 27,254,254,254, 8, 11, 11, 67,110,110,174,230,230,205,155,
- 91, 1, 28,214,211, 44,161,185,185,249,245, 59,119,238, 88, 11,133, 66,220,188,121, 19, 10,133, 2,246,246,246,152, 49, 99, 6,
-111,195,134, 13,127,228,230,230, 14,247,243,243, 19,196,198,198,238,188,113,227, 70, 45, 20,172, 59,247, 69, 33, 80,171,213,251,
-143,251, 31,217, 62,195,103,166,227,157, 39,175, 3, 85,249,121,166,206,206,137,185,214,230, 98,227,173, 27, 87,215, 84,171,213,
- 83,203, 78,207,123,213, 74, 79, 3, 12, 48,192, 0, 3,190, 64,133, 90,164,164,120, 42, 45,182,170, 34,210, 0, 40,124,125,125,
-151, 18, 4, 17,224,235,235,187,212,207,207, 79, 1, 32,229,239, 16, 89,197, 66,171, 95,191,126, 65, 1, 1, 1,232,215,175, 95,
- 80,185, 20,180, 14,154,216,251,208,196,222,135, 81,135, 89,248,211,111, 84,169,155,167,171,109, 93,255, 53,183,238,168, 84, 42,
-246,145, 35, 71,138,199,109, 1,128, 78,167,251,230,185, 88, 21,161, 85, 40,244,190, 48,162, 54, 95, 28,180,127,238,240,246,150,
- 58, 57, 71,253,240, 50,146, 85, 52,181,249,131, 70,254, 60,155,249,165, 60,206,139,115,166, 34,241,193,109, 8,197,226,196,201,
-247,195,139,189, 88,133, 34, 43, 6, 0,106,241,141, 3,247,206, 30,228,110,199, 5, 87,125,229, 12, 82, 84,180,106,111,156,246,
-112, 57,133, 13, 12,195, 32, 38, 38, 6,114,185, 28,193,193,193, 56,119,238, 92,122, 25, 34, 11,181,249,226,123,135, 22,141,105,
-103,146,247,137,171,126,126, 27, 41, 42, 90,175,174, 46,171,166,131, 58,113, 73,226, 38, 65,178,140,186,183,119,197,156, 31, 6,
- 99,203,161, 63, 41,181, 77,231,126,219, 47, 93, 29,145,175,210, 44,213, 83,100, 21, 59, 27, 67, 66, 66, 26,133,132,132,240, 1,
-120,122,123,123, 95, 29, 58,116, 40,130,130,130,112,249,242,101, 23, 0,146,194,243,214,160, 96,161,236, 95, 0, 68,151,231,120,
-228,114,185, 39,111,223,190,221,216,193,193, 1,183,111,223,134, 66,161,192,180,105,211,212, 62, 62, 62,220,241,227,199, 19, 57,
- 57, 57,197,158,172,224,224,224,204,242, 68, 22, 0, 36, 39, 39, 95, 59,119,250,104,199, 46, 93,186, 12,174,227,210,192, 36, 58,
- 47, 55, 77, 40, 20, 24, 61, 8,186,203,125,254,244,209,206,228,228,228,103,101,167,103,160,222,233,105,128, 1, 6, 24, 96, 64,
-249,208, 75,139,148,242, 76, 85, 5, 37,174,227,248,249,249, 69,250,249,249,125,230,241,250, 74,148,158,117,120,165,168, 77,171,
- 86, 28, 45, 93, 78,194,151, 55, 64,211, 85,185,217, 47,142,153,155,155, 83, 70, 70, 70,159, 9, 45, 90, 79,206,172, 11, 39, 16,
- 61,125,116,177, 39,171,200,179,133,222,227,191, 74,104,209, 52, 29, 12,224, 51, 35,132, 54,174,163,182,246,119,235,212,168,142,
- 35,169, 61,189, 13, 73,114, 74,185,242,173, 70,249, 38,143, 25, 16, 85,198, 32,235, 98, 78, 74, 11,129,200, 40,222, 72, 44, 42,
- 45,178,226, 0, 64,100,235, 50,116,115,159, 6, 93,155, 55,168, 71, 82,167,126, 67,178, 92,155,239, 27,165,209, 68,203,152,243,
-229,164,225,202, 94,189,122,173,180,180,180, 20,108,223,190,221,212,217,217, 25, 20, 69,169, 75,139, 44,161,141,235,168,109,131,
-154,116,114,181, 51, 39,181,103,119, 32, 81,161,147,111,139,214,254,161,143,200,178, 50, 21,223,216,187,126,186,145,144,207,129,
- 82,169,196,134,221,103,113,243, 81, 68,191,140,136,139, 55, 0,220,248,138, 2, 57,185, 95,191,126, 91,214,172, 89, 3,173, 86,
-139, 73,147, 38,225,227,199,143, 55,223,190,125,187,173,102,205,154, 11, 22, 45, 90,228, 96,103,103,135, 17, 35, 70,112,181, 90,
-237,248,114, 56, 54, 30, 63,126,188, 95,243,230,205, 17, 20, 20,132,236,236,108,216,219,219,195,199,199,135,231,231,231,247, 71,
-110,110,238,240,245,235,215, 11, 98, 98, 98, 42,244,100,125, 86,174,117,186,181,251,182, 76, 95,208,166,189, 59,249,225,195, 59,
- 42,161,173, 7,121,247,246,229,251,150,150,150,127, 36, 36, 36,252,149,158,131,155, 86, 57, 61, 13, 48,192, 0, 3, 12,248, 54,
- 32, 8,226, 74,225,184,171,207,188, 92,165, 69, 88,145,199,170,228,126,233,243, 11,127,255, 22, 47,203,251,203, 16, 94,159,135,
-119,232,215,175,159,222,211,234,105, 89,186, 94,226,169, 52,190,107, 0,173,163, 24,236,165, 30, 36,184, 34,115,101,255, 53,183,
-238,148,119,174, 72, 36,210,219,163, 69,171,148,149,101, 74,149,132, 86,225, 24,173,235, 12,195,124, 38,180, 76,109, 93, 61, 22,
- 47,154,189,213,125,104,111, 50,245,135, 14,200,206, 87,169, 22,189,166,232, 36,121,197, 34,171,160, 21,215,198, 10, 69,226,112,
-129, 72, 88, 82,100, 37, 0,128,192,166, 94,219,133,115,102,236,238, 54,170, 63,145, 62,205, 29,210,108,133,106, 65, 36, 69, 36,
- 43,152,225, 81,192,221,178,232,238,220,185,179, 15,192, 62, 15, 15,143, 84,145, 72,132,252,252,252, 47,242,160,200,222, 78, 67,
-123,147,169,147,219, 33, 75,166, 81, 45,138,164,144,162,160, 79, 86, 38,178,172,205,140,111,236, 93, 55, 93,152,146, 20, 7, 46,
-151, 11,177, 88,140, 91, 15,195,145, 17,121,233,107, 4, 22, 72,146, 92,229,235,235,187,114,198,140, 25,200,204,204,196,229,203,
-151,241,221,119,223,225,196,137, 19,206, 87,175, 94,221,226,233,233, 9, 22,139,133,128,128, 0,104,181,218,247,229,208, 12,158,
- 50,101,202,130,161, 67,135,226,217,179,103,144, 72, 36,159,121,178,178,179,179,189,119,239,222, 61, 52, 54, 54,182, 82, 79, 86,
- 41,180,173, 93,175, 37,119,201,242, 95,161,146,167,177,211,147,159, 4, 5,222, 34, 31,103,101,101, 9, 1,228, 84, 55, 61, 13,
- 48,192, 0, 3, 12,208,219,171, 85,158, 22, 73, 47, 20, 81,233,101,237,151, 16, 88,101,237, 19,165,188, 96,234, 82,191,135,253,
-157,247,164,151, 71,139,109,219, 4, 84,106, 68, 9,161,149,246,217,239, 2, 99, 11,189,186, 14,181, 20,216,123, 15, 23,199,209,
- 18,100,102,102, 10,172,172,172,148, 37, 5,130, 80, 40,132,131,131, 3,164, 82, 41,246,239,223, 15, 84, 62, 40,154, 50, 25, 58,
- 22,109, 71, 77,194,115, 39, 30, 24,173,166,216,179,181,119,194,132,207,196, 22,151,203, 45, 26, 27, 86, 89,163,251,180,208,211,
-244, 24, 0,211,210,165,206,207, 2,145,104,130,192,170,134,213,156,233,147, 57,177,105, 42,220,113, 95,146,125,118,227, 98,113,
- 34, 35,158,145,128,156, 71,149,240, 69, 15,220,115,180,180, 39, 43,169,133, 75,157,101, 2,161,224, 7,158, 69, 45, 59,223,121,
-211, 57,177,169, 42,226, 78,219, 69,185,231,126, 89, 36,140,129,241,130, 36,100,223,213, 35,123, 86,126,247,221,119, 43, 25,134,
- 97,104,154, 94, 14, 0, 37,237,157,231,243, 3, 39,250,147, 18,129,238,203,164,231, 54, 46, 54, 78, 68,197,246, 90, 53, 29,212,
-201,214,220,228,198,222,245, 51,132,146,228,120,240,249,124, 24, 27, 27, 35, 49, 53, 7, 28, 54, 75,241,149,229,141,223,185,115,
-231,197,211,167, 79, 71,120,120, 56,166, 77,155, 38, 73, 72, 72, 56,127,234,212,169,105, 43, 86,172, 96,123,121,121, 65, 34,145,
- 96,211,166, 77,218,135, 15, 31,174, 7,176,169,204,242,200,102, 79,254,249,231,159,153,148,148, 20, 34, 38, 38, 6,246,246,246,
-152, 57,115, 38,111,253,250,245,197, 99,178,170,226,201, 42, 66,114,114,114,208,205,219,143, 49,224,218, 86, 80, 90, 85, 80,118,
-102,194,253, 55,209,210, 32, 11, 30,111,190, 99,203,166,213, 74, 79, 3, 12, 48,192, 0, 3,190,137, 23,235,121, 69,251,255, 5,
- 40,171,235, 80, 47,161,245,126,199,178,137, 46, 19,103, 44,132,145,115, 39,168,162, 46,128,206, 79, 45,246,104, 9,196,230,176,
-168,233,134,108,153, 10,103, 2, 95, 2,192,251,170, 88,149,151,151,135, 86,173, 90, 97,215,120,215,110,202,188, 76,129, 17, 0,
- 21,223, 68,121,145,215,249,206,213,171, 87,229, 52, 77,159, 4,112,181, 18,154, 85,141, 27, 55,222,249,235,175,191,242,220, 70,
- 77, 68,254,147, 7,165, 61, 40, 48, 50, 50, 2,159,207,199,171, 87,175,112,231,206, 29, 53,128, 85,149,100,232, 83,138,162,194,
- 78,157, 58,149, 84,191,142, 99,239, 86, 45,154,205, 90,186,196,215,248,245,131,155, 88,190,126, 39, 93,191,181, 87,206,134, 19,
- 23,243,114,196, 53,187, 43, 36,111, 67,245,184,213,176, 82, 34, 43,165, 97,237, 26,221, 90, 52,105,188,112,249,242,101, 38,145,
- 15,110, 97,197, 47,123, 25,151,230, 61,114,126, 57,119, 41, 55, 67, 88,171,151, 50,237,205, 51,125,210, 48, 40, 40,104, 31,128,
-125, 69,251,165,237,245, 93,179,141,118,109,211, 91,186,225,196, 57, 89,174,113,205, 30, 21,217,107,237, 54,184,163,147,181,249,
-141, 29,107,127, 20,126, 74, 78, 0,159,207,135, 88, 44, 70,130, 36, 27, 43,183,158,150,105,104,186,247,215, 10, 45, 99, 99, 99,
-190, 70,163,193,174, 93,187,144,144,144,208, 1, 64,194,139, 23, 47,246,142, 28, 57,114,123,211,166, 77, 27, 70, 70, 70,190,207,
-207,207,159, 1,224, 77,121, 36,102,102,102, 29,172,173,173,137,199,143, 31,227,199, 31,127, 84,207,156, 57,147, 59,110,220, 56,
- 66, 42,149, 86,215,147, 5, 0,112,116,116,244,232,217,189, 61, 58,245,156, 22,164, 86,102,223,143,125,243, 71, 16,201, 60, 18,
- 84, 55, 61, 13, 48,192, 0, 3, 12,248,159, 65,245, 2,131,123, 0,108, 87, 75, 76,109,236,200,253,228,191,113, 38,147, 23, 29,
-204, 40,158,237, 99,114, 47,252,192, 92,217, 52,142,185,186, 99, 14, 51,173,111, 99,166,161, 13,241,201,213, 18, 83, 61,190, 20,
-110,159,173,238,253, 93, 3,104,123,214, 3,211,179, 30,152,190,174,208, 2, 88,218,178,101,203,139, 62,109,255,138,163,229,211,
- 22, 12,128, 31, 1,136,203, 49,171,172, 21,195,237, 1,236,111,213,170, 21,117,247,238, 93,230,237,240, 30, 76, 72, 67, 43,102,
-198,140, 25,204,138, 21, 43,152,209,163, 71, 51,214,214,214, 84, 97, 66,216, 87,198, 57, 96,192, 0, 39, 0,168, 81,163,134, 89,
-107,183,250,159, 94, 5, 94,102,238,251,111,103, 14,249, 12, 97,218, 53,117,203,176,107,216, 37,204,200,190, 65,139, 74,146,175,
-152,211,206,206,110, 9,195, 48,189, 25,134,177, 7, 0, 23, 23, 75,113,203,134,245, 83,194,110, 95,102, 30, 28,221,201, 28,242,
- 25,194,180,111,214, 40,211,201,205,243,141,192,166, 97, 91,125, 56,203, 66,153,246, 54,105,152, 97, 91,191, 99,104, 5,246, 22,
-115,214,105, 59,226, 82, 82, 74, 42,243,244,233, 83,230,234,213,171,204,131, 7, 15, 24,255, 83,151,152,154,109,134,231, 91, 53,
- 29,212,169, 10, 69,167, 60, 59, 77,251,246,237,203,188,127,255,158,233,211,167, 15, 3,192,180,154,156, 23, 99, 99, 99,153,136,
-136, 8,102,233,210,165, 12,128, 35,211,167, 79, 87,228,228,228, 48, 61,122,244, 72, 40, 20, 88,236,234,216, 89,183,182,227,134,
-193,253, 59,175,242,249,113,168,199,215,166,231, 55,132,129,211,192,105,224, 52,112,254, 47,112,254,127,134,125,161, 87,171,232,
-179,165, 94, 30,173, 32,128, 66, 38,246, 53,177,209, 28, 91,191,105,199,252, 93,251,142, 44, 92, 60,107,178,168,179,123, 79,132,
-223,254, 29,231, 2, 78,201,148, 42,245, 38, 46, 11,191, 70,100, 66,254,174, 18, 43, 10,227,104,125,134,144,144, 16,161, 69,189,
-191, 98, 48,125, 40,136,205,186,183,138, 55, 40, 1, 48,229,229,203,151,191,122,122,122,174,251,161, 83,219, 33, 62, 29,187, 65,
-171,213,194,223,223, 31,241,241,241,231, 1, 44,211,215,227, 22, 30, 30,158,209,168,158,243,108, 14,139,189,112,198,232,193,214,
-233, 31, 95, 35, 41, 42, 4, 0,160, 82, 41,180,159,222,223,111, 94, 21,227,140,140,140,158, 90, 91, 91,191,181,182,182,150,186,
-214,169, 49,133, 15,206,242,105,222, 3,109, 50, 99,223, 32, 49,178,160,103, 84,165,148,107,146,222,223,109, 88,157,220,117,118,
-118,230,139, 56,152, 90,166,189,106,165, 54,245,195,155, 22,250,240,200, 85,234,245,171,183,248,247, 90,187,112, 2,223,196,196,
- 4, 47, 35, 62, 96,249,111, 39,100, 10,181,182,119, 70,248,197,111,210, 61,198, 48, 12,180, 90,173,222, 19, 29,202,193,226,230,
-205,155, 55, 88,183,110,157,203,248,241,227,241,181,158,172,146,136,142, 77,246,117,172, 81,183,209,135,183, 47, 61, 45,140,184,
-199,190, 38, 61, 13, 48,192, 0, 3, 12,248,159, 65,223, 66,103,206,148, 18,159, 33,149, 10,173, 34, 68,164, 65, 14, 96, 77, 29,
- 86,254,222, 37,235,182,172, 36,137,173, 19,104,134,249,157, 34,177, 58, 38, 19,233, 95,105,156,156,195, 6,213,107,208,104, 54,
- 0,112,216,213,107, 32, 11,241, 30,192,208, 3,143,158,181, 57,240,232,217, 79,133,199,214, 2,168, 82, 95,174, 49, 27, 17,238,
-141,234, 58,118,110,217, 88,192,210, 41,144, 20,245, 17, 89, 50, 37,110, 69,198,103,147, 12,249,123, 85,141,138,137,137,185, 7,
- 0,182,166,194,168,206,141,234,213,236,210,170,177,144, 67,168,145,244,250, 37,114, 20,106,220,140,140,207, 1, 65, 84,123, 64,
-245,183,178, 55, 53,252,210,243, 63, 65,244, 32, 8,226,246, 82,159, 81,252,149,191,157,252,166, 34, 11,128, 60, 57, 57, 57, 83,
- 46,151, 91,166,164,164,168, 81,253, 32,113, 31,114,115,115,155,206,153, 51,103,205,130, 5,216, 12, 53,220, 0, 0, 32, 0, 73,
- 68, 65, 84, 11, 22,110,220,184,145, 91,157, 49, 89,229, 65,154, 28,127,161, 75,227,111,151,255, 6, 24, 96,128, 1, 6,252, 79,
- 96, 74,169, 79,232, 45,180,138, 5, 67, 26,210, 1,204,168, 91,151,153, 23, 29, 13,245,183,178,172, 44, 79,215, 87,226, 57,128,
-254,213,190,154, 36,242,158,188,143,207,127,250, 62, 62, 31, 52,195,208, 12,163, 34, 73, 36,202, 52,154,245,239, 99,146,171, 63,
-235,142, 32,116,207, 63, 36, 40, 94,124, 76, 84, 50, 52,205,208, 12,163, 38, 8,124,210,106,233,245,145, 49,241,151,254, 27,236,
-205, 8,191,248, 40,128, 34, 58, 63,122, 26, 49, 79, 38,211,236,204,136,186, 24,252, 13,243, 69, 27, 30, 30, 62,166, 67,135, 14,
- 19,117, 58,221, 94, 0,218,175,224, 82, 83, 20,181,120,195,134, 13,231,195,195,195, 79, 7, 7, 7, 75,190,133,200,250, 91,243,
-223, 0, 3, 12, 48,192,128,127, 43,170,183,168,116,121,248,150, 34,235,191, 17, 17, 31,226, 90,253, 29,188,145, 31,226,154,252,
-127,176, 55, 53,234,194,139, 84,192,251,111, 74,222,155, 58,157,238,230,183, 20,213,215,175, 95,175,141, 50,150,213,249,111,203,
-127, 3, 12, 48,192, 0, 3,254,181,152, 82,158,248, 98, 27,210,198,128,127, 1,152,111, 37,178, 12, 48,192, 0, 3, 12, 48,160,
- 26, 40,215,163, 69,160,252,153, 3,183,171,240, 7,213,153,125,112,219,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,231,255,
- 28,231,191, 17,246, 40, 24, 16,127,165,240,179, 66,241,245, 45, 97,152,250,106,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,
-243,223,142, 50, 7,194, 3, 5,131,135, 13, 48,192, 0, 3, 12, 48,224,255, 19,248,133, 91,117,127, 55,192,128,191, 91,108, 21,
- 11,174,234,140,209,170, 95,248,249,225,111, 52,214,199,222,222,126, 74,179,102,205,220,184, 92, 46,153,151,151,183,250,238,221,
-187,171, 74,159,212,185, 17,251, 5,139,132,211, 95, 71, 8,128, 96, 1, 36, 9, 29,131,164, 7,175, 20,173, 13,249,254, 95, 13,
-103, 35, 19,235, 63, 9,146,197,211, 81, 26,232,180, 26, 20, 12,183, 42, 0, 77, 83,241, 58,141,202,171,188,139,237,154, 15,174,
- 73,233,232,141, 0,179, 11, 32,167, 3,244,110, 2,236,105, 12,168, 61, 4, 88, 63,130,197,252, 2, 29,177,136,205, 97, 45,145,
-132,156, 77,252, 55, 36,216,153, 51,103, 88, 95,115,253,240,225,195,203, 92, 64,212,193,193, 33, 64, 40, 20,214, 43,239, 58,153,
- 76, 38,145, 72, 36,158,255,242,242,216, 5,192, 14, 0,141, 75, 29,127, 3, 96, 54,128,192,175,253, 3, 15,128,109, 11, 76,229,
- 2,139, 0, 64, 3,252,146, 10,236, 11,250, 47, 26, 99,104,109,109,125,159,205,102,187,200,100, 50, 89, 94, 94, 94, 93, 99, 99,
-227,104,145, 72, 36,162, 40,234,125,122,122,122,151,138,174,101, 10, 38,165, 84,138, 38,128,241, 59, 96,164,142, 36,103,114,128,
- 93, 42,154,222, 91, 88,131,235,179,192,237,116,252,181, 60,215, 66, 0,187,171,248,187, 1, 6,252, 29,248,170, 89,135,174, 5,
-245, 3, 60, 0,116,105,211,166,141,173, 76, 38,195,155, 55,111, 82, 1,220, 7, 16, 84,184,189,251, 22,150,146, 36,185,121,203,
-150, 45,243,103,206,156, 89,188, 24,244,171, 87,175,208,188,249,151, 49, 66, 89, 36,156,238, 94,190,109,243, 60,252, 29,218,244,
- 24, 86, 40,180, 72, 64, 38,129,103,207,182,213, 53,193,216,220,220,124, 53, 65, 16,195, 73,146,172,180,210,160,105, 90,199, 48,
-204, 25,169, 84,186, 18, 64, 94, 85,254, 72, 36,228,107, 41,157,174,204,255, 96,179, 88, 58,153, 92, 85,110,216, 11, 11, 11,139,
- 96,146, 36,235,148, 92, 48, 27,248,124, 1,237,242,126,163, 40, 42, 41, 35, 35, 67, 31, 17, 42, 32,217,220,217, 4,193,237, 9,
-146,118, 5, 8, 16, 32,223,209, 58,245, 45,154,210,108, 3,160,252, 26,145,101, 95,163,238,131,185,203, 54, 56, 69, 68,189,193,
- 82,159,209,216,184,227, 8,150,204,158,136,109,251, 79, 96,246,148, 81,104,212,168,113,133,181, 46, 13,238,250,101,179,134,247,
-240,219,117,218,125,201,140,225,124,191, 93,103, 58, 47,245, 25,201, 91,191,243,116,231,165, 62, 35,248,126, 59, 79,187, 47,153,
- 53,220,104,253,238,179, 52,128,177,213, 49,114,148,139,131,140,160,168, 50,223,140, 25, 54, 91,117,226,125,138,232, 63,241, 68,
-143, 31, 63,190,153, 66,161,120, 57,186,103,203, 13, 45, 92, 29,147,203, 58, 39,243, 83,178, 99,244,219, 16, 95, 14,215,168,213,
- 64,223, 35,175, 42,116, 15,240,249,117,222,188,121,227, 66,211, 52,116, 58, 29, 40,138, 42,254, 84,171,213,232,210,165,203,183,
-154, 56,211, 31,192,234,130,135, 21,126, 0, 78,127, 5,151,152,205,102,207,229,241,120, 30, 20, 69,185, 1, 0,135,195,137, 82,
-169, 84, 65, 20, 69,109, 1,144, 95, 69,190,173,201,201,201,141,196, 98, 49, 52, 26, 77,241, 2,244, 44, 22,171, 97,205,154, 53,
-119, 41,149, 74,151,175,189,121, 91, 96,106, 71,119,247,109,227,230,207,103, 41,238,223,199,182,195,135,183, 34, 55, 23, 0,118,
- 85,118, 45,143,199,187, 65,146,164,115, 85,254,143,166,233,120,181, 90,237, 85,149,107,216,108,182, 75, 74, 74,138,141,131,131,
- 3,242,242,242, 32, 18,137, 68, 69,251, 95,131, 32,128,232, 13,116,161, 88,172, 57,150, 86, 86,157, 95,222,188, 41,106,210,164,
- 9,201, 98,177,150, 64,255, 32,213,124, 0,155, 24,134, 49, 42,108, 47,182,181,111,223,190, 3, 65, 16, 20, 0,134,166,105,242,
-233,211,167,163,104,154,102, 23,214,121,155, 0, 28, 6,160, 50,232, 0, 3,254, 1,111,214,254,170, 10,173,171, 0, 60,218,180,
-105, 99,228,237,237, 13, 15, 15, 15,184,184,184, 64, 32, 16, 20, 84,226,153,153,182,161,161,161, 35,238,223,191, 63,226,242,229,
-203,120,253,250,181, 2,192, 67, 0,101, 62,212,221,251,185,207, 20,136,249,219, 1, 32, 61, 41, 83,146, 20,147,182, 93, 34,145,
-108, 2, 80, 50, 68,120,221,177, 99,199,206,155, 53,107, 22, 2, 2, 2,112,226,196, 9,168, 84, 42,228,229, 85,160, 95,228,105,
-144,222,217, 0,136, 98,129,132, 32, 64,104, 3,136,108,171,157, 82,230,230,230,171,103,207,158, 61,167, 81,163, 70,197, 81,204,
-181, 90, 45, 40,138,130, 86,171,133, 84, 42,197,188,121,243, 10, 26, 90,134, 1, 77,211,184,118,237,218,204, 41, 83,166, 64, 42,
-149,206, 45,139,179,125,171, 26, 47, 72,130,116, 42,242,213, 48, 58, 93,210,147,208,164,214,148, 78,199, 82, 42, 53,101,174, 84,
- 46, 16,112, 43, 20,121, 28, 14,199,233,245,159,127,218,144, 60, 30, 24,157, 14,160,105, 48, 52, 93,152,156,133, 27, 83,112,140,
-209,209, 96,180, 58,208, 20, 13, 74,161, 66,219,233,211,245, 73,138,142, 28,158,209,137, 49, 63,204,183,107,215,190, 61,167, 86,
- 13, 7, 80, 58, 26, 31, 99,147,236, 94,190,120,210,233,204, 31,187,166,169, 21,121,163, 0, 84, 43,206, 22, 79,104,114,115,231,
-158, 3, 78,207, 67, 35, 16,120,247, 62,110,223, 9, 2, 0,220,184, 27, 92, 36,184, 43,205, 42, 80,249, 77,103, 79, 26,196,223,
-176,243, 36,103,246,164,193,172,141, 59, 79,113,102, 77, 28,200,218,176,253, 4,119,214,196,129,172, 13, 59, 78,112,103, 77, 26,
-196,242,219,118,168, 25, 0,115, 0,210,242,200,202,203, 35,130,162,248,199,162, 83, 89, 0,144,190,119, 47,180,105,105,112, 88,
-185, 18, 0, 48,166,174,173,222, 93, 19, 86, 86, 86, 47, 56, 28,142, 83,101,231,105,181,218, 74, 69,240,248,241,227,155, 43, 20,
-138, 23, 20, 69, 49,108, 54,219,119,244,224, 94, 23,123,119,110,158, 89,242,156, 87,175,194, 44,215,175,255,115,208,233,151,121,
-204,136, 86,198, 47, 3, 54,143,111,221,111,193,145,176, 10, 26,100, 82,165, 82,225,253,251,247, 40,185,200,123, 9,232,170,249,
- 72,145, 0,182, 89, 90, 90,182,203,204,204, 28, 3, 96,105,110,110,110, 51, 22,139, 5, 11, 11,139,165,106,181,250,163,169,169,
-233,193,156,156,156,224, 66,175,145,190, 75, 6,116, 49, 49, 49,241,191,112,225,130,121,203,150, 45,201,140,140, 12,212,174, 93,
- 27, 89, 89, 89,109,239,223,191,223,106,210,164, 73,147,242,242,242,190, 47,124, 25,212, 23, 13,132, 66, 33, 51,110,220, 56, 66,
-167,251,235,118, 15, 29, 58, 4,175, 38, 84, 61,107, 51,161, 92,169,102,114, 2,223,155,254,200,229,114, 31,198,199,199,231, 84,
- 53, 49,184,192,162,113,243,231,179,196,113,113, 16,135,133, 97, 76,110, 46,123, 99,129,119,171, 82,161, 69,146,164,179,255,137,
-223, 93,120, 60, 30, 40,138, 42, 22,131, 69,117,148, 86,171,133, 70,163,129, 86,171,133, 78,167,131, 86,163,133,223,218, 95,170,
- 93, 23, 10,133, 66,161,189,189,125,170, 80, 40, 20,126,165,184,172,153, 69,146, 63,180,104,213,106,202,202, 65,131, 4,207,158,
- 61, 19,144, 36, 9,138,162,176,105,211, 38,138, 97, 24,179, 70,128,201,107, 32,183,170,220,124, 62,159,253,199, 31,127,140,226,
-241,120, 0, 0,181, 90,141, 38, 77,154, 16,134, 54,223,128,255,160,216,250,194,203, 85,145,208,234,147,155,155, 11,157, 78, 7,
- 99, 99, 99,176, 88,159,183,251,150,150,150,232,217,179, 39,186,116,233, 2,111,111,111,188,126,253,218,200,219,219,187,103,121,
-100,163,231,247, 67, 13, 23,219,194,198,132,182,127,116, 37,116,195,161,159,207, 90,127,250,244,105,126,137,211, 38, 77,157, 58,
-149,200,204,204,196,240,225,195,239,171, 84,170, 1,168,224,225,211,209, 72,242,244, 30, 3,154, 33,140,182, 60, 61, 64,168,149,
- 10,134, 36, 73, 69, 81,215, 97,117, 82,137, 32,136,225, 14, 14, 14, 56,121,242, 36,212,234, 47,195,133,153,152,152, 32, 50, 50,
-242, 47,175, 26,139,133,246,237,219,179, 8,130, 24, 14, 96,110,217,156,164,211,163,231,113, 54, 69,251,253,122, 54,230,182,111,
- 69,166,166,164,202, 24, 0,196,178,101,203,138,133, 27, 0,172, 94,189, 90, 31, 59, 65,114, 56, 72, 15, 10,250,171, 34,102,147,
- 32,185, 4, 8, 14, 64,178, 11,122, 81,193, 0,140, 14,160, 41,128,214, 2, 2,251, 26,250, 36, 67, 91,199,154, 46, 1,235,127,
-219,109,166,210, 50, 56,121, 41, 16,177,177, 49, 96,145, 36,234,214,115, 65,175,174,157, 57,173,218,116,168,241,203,170,249,151,
- 83, 18, 62,244, 1,240,172,202, 9, 77, 51,130,122, 53,173,112,240,208, 75, 88,155,139, 49,124,208,119, 48, 18,240,177,113,199,
-239, 88,187,196, 7, 46,117,157,177,111,235,186,114, 47, 55, 53, 53, 93,227,230, 82,207,121,247, 31, 87,224,214,176, 33,107,183,
-255, 21,184, 53, 42,252,108,236,198,218,237,127, 5,141, 26, 55, 98,237,246,191,130,102,141, 27,212,122, 33,121,186, 38, 43, 43,
-203,167,252,244, 44,149, 71,189, 10,242,136,147, 79, 23, 87,218,113,211,166, 1, 64,177,208,170, 10, 56, 28,142, 83, 74, 74,138,
- 77,101,231, 85,230, 53, 40,244,100,189,160, 40, 10,105,105,105, 68,118,118, 54, 99,102,102, 54,232,250,190,165, 23,188,220,155,
-103, 1, 64, 88, 88,152,133,159,223,250, 65,167, 94,228, 66,241,100, 39,113,236,207, 32,122,204, 0,143, 23,151, 54,140,111,133,
-194, 37, 33, 74, 67,165, 82,197,182,104,209,130, 41,252,238,200,231,243,185,165,202,155, 67,253,250,245,191,240, 90,235,209,165,
-184,237,241,227,199, 62,141, 26, 53, 66,195,134, 13,131,219,181,107,103, 34, 18,137,112,253,250,117,184,185,185, 53, 54, 49, 49,
-121,122,230,204, 25,206,226,197,139,155, 31, 62,124, 24, 0,102,234,145,156, 61, 60, 61, 61, 79, 6, 4, 4, 8,184, 92, 46, 20,
- 10, 5, 34, 35, 35, 97,106,106, 10, 30,143,135,129, 3, 7,178, 58,117,234,100,217,181,107,215,115,239,222,189, 27,133, 42,204,
-128, 82, 42,149,204,210,165, 75, 33, 20, 10, 33, 20, 10, 33, 18,137, 32, 18,137, 32, 22,128,216, 59,187,166,209,172,253,217, 70,
-115, 87,238,221,224,191,123,213,221, 26, 53,232, 21,137,137,137,217, 85, 45, 11,138,251,247, 33, 14, 11, 3, 74, 60,187,250,194,
- 84,100, 1, 95, 95,223,202, 60, 82,224,114,185,232,216,177, 99,165,124, 22, 22, 22,231,217,108,246,103,111,166, 20, 69, 9,124,
-125,125,117,239,222,189, 19,145, 36, 41,162,105, 26,190,190,190, 58,138,162, 4, 54, 54, 54,193, 52, 77,167,102,100,100, 12,169,
-136,183, 43, 32, 8, 6, 6, 19, 28,206, 92,123, 7,135,218, 30,117,235, 10,111,223,190,205, 2, 0,103,103,103, 70, 34,145,100,
- 95,186,116, 41,143, 13,236,113,102,152, 63,170, 32,178, 84, 0, 22,146, 36,185,141,207,231,179,107,213,170, 21,191,124,249,242,
-199,133, 30, 82, 48, 12, 67,214,170, 85,171,173,145,145,145,179, 74,165,162, 80,208,117,104,240,102,253, 11,192, 48, 76,171, 2,
-221, 94, 12, 53, 0, 94,145, 3,191,160,181,131, 85,169,227, 0,144, 81,248,162,104, 91,206,126, 38,128,215, 0, 26, 0,176, 41,
-252,237, 57, 65, 16, 89,213, 48,179,124,143, 86, 64, 64, 64,241, 43,108,191,126,253,138, 27, 22, 99, 99, 99, 60,127,254, 28, 4,
- 65,192,216,216, 24, 38, 38, 38, 48, 53, 53, 69,110,110, 46, 94,191,126,141, 55,111,222, 32, 46, 46, 14, 4, 65,160,110,221,186,
- 40, 42,236, 37, 80, 92,193, 29,255, 53, 0, 2, 49, 31, 4, 1,180,236,214, 12,205,186, 52, 65,155,103,209,179, 95,220, 38,246,
- 75, 36,146,247, 0,216, 77,154, 52,153,212,190,125,123,252,246,219,111, 80,169, 84,191,149, 35,178,138, 57, 31,188,166, 90, 3,
-128,189,189,253,130,163,215, 63, 10,199,246,174, 39,151, 72, 36,155,171,145, 56,159, 85,196, 25, 25, 25,122,175,197, 71,211, 52,
-164, 82,105,133,156,165, 61, 4, 91,182,237, 52,203,203, 73,197,207, 27,143, 66,171,213, 98,254,252,249,160,105,186,120,203,206,
-206,214,203, 78, 70,167,251,210,119, 64, 22,244,158, 18,108,160,230,200, 2, 93,145,112,114, 39,136,255, 99,239,186,195,162,184,
-214,247, 59,179,125,233,189, 41,160,162, 40, 8,130, 13,197,134,189, 68, 76,172, 49,118,163,137, 55,137, 37,150, 68,108,209,152,
- 40, 36,214,152,104,212, 24,163, 49, 54,236, 98,139,221,196,174, 32, 82, 20, 20, 17,144,186,244,178,109,118,103,206,239, 15,138,
-128,108, 65,115,127, 55,247,102,223,231,217,103,119,118,102,223, 61,101,230,156,247,124,231, 59,223, 33, 0,197, 2,120, 53, 95,
-245, 59, 33, 9, 79, 40, 61,176,226,155, 77, 54,209,143, 94,224,248,197,104, 48,165,153,200,126,112,180,210,228,216,109, 28, 14,
-170,120,232, 18,208, 18,159, 46,249,214,118,233,167,147, 14,168, 21,101, 62,168, 59,141,120,193,240, 67,195,226,171,149, 43,177,
-125,211,122,124,187,126, 19, 74, 75,138, 33, 16, 56, 84, 53,244, 44, 88,150,213,159,119, 66, 6,135,205,153, 74,125,243,227, 17,
- 4,181,117,197,225,179,119,208,163,189, 39,142,254,126, 15,189, 58, 54,199,241, 11,209,232,219,165, 37, 78, 95,141,195,167, 51,
-198, 81,227,206,237, 28,220,152, 58,218,184,241, 7,155,178,210, 92, 68,173,218,141,188,205,155,145, 54,115, 38,130,170,174,185,
- 67, 81, 16, 54,109, 10, 8, 13,215, 81,125, 36, 38, 38, 66,165, 82, 53, 52, 50,135,175,175,175,193,122, 87, 40, 20,247,181, 90,
- 45,201,205,205,165,114,115,115, 97,110,110, 78,197,199,199,177,126,126,254, 35,200,163, 67, 63, 1, 64,120,248,234, 17, 7,239,
-151, 66,126, 99, 19, 20, 55,191,135,176,121, 44,189,253,203, 25,204,135,203,183,221,175,245,140,214, 73,103, 78, 78,206,144,156,
-156, 28, 0, 64,139, 22, 45, 30, 37, 37, 37,181,169,158,106,174,154, 66, 20,106,181, 90,239,234,233, 68,173, 86, 11,149, 74,133,
-254,253,251,243,244,229,221,214,214,182,171,175,175, 47,162,163,163,177,105,211, 38,187, 62,125,250,224,201,147, 39,160, 40, 10,
-171, 87,175,166,218,182,109, 43,200,207,207,199,160, 65,131,112,228,200,145,110,165,165,165,134,202,211,210,220,220,124,231,201,
-147, 39, 37, 52, 77,163,172,172, 12, 28,199,161,123,247,238,160,105, 26,113,113,113, 88,178,100, 9,142, 28, 57,130, 99,199,142,
- 73, 59,118,236,184, 83, 46,151,251,162,238,180,190,174, 58, 34, 74,165,146,136,197, 98,136,197, 98, 72, 36, 18, 72, 36, 18,136,
- 68, 34,148, 43,129, 15, 55,164,169,120, 18, 7,206,175,125,143,150, 83,103,175,166,215, 46,123,255, 18,128,227,198,222,243, 64,
-165, 79,214,119,191,252,178,105, 66, 73, 9, 13, 0, 59, 40,138, 99, 8,249,214,152,231, 29, 0,202,149, 37,240,244,106,138,195,
- 7,142, 97,212,216,225, 13,138, 44,129, 64, 8,161, 64, 0, 43, 59,115,131,156, 66,161,208,249,209,163, 71,246, 2,129, 0,132,
- 16,176, 44, 11,134, 97,114,151, 46, 93,234, 56,116,232, 80,203, 51,103,206,208, 67,135, 14,229,108,109,109, 43,238,220,185,147,
-167,213,106,237,123,246,236,169,147,211, 12, 8, 80, 90,183,250, 78,196,211, 6, 68, 44,254, 68, 60,105,210, 36,222,212,169, 83,
-145,158,158,142,105,211,166, 41,207,159, 63,175,206,201,206, 62, 46,226,184, 31, 24, 32,214,216, 54,185, 30,182, 4, 4, 4,116,
- 56,122,244,232,251, 97, 97, 97,247, 22, 44, 88,240, 85,237,147,107,214,172, 89,121,250,244,105,207, 17, 35, 70,252,250,224,193,
-131, 45,141,105,151,222,180,239, 48,113,190, 25,116,105,145,106,227, 40, 69, 81, 81,181,218,236,208,234,227,176,176,176,197,225,
-225,225,241, 20, 69, 69,213,254,190,250,186,170,193, 98, 84, 67,199, 85,191,181, 91,180,104,145,127, 68, 68,196,234,224,224,224,
-253, 55,110,220,120, 6,160,177, 66, 75,191,143, 86,117,134,106,103,178, 94,167,134,210,210, 82,148,150,150, 34, 35, 35, 3, 91,
-183,110,173,122,160, 5,224,243,249,224,243,249, 53,254, 12,186,112, 49,234,207,239, 1,124,223,161, 67, 7,193,195,155,145,103,
- 62,223, 62,187, 95,167,254, 29,120,247, 47, 62, 28,141,202,253, 8,135, 76,158, 60,217, 1, 0,118,239,222,157, 15,224,204,127,
- 72, 53, 71, 38, 39, 39,127,234,234,234, 90,227,163, 82,123,250, 80,171,213, 66, 34,145,160,218,151, 69,169, 84, 98,235,214,173,
- 90, 66, 72,164, 30, 78, 36,197, 95, 66,114,252,229,202,223,113, 28, 56,246,229,239, 87,172, 88, 1, 66, 72, 77,103,255, 81,149,
-229,196,160,200,107,168,204, 73,189,247,122,223, 19,150, 53, 48, 61, 33,156, 61,122,210, 76, 87,142,226,227,196,165, 24, 8, 4,
- 2,112,181,172,153, 2, 94,229,104, 57,254, 73, 22,220,156,253,240,246,184, 25, 46, 71,127,253, 97,182,150, 81,126,211,216,178,
-246, 9, 8,198,156, 79, 63,197, 79,219,183, 99,201,242,149, 53, 10, 64,203,178,208, 26, 76, 39, 77,247,239,238, 15,109,121, 22,
-120, 60, 30,250, 6,181, 4,143,199,195,128,224,214,224,241,120, 24,212,221, 7,124, 62, 31,131,123,180, 69,171, 86,173,192,231,
-243,105, 3,245,142,164,248,139, 72,142,191, 82, 75,244, 18, 16, 0, 76,118,246, 43,215,107,178,179, 65, 60,236, 27,123,111, 97,
-218,180,105,197, 25, 25, 25, 76,253,115,238,238,238,194,107,215,174,217,232,152,182,171,129, 84, 42,237,200,231,243,239, 23, 22,
- 22,114,102,102,102, 52,199,177,156,159,159, 63,239,236,182,197, 71,171,175, 89,180,104,241,209,119, 59, 90,141,216, 19, 25, 69,
-132,205,122, 80,148, 64,172,253, 96,249, 54,161, 64, 40,237, 8, 40,140, 25, 60,208, 42,149, 10,143, 31, 63,134,161,244, 16, 66,
-244, 78,211, 20, 21, 21, 77,246,245,245,189,246,253,247,223,219, 81, 20,133, 63,254,248, 3, 60, 30,175,230,149,146,146, 2,154,
-166,241,249,231,159, 51,165,165,165,211, 13,165,141,207,231,127,122,248,240, 97,107,145, 72,132,178,178,178,154,231,134,199,227,
-225,209,163, 71, 88,187,118, 45, 38, 79,158,140,244,244,116,184,185,185, 97,254,252,249, 22, 17, 17, 17,159, 50, 12,179,210,136,
- 42,138, 85,171,213,157,204,204,204, 32,145, 72, 80, 45,184, 0,224,247,120, 65,156, 66,161,104,103,111, 47,119,113,188, 26,117,
-162, 91,159,183, 3,237, 29, 93,131,179,179,179, 27,181,117,214, 83, 96,123, 42,203, 46, 29,114,244,168,211,245,163, 71,185, 91,
- 39, 79,190, 16,151,149,109, 51,250, 30,210,208, 72, 75,121,129,142, 29, 59,226,254,253,251,232,216,177, 99,109,209, 4,145, 72,
- 4,161, 80, 8,161, 80, 8, 7, 91,163, 92, 40, 8, 77,211,184,126,253, 58, 88,150,133, 90,173,134, 90,173, 70,219,182,109, 11,
- 47, 95,190,108, 1, 0, 41, 41, 41,100,226,196,137,197,183,111,223, 70,251,246,250,247, 83, 87, 82,212,197, 21,171,215, 89,127,
-179,113, 39,172,237,156,113,245,234, 85,246,236,217,179,101, 20,144,148, 28, 31,191,254,109,224,116, 36,192, 52,166,204,156,157,
-157,175,241,120,188,102,181,191, 43, 40, 40,176, 29, 57,114, 36,138,138,138,222, 26, 57,114,100,143,170, 54, 33,243,208,161, 67,
- 19, 1, 64, 36, 18,129,166,105, 22, 38,252, 87,193,144, 22,169, 45,148,234, 11,174,240,240,240,208,250,223,213, 22, 85, 13,125,
-174,253,219,136,136,136,213,181,184, 21,175,145,124,195, 62, 90, 81, 81, 81,164, 1, 5,105, 52, 12, 9,173,106, 68, 71, 71,107,
-220,220,220,126, 74,142,121,222,175,101,128, 23,164,230,226,129, 0,190, 23,139,197,243, 38, 77,154,132, 91,183,110, 33, 46, 46,
-238,103,188,225, 42, 28,127,127,255,115, 98,177,216, 83,199, 52, 73, 90, 92, 92,220, 32, 29, 29,195,242,147, 39, 79, 66,159, 51,
-252,165, 75,151,106,119, 74,181,157,225, 27,190, 49, 56, 2, 13,163, 65,133, 92,241,178, 19,175, 18, 90, 21, 21, 21, 24, 59,118,
-108, 29,139, 86, 94, 94,158,193,252, 81, 20,133,181,199,143,227,124,100, 36,222, 10, 12,196,145, 59,119, 16, 49,105, 60,124, 60,
-155,128,176, 20, 8, 5,164,239,251, 1, 5,165,229,216,123,241, 58, 10,203,228,152,208,179, 39,188,173, 28,244,243, 10,132, 3,
-130,186, 6, 11, 47,220, 72,128, 64,192, 7, 13, 14, 68, 35,135,155,111,111,240,104, 26,214,206,205, 33, 20, 8, 32, 16,240,145,
-146,145, 15, 95,255,206,162, 40,145,100,192,235, 8, 45,119,207,230, 96, 89, 22,147, 39, 79,198,254,253,251, 97,239,226, 9,107,
-119,127,124,189,126, 59,222,234,223,211, 96,254,171, 71,240,124, 62, 31, 60, 30,239,149,247,234,207,198, 88, 39, 9, 71,192,212,
-175, 35,142, 0,132,160,233,170, 85,104,186,106, 21,238, 84,253,103,219,138, 10, 40, 20, 10,160,139, 95,163, 68,150, 90,173, 70,
- 70, 70, 6,147,147,147,227,220,192,249, 92,181, 90,109, 80,216,236,218,181, 43,118,202,148, 41,157,236,236,236,238,197, 62,120,
-160, 9, 8, 12, 20,156,217,186,248, 88,245,180, 33, 0, 4, 6, 6, 22, 46, 94,188,248,216,196, 49,161,195,183,132,189,199,126,
-188,242, 87,190, 88, 42,237, 20,186, 96, 87,236,190, 49, 99, 12,207,205,168, 84,169, 1, 1, 1,196,152,124,201,229,242, 28, 61,
-167,135, 1,248,178, 67,135, 14, 86,125,250,244,193,181,107,215, 48,106,212, 40, 21,195, 48,201, 0, 48,116,232,208,214,123,247,
-238, 21, 37, 36, 36,192,209,209, 81,144,150,150,182, 19, 6, 28,228, 69, 34, 81,239,206,157, 59,211, 42,149,234, 21,145, 21, 17,
- 17,129,113,227,198,161,117,235,214,224, 56, 14,229,229,229,232,211,167,143, 96,211,166, 77,189,141, 20, 90,115,124,124,124,214,
-162,114,213, 97,237,182, 48,177,106, 10, 10, 5, 5, 5, 57, 49,183, 47,198,247,236, 63,178, 83,179, 86,254,174,113,177,247,245,
- 18, 58, 57, 57, 45,162,105,250, 93,142,227,120,165,165,165, 25, 49,106,117,171,182,158,158,206,221,135, 15, 71,137, 64,192,251,
-238,226, 69, 58,183,172,204, 2,128, 81, 83,144, 74, 77, 5, 60,189, 42, 93,253, 70,141, 29,142,251,247,239, 99,244,123, 35, 32,
- 20, 10,193,231, 11, 42,159, 77, 97,165, 69,203,198,193,202,168,123, 83,163,209,212,180,225,213,126, 94, 12,195,160,218, 53,203,
-204,204,172,230,156, 74,165, 2, 69, 81,250,238, 13,186, 79,175,238,184, 17,157,164,157,254,249,119, 42, 65,193,253, 8, 23,142,
-219,245, 2,200,125,131,230,220,251,224,202,101, 78, 82, 43,107,176, 26, 13,252,134,143,174,121, 78,110,239,216, 34, 5,199, 73,
-139,211, 82, 49, 43,242,228, 95,189,103,174, 9,255, 1, 24,210, 34,181,133,210,155,130,162,168,168,176,176,176,197, 0, 72, 88,
- 88,216,226,234,227,240,240,112, 5,128,204,215, 20, 91,175, 88,185,248,127,133,200,170,158, 94,208,135, 62,125,250,204,178,180,
-180,220, 84,125,156,113, 43, 19, 25,183, 50,225,219,198,175,123,135,192, 78, 37,227,198,141,131,189,189, 61, 22, 44, 88, 64, 0,
-252,220,216,255, 79, 73,138,183, 0, 64, 92, 93, 93, 23, 84, 53,200,129,119,238,220,113,188,123,247, 46, 58,119,238,252,210,116,
-207, 48,232,209,163,135, 62,170,178, 42,167,246,185,127,157,149,140, 3,195, 48,144,203, 21, 80,171, 25,104, 53, 28,180, 90, 45,
- 58,250, 89,226,215,237, 97,149,223,105,171,173,103,149, 86,179,166, 46,150,176,180, 16,104,104,154, 82,220,139,205,105,176,197,
- 84,171,213,136, 77, 75,195,131,231,207, 1, 0,111,135,235,119,124,253,245,226, 53,180,109,219,214, 80,106, 91, 54,117,115, 65,
-214,249,216,202,198, 91,145,129,187,127, 30,132,165,165, 5, 0,192, 47,100, 2,132,194, 74,161, 85,161, 96,224,208,198, 29, 20,
- 33, 58,195, 2,152,217,186,156,227, 11, 37,158,132,229, 64, 8, 7,194,177, 32,132, 3, 79, 32, 52,155,245,209,251,224, 56, 22,
- 65, 65, 65,160,120, 60,176, 26, 21,198, 12, 27,128,162,146, 50,216,219, 24,215, 73, 8,133, 66,132,132,132, 72,117,157,127,242,
-228,137,162,182, 48,211, 95, 71, 26, 84, 84, 40,160, 82,169,192,168,181, 96, 52, 90,176, 45,132,248,106,233,120,104, 25, 45,228,
-239, 5,131,209,104,193,125, 58, 2,140, 90,131,116, 51,154, 14,240,117,208,208,160, 20, 49,137, 50, 43, 67, 66,171, 90, 28,232,
- 66, 67, 62,129, 58,196,214,131, 41, 83,166,116, 12, 8, 12,188,255,110,255,192,117, 15,227,226,179, 30,198,197,191,114,157,103,
-235,192,212,143, 35,246,207, 23, 8,165, 29, 67, 23,232, 95,117, 88, 27,181,167, 17,223, 16,139,203,202,202, 2, 44, 44, 44,144,
-148,148, 4, 30,143, 7,138,162,158, 0, 8, 0, 0, 87, 87,215,167,124, 62,223,139,199,227, 97,243,230,205, 20,159,207,111, 23,
- 28, 28,188, 88,169, 84, 30,212, 51,160,243,181,180,180,172, 99,205, 18, 10,133, 8, 11, 11,195,196,137, 19,107, 68,150, 80, 40,
-196,174, 93,187,208,169, 83, 39,168,213,106, 95, 35,211,123, 23, 64, 79, 35, 44,126, 84,149, 56, 55, 40, 70,181, 90,237,148,130,
-119,223,109,133,171, 87,209,221,203,171,109,199,142, 29,193, 48, 47, 13, 58, 94, 94, 94,238,101,101,101, 57, 10,133,226, 55, 84,
-134, 33,136,209, 43,138,148, 28,210, 82, 42,221, 79,239,223,191,143,160,160,160, 26, 11, 86,109,107,150, 80, 40,132, 84,100,209,
- 40,161,197,113,149,237, 82, 89, 89, 25,125,245,234, 85, 7, 31, 31, 31, 10, 0,124,124,124,168,152,152, 24, 59, 51, 51,179,252,
-150, 45, 91, 26, 26, 0, 11, 1,160,247,192,145,252,243,103, 79,155,107,129,149, 57, 60,222, 74,190,193, 54,146,104, 88,142,211,
-233,116, 47,181,178,198,174, 41, 99, 1, 0, 95,244, 31, 92, 51,216, 58,251,229, 98, 8, 4, 2,244, 91,176,248,149,103,137,227,
- 56, 30, 76,248,159, 18, 89, 13, 89,180,222,172,111,126,105,209, 10, 15, 15,143, 15, 15, 15,127,197, 58,214, 72, 24,182,104,213,
- 54,221, 53, 22,213, 15,171, 46,172, 95,191, 30,237,218,181,211,219, 17,109,218,180, 9,123,246,236, 89, 15, 32,165,209, 38,199,
-126, 29,252,176,225,104,188, 87,107, 63, 10, 0, 86,126, 58,140,174,168,168,192,245,235,215, 97,109,109,141, 39, 79,140, 14,251,
-101,105,109,109,253, 37, 77,211, 99,120,245, 87, 0, 52, 44, 48, 89,142,227, 34, 75, 74, 74,116,134,119, 32, 4, 96, 52, 90, 84,
-200,149, 80,171,213,248,244,243, 31, 12, 38, 34, 28,160, 24,117, 25, 63,164, 87,176, 84,151, 69, 39,168, 93,111,124, 50,201,226,
-149,206,155, 71, 3, 52, 13,180, 15,170,180,184,196,220,137, 7,199, 1, 44, 7, 56, 56,217,226,231,125,235,244,138,124, 45,203,
- 85,141,142, 89,148,171, 88,248,118, 13,197,139,196,171, 53, 22, 36,145,176,114,202, 88, 40, 16,128, 35, 84,101,212, 7, 93,173,
-174, 72,234, 89,148,157,226,189, 61,234, 33, 62, 12,109,135, 67, 23, 98, 49,186,127, 0, 46,223, 78, 64,159, 46,109, 17,159,252,
- 28,126,222,205,176,121,103, 36, 8, 65,217,143, 27,190,206,121,217,161,105,211,140,177,104,221,186,117, 75, 81,223,138, 85,251,
-157, 24,238, 15, 65,200, 75,139,150, 66,169,194,130, 69, 70,133,222,169,172,163,158, 93,165,198, 92,172,207, 98,101,140, 16,171,
-111,217,130,129,240, 44, 45, 0,116, 2, 22,254, 39, 27, 78,150,101,113,234,212,169,154,250,104,168, 30,107,215,157, 17, 34, 7,
-105,105,105,136,143,143, 71,215,174, 93, 81, 82, 82, 2, 1, 77, 99,254,195,135,104, 59,105, 18,212, 66, 33, 56,142,131, 72, 36,
-194,140, 25, 51,140, 46,207, 70,182,206, 85,142,215,172, 33,242,117,193,193,193,173,146, 42, 42, 16,255,232, 17,250,175, 88, 1,
- 0, 56,125,250,116,157,123, 98,222,188,121,162,132,132,132,105,247,238,221,155,150,149,149,181, 30,192,124,157,237, 44, 81,213,
-248,104,189, 59,126, 20, 90,249,180,192,158, 95,246,213,156,159,247,217, 28, 8, 4, 66, 8,132, 2,216, 88,219, 24,149, 27,141,
- 70, 83, 35, 90,229,114, 57,125,250,244,233,166, 3, 6, 12, 16,206,153, 51,135, 2,128, 61,123,246,208,223,127,255,189,249,249,
-243,231,133, 77,154, 52,201, 54, 96, 33, 40,205, 44, 80,137, 1,192,195,195, 3, 63,108, 59, 65, 15, 29, 58, 20,115,230,204,129,
- 70,163,193,150, 45,149,207,213,184,113,227,192, 48, 12, 14, 31, 62, 92,253, 28,235,181, 70,105, 25,230,149,251,134,162, 40, 8,
- 4, 2, 8, 69, 66,128,227, 64, 81,148,249,154, 53,107, 86,198,199,199,119,246,241,241,129, 74,165,154,132,202,197, 31,166, 56,
- 90,255,101, 98, 75,159, 22,105,200,215,170,202, 42,165, 11,178,218,126, 91,186,132, 90,109,159, 45,188,222, 2, 10,227,124,180,
- 26, 2,143,199, 51,104,173,170, 94,170,171, 15,243,230,205,131,165,165,165,174, 14,136, 60,124,248, 48, 33, 59, 59,123, 59,128,
- 31, 94,171,114, 46, 70,199,127, 57,119, 68, 25,170,230, 86,109,108,108,242,251,246,237, 91, 14,128, 57,120,176,238, 0, 89,165,
- 82,233,236,192,173,173,173,191,220,177, 99,199,236,225,195,135,211,245, 67, 12,212,158,222,171,126,105, 52, 26, 28, 60,120,112,
-246,194,133, 11, 81, 82, 82, 50, 87, 95, 39, 46,175, 80, 64, 81,229, 8,253, 52,238,144,177,141,186,206, 83, 22, 54,174,104,218,
- 34, 64,103,103, 66, 11, 43,125,136,156, 61, 94,118, 96,150,150, 18,176,122, 56, 41,138, 78,121,158,158,213,196,221,197, 14, 79,
- 51,100,112,110,214, 14, 69,153, 47,203,129,207,231, 65, 80, 53,117,104, 99,101, 14, 89, 94, 30,104,154,167, 87, 24,127,189, 55,
- 26,183,227,158,227,240,133, 24, 48,202, 10,108,216,125, 22,140,170, 28,140,178, 2,140,178,242,125,245,194, 15, 64, 81,200,209,
-168, 42, 90, 55,166,222,249,124, 62,186,116,233,162, 83,232,100,102,102, 26,105,209, 34, 53, 22, 45,133,178,145,117,100,220,200,
- 73,175,197,170,250,252,235, 10,131,234,144, 15, 82,169,180,211,174, 93,186,195, 56, 52, 4, 23, 23,151, 51, 22, 22, 22,205,141,
-189,190, 17,193, 75, 87,219,216,216,124,233,227,227,227,187, 97,195, 6, 1,143,199, 67,191,126,253, 90,187,184,184,164, 1,128,
-159,159,159, 91,117, 27,243,241,199, 31,147, 91,183,110,197, 85,142, 49,116, 67, 36, 18, 61,178,182,182,238,212,167, 79, 31,148,
-148,148, 32, 35, 35, 3,230,230,230,104,187,110, 29, 30,126,252, 49, 2,183,110, 5,221,183, 47, 40,138,130, 72, 36,194,195,135,
- 15, 33,149, 74, 31, 41,149, 58, 67,190,117, 1,240, 45,128,238,120, 57, 93, 72, 0, 92, 71,101,216,133,219, 13,180,119, 52, 0,
-176, 28,103,168,178,198, 47, 88,176, 0,197, 2, 1, 48,116, 40,132, 41, 41, 96, 24, 6, 93,187,118,173,177,178,119,237,218, 21,
-124, 62, 31, 1, 1, 1,112,115,115,195,230,205,155,199,235, 19, 90,202,114, 6,105, 41, 47, 16, 28, 28, 92, 99,185, 26, 58,116,
-104,141, 69, 75, 32, 16,212, 88,182, 40,214,176,112,165, 40,138,212, 30, 36,179, 44, 75,241,249,124,254,220,185,115,169, 81,163,
- 70, 17,181, 90,205,137, 68, 34,250,240,225,195,212,229,203,151,249, 21, 21, 21,134,172, 13, 21,239,189,247,158,147,187,123, 83,
-100, 60,141,199,161, 67, 4,235,215,175,199,181,107,149, 81, 54,146,146, 42, 23,174, 86, 31,247,233,211, 7,205,155, 55, 7, 49,
-112,227,251,143, 24,131, 47, 6, 12,169,108, 79,154, 59, 66, 32, 20, 64, 36, 20, 98,193,163, 23, 53,117,109,181,107,191, 40, 34,
- 34, 98,180,143,143, 79,229,212, 62,192, 55,197,209,250,239,130, 1, 67,143,172,158, 72, 82,215, 58,150, 1,160,170,142,101,181,
- 4,149,140,162,168,187,132,144,206,245,174,173, 62,175,174,247, 94,125,254,193,107, 36,191,122,175,195, 87,196,151,190, 17,113,
-242,205,155, 55,189, 59,118,236,136,244,244,244, 87, 86,194, 85,119, 92,230,230,230,144, 74,165,184,113,227, 6, 0, 36,235, 34,
-187,124,249,242,247,168,140,186,140,170,105,131,224, 62,239,246,190, 17, 52,184, 51,246,134,239, 43,201,206,206, 14,192,203, 24,
- 58,148,155,155,219, 68,129,136, 63,214,203,223, 35, 4, 28,247,237,197,147,215, 87,232,203,161, 87,107,191,114, 0,138,234, 85,
-135,175,185,250, 16, 52, 77,143, 25, 62,124, 56,157,144,144,128,177, 99,199, 98,207,158, 61, 58,175,157, 56,113, 34,246,239,223,
-143,225,195,135,211,139, 22, 45,210, 25,222,161,174,181, 68,253,151,221,148, 73, 79, 30,224,215,253, 59,116,250, 32, 57, 57, 85,
-250, 99,229,229,229,215,124,215,185,163,254,153, 17, 78,171, 62, 31,125,239, 78,112,183, 94,253,132, 25,185,197,224,180, 42, 40,
-203, 94,254, 94, 94,156, 11,162, 85, 66,104,102, 7, 23, 7,107,220,191,249,187,154, 81, 43,207,235,227,156, 61,220, 15, 31, 15,
-243, 5, 8,135, 17,243,127, 70,212, 15,179,106, 70,208, 61, 70,205,193,197,131,223, 25,237,227, 87, 31, 2,129, 0, 15, 31, 62,
- 84,232,178,102,241,120, 60, 99, 98,114, 85, 89, 29, 53,144,203, 21,144, 43,148,127,101,219,225,232,236,236,252,163,173,173,173,
- 68,135,144,114,116,116,116,252,209,222,222, 94, 98,236,212,161, 46,145, 85, 21, 87,235,222,148, 41, 83, 26, 37,182,196, 98,113,
-243,228,228,228,154, 96,165,250,222,213,106, 53,250,244,233, 99,108,240,210,147, 0,158,185,186,186, 94,111,219,182,173,245,211,
-167, 79,177,111,223, 62,161, 64, 32,240,168,110, 63,202,202,202,192,227,241,144,151,151,167, 1,240, 62, 12, 76,157,169, 84,170,
-171, 87,175, 94,109, 63,108,216, 48,222,163, 71,143,192,227,241, 42,211, 21, 28,140,192,173, 91, 17, 55,119, 46, 66,158, 63,135,
-146, 97, 32,145, 72,112,238,220, 57, 70, 46,151, 95,213,197, 39,149, 74,183,167,166,166,250, 73, 36, 18, 48, 12, 3,142,227, 64,
-211, 52,197,231,243,123,216,216,216,108, 2,208,185, 94,101, 57, 5,118,238,211,134,213,106,217,236,244,167, 50, 67, 5, 80, 80,
- 80,128,147, 39, 79,162,107,215,174, 8, 9, 9, 65,102,102, 38, 82, 82, 82,240,214, 91,111,213, 92,243,224,193, 3, 68, 71, 71,
-163,101,203,150,134, 45,122,180, 6, 45,219, 52,135, 80, 40,172,180,230, 8,132, 85, 3, 31, 65,141, 37, 75, 40, 16, 66,192, 23,
- 64, 34,149, 24,109,209,162, 40, 10, 52, 77,131,162, 40, 72,165,210,234, 65, 54,215,180,105,211,236,194,194, 66, 87, 0, 60,169,
- 84, 10,150,101,245, 14, 90, 56, 66,188,133,249, 55,178,230, 47, 92,235, 20, 30,126, 1, 23, 46,228,129,166,105,184,186,186,130,
-166,105,164,166,166,130,166,105,120,122,122,130,166,105,100,102,102, 86,139,196, 34,232, 22,195, 53,207, 13, 69, 81, 53, 34, 75,
- 40, 18,214, 88,182, 0,160,184,184, 88, 57,124,248,240,223, 84, 42,213, 84,188,222,174, 39, 38,252,141, 65, 81,212,221,255,196,
-111, 27,129,161, 85,194,234, 21,167,120,125, 55,227, 91,221,186,117,219, 58,110,220,184,126, 27, 55,110,132,133,133, 5,178,179,
-179,107, 58, 68,145, 72, 4,119,119,119, 20, 22, 22, 98,219,182,109,120,241,226,197, 37, 0, 51,140, 77, 81,118,118,246,173, 39,
- 49,201, 5,125, 70,119,179,247,235,214,198, 38, 35,249, 69,215,236,236,236, 27, 85, 34,235,231,113,243,222,154,218,103,100, 16,
-132, 34, 1, 50,158,228,224,226,201,235,255, 47,149,201,227,241,120, 20, 69, 97,236,216,177, 70, 93,255,222,123,239,225,234,213,
-171,208, 55,205,200, 85, 91,180,228, 74, 84, 40,254,186,129,213, 39,179, 38,226,147, 89, 19,107,196,132, 49, 83, 47, 0,224,230,
-118, 64,143, 95,191, 93,233, 0, 0, 32, 0, 73, 68, 65, 84,208, 98, 54, 70, 29,216,246, 97,135,160, 96,207, 78,126,205,113,251,
- 94, 12,246,110,125,105,100,216,249,253, 74,124,179,243, 18,220,157,109,193,168, 42,112,230,208, 79, 57,140, 74,190,241, 53,141,
-114,149,226,150,162, 64, 8,215,168,188, 87,139, 39,129, 64, 0,127,127,127,157, 22,173,194,194, 66,133, 33,107, 86, 77, 29,169,
- 53, 40,175, 80, 64, 33,255,203,132, 86, 96,143, 30, 61,206, 71, 70, 70,218, 59, 57, 57, 33, 43, 43,171,190,208, 10,236,222,189,
-251,249,200,200, 72,123,103,103,103,100,100,100, 24, 29, 86,164, 1,145, 5,153, 76, 70, 21, 21, 21,113,182,182,182,141, 18, 91,
- 52, 77, 67,165, 82, 33, 49, 49,209,216,191, 53,122, 53,151,181,181,245,174,253,251,247, 91,231,231,231,131,199,227, 33, 49, 49,
-177,206,170,195,234,215,207, 63,255, 44, 28, 49, 98,196,142,226,226, 98,189,203,218,180, 90,237,250,137, 19, 39, 78,203,204,204,
-180,117,114,114, 66,118,118, 54, 68, 34, 17, 8, 33,160,250,244, 65,207,103,207,192,176, 44,164, 82, 41,146,146,146,176,125,251,
-246,138,170, 80, 49, 13, 26,200, 40,138,242, 22, 10,133,152, 48, 97, 66,157, 19,187,119,239,198,219,157,120,157, 28,173,249,229,
- 90, 72, 84,185,210, 33,103,120, 60, 30, 21,216,165,111,235, 46,189,134,250, 63,142,187,253, 84,150,251,194, 80,163,164, 81,171,
-213,240,241,241,193,221,187,119,113,225,194, 5,244,237,219, 23, 33, 33, 33,136,141,141,197,239,191,255,142,232,232,104, 80, 20,
- 5,123,123,251,106,247, 11,189, 62, 24,106,185, 22,121, 89, 5,175, 88,175,234, 31, 11,133, 66,168, 20,198, 45,238,123,244,232,
- 17,238,222,189, 91, 19, 90,134,199,227,105, 39, 77,154, 4, 66, 8, 73, 77, 77,133,165,165, 37,153, 50,101, 10,203,231,243,181,
-153,153,198,249, 7, 91, 88, 88,192,219,219,187,206,192,167,250,213,179,103, 79,220,187,119, 15, 52, 77,131,207,231,195,201,201,
- 9,215,175, 95, 55,120,227, 87,139,170,106,145,197, 23, 10,234,136, 62,142,227,202, 98, 99, 99, 63, 4, 16, 91,101,201, 2, 76,
-113,180, 76,248,255,195, 41,188,186,177,180, 65,139,214, 51, 0,253,247,237,219, 55,254,216,177, 99,235, 55,109,218,228, 24, 26,
- 26,138,162,162, 34,120,122,122,194,213,213, 21, 81, 81, 81, 56,125,250,116, 62,203,178,243, 1, 52,100,250,233, 15, 61, 49,107,
- 50,159,102, 71,170,202,203, 63,238, 24,226,139, 75, 7,255, 8,119,113,113,153,193,227,241, 62,157,178,248,157,169,189,135,119,
- 70, 82,116, 42,110,253,254, 16,185,233,249, 6, 57,235, 59,195,219,216,216, 76, 51, 51, 51, 19,161,129,165,196, 13,172, 58,172,
-225,100, 89,150, 85,171,213, 56,112,224,128, 81, 98,107,223,190,125, 80, 42,149, 96, 95,157, 95,173,225, 36, 28,161,248, 2, 49,
-220,220,125,192, 48, 21,224,184,215, 94, 80, 89,195, 89, 61, 2,125, 42, 18,193, 41, 63, 31,183,111,223, 54, 78,114, 15, 29,106,
-168,142,148,106,101,217,132,239, 86, 45,136,154, 25,246,173, 77,223,110,237,241,197,186,221, 96,152,157,160,121, 52,164, 98, 33,
- 58, 6,117, 7, 15, 42,252, 24,241, 89,177,188,180,104, 2, 94,221,138,167, 14, 39,209, 55,195, 66, 0,150,227,112,225,218, 29,
-163,243, 94,107,154, 3,124, 62, 31, 79,158, 60, 81, 52,180,218,144,199,171,156,230,172, 30,169,235,227, 36, 28, 71, 9,132, 18,
-184,123,182,133, 90, 85,254,151,212,145,147,147,211,103, 71,143, 30,181,175, 14,149, 16, 27, 27, 11,138,162, 18, 95, 90, 28, 43,
-207, 43, 20, 10,196,197,197, 33, 54, 54, 22,168, 92,225,102,244,115, 84,109,201,146,201,100, 84,118,118, 54,204,204,204,232,216,
-216, 88, 85, 64, 64,192, 61, 3,207,119, 13,167, 82,169,124,174,203,127, 82,169, 84, 54,145, 72, 36,130,122, 29,158, 91,171, 86,
-173,146, 26,152, 66,124, 37,157, 37, 37, 37,183, 23, 46, 92,216,113,240,224,193,248,236,179,207, 10,109,109,109, 45,127,252,241,
- 71, 62,143,199,163,102,206,156,201,230,229,229,149,255,244,211, 79,214,199,142, 29, 67,113,113,241, 13, 35,242, 94,166, 84, 42,
- 63,236,214,173,219,238,179,103,207,154,121,123,123,163,180,180, 20,132, 16,236,218,181, 11, 51,103,206,132, 68, 34, 65, 82, 82,
- 18,222,126,251,109,185, 92, 46,255, 16,175,250, 78, 86,115, 82, 20, 69, 17,142,227,176,108,217,178,154,224,164,213,193, 74, 45,
-165, 20,182,207,107, 97, 62,231,167, 18,243,241, 95,252, 52, 9, 0, 88,173,150,125, 28,119,251,233,174, 31,190,184, 44, 20, 10,
-175, 25,168,163, 37,115,230,204,249,113,232,208,161, 82, 11, 11, 11, 20, 22, 22,226,250,245,235,184,121,243, 38,110,221,186, 5,
-181, 90, 13,123,123,123,216,218,218, 34, 59, 59, 27,143, 30, 61, 82, 0, 88,162,143, 83,100, 38,128, 87,235,234,149,191,149, 22,
- 44, 65,173,213,134,181,173, 91, 66,129,192,168,231,168, 87,175, 94,232,210,165, 75,181, 88, 97,211,210,210,178, 85, 42, 21, 85,
- 75,244,103, 86, 11,114, 15, 15, 15,237,158, 61,123,136, 33, 78,142,227, 94, 17,211, 61,123,246,172, 25, 20,118,233,210, 5, 60,
- 30, 15, 49, 49, 49,186, 92, 83,234,112,222,218,190, 25,103,191, 90, 2,145, 80,136,249,137, 25, 53,162,107,119,223, 14, 16,136,
-132,240, 29, 54,170,246,111,183,160,114,186, 16,245, 68,150,190,254,232,141,159,119, 19,231, 63, 30,217,120,141, 45,120,170,177,
- 87,169, 84,158,249,224,131, 15, 34, 2, 3, 3, 63,216,176, 97, 3, 37, 20, 10,177, 98,197, 10,146,149,149,245, 75,213,136,161,
-232,117, 82, 69, 8,249,229,202,145, 27, 31, 77, 14, 27, 78,205,219, 56,165,199,189,139,113,143,218,117,243, 70,187,110,222,184,
-119, 41, 1, 63, 44,222,183,135,213,176,203,114,114,114,210, 13, 80,169,250,119,111, 83,223, 25,222,254,234,229,139,246,141, 93,
-117,200,113, 92,228,190,125,251,102,143, 28, 57,146,190,115,231,206, 43, 62, 89,213,219,238,112, 28,135,243,231,207,131, 97, 24,
-252,242,203, 47, 28,199,113,186,227,104,129, 28,255,110, 99,196,228, 95,126, 61, 46, 18, 9, 41,220,188,118, 24, 37, 69,250, 87,
-117, 9,133, 2,252,188,235, 8, 35, 20, 10, 30, 55,116,158, 97,152,140,139, 23, 47, 58, 15, 98, 89, 1, 77,211, 13, 9,168, 6,
- 17, 25, 25,169,225, 56, 46,205,192,101, 55,114, 95,164, 15,251,250,179,247,247, 13,125,247, 3,231,110,221,122, 8, 28,156,156,
- 65, 81, 20,242,114,243,144, 20,119, 71,115,230,240,142,220, 10,185,113, 91,240,188,191,246, 74,141, 79, 22, 0,132,206,220, 84,
-227,159, 5, 0,195,166, 44, 68,159,174,126,160,140, 49, 61,189, 20, 89,156, 86,171,133,185,185, 57,180, 90,109,131, 33, 30,172,
-173,173,165, 74,165, 82, 81, 21,136, 81,239,136,153, 0,127,121, 29,177, 44,235, 91, 84, 84,132,138,138, 10,220,188,121,147,172,
- 90,181, 74, 38,147,201,106,156, 54, 53, 26,141,111, 97, 97, 33,202,203,203,113,227,198, 13, 18, 17, 17, 33, 43, 40, 40, 88,220,
-152,103, 72, 42,149,118,226,243,249,247,138,138,138, 56, 51, 51, 51, 90,163,209,104, 2, 2, 2,196, 82,169,212,232, 13,213,179,
-179,179, 7,235, 58,231,229,229,149,156,156,156,220,138,101,217,218,123, 32, 10,149, 74,165,119,183,110,221,140,105, 63,230,236,
-220,185, 19, 71,142, 28, 9, 42, 45, 45,157,152,150,150,182, 27, 64, 16,159,207, 71, 76, 76, 76,162, 82,169, 28, 55,114,228,200,
- 93, 69, 69, 69,183, 81,185, 5,143, 49, 56,155,148,148, 52,193,215,215,119,231,151, 95,126,105, 17, 18, 18,194,119,115,115, 67,
-231,206,157,145,148,148,132, 83,167, 78,105,182,108,217, 82, 33,151,203,223, 7,112, 94,127,181,131,210,106,181, 16,137, 68, 53,
- 47,177, 88, 12,161, 80,136, 50, 5,193,244,117, 41, 10, 45,164,138,245, 43, 62, 60, 69, 0, 42, 39, 35, 37, 63, 47, 39,227, 54,
- 69, 81,215,178,179,179, 75,116,148,153, 72,169, 84,182, 39,132,240, 40,138,218,200, 48,204,148, 89,179,102,185,174, 94,189, 26,
-109,218,180, 65,126,126, 62,204,205,205,225,237,237, 13,153, 76,134, 59,119,238,176,114,185,124, 43,128,149,168,242, 31,209,133,
-226,252, 82, 52,117,241,168, 99,249, 36,132,128,176,128, 70,197,130,101, 8,212,148, 6, 2,129, 6, 66,161,208,152, 41, 21,194,
-113, 28,138, 92, 93,193,197,197,225,214,173, 91, 32,132,232,180,170,249,248,248, 24,101, 33,101, 89,246, 21,161,117,251,246,109,
-240,120, 60,244,232,209, 3,209,209,209, 53, 22, 45,163,252, 18, 9, 7,145, 88, 84,103,186,144,162, 40, 8, 69, 34, 8, 68,194,
-134, 86,227,152,172, 88, 38,252,109, 96,236, 60,118, 49,128, 25, 15, 30, 60,216,221,187,119,239, 40, 66,136, 0,149,243,145,127,
-188,201,159,231,228,228,220,191,113,234,254, 34,231,166,182, 17, 67, 38,246, 64,155,246,158, 96,181, 44,174,159,142,193, 47,171,
-143,237,207,204,200,156, 2, 35,246, 62,227, 56,238,114,247, 78,109,104,212,138,213,237,230,230,198,189,206,170,195,146,146,146,
-229,243,231,207,199,103,159,125,246, 58,171, 14, 27,196,195, 71,178, 25, 20, 72,211, 97, 67,122, 14, 2, 69, 19,181, 90,165,167,
-225, 67, 77,228, 82,161, 80,240,248,110,108,118, 64, 67,215,201,100,178, 65, 83,167, 78, 61,207,231,243,155, 55,166,204, 57,142,
- 75,203,205,205,237,103,248, 74,237,117,149,162,212,251,228,254,109,115,207, 30,217, 57,136,227,216,150, 20, 0, 30, 95,248, 84,
-195, 48,231, 84,138,210, 13, 48,114, 83,233, 53, 51,130, 49,231,187,223,177,249,179, 97,152, 21,113, 16, 59,150, 77,199,162,117,
-251,240,237,103,115,176,106,211,111,248, 98,206, 4,140, 30, 63,149, 35, 20,253,167,177,249,224,241,120,103,183,109,219, 54,121,
-250,244,233, 53,139, 22, 8, 33,117, 26, 97,141, 70,163,224, 56, 14, 91,183,110,229, 0,156,213,199, 87,183,142, 40,162,207, 95,
-202,216, 58, 42, 45, 45,125, 63, 56, 56,120, 23, 0, 49, 33,228, 73, 81, 81,209,191,128,151, 91, 67,149,151,151,191,223,173, 91,
-183, 93,132, 16, 49, 69, 81,175,156, 55, 6, 85,161, 30, 58,217,218,218,222,171,178,100,137, 95,199, 33, 94, 95, 81,235,153, 86,
- 52,102, 10,145, 3, 48,171, 86,196,247,213, 65, 65, 65,181, 55,149, 78, 44, 42, 42,234,244, 26,233, 58,175, 80, 40,252,150, 45,
- 91, 54, 87, 34,145,244,145,203,229,173, 1,192,220,220, 60, 73,165, 82, 93, 86, 40, 20, 27, 96, 56, 54,149,154,227,184, 36,173,
- 86,235,239,232,232, 88,185,162,182, 74,108, 1,192,137,123,236, 61,128,237, 92,105, 20,223,107,116,194, 78,159, 62,221,204,214,
-214,118, 32, 69, 81,163, 9, 33, 62,101,101,101,170,101,203,150,221,136,140,140, 44,105,222,188,249,144,161, 67,135, 82,118,118,
-118,184,123,247, 46, 41, 40, 40, 56, 12, 96, 49,140, 88,105,205,113, 92,218,154, 53,107,208,216,231, 93,223,121,134, 97,114, 78,
-159, 62,237, 48, 56, 47,143,207,113, 28,134, 13, 27, 86, 71,192,213,199,227,199,143,161, 82,169, 12, 6,115, 44, 46, 46, 70, 80,
- 80, 80,157, 1,106,245, 43, 45, 45, 13,118,118,118,117,254,199,208, 24, 75, 85, 82,132,190,115, 23, 2, 85, 43, 74,171, 81,105,
-201, 34, 32,106,147,174, 50,225,239,139,127,247,230,155, 70,153, 22, 93, 93, 93,199, 74,204,197,159,120,182,118, 13,200, 74,201,
- 75, 40, 43,145,239,201,206,206,222,166,163, 33, 55,138,179,145, 1, 75, 77,230,223,127, 19,231,203, 56, 90, 44, 8, 97, 65, 56,
- 2, 66, 56,112, 28, 91,185,225, 53,225, 64, 88,150,162, 40,252,169, 86,232,141, 12, 94, 63,157,182, 14, 14, 14, 43, 9, 33,131,
-121, 60, 30, 93,187,161,174,253,185,202,146,117, 86, 38,147,125,209,128,229,245,191,174, 60, 35, 35, 35, 27, 20,255,198,174, 58,
- 28, 51,102, 12,219,200,103,243,178,185,185,185,107, 67,231, 42, 42, 42,210,179,179,179, 7,254, 77,202,179,246,138,193,198,112,
- 54,122,213,161, 33, 78, 79, 79, 79, 49,195, 48, 29, 0,120, 83, 20,101, 3,160,144, 97,152,115,249,249,249,185, 0, 58, 1, 88,
- 86,245,155,175, 0,220,251, 15, 63,239, 82, 7, 7,135,157, 52, 77, 55, 53,230,199, 90,173, 86, 93, 88, 88, 56,185,222,128,224,
-229, 20, 60,192,147, 8,133,119, 64,211, 77, 26,122, 30,117,125, 6, 33,153, 21, 10, 69, 16,245,178,205,175,225,180,183,183,191,
-199,231,243,155, 26,145,182, 23, 5, 5, 5,157, 76,109,242,127, 53,231,127, 51,234, 59,193,235,140, 20,255,239, 16, 90, 38, 78,
- 19,167,137,211,196,105,226, 52,113,154, 56, 77,156,255,235, 66,171,193, 99,211, 18, 88, 19, 76, 48,193, 4, 19, 76, 48,193,132,
- 55,195,169,122, 98,235, 84,245, 7, 74,143, 42,109,140, 73,240,117,148,237, 5, 19,167,137,211,196,105,226, 52,113,154, 56, 77,
-156,255, 56, 78, 19,254, 66,152,204,170, 38, 78, 19,167,137,211,196,105,226, 52,113,154, 56,255,215,161,115,234,144, 54,149,141,
- 9, 38,152, 96,130, 9, 38,152, 96,194,191, 7, 70, 11, 45,115,103, 31, 95, 7,207,128, 93,182, 77,219,197,218, 54,109, 23,235,
-224, 25,176,203,220,217,199,247, 31, 90,110, 82, 0,227,249,124,254,121, 23, 23,151, 82,232,216,122,231,127, 0, 86, 0, 70,163,
- 50,190,207, 8, 0,102,127, 37,121, 8,192, 31, 11,124, 50, 9, 72,159, 4,164,143, 5, 62, 9,249, 31,244, 27, 92, 49,219, 53,
-248,218,153,241,103, 86,204,118, 13,110,240,252,124, 87,251, 91,191,143,249,110,245, 39,110,118,127,209, 95, 90, 58, 57, 57,109,
-119,118,118,126,238,228,228,148,230,228,228,180, 19,128,181,169,185, 51,193, 4, 19, 76,248,183,161,218, 71,171,250, 85,227,163,
-197, 7,128,168,168,168, 16, 0, 87, 0,244, 14, 13, 13,189, 90,255,215,182, 30,254,211, 91,182,104,249,217,215, 43, 22, 83, 46,
- 78, 14,102, 90,150, 99, 82,159,103,180, 93,254,117,196,161, 44, 17,127,125, 81,122,220,142,215, 72, 20,197,227,241,198,138,197,
-226, 80, 0,213,130, 45, 81,165, 82, 69,177, 44,123, 0,198, 45,211,134,179,179,243, 53, 30,143,215,172, 49,127,204,178,108,122,
-110,110,110,143,215, 44,204, 49, 30, 30, 30, 59, 67, 66, 66,204,130,130,130, 32, 18,137,176,108,217,178,249,217,217,217, 27,140,
- 37,176,181,245,178,100,196,146, 79,249, 34,209, 0,162, 81,251, 19, 16,128, 22,199,113, 90,213, 69,161, 74,181,190,168, 40,165,
-204, 72,170,197, 0,166, 84,149,213, 14, 0,107,222,228, 46,153,220, 30, 26, 13, 91,121, 79, 8,249, 96,143, 63,179,190,178,100,
-201, 18,126,104,104, 40,118,236,216,209, 99,251,246,237, 31,150,149,149, 93, 4,112, 2,192,211, 55,189, 43,157,129, 25,221,122,
-244,248,110,242,252,249, 60,197,181,107,248,110,231,206,141,168,140,183,180,185,177,247,146, 80,136,209, 14, 14,130, 80, 66,208,
-129, 2, 40, 10,136,145, 21,112,167, 25,134, 61, 0, 35, 98,177,233,193,120,212, 93,142,191,183,177, 4, 37, 79,201, 82,241, 48,
-223,158, 37, 79, 47, 47, 5, 48,164,254,121,173, 82, 50,153,240,220, 67, 21, 36, 58, 3,192,186, 55, 44, 86, 51, 71, 71,199,216,
-227,199,143, 55, 13, 10, 10,226, 3,192,189,123,247, 38,133,134,134,246,149,201,100,254, 0, 74,255, 67,141,144,132, 79,211,159,
-136, 4,130, 1, 44,203,182, 3, 0, 30,143,247, 80,173,209,156,215,114,220,102, 24, 25,147,205, 4, 19, 76,248,223,133, 33, 45,
-242, 55,135,206,200,240,213,153, 35,181,223,107,195,220,169, 77,219,174,253, 70, 61, 46, 41,147, 43,159, 63,207, 44,154,247,201,
-170,243, 31,206, 89,123,108,221, 79, 81,167,175,222, 78,188,229, 27, 52, 48,193,220,169, 77, 91, 29,212,186,230,112, 61,164, 82,
-233,253, 45, 91,182, 48, 73, 73, 73,164,184,184,152, 60,126,252,152, 28, 62,124,152,124,244,209, 71, 74,169, 84,122, 31,128,135,
- 49,156,206,206,206,185,143, 47,253, 78, 94,196, 70,147,180,123,183,137, 70,163, 33, 12,195, 16,134, 97, 72,194,217, 40, 18,123,
-226, 8,137, 57,124,128,168,213,106,162, 86,171,137, 74,165, 34, 45, 90,180,200, 50, 50,157,245,225,230,231,231,167,142,138,138,
- 34,135, 14, 29, 34,243,231,207, 39,129,129,129, 44,128,153,198,230,221,220,201,187,143,101,147, 0,217,244,176,205,204,169, 27,
-231, 72,252,179, 24, 18,255, 44,153, 68, 94, 72, 36, 83, 22,108, 98, 44,155, 4,202,204,157,188,251, 24,202,187,173,173,109, 87,
-138,162, 72, 53, 0,144,102,205,154,149,215,126,121,120,120,212,121,185,187,187,151, 55,111,222,252,169,189,189,125,135,134, 56,
-199,181, 3, 33, 9,123, 9, 73,216, 75,150,244, 2,137,143,143,191, 69, 8,185, 82,253, 82, 40, 20, 87,142, 30, 61,122,229,157,
-119,222,185, 2,224,109, 61,229,100, 84,121, 78, 2,210,203,142, 31, 39,100,195, 6, 66, 66, 66, 72, 34, 64, 38, 1,233,141,228,
-108,225,226, 34,136, 89,187,230, 67,245,241,227,191,144, 51,103, 78,145,211,167,163,200,177,163, 59,201,198, 13,159, 48,206,206,
-130, 56, 0,173, 26,193,201, 7,176, 10,192,122, 84, 90, 46,147,100, 50, 25,201,201,201, 33, 0,146,170,190, 91,239,232,232,184,
- 14, 13, 91,223,250,215,182,100,205, 29,236,114,230,221, 33, 61, 72, 89, 73, 22,121,119, 72, 15, 50,119,176, 75, 29,203,214, 96,
- 47, 47,203, 89,195,218,201,226,239,237, 97,103, 13,107, 39, 27,236,229,101,249,154,229, 73,161,114,159,208, 45,151, 46, 93,210,
-146, 90,208,104, 52,100,247,238,221,172,173,173,237, 47,141,224,108,237,232,232,152,102,103,103,151, 84,251, 75,199,128, 17,221,
-124,122, 78, 90,110,223,246,157,144, 70,164, 51, 72, 34, 20,190, 56,127,240, 71,182, 32,253, 33, 81, 43,114, 73,201,147,104,242,
- 34,241, 22,217,189,109,189, 70,196,231,191, 0, 16,244, 38,247, 82, 35, 97,226, 52,113,154, 56,255,134,156,250,180,200,127, 51,
-248,245, 51, 88, 31, 98,177, 40,108,249,146,133, 84,113, 65,177, 66, 89, 90,166,214, 40,149, 74, 90, 72,148, 15, 19,158,229,209,
-124, 94,241,220, 57,179, 45,195, 22, 45, 9,171, 0, 38, 24,249,159, 30,129,129,129,119,142, 28, 57,226,100,103,103,135,146,146,
- 18, 20, 20, 20,224,206,157, 59, 32,132, 96,228,200,145,226, 46,157, 59,119, 88,186,108,217,205, 23,153,153,193,208,221,241,190,
- 20, 47,118, 14, 88,211,163,114, 47,218, 47,158, 23, 84,246, 58, 20,133,237, 99, 66,107,174, 89,249,162,114,183, 12,137, 68, 82,
-179, 33,241,107, 32,184, 95,191,126, 66, 0,152, 54,109, 90,105, 89, 89, 89,120,149,133,195,168,157, 86,205,157,188,251, 56,184,
-186, 69,253,184,117,141,180, 93, 75,111, 48, 26, 45,210,114,178,192, 23,216,160,105, 83, 33,166, 78, 24, 32,232,213,205,206, 97,
-213, 87,219, 79,229,112, 24, 33,207, 79, 62,167,139,203,198,198,102,247,129, 3, 7,112,240,224, 65, 0, 64, 82, 82, 18,188,189,
-189,205, 13,165, 33, 46, 46,206,235,237,183,223,222, 95, 80, 80,208,202,208,181,245, 3,227,139,197, 98,244,232,209, 3,109,219,
-182,197,241,227,199,123, 87, 89,182,222, 8,138,107,215, 96,241,224, 1,112,245,181, 6, 47, 45, 58,118,244,188,117,250,212, 30,
-135, 83,167, 19,177,110,221, 78, 60,125, 90,105,104,243,242,242,194,248,113, 99, 4, 15, 31,222,240, 27, 61,122,252,141, 63,254,
-120,218,163, 74, 40, 25,194,151, 63,253,244,211,226,230,205,155, 99,244,232,209, 99,252,252,252, 92,172,172,172,176,109,219, 54,
-184,186,186,122,169,213,234, 39,199,143, 31,119,203,201,201,193,236,217,179,145,155,155, 59, 95, 23, 81,239, 65,189,151,138,135,
-249,246,108,211,113, 50, 44,172, 92,241,211,190, 3,120,124,127,119, 79, 21,147,184, 84,200, 94,157,168, 32,226, 41,178,116,139,
-176,102,157, 66,236, 91,249,189, 13,207,142,209, 14, 74,246,143,103, 75, 7,180,136,224, 75,148,187, 87,172,203, 46,120,133,116,
-116, 36,207,191,244,145, 93,220,121, 20, 0, 43,184,106,129, 85, 99,173, 37,120,187, 87,175, 94, 53, 21,247,252,249,115,168, 84,
- 42,248,250,250,210,106,181,186,143,145,229,218,122,224,192,129,127,158, 62,125,218,190,117,235,214,178,194,194,194,154, 19, 46,
-246, 54,131,174, 30,217, 56,123,213,119,191,249,252, 74,168, 98, 89,226,177,135, 6,184,130,186,119,237,120,225,204,145, 61, 22,
- 84,121, 6, 68, 54,249, 0, 87,128,148,253, 63,131, 50,179,195,216,143,230,241,251,244,235,219,100,192,144, 81, 23, 30, 39, 63,
-237, 7,224,174,105, 92,111,130, 9,255,104,171, 22,249, 95,203, 83,141,208, 10, 13, 13,165, 26,202, 32, 71,184, 0,103, 39,123,
-233,198,181,187,238,242, 24,181,218,220,198, 90, 45,176,182,226, 40, 75,107, 30,163,214,148,123,122,121,138, 56,194, 5,232,224,
-175,191,196,147,146, 74,165, 71, 78,156, 56,225, 36, 16, 8,192,113, 28, 28, 29, 29,145,154,154,138,226,226, 98,148,149,149,225,
-105, 98, 34,154,123,184, 99, 69,216, 66,215,217, 11,195,142,200,229,242, 78,168, 59,141,248,202,178, 81, 86, 83,119,223,232,234,
- 45, 88, 94, 25,242, 87,125,215,192, 57, 99,151,162,166,166,167,167,195,194,194, 2,254,254,254, 22,215,175, 95,255, 67,143,200,
-170,195,105,107,235,101,201,137, 69, 7,183,252,184, 76,202,104,226,144,144, 82,136, 54,205,123,194,217,222, 3, 89,133,106,220,
-186,115, 2,113,177,123,209,178,137, 7,102,126,212, 87, 18,177,230,208, 1,161,182,185, 71,113,113,106,105, 67,156,165,165,165,
- 22, 45, 90,180,128,135, 71,229,190,103, 44,203, 34, 33, 33, 1, 44,203,214, 28,215,126,223,117,248, 18,180,165,105,152, 60,105,
- 18, 10, 10, 10, 44, 26,226, 20,240,160,157,247,225,120,190, 84, 0,136,204,237,212,229,229,229, 53,219,112, 48, 12,131,152,152,
- 24, 4, 7, 7,135, 68, 70, 70, 26, 82, 69, 70,149, 39, 3,124,251,221, 47,191,108,154, 80, 82, 66, 3,192, 14,138,226, 24, 66,
-190, 53,246, 94,114,114, 18, 28, 62,123,230, 87, 7, 30,253, 8,118,214,223,224,206,157, 52, 48, 76,101,122, 11, 10,242, 48,235,
-147, 82, 8, 5,150, 56,126,252, 55,123, 95,223, 30,135,115,114, 24,127,212,157, 70,108, 40,157,146, 51,103,206, 96,214,172, 89,
- 72, 72, 72,112,171,222,163, 77, 42,149, 98,237,218,181, 60, 95, 95, 95, 55,115,115,115,156, 61,123, 22,185,185,185,148,190,116,
- 94, 57,119,229,235,146,167,151,151,230, 80,103, 7,255,180,239, 0, 62, 24, 55, 22, 46, 36,229, 15,235,150,212,215, 3,135,117,
-255,130,240,220, 67,205, 45, 3,108,189,253,135, 65, 40,178,192,204,207, 87, 34, 41,238,164,173,188, 44,246, 19,138,205,112, 95,
-177, 46,114,206, 43,233, 60, 52,134,157,182,247,122,199,243, 30,119, 61, 31,196,124,120, 59, 59,122,123,236, 75,161,229,197,167,
-104,214, 26,168,220,214,228,201,147, 39,120,250,244, 41,248,124, 62, 20, 10, 5,180, 90,109,131,233,116,115,115,155,161,213,106,
-191,168,170,231, 93, 18,137,228,253, 61,123,246,216,215, 22,218,142, 1, 35,186,217, 91,154,247,203,205, 43, 40,186,113, 55,254,
-241,188, 25,163,123, 95,187, 21,151,193, 8,222, 73, 47,137, 61, 94,162,163, 60, 37, 82,145,232,240,217,163,191, 89,104,158, 93,
-130,185,111,111, 8, 44,188,193,106, 50, 33, 47,170, 64,217,211,108,168,126,252, 1,237, 63,153,139,147,199, 14, 89,248,181,235,
- 20,169,210,104,188, 1,168, 95,227,217,108, 12, 76,156, 38, 78, 19,231,223,147, 83,167, 22, 33,132,116, 4,224, 92,117, 88, 80,
-165, 11, 28, 0,228,163,114, 71, 1,231,170,182, 67, 84,235,103,245,143,107, 95, 91,255,184,246,231,130,170,207, 78, 85,239,119,
- 41,138, 42, 52,144,116, 87, 84,110, 77,120,170,234, 29,168,154, 74, 52,232,120, 76, 81,116, 41,203,114, 98,161,163,147,114,218,
-187,253,218,253,126,225, 94,140,153,131, 21,127, 80,239, 14, 33,119, 30, 62,187, 73,209,148,134,162,104,163,252, 62,120, 60,222,
-216,141, 27, 55,182,179,178,178, 2,199,113,176,182,182,134, 76, 38,131, 90,173, 70, 73, 73, 9, 84,101,165, 96,202, 74,241, 32,
-227, 57,186,135,244,198,168,193, 3,125,127, 59,118, 98, 44,203,178,251,245,241,186, 5,116,168,177,100,173,108,102,255,210, 52,
-145, 81, 92, 35,186,190,233,224, 13,161,133, 5, 6,204, 11,123,147,123, 32,250,212,169, 83,103, 70,142, 28, 57,100,193,130, 5,
-116,118,118,246,217,212,212,212,238, 0, 18, 12,138, 10,177,228,211,143, 63, 13,181,181,181, 32,136, 60,127, 2,189, 58,140,131,
-153,136,135,130, 82, 6, 20, 5, 36,198, 31, 1, 69,217, 33, 54, 41, 27, 61,219, 91, 97,224, 32, 95,139, 99,135, 18, 23,224,165,
-127,208, 43, 85, 83, 84, 84,132,188,188, 60,104, 52, 26,104, 52, 26,140, 30, 51, 6,191,238,222,141,138,138, 10, 40, 20, 10,168,
-213,106,176, 44, 11,154,166,113, 62, 42, 18, 25,207, 18,209, 45, 56, 24,208,177,245,210,238, 24, 8, 0,220,122,252,248, 49, 18,
- 19, 19,241,226,197, 11, 72, 36, 18,184,184,184, 96,229,202,149, 80,169, 42,247, 19, 27, 51,102, 76, 8,128,135,111,250, 64, 61,
- 5,182,167,178,236,210, 33, 71,143, 58, 93, 63,122,148,187,117,242,228, 11,113, 89,217, 54, 99,126, 43, 20, 98,244,154,111, 63,
-106, 99,110,110,142, 23,233, 27,225,227, 35,196,252,185,246, 8,255, 38, 31, 0, 48,123, 86, 83,116,238,228,128,210,226, 67,112,
-112, 90,140, 77,155,230,180,156, 50,101,253, 36,185,156,221,101,128,122,233,137, 19, 39, 70,121,123,123, 55,137,142,142,166, 68,
- 34, 17,164, 82, 41,164, 82, 41, 36, 18, 9,242,242,242,144,154,154, 74,214,172, 89,147, 9, 96,169, 62,162, 21,155,178,111, 2,
- 24, 50,119, 48,206, 60,190,191,187,103, 19,222,179, 7,163,102,246,120, 30,123, 43,186,236,247,243,215,191,210, 42, 37, 25,197,
- 47, 46, 44,108,209, 57,218,225,147,207,190,196, 15,107,150,227,241,237,107,133,206, 30,165,155,165,148,170,193,116,134,132,172,
-224,187, 58,219,105,103, 76, 25,101,115,210,249,198,140,211,124, 74,150,147,127,127, 45, 82,163, 21,226, 86, 29, 38,182,246,162,
-213,151, 46, 93,146,246,234,213, 11, 74,165,178,198, 50,185,103,207, 30, 78,171,213, 94,110,240,222,100,152, 47, 50, 51, 51, 93,
- 21, 10, 5, 6, 15, 30, 60,123,237,218,181,230,213,251,201,177, 44, 91,199,146,245,245,134, 95,207,125,250,197,230,203,231,246,
-127,227,246,117,216,251,189, 39,204, 92,117, 25, 58,246,145,228,211,244, 39, 39,143,238,116,145,216,106, 32,181, 27, 8,101,174,
- 2,143,183,127, 0,121,169, 18,157,191,254, 18,128, 8,106, 13,141,109,195, 70, 67, 96,239,134,229,211,223,119, 91,178,237,167,
-143, 56,142,219,104, 26,215,155, 96,130, 9,245,224, 76, 81, 84, 20, 0,132,133,133, 45, 14, 15, 15,143,167, 40, 42,138, 16, 18,
- 90,101, 64,137, 34,132,132, 86, 95, 83, 37,206, 94, 57,174,190,182,254,113,253,207,139, 22, 45,242,139,136,136, 88, 29, 28, 28,
-188,255,198,141, 27,207, 0, 24, 18, 90, 67,171,132,213, 43, 91,239,208,213, 10,178,246,123, 29,139, 22,199, 93,123,242,236,185,
-124, 96,255, 46, 77,163,174, 62,188, 59,117,234,208,126, 99,135,245, 26,148,154, 94,144,216,210,211,197, 33, 62,254,161, 21,199,
-113,215,140, 41, 37,177, 88, 28,218,183,111, 95,126, 81, 81, 17,204,204,204, 32,147,201,144,153,153, 9,134, 97,160, 44, 41,134,
-170,164, 24,202,226, 34, 48, 37, 69,120,122,239, 14, 2, 90,122,137,171,156,229,245,162,218,234, 82,223, 82, 85,219,178, 37,178,
-180,132,216,210, 18, 84,227,167, 13,223,177,177,177,185, 85,221,169, 50, 12,243,201,194,133, 11,243, 57,142,195,170, 85,171,172,
- 44, 44, 44, 34, 1,136, 13,145, 88, 58,242, 66,131,219,251,211,143, 82, 99,209, 35,112, 50, 90,183,120, 11,169,185, 10,228,151,
- 49,200, 43,102,208,185,215,247,104, 22,248, 37,220,219,135, 35, 49,173, 16,110, 77,188,105,240,197,122, 55,127,206,200,200,168,
-115,188,127,223, 62,200,229,114,180,108,217, 18,227,198,141,195,194,133, 11, 49,110,220, 56,184,185,185, 97,194,187,111, 99,249,
-242,229,200,201,201, 49,148, 84, 85,235,214,173, 85,158,158,158, 42, 79, 79, 79, 21,195, 48, 40, 47, 47, 71,113,113,113,253,242,
-158,211,216,130,116,114,114, 90,228,226,226, 18,235,228,228, 20, 47, 22,139, 79,199, 80,212, 35,165,167,167,115,247,225,195,169,
-182,239,190,203, 75,147, 74,169,171,128,133, 49, 92, 14,118,130,161,125,250, 14, 17, 21, 23,237,172, 49, 82,189, 63,213, 17,127,
- 94,245,195,245, 63, 58, 97,214, 39, 45, 65,209, 18, 80,180, 8,242,138, 75,232, 18, 20, 44,180,177,161, 12,221, 75,227, 1,196,
-116,239,222,221,109,230,204,153,148, 88, 44,198,236,217,179,153,233,211,167, 39,143, 27, 55, 46,249,226,197,139,172,167,167, 39,
-220,221,221, 41,119,119,119, 87, 0, 49, 85,191,209, 11,171,150,212,215, 42, 38,241, 15, 27,111,243,103, 44, 28,186,149,107,196,
-163, 87,172,203, 46,248,122,203,179,117,169,143,229, 94,143,111, 95, 43, 72,142, 59,201,165,222,189,146,159,149, 92,230,245,245,
-150,103,235, 22,111,206,106,240,161,190,122, 21,220,145,168,171,140,188, 66,206, 31, 62,172,143,124,198,180,177,173,237, 44,252,
-246,160,201,192,192,102, 30, 77, 39, 44, 95,189,137,153,254,209,167,204,142,159,119,146,178,178, 50,148,150,150, 98,211,166, 77,
-218,147, 39, 79,102,178, 44,251,169,174, 49, 16, 0,104, 52, 26,204,152, 49,195,220,202,202, 10, 25, 25, 25, 53, 22, 81, 0,200,
-150, 21, 60,188,126, 55,238,209,188,127,141, 9,169, 80,169, 84,231,174,220, 75,108,235,237,217,148,162,136,206,133, 40, 34,129,
- 96, 64,167, 46, 93,120,132, 20,131,226,123,224,233,238, 53, 40,205, 41, 68,105, 94, 33,120, 2,115,104, 33,134,134, 19,193, 38,
- 32, 8, 73,119,163,209,196,209,153, 47, 22, 8, 6,153,250, 19, 19, 76,248,103, 66,159, 22,169, 45,150, 34, 34, 34, 86,235, 59,
- 95,235, 93, 93,239,184, 70, 72,213, 23, 97,181, 63, 3, 64, 68, 68,196,106, 66, 72,232,141, 27, 55,246, 1, 80, 24,153,133, 15,
-107,189, 27, 31, 71,139,167, 84,135, 47, 88,184, 20,182,214, 82,235,160, 14,222, 46,199,207, 94,189,119,237,198,189,196,102,238,
- 14,142, 68,163,182,253,118,253, 15, 77, 41,185, 34,194,200, 68,248, 58, 56, 56,128, 97, 24, 60,121,242, 4, 47, 94,188, 0,195,
- 48,208, 86, 84, 64, 85, 92, 12,101, 81, 17,216,138, 50, 8, 89, 22, 10, 89, 30,236,205, 36,192,203, 21,137, 6, 44,111, 84,131,
- 66,171,250, 93, 98,101, 5,177,165, 21,104,129,192,224, 78,241,181,208, 49, 40, 40,232, 96, 92, 92, 92,151,254,253,251,127,133,
-202, 37,242,105,153,153,153,253,150, 45, 91,166,114,118,118,198,140, 25, 51,218, 0,152,108, 80,100,138,212,190,158, 46,109,208,
-218,107, 50,154,185,247, 69,113,133, 6,178, 82, 13,242,138, 25,108,251, 62, 24,135,119, 4,225,207,195, 61, 17,119,110, 0,138,
- 53, 46,176,112,123, 7,132, 85,251,233,227, 60,127,254, 60, 86,174, 92,137,175,190,250, 10,171, 86,173,194, 87, 95,125,133,204,
-204, 76,248,251,251, 35, 61, 61, 29,103,206,156, 65,118,118, 54, 28, 28, 28,112,231,206, 29,108,216,176, 1,127,254,249,167,193,
- 76, 87, 11, 87, 35,174,105,212, 92,186, 86,171,157,146, 61,124,120,187, 92, 59,187,182, 29, 58,116, 24, 50,123,246,108,175,238,
-221,187,215,156,247,242,242,242,144, 74,165, 57,168, 92, 65,217, 94, 31, 23, 7,116,112,116,244,135, 90,245,168,170,142, 5,160,
- 40, 9,250, 14, 72, 68,247,158,247,192,104,132,160, 41, 49,104, 90, 2,173,182, 0,182,182,110, 32,132,242, 55,144,196,101, 50,
-153,204,251,194,133, 11,116,106,106, 42, 36, 18, 9, 0, 60, 95,177, 98,197, 15,235,214,173, 75,176,183,183,103,163,162,162,112,
-236,216, 49,132,134,134,242,166, 79,159,238,237,238,238,190,213, 80,190, 87,108,202,190,185,119,253,153,247, 4, 26,219,246, 18,
-105,179,230,168,176,120,231,227, 16, 7,115, 0, 56,155,146, 82,230,228, 81, 26, 81, 81, 22,155,110,211,180,252,155,179, 41,134,
- 86,156,174,224,238, 39, 63,186,181,247,232,217,146,188,220, 34, 65,135,118,126,138,240,149,159, 9,155, 53,111,245,237,242,133,
-255,114,201, 44,149, 20, 15,152,125,230,209,145,179,119,202, 39, 78,253, 64, 59,237,195,153,202, 51,103,207, 31,229, 56,174, 29,
-116,172, 56,228, 56, 14,217,217,217,136,143,143, 71, 74, 74, 10,100, 50, 25,242,243,243, 81, 86, 86, 86, 51,221,104, 86, 86,122,
-234,135, 95, 78, 62, 48,151, 74,205,186,180,243,246,184, 29,157,144,103, 46,149,154,121, 55,247,104, 13,172,104,176, 29, 97, 89,
-182,157,196, 76, 10,128, 66,113,220, 53,148, 23,149,163,188,184, 28,101,133,229, 80, 49, 60, 40, 85, 52, 20,106, 26,158, 33, 3,
- 81, 94,161, 68,121, 65, 9, 56,150, 13, 52,117, 55, 38,152, 96,130,158,190, 62, 42, 44, 44,108,177,145,215, 26, 61,189, 89, 95,
-120,133,133,133, 45,166, 40, 42,106,209,162, 69,126,208,189,160,170, 54,182, 55,240, 2, 96, 68,120,135,130,130,228,114, 75,202,
-119,228,220,207,191, 56,179,239,231,239,157, 84, 42,121,186,189,173, 5,107, 97, 38,114,152, 54, 99, 21,202,202,139, 70, 84, 24,
- 31,142, 0, 69, 69, 69,120,246,236, 25,164, 82, 41,132, 2, 1, 88,133, 2,172,162, 2,138,162, 2,208,140, 10, 66,150,133,157,
-153, 20,158,110, 46,104,230,236, 98, 20,231,147, 75,191,215, 56,190,215,158, 46, 92, 19,228, 11,145,185, 5, 68,150, 22,248, 56,
-234, 10, 0, 64, 40, 20, 2,203,190, 50,202,104,210,164, 73,147, 19,123,247,238, 21,202,100, 50,196,196,196, 60, 0, 80, 2,192,
- 18, 0,151,152,152,120, 33, 46, 46, 46,212,219,219, 27, 0, 90, 26, 34, 43,205,167, 89,141,150, 32, 35,231, 57, 82, 95, 68,195,
-206,186, 5, 4,102,173,145, 87,204, 64, 44,109, 1,141,234,229,236,163,178, 52, 13, 10,134,103, 84,222,213,106, 53,180, 90, 45,
-180, 90, 45,212,106, 53, 62,252,240, 67, 92,191,113, 3,251,143, 93,196,179,167, 73,104,211,220, 5,147, 38, 77, 68, 80, 80, 16,
-110,220,184,161,151,107,114,123,104,154, 88,128,191,126, 8, 13,145,133,189,170,235,194,115,183, 13,137, 45,138,162, 8,116, 76,
- 69,214,195,186,224,224,224, 86, 73, 21, 21,136,127,244, 8,253, 87,172, 0, 0,156, 62,125,186, 78, 94,230,205,155, 39, 74, 72,
- 72,152,118,239,222,189,105, 89, 89, 89,235, 1, 52,236,108, 78,128, 83,167,110,226, 95,255, 74,128, 76, 38, 3, 0, 28,216,247,
- 82,151,166, 62, 99, 48,120,104,229,140,150,141,141, 13,214,175,247, 55,170, 60, 89,150,197,246,237,219,107,166, 11, 1,128,207,
-231,119,159, 55,111,222,200,134,174,111,213,170,149,208, 16,231,220,209, 77, 36,127, 62, 32,159, 88,183,106,230,103,229, 16,128,
- 2, 77,180,127,116,102,246,172,185,163,155,108,220,112, 40, 83, 41,165, 84,187, 40, 54,195,157, 47, 81,238, 54, 38,141, 41,103,
-191, 87, 23,120, 78,217,157, 35, 43, 93, 50,243,131,241,246, 86, 54, 78, 21, 59,126, 8,183,165,121, 52, 57,113,143, 41,246,243,
-178,183,121,167,235,119,229,255,154,187, 44, 90,173,205,152,137,140, 19, 73,208, 19,226,130,101, 89,100,101,101, 65, 38,147, 33,
- 61, 61, 29,249,249,149,211,175,249,249,249,224, 56,238, 77, 26, 68, 40,210,211,145,118,116, 7,154, 77,156,136,206, 95,173, 4,
-203,241,161,144,179, 88,223,173, 31,138, 74, 20, 80,113, 20,220, 58,118,195, 7,167,255, 0, 77, 88, 96,219,102, 83, 79, 98,130,
- 9,255, 80, 24, 19,222,161, 90, 16,133,135,135,135,254,213,255, 95, 91,108,133,135,135,199,135,135,135, 55,230,191,234, 79, 25,
-214, 28, 87,251,104, 93,169,229,128,246, 74,167, 89,150,159,152,146,144,192,207,170, 80, 84,152, 57, 59, 57,170,204, 36, 98,174,
-164,180,140, 23,253,240, 1, 83,145,243,244,113, 35,242,145, 24, 23, 23,231,159,149,149,133,244,180, 52,104, 21, 21,160, 85,106,
- 16,165, 28,253,123,116,131, 4,128,132,166, 32,228, 24,240,121, 34,148,149,151, 2, 64,162,193,206, 81,163,121,197,178, 69, 81,
- 20, 68,150,150, 16,153,155, 67,100, 97, 89,199,194,101,140,197, 70, 44, 22,239,141,140,140,116,109,210,164, 9, 86,174, 92,137,
-166, 77,155,250,184,185,185,201,173,173,173,165,206,206,206,104,219,182, 45,186,117,235,134, 51,103,206, 0, 70,196,148,210,104,
- 37,177,143,159,163,123,126,225, 13,252,113,229, 71,168, 21, 42,116, 8,249, 17, 12,191, 25, 28,253,190, 4,247,100, 15,228, 57,
-199, 43,173, 7, 46,195,240, 34,253, 57, 40,158, 40,222, 88,203, 83,245,231, 7, 15, 30, 96,223,241,171,112,245,244, 69,122,242,
- 35, 60,186,124, 1,215, 29,237,225,233,219,182,102, 26, 72,103, 26, 89,240,191,222, 92, 25, 38,106,233, 39,227,197,133,133,133,
- 98, 59, 59, 59, 85,117,217,185,186,186,190,137,216, 26,191,127, 26, 81,117, 0, 0, 32, 0, 73, 68, 65, 84, 96,193, 2, 20, 11,
- 4,192,208,161, 16,166,164,128, 97, 24,116,237,218, 21,157, 59,119, 6, 0,116,237,218, 21,124, 62, 31, 1, 1, 1,112,115,115,
-195,230,205,155,199,235, 18, 90, 52,133, 24,173,182,192,199,203,203,171, 70,104,237,254, 85,134,232,123, 3, 64, 65,132, 77, 63,
- 60,169,185,214,195,195, 3, 57,217, 41,160, 40, 18,103, 32,141, 95,185,184,184, 44,115,117,117,245, 90,183,110, 29, 79, 34,145,
-224,163,143, 62,106, 81, 94, 94,222,172,202,148,140, 69,139, 22, 1, 0,150, 47, 95,142, 21, 43, 86, 64,165, 82,201,117,145,237,
- 94,223,206, 45,175,144,155, 70,202,205, 70,244,113,104,214,174,239,160,254,104,225,221, 23,125, 7,165, 3,192,106, 59,254,243,
-119,191, 93, 98,115,212,198,146,218,249,251,217,243,203,123,132,244, 93,178,176,252,242,215,223,108, 47, 54,232,243, 88,146,182,
-171,236,177,104,236,134,239,183,254,186,225,139, 69,115, 36,233, 50,117, 81,102, 17, 41,183, 16,243, 45, 90, 58, 83, 22,179, 62,
-255,234, 89, 86, 86,202,124,100,156, 53,184,210,146,227, 56,164,164,164,212,248,244, 41,149, 74, 84, 84, 84, 32, 35, 35,163,230,
-158, 81,152, 91, 13,158, 57,117, 88, 96,133, 66, 33,191,253, 48, 57,125,233,236, 9,193, 21, 10,133, 60, 57, 53, 61, 9,216,212,
-160, 26,163,105,250,161,188, 76,222, 95, 94,172,132, 44,230, 49,154,246,243,132, 70, 75, 65,173,101, 33, 43, 40,131, 74, 11,176,
-180, 0,126,239, 78, 2, 75,241,145,159,149, 9,154,199,123,128,186, 78,251, 38,152, 96,194, 63, 7,122,181, 72,181, 69, 43, 56,
- 56,120,127,109,171, 83,245,103, 0, 42,232,119,229,145,213, 22, 83,213,211,137,186,254,167, 30,175,177,120,197, 71,203, 96,120,
-135,234,255,116,183, 46,117, 91,179,124, 66, 83, 78,171,109,147,151,159,171,229,243,197, 2,119,107, 69,118, 97,186,241,255,174,
- 82,169,162, 46, 92,184, 48,124,192,128, 1,226,228,135, 15,160, 46, 41,129,186,164, 24, 2, 78, 11, 59,105, 39,208,140, 10,148,
- 90,141, 38, 62, 28,148,101, 82, 92,189, 30,167, 81,169, 84, 81,198, 10, 45,154,199,171,235,151,101, 97, 1,177,165, 21,196, 22,
- 22,245,167, 22, 13,137, 2,179,129, 3, 7,246,235,218,181, 43, 8, 33,216,190,125, 59, 24,134, 17, 49, 12, 3,181, 90, 13,134,
- 97, 80, 90, 90,138, 95,127,253, 21, 91,182,108,185, 14,224, 23,131,157,153, 86,125,225,220,249, 75, 65,239, 79, 8, 21,156,142,
- 90, 15,173,154,133,130,106,138,138, 10, 13,202,213,102, 96,237, 39, 2,185,167,192,227, 75, 16, 28,208, 2,199, 15, 29, 97,160,
- 85, 93, 52, 82,133,215,177, 10,101,164, 63,199,139,167, 73,176, 40,205,129,163,149, 25,228, 41, 73,232, 48,105,242,107, 89, 39,
-220,221,221,193,113, 28,250,244,233, 83,227, 92,253,186, 98,171,160,160, 0, 39, 79,158, 68,215,174, 93, 17, 18, 18,130,204,204,
- 76,164,164,164,224,173,183,222,170,185,230,193,131, 7,136,142,142, 70,203,150,250,141,132,249,133,154,211, 47, 50, 98,198,188,
-243,206, 59,194, 91,183,110,129, 16, 2,111,111, 43, 88, 89,154,131,162,197,240,245,117, 2, 80, 57, 6,232,221,187, 55, 74, 75,
- 83,180, 69, 69,228,180,129,236,238, 5,112, 76,173, 86, 63,233,213,171,151,219,211,167, 79, 49,119,238, 92,254,129, 3, 7,170,
- 77,201, 8, 11,171,187,152, 66,161,208, 61,117,223,166,157,207,103, 45,180,182, 33, 18,105,179,230, 86, 14, 1,104,225,221, 23,
- 0, 48, 32,244,125,180,104,229,129,210,252,216,230, 74,197,243, 17, 66,126,145,109,236,166,204, 4,233, 80,255,169,202,188, 43,
-201,168,156, 58, 53, 88,237,138,228, 3,185,233,130,137, 7,143,157, 56, 51,227,173,208,183, 5, 26, 86,171,245,247, 20,216, 68,
- 30, 61,149,151,153,150,254, 29,210,207,198,189,180,255,233,181,226,177,165,165,165, 48, 55, 55, 71, 92, 92,156,106,232,208,161,
- 98,154,166,241,228,201,147, 26,161,229,228, 96,215,182,123,103,127,159,175, 55,252,122,206, 92, 44, 22, 15,234,221,201, 55, 33,
- 57,237, 5, 33,212,115,157,214, 86,141,230,252,195,152, 7,125, 28,221, 90,241, 82,174,220,130,125,207,183,160, 82,209, 80,168,
- 57,168,180,128,150, 39,132,107,251, 46,176,105,233, 11, 2,224,238,173,235, 26,149, 70,115,206,212,215,152, 96,194, 63,218,170,
- 69,244,137,164,170,207,133, 0,158,135,135,135,231,215,178, 54,201, 0, 60, 0, 16, 88,117,157,172,222,239,100, 20, 69,221, 37,
-132,116,174,197, 35,171, 37,184,106,127, 86,215,187,230, 65, 35, 68, 86,237,247,186, 66, 75,215,146, 74, 0,112,112,112,112,234,
-208,161, 83,203,159,126, 62, 8, 66, 8, 30, 71,175, 69, 81,222, 35, 44, 91,125,179,101,147, 38, 77, 66, 50, 51, 51,175, 26,147,
- 2,150,101, 15,236,220,185,115,126,151,142, 29, 58, 52,111,218, 20, 15,158,167, 66, 72, 88, 8, 89, 22, 52,163, 2,159, 85,163,
-169, 63, 11,154,178, 64, 86, 86, 9, 34,246, 30,140,171,138, 18,175, 23, 62,111,189,141,149, 47, 74, 64, 81, 20,214, 5,251, 67,
-100,105, 1,161,185, 5, 62, 62,113,169, 70, 92, 69,173, 92, 4,145,133, 5, 90,118, 49, 42, 32,188,252,242,229,203,247, 30, 62,
-124,216,217,223,223, 31,243,231,207,199,243,231,207,193,113, 28,114,115,115,149,217,217,217,153, 50,153,236, 57,128,163, 0,126,
-130, 17,145,199,133, 42,229,198,168,195,187,103, 6,247, 8,113,120,103,196, 22, 28, 59, 52, 15,197, 37,165,144,107,165,168, 80,
-106, 81,161,226,193,206,190, 29,186, 4, 4, 32, 43, 51, 15,241,183,206,149,243, 85,242,181,141,185, 65, 41,138, 66,116,116, 52,
-188,220, 44,145,244,199, 85, 56,152, 9, 16,232,230, 2,183,238, 61,106,226, 75,233,131,128, 7,237,248,241,227,107, 34,195, 15,
- 28, 56, 48,117,226,196,137,174,243,230,205,195,207, 63,255,140,235,215,175,191,226,160, 29, 18, 18,130,107,215,174,125, 9, 96,
-185, 33,163,158, 90,173,134,143,143, 15,238,222,189,139, 11, 23, 46,160,111,223,190, 8, 9, 9, 65,108,108, 44,126,255,253,119,
- 68, 71, 71,131,162, 40,216,219,219, 67, 83, 41,158, 53,186,200, 24, 6,145,223,124,187,115,241,134, 13, 91,252, 38, 76,152,128,
-195,135,247,227,253,169,109, 64,209, 98, 80,148, 24,111, 15,107,131,149, 95,221, 69,151, 46,189,225,224, 32,192,134,245,199,159,
- 41, 20,236,175, 70, 20,227,215,191,255,254,187,155, 82,169, 68,113,113, 49,177,176,176,160, 10, 10, 42, 87,180, 54,100,209,146,
-203,229, 18, 93, 68, 15,239, 39,174, 45, 46, 35, 69,164, 60,122, 68,161, 54,186, 93,223, 65, 25, 24, 16, 58, 21,231,163,126,193,
-165,115, 23, 96,199,127,158, 10,243,178, 51,249,169,249,165,217, 21,222, 91,125, 59, 78,231,189,168, 56,183,117,214,219, 73, 60,
- 87, 87, 46,114,209,143,165,197,250,132, 22, 0,170, 48, 97,207,137,163, 4,111,119, 11,238,210,202,223,195, 85, 84,148,159, 71,
- 14, 29, 63, 19,199,164, 30, 62, 89, 75, 96, 17, 3, 66,125,101, 88, 88,216, 23, 85,159,119, 45, 93,186,116,122, 68, 68,132, 99,
- 78, 78, 78,141,143, 86, 94,126,225,165,110, 67,103,177, 5,197, 37,234,157, 27, 62, 31, 45,149,136, 69, 75, 35,118, 94,209,240,
-112, 75, 23,175,150,227, 54,191, 59,119,217,156,228,199,209, 77,154, 73, 69, 56,254,249,114, 60,248,253, 50, 52,180, 16,255,186,
-112, 27, 42,134, 69,113,126, 1, 46, 78,251, 4, 22,206,182,216,114,229,112, 46,199,113, 63,154,186, 26, 19, 76,248,231, 66,151,
- 22,161, 40,170,161, 24,123,185, 13,124,119, 87,223,239,116,240,252, 21,208, 25, 21,222,168, 37,120,249,249,249,121,215,174,221,
-198,149,168,175,113, 53,234,107,196, 71, 63, 64, 86,166, 26,153,185, 74, 88, 89, 89,221,212,243,211,250,145, 99,137, 92, 46, 31,
-185,116,217, 23, 57, 18,169, 25,122,245,235, 7, 23, 71, 39,152, 9, 5,224,105, 57,240, 40, 1,202,101, 54, 72,138,149, 99,225,
-206, 61,121,229,114,249,200, 6, 58,137,254,186, 68, 6, 69, 81, 16, 91, 89, 66,100, 97, 9,177,165, 85,157,105, 68,137,149, 21,
- 36,150, 86,224,139, 68, 13, 57,195,191,194, 89, 94, 94, 62,106,244,232,209, 69, 37, 37, 37,152, 62,125, 58,174, 94,189, 26,125,
-238,220, 57,171,216,216, 88,169, 76, 38,107, 5, 96, 32,128,109,122, 68, 86, 29,206,162,162,148, 50,162, 85,141, 13,255,226, 83,
-133, 82,107,143, 49,147, 15,192,156,206,128,150,229, 64, 0,184,217,137,208,189,255, 87,200, 83,119,195,129,173,171,228, 28,163,
-156, 80, 47,134, 86, 29, 78, 66, 8,113,118,118,126,165, 12, 46, 92,184,128, 49,163, 71, 97,208,136,225,112,108,238, 5,167,254,
-111, 97,208,244,127, 97,235,214,173,160,105, 26, 14, 14, 14,245, 59,222, 26,206,221, 49, 16,236,123, 8,106,223, 67, 80,187,162,
-193, 7, 48,105,207,158, 61,223, 4, 6, 6, 94,190,126,253,250, 90, 0, 99,107,255, 87, 45,172,168,103,205,106,168,142,150,204,
-153, 51, 71,145,156,156, 12,115,115,115,104,181, 90, 92,191,126, 29, 91,182,108,193,186,117,235, 16, 29, 29, 13,123,123,123,180,
-108,217, 18, 42,149, 10,119,239,222, 85, 0, 88,162,135,147,147,201,180,163, 54,109,138, 40, 8, 13,237,137,157, 59,127,128,139,
- 75, 55, 8,248, 46,224, 11, 28, 97,110,225,131, 29, 63,125,131, 33, 67, 58,224,196,241,131,133,249, 5,218, 81, 0,180, 70,220,
- 75,202,219,183,111, 99,235,214,173, 24, 61,122,116,230,152, 49, 99,216,146,146,146, 26,139, 22, 33, 4,132, 16,172,168,242, 49,
- 83,169, 84, 98, 93,156, 31, 44,140,203,252,124, 85,252,202,220,156,204,174, 87, 47,223, 28,127,233,220, 5, 60, 75,190,132, 75,
-231, 46,224,143, 75, 55,194,114,115, 50,187,118, 8,106, 45, 28, 57,125,230,103,187,143, 28,230, 89, 88,185, 98,247,145,195,188,
-113,179, 62, 93,213,105, 80,223, 37,134,238,249,170,122, 36,229,121,185,139, 86,175,253,190, 92,203, 40,233, 53,223,109,206, 82,
-200,178,151,212,186, 47,137,161,251, 83,161, 80,108, 83, 42,149,110, 74,165,210, 77,165, 82, 45,121,254,252,121,175,249,243,231,
-203, 88,150,173,177,150,202, 18, 78,220,124,244,231,174,213, 78, 14,182,210,110,157,253,218,172,223,118,232, 74,122, 70,238,111,
-181, 98,104, 53,148, 78,101,185, 66, 57,106,248,200,137, 21,197, 69, 42, 4,127, 26, 6, 78, 98, 1, 21, 11,104, 8, 15, 90,138,
-143,135, 95,175,135,212,206, 18,123, 83,239,203, 75, 52,204, 40,212,141,161,165, 47,239,111, 2, 19,167,137,211,196,249,247,228,
-252,111,134, 43,234,238,117,232, 90,199,162,101,104, 73,101,147, 38, 77,122,189,243,118,127,244, 14, 93, 10, 66, 8, 30,221,255,
- 22, 69,178,199,104,226, 34, 70, 74,122,105, 48,128,171,141, 72, 76,250,243,140,140,174,115,150, 44, 61, 50,102, 96, 63, 95,255,
-230,205,197,205,154,121,194,220,201, 9,249,249, 50,252,121, 43, 65,179,106, 95,100, 92,149,200, 50,106, 98,146,227,184, 74, 39,
-119, 0,253,230, 44, 4,197,227, 1, 85, 97, 28,170, 59,198,230,157,187,129,226,243,193, 18, 14, 42,149,202,152,213,114, 47,158,
- 62,125, 58,106,194,132, 9, 23,163,162,162,232, 65,131, 6,181, 63,122,244,232,155,236,153,135,138,188,228,203, 0, 66, 87, 45,
-154,113,160,107,223,225, 86,222,126,157,132,157,154,241,192,104, 40,100,101,166, 33,234,200, 29, 38,225,246,185, 82,162, 85,142,
-149,231, 39, 95,214,199,197, 48, 76,122,171, 86,173,156,183,110,221, 90,227, 12,207,178, 44,242,243,243,113,243,230, 77,180,235,
-220, 5,190, 83,167, 65, 38,147, 97,211,166, 77,240,240,240,192,176, 97,195, 80, 88, 88, 8,173, 86,107,236,132, 47, 11,224, 92,
-213, 11,245, 68, 22, 85,181, 5,144,222,105, 67, 47, 47, 47,145, 82,169,108, 79, 8,225, 81, 20,181, 81,173, 86, 79, 89,180,104,
-145,235,234,213,171,209,166, 77, 27,228,231,231,195,220,220, 28,222,222,222,144,201,100,184,115,231, 14, 43,151,203,183,162,114,
- 35,107,153,129,244, 61,185,115, 39,181,235,236,217, 31, 31,249, 38, 98,134,183, 82,213, 91,100,103,215, 3,132,104, 33,147, 61,
- 71, 89,233,117,230,171,149,191, 60,205,205,211,140, 4,144,108,100,158,151,207,156, 57, 19, 0, 36, 0,150,166,164,164,196,248,
-250,250,122,235,178,104, 25,131, 13,135, 50,149, 0,246,141, 26,228, 54,183, 52, 63,214,219,142,255, 60,181,171, 63,183,105,195,
-161, 76,165,149, 91,197,215,249,207,175, 38,101, 87,156,219,186,251,200, 97,222,228, 17,163,216,166, 22,201, 97, 18, 39,114,200,
- 8,106, 18, 24, 24,232, 78, 81,133, 45,242, 10, 30,223,123,127,250,140,119,173,133,138,211,129, 77, 11, 90,210, 30, 29, 36,209,
-209,209,169,104,228,202,208, 42, 36,101,102,102,246, 90,180,104,209, 57, 66, 72, 29,223,132,188,252,194, 75,193,161, 51, 73,113,
-113, 73,140, 44,241,132, 49,177,212,238,220,185, 31,221,207,191, 93,135,195,223,172,142,112,238, 61,103, 62, 63,233,242, 21,128,
-213, 32,237,234, 21,176, 98, 53,183,254,198,249,220, 18,134, 25, 1, 83, 84,120, 19, 76,248,199, 91,179,244,105,145,191, 57,134,
- 66,135, 51,188,209,153,241,106,209,228, 92, 27,239,102, 3, 61,154, 58, 2, 0, 82, 82,179,144,146,154,249,123,202,179,204, 65,
- 6, 20,175,174,229,149, 53,155, 74, 83, 85, 33, 28,136,113,155, 74,215,225,180,183,183,191,199,231,243,155, 54,166, 52, 88,150,
-205,202,207,207,239, 96,100, 58,199, 53,111,222, 60, 34, 45, 45,237, 8,199,113,115, 27,169,246, 27,228,172,222, 84,154,230,139,
-250, 19,173,186, 29, 0, 80,124,145, 49,155, 74,215,230,108,103, 97, 97,177, 77, 32, 16,120, 84,215, 99,181, 15, 22,203,178, 60,
-134, 97, 36, 44,203,242, 0, 80, 52, 77,107, 5, 2,129,146,162, 40,173, 86,171, 77, 87,169, 84, 51,240, 50,224,168,190,188, 27,
-236,232,171,132, 22, 26,176,104, 93, 0,128,228,228,228,214,182,182,182, 99, 41,138, 26, 77, 8,241, 41, 43, 43, 83, 45, 91,182,
- 44, 58, 50, 50,178,180,121,243,230,131,135, 14, 29, 74,197,198,198, 34, 46, 46,142, 20, 20, 20, 28,170,178, 98,165, 52,242, 94,
-162,197, 98,222,123,118,118,244, 80, 66, 16, 8, 2,138,162,241,176,164,132, 59, 45,151,179,191, 85, 9,198,198,222,159,213, 24,
-223,172, 89,179, 95, 82, 83, 83, 5,186, 44,169,186,242, 94, 31,223, 46,241, 91, 26,220,179,231,168,155,127,252,113,244,243, 85,
-241, 43,107,159,155, 53,220,246,253,113,159,204,249,118,223,230,239, 62,255,254, 88,209, 78, 99,210,217,190,125,123, 47,138,162,
-198, 2,240, 39,132,180, 34,132,146, 80, 20, 41,162, 40, 42, 30, 64,172, 90,173,142, 74, 72, 72,120,241, 6,121,127,157, 17,174,
- 46,206,154, 77,165,193,178, 1, 44, 64,140,220, 84,250,255, 59,157, 38, 78, 19,167,137,243, 63,199,249,223,140, 15, 27,248,206,
-184,200,240,213, 72,121,150, 57, 40,229, 89, 38, 90,181,106, 69,158, 60,121,210, 40,145,166,171,147,102, 89,118,191, 92, 46,223,
-255, 38, 36, 5, 5, 5,157,254,205,133,183, 47, 53, 53,117,223, 95, 73, 88, 37,164, 86, 86,189, 94, 23, 15,203,203,203,187, 24,
-123, 49,195, 48,255,142,178,161,170,172, 89, 95,234,186, 96,224,192,129,105, 12,195, 92, 0,144, 65, 81,148, 13,128, 66,134, 97,
-206,105,181,218,220, 39, 79,158,116, 90,191,126,125,117,228,251,175, 0,220,123,205,116,112, 42, 21,187, 55, 43,139,221,251,111,
-200,227, 94,181, 90, 61,207,222,222,190,165, 82,169, 20, 41,149, 74, 97,237,197, 7, 82,169, 84,166,207, 33,190, 54,108, 44,169,
- 93, 66,126,145,189,141, 37, 85, 95, 72,193,174, 9, 14, 43, 42,226,218,216, 53,193, 97, 99, 19, 22, 19, 19,147, 18, 24, 24,184,
-135,166,233,230,132, 16,103,128, 88, 19, 2, 25, 33, 36,159,207,231,103, 38, 36, 36,100,254,141, 26, 33,165,150,227,214,106,213,
-234,151,126,135,166,213,133, 38,152, 96,194,255, 14,116,250,104,241, 27,203,244,228,201, 19,202, 84,158, 38,212, 22, 91,250, 78,
-166,165,165,169, 0,220,168,122,213,199, 61, 0,195,254,238, 25,204,206,206,238,160,235,156,177, 34, 11,168,244,217, 2,226, 26,
-140,206,190,226,251,162, 50,124,127,228,179,198,166,237,193,131, 7,233, 48,114,138,221, 4, 19, 76, 48,193,132,127, 27,222,220,
-162,101,130, 9, 38,152, 96,130, 9, 38,152, 96, 66,131,216, 94, 75,112,213,177,110, 81,208,189,114,160, 49,115,175,175,179,250,
-224,130,137,211,196,105,226, 52,113,154, 56, 77,156, 38,206,127, 28,231,255, 42, 94, 17, 89,255, 31, 48, 45,125, 53,113,154, 56,
- 77,156, 38, 78, 19,167,137,211,196,249, 79, 16, 89,245, 95, 0, 76, 83,135, 38,152, 96,194, 63, 24,145,145,145, 70,109, 42,250,
-222,231, 59, 66, 45, 44,108,151,149,151,150, 68,236, 95,251,254,209,234,239,199,140, 25,195,154, 74,209, 4, 19, 76,192,235, 56,
-195,183,104,209,180, 45,205,114,221, 9,161,121,132, 38, 26,170, 84,113, 32,165,168,168, 78,216, 1,119,119,119, 27, 1,141, 97,
- 20, 33,230, 20,197,177, 28,143,190,254,236,217,139,132, 70, 36, 76,100,107,107, 59, 83, 40, 20,246, 87,171,213, 77,105,154,126,
-161, 82,169, 46,200,229,242, 31,240,106,224,194,255, 24, 90,183,110, 61,238,202,149, 43, 54, 61,122,244, 80, 73,165, 82,173, 66,
-161,224,159, 61,123, 86, 60,100,200,144,226,167, 79,159,190,214,138, 68, 55, 55,183,190, 59,118,236,104, 49,104,208, 32,180,106,
-213,170, 98,236,216,177,194,224,224, 96,225,244,233,211,159,101,101,101, 93,106, 36, 93, 91,138,162,126,165, 40,138,199,113,220,
- 36,188, 12,221,240, 87,131,166,105,122, 6, 69, 81, 35, 8, 33, 94, 20, 69,165, 16, 66,142,114, 28,167, 47,112,171, 62,140, 2,
-240, 22, 77,211, 29, 0,128,227,184,104, 0,167, 1,227, 87,222,253,127,114,154,153,153,181, 7, 0,185, 92, 30,243, 87,113, 82,
- 20,213, 30, 0, 8, 33,175,203, 57, 85, 42,149,126, 0, 0, 10,133,226, 39, 24,177, 29, 84,125,144,173, 62,164,195,151,143, 0,
- 0,209,203,125, 0, 0,141, 57,166,254,245,136,106,204,127, 53,196,215, 24,142, 6,240,214,132, 9, 19, 86,255,246,219,111,203,
- 1, 28,255,119,220,248, 46, 46,238, 63,172,251,110,187,219,167, 51,167, 69,160,114, 71, 8,253, 15, 36, 48, 64,196,227,189,173,
-102,217, 63, 18,128,255, 99,239,186,227,162,184,186,246, 51, 51, 59,219,119, 97,119,169, 75, 17, 5, 5, 17, 80,192,130, 61,162,
- 38, 26,187, 70, 44, 81,177,196, 22,163, 38, 70,141, 26, 53, 26,107,140,137, 61,182,216,123,141,130,189,247,138,198,138,157,222,
-251,194, 46,219,103,190, 63, 96,121, 81, 41,139,154,188,201,251,113,126,191,113,156, 97,230,217,123,239,220,242,220,115,207, 61,
-103, 47, 0,142, 66,161,232,207,227,241, 90,235,245,122, 37,135,195, 73,209,235,245, 23,243,242,242,118,162,130, 8, 8, 86,151,
-235, 99,200, 13, 26, 56, 19,204,127,226,188,177, 36,116, 92, 17, 82,137,122,200,249, 7,116,163, 36,128,241,197,121,221,128,242,
-221,121, 84,212,249,124,237,226,226,210, 83,165, 82,105, 40,138, 98, 81,180,235,185,232,159,162,191, 19, 12,195,164,103,103,103,
- 15,170, 12, 75, 92, 3,117,121, 98, 98,171,217,136, 66,147,142, 29,173, 78, 64,180,196, 29,205, 89, 96, 16, 11,212, 34, 41,210,
-129, 97,152, 20, 0,103, 73, 19, 34, 10,146,241,252, 31, 58,184,123, 20,151,107,205,226,107, 26,128, 19,128,123, 0,190, 6, 80,
- 80,205,127,254, 54,121,211, 24,254, 8,128,148, 18,162, 85,202,221,125,155, 46, 93,186, 92,240,244,116,243,235,221,163,215,252,
- 81, 35, 71, 19, 20, 69,226,193,195,135,156,207, 7, 13,249, 68, 46,151,187, 74,116,186,122, 32, 8, 70, 35, 16, 60, 80,169,242,
-146,246,238,220, 46,245,173, 91,215,108, 54, 51, 88,179,118,245,167,251,254, 56, 48,205, 74,178,229,227,236,236,188,117,202,148,
- 41,206,221,186,117,163,156,157,157, 17, 27, 27, 43,219,181,107, 87,221, 21, 43, 86,244,201,201,201, 25, 4,224,233, 59,100,182,
-149,179,130,252, 68, 42, 36,218, 33,223,140,124, 35,206,164, 22,226, 36,128, 75,239, 90,122, 26,141,102,172, 70,163, 9,105,220,
-184, 49,187, 97,195, 6, 98,240,224,193, 44, 65, 16, 68, 97, 97,225,102, 0,239, 68,180,196, 98,241,170, 14, 29, 58,120,123,123,
-123,191,124,241,226, 69,167, 61,123,246, 28, 13, 15, 15,247, 18,139,197,207, 0,248, 84, 17,110, 83, 86, 86, 86, 96, 97, 97, 33,
-220,220,220, 54, 0,104,248, 23, 84, 34,130,162,168,131,174,174,174,236,162, 69,139, 14, 5, 6, 6, 58,101,103,103,155, 38, 77,
-154,212,254,250,245,235,159,154,205,230,110, 85, 32, 91,114,130, 32,214, 58, 57, 57,217, 47, 92,184,240,121,163, 70,141,238,241,
-249,124,222,179,103,207, 68, 19, 38, 76,248,230,233,211,167,125, 88,150, 29, 9, 84,105,128,144, 19, 4,177,214,197,197,197,126,
-254,252,249,177,193,193,193, 15,184, 92, 46,247,217,179,103,226,239,190,251,238,235,232,232,232,119,194, 36, 73,114, 77, 72, 72,
-136,252,135, 31,126,120, 92,183,110,221,171, 20, 69,241, 18, 19, 19,201, 89,179,102,125,117,234,212,169, 48,134, 97, 70,189, 75,
- 58, 29, 29, 29,229,179,102,205,122,220,172, 89,179,235, 92, 46,151,251,228,201, 19,114,202,148, 41, 95, 61,127,254,220,234,116,
- 42, 20,138, 80,130, 32,214,165,166,166,114, 0, 64,169, 84, 54,177,177,177, 89, 81, 58,166,165,197, 21,133,209,104,204,215,106,
-181, 3,178,179,179,203,116,132, 59,120,234,242,174, 0,176,194, 96,185, 46, 58, 87,118, 13,172,137,176, 38,211, 65,206, 69,126,
-241,126, 81, 15,237, 1, 0,253,139, 67,133,255,162, 6, 56, 28, 14, 19,228,252, 53,123, 55,181, 74, 46, 99,186,183,109,219,118,
-214,217,179,103, 87,183,105,211,230,187,109,219,182, 57, 38, 36, 36,252,116,233,210, 37,247,126,253,250, 13, 62,115,230,204,130,
-204,204,204,125, 31,170,242,243,184,124, 62, 65, 18, 16, 10, 68, 54,214, 60, 79,147,100,151,171,221,187, 15, 95,255,228, 73,240,
-138,232,104, 79,181, 82, 25, 50,110,220, 56,167, 94,189,122,145,238,238,238,120,254,252,185,221,182,109,219,234,173, 95,191,190,
-103,110,110,238,120, 0,113,239, 67,178,212,185,168,175,211, 35,152,101, 33, 43,105,176, 4,114,249, 6,220, 97, 31,227,254, 63,
-128,108,205,220,180,105,211, 15,207,159, 63,199,130, 5, 11, 0, 96,101, 21,223,159,208,189,123,247,206, 7, 14, 28, 16,238,221,
-187, 87,216,184,113, 99, 56, 59, 59,163,120, 50, 85,226,152,218,211,211,211,186, 50, 99,240,203,210,163, 67, 27, 62,200, 62,134,
- 85,189, 82, 23, 8,221, 96,106,222,221,187,103,151,193,193,176,117, 16, 65, 32,225, 32, 55, 75, 21,240,228, 78, 66,135,115,123,
-158,255,244, 60, 42, 99,161, 58, 30, 51, 81,190, 79,190,255,138,216,217,217,109,120,245,234, 85,168, 88, 44,126,237,254,203,151,
- 47,131,188,189,189,243, 0,124, 91, 85,226,230,224,224,176,131, 97, 24, 93, 86, 86,214, 48, 0,144, 74,165,219,197, 98,177, 60,
- 37, 37,101,218, 95, 53,145,177,200,155, 92,228, 95,174,209, 42,177,215, 42, 43,214, 33, 65,154,153, 22,163, 70,142, 38,250,246,
-239,151,250,252,229, 43,134, 67,243,250, 31, 63,113, 66,228,231,231, 71,234, 86,174,132, 41, 35, 3,198,111,190,105,126,250,244,
-105, 99, 88,255,129,133, 52, 69,108,242,242,172, 37,218,189,115,151,243,129,253,251, 90, 0,168,140,104,241,156,157,157,183,158,
- 63,127,222,213,211,211, 19,185,185,185,136,141,141,133, 90,173, 70,159, 62,125,232, 22, 45, 90,184,246,238,221,123,107, 94, 94,
- 94,203, 42,104,182,156,234,184,113, 34, 71, 14,233,229,243,233, 39, 45,196,174,238,181,193,166,106,145,240, 34,186,113,228,249,
-235,227, 54,237, 63,250,244,121, 30,219, 5,101,199, 70,170, 80, 50, 51, 51, 39,247,236,217,115,127,104,104,168, 3,159,207,135,
-139,139, 11,209,173, 91,183,244,228,228,228,217,239,204, 90,138, 67,216,144, 36,105, 46,125, 46, 35, 60,144, 53,226, 38,151,203,
- 33,151,203, 1,192,245,125,103,158, 50,153,108,165, 84, 42,237,173, 82,169, 10, 73,146,100, 9,130, 96,245,122,189, 80, 46,151,
-255,249, 56,250,169,139, 78,167,171,179,120,233,250,101,109, 91, 5,218,156, 58,117, 10,189,122,245, 98, 79,158, 60, 57,210,218,
- 56,117, 4, 65,172,237,217,179,167,102,198,140, 25,218,231, 47, 99, 93, 31, 63,125, 73,136, 5, 60,198,222,222,158,190,121,243,
- 38,103,201,146, 37,130, 89,179,102,173,101, 89,182,119, 21,202,115,109,191,126,253, 12, 19, 39, 78, 76,121,242,252,149,227,253,
-199,207, 89,137,128, 54,217,219,219, 81,215,175, 95,103,222, 5,147, 36,201, 53,147, 39, 79, 86,141, 28, 57, 50, 39, 43, 59,207,
- 57, 71, 85,192,242,105,202,232,236,236,204, 57,116,232,144,110,199,142, 29,228,240,225,195,215, 48, 12, 19, 86,133,242, 93,211,
-173, 91,183,252, 41, 83,166,228, 62,123, 25,227,124,255,209, 83,136,248,180,209,201,201,145,186,117,235,150, 97,241,226,197,228,
-220,185,115,173, 74,167, 88, 44,222,178,103,207, 30,206,161, 67, 69,125,223,181,107,215, 72, 47, 47, 47, 81,233,103, 10,181, 58,
-144, 4,144,153,153, 41,106,214,172,217, 22, 0,111, 57,247, 13,158, 29,141,193, 83,129,177, 99,199,166, 84,181,178, 4, 43,199,
- 85,250,140,121,181, 47,187, 68, 51,180, 7,135,195, 97,134, 15, 31,158,250,230,223,181, 90, 45, 1,160, 27,126,178,158,108,117,
-234,212,233,251, 35, 71,142,212,222,182,109,219,175, 59,118,236,208, 3,128, 64, 32,176,223,181,107,215,130, 62,125,250,160, 79,
-159, 62, 51,246,237,219,247,193,136,150,153, 53, 27, 0,128, 47,224,243,163,163,163, 9, 95, 95,223, 10, 61,238, 27, 24,230,246,
-250, 39, 79, 26,125,233,235,219, 56,155, 97,234,112, 63,253,180, 96,194,132, 9,153, 42,149, 10,177,177,177, 48, 24, 12, 24, 60,
-120, 48,213,166, 77, 27,151, 62,125,250, 44,207,207,207,255, 12,128,193,138, 58,185,216,213,213,117, 68, 94, 94, 94,129, 69,171,
-211,114,144,153,211, 58,200,196,111, 80,199,200,227, 82, 38,110,215,111, 24,226,228, 74, 66,237,235,137,203, 0,192,213, 32,163,
-138,147,129, 50,197,198, 13,158,102, 26,115, 29,220,132,109, 51,226, 10,127, 84,199, 87, 72,150, 62, 19,139,197, 61,212,106,245,
-190,226,193,217,167, 75,151, 46,184,126,253, 58, 0,180, 40, 38, 90,109, 73,146,252,156, 97,152,223, 1, 84, 20,202,109, 92,247,
-238,221, 63, 62,112,224,128, 20, 0,246,237,219, 7,163,209, 8, 47, 47, 47,112,185, 92,240,120, 60,208, 52, 93, 18, 29,196, 74,
- 81, 58, 56,216,195,222,150,134, 92, 33,254,244,187,223,186,115,106,248,217, 32,221,252, 16,217,108, 46, 76,172, 14, 92, 59, 49,
-234,118,144, 33,248,147,182,100,196,154, 7,211, 34, 86, 61,110,164, 33,209, 21,113,208,253, 83, 70,118,146, 36,249,247,238,221,
-131,139,139,203,107,247, 41,138, 2,128,214,239, 0, 57,227,229,203,151,205,162,162,162, 16, 26, 26, 58,163,126,253,250, 29, 47,
- 92,184,224,156,149,149,133,208,208,208,229,137,137,137,135,254,234, 60,149,230, 34,255, 43,170, 46,242, 13, 38,217,166,104, 22,
- 76, 82, 20, 69,226,213,203, 88, 99,104,104,187,240,248,248,120, 73, 72, 72, 8, 73,211, 52,212,103,207, 66,123,235, 22, 36, 18,
- 9,122,246,236, 73, 95,188,120,209,198, 70, 98,243, 69,204,171,152,124,138, 34,193,178,100,165, 54, 15,114,185,252,171,105,211,
-166, 57,123,123,123,195,100, 50,149,120, 52, 55,153, 76, 72, 72, 72,128, 68, 34,193,160, 65,131, 28, 69, 34,209, 87, 86,230,163,
-166,143,151,227,157,243, 71,215, 54,156, 48,170,147,216, 71,116, 10,226,132,241,144,236,251, 18,245,146,143, 99, 74,143, 16,241,
-201, 85, 51,130,107,187, 40,238,148, 82,177, 90, 45, 58,157,238,242,131, 7, 15,190,184,112,225, 2, 3, 0,231,206,157, 99, 31,
- 63,126, 60,242,125,102,161, 12,195, 32, 55, 55, 23, 12,195, 80,197,215,150,243,127,181, 62,216,216,216,172,233,216,177, 99,191,
-184,184, 56,225,177, 99,199,236,226,227,227,237, 99, 98, 98, 28,124,124,124, 56, 11, 22, 44, 56,162,213, 25, 40,163,153,213,155,
-204,198,252,148,135, 15, 95,230,164,165,221,217,184,113, 99, 33, 65, 16, 61,173,252,141,207,148, 74,165,221,212,169, 83, 65,208,
-162, 38,117,235,213,247,166,104,161, 45, 73,243,108, 11, 11,181,230, 87,175, 94, 37, 76,157, 58,181, 86, 96, 96,160, 11,138,150,
-215,172,194,116,113,113,177,159, 56,113, 34, 56,124,105, 80,131,192,224,218, 60,190, 88, 74,209, 66,105, 72, 72, 72,155,151, 47,
- 95, 38, 79,153, 50, 69,217,184,113,227, 42, 97, 54,110,220, 88, 62,124,248,112,147, 64, 40,109,230,233,233, 85,175,129,127,189,
-206, 62, 62, 62, 61, 56, 28,142, 41, 35, 35, 35,110,208,160, 65,202,174, 93,187, 58, 85, 5,211,209,209, 81, 62,101,202, 20,147,
-187,135, 87,135, 14, 31,127,210,148, 43,148,218,114,120, 98,153, 70,163, 53, 63,121,242, 36,110,250,244,233,202,160,160, 32, 71,
-107, 48, 53, 26, 13,109,111,111,143,128,128, 0,248,121,121, 33, 47, 47, 15, 7, 14, 28,192,166, 77,155,240,251,239,191, 99,231,
-206,157,104,212,242, 19, 72,165, 82, 36, 39, 39, 67,165, 82,209,127,119,133, 50,175,246,101, 87,232, 71,116, 27, 61,122,116,242,
-240,225,195, 83,133, 66, 33,243,230,161, 80, 40,204, 3, 6, 12, 72, 27,244,221,210,110,150,165,197, 74, 52, 89,247,142, 30, 61,
-250, 98,219,182,109,240,243,243, 67,135, 14, 29,120, 0,240,213, 87, 95,241,250,244,233,131, 61,123,246, 96,223,190,125,143,188,
-189,189,175, 0,232,110, 77, 58, 7, 13, 26,212, 50, 44, 44,236, 82, 88, 88,216,221,190,125,251,174, 27, 57,114,228,107, 35, 87,
- 74,114,226,109,189, 94,143,192,224,198,162, 57, 27,110, 12,168, 12,239, 49,176,109, 93,116,244,166,133, 15, 31,198,205,240,243,
-147,121,196,196, 40, 54, 47, 94,108,111, 9,210,109, 52, 26,145,144,144, 0,185, 92,142, 1, 3, 6,216,243,249,252, 65, 86, 36,
-115, 73,247,238,221,135,196,199,199, 75,214,175, 95,175,188,123,247,174, 75, 74, 74,138,242,204,233, 19, 14,147,190,253, 74,106,
- 43,225,241,146, 51, 88, 2, 0, 98,146, 33,142,126,133,150, 44, 11, 89,233,229,196,119, 18, 37,132, 66, 55,172,168,221, 82,246,
-116,226,158,160,190, 83, 34,131,237,229, 74,254,212, 10,222,104,176,104,209,162,189, 17, 17, 17,253, 91,182,108,185, 31,128,176,
-140,103, 4,141, 26, 53, 58,176,103,207,158, 33,173, 90,181,186, 12, 32,160,220, 89,164,155, 91,207, 63,254,248,195,206,114,109,
-111,111, 15,129, 64,240, 22,201,226,114,185, 32, 73,178,202,217,155,183,171, 63, 71, 81, 79,135, 7, 57, 71,177,103,209, 61, 44,
-250,244, 9, 51,191,121,140,110,229,160,104,156,220,115, 15,233,184,135, 78, 95,214, 70,255,233,129,237, 69,102,204,253, 39, 13,
-224, 25, 25, 25,159,183,110,221,122,111,167, 78,157,116, 81, 81, 81,200,200,200,128,171,107,201, 92, 59,245, 29, 32, 21, 34,145,
- 8,238,238,238,240,246,246,238,127,241,226, 69,103,163,209,136,152,152, 24,164,167,167,223,249, 59,242, 84,154,139,252,203,228,
- 77, 67,248, 35,111, 17,173,226,216, 66,231, 1,128, 37, 8,245,189, 7, 15,104,138,199, 27,184,125,199, 14, 62,151,203, 69, 92,
- 92, 28, 30, 61,122, 4,205,153, 51, 40,188,122, 21,105,105,105, 40, 40, 40,128,147,147, 19,214,110,216, 32,214,155,217,161, 79,
-158, 62,165, 88,146, 45,109,111, 80,230, 22, 79, 62,159,223,190, 87,175, 94,229, 18,178,228,228,100,116,234,212,137,166, 40,170,
-172, 93, 13,111, 98, 18, 46, 14, 68,196,153,253,115,148, 74,222, 35,224,249, 4, 32,255, 14,192,234, 0,147, 30, 72,186, 15, 28,
-153, 13,143,130,104,226,196,156,112,103, 87, 17, 39,162, 12,166, 92,217, 86, 84, 47, 95, 95,223,223, 7, 14, 28, 72, 2, 64,219,
-182,109, 9, 95, 95,223,117, 0,188, 42,120,231,116, 37,131,228,245,156,156, 28,244,233,211,199,174,118,237,218,167,251,244,233,
- 99,103,185,255,174,152, 22,109,178,159,159, 95,150, 64, 32,216, 9, 88,213,193,150, 96,202,100,178,149,157, 58,117,234,189, 99,
-199, 14, 46, 0,156, 63,127, 30, 17, 17, 17,120,248,240, 33,158, 61,123,198, 4, 7, 7, 59, 44,253,125,239,154,149,171,183, 44,
-233,209, 34,208,165, 77,147,224,122,146,130,156, 2, 39, 39,167, 22, 44,203,122, 89,153,206, 78,179,103,207,126,244,248, 69,156,
- 45,201,161, 57, 92,154,195,183,177, 17, 59,201,165, 98, 55,133, 72,224,202, 39, 9,137, 70,163, 73,221,185,115, 39, 3,160,147,
-181,152,115,230,204,121,245,248,121,156,140, 32, 57, 28,154, 67,115, 37, 18,145,236,211, 14,161,141, 1,128, 11,150,171, 82,169,
-210, 54,109,218,100,168, 10,230, 15, 63,252,240, 32, 59,183, 64,206,161,105,154,195,161, 74,202, 82, 44, 20, 58,136,248,124,158,
- 78,167, 75, 90,182,108, 89, 97, 85, 48,103,207,158,253,232,201,139,120, 5, 73, 16, 20, 65,144, 28, 27,169,216,206,206, 86,228,
-224, 32, 17,218,139, 56, 20, 79,165, 82, 37,109,221,186,213, 42, 76,131,193,192, 77, 75, 75,195,227,199,143,225,222,184, 49, 78,
-157, 58,133, 26, 53,106,160, 79,159, 62,232,215,175, 31,132, 66, 33,218, 54,171,143,169, 83,167,226,197,139, 23, 48, 24, 12,252,
-178, 48, 45,118, 82,111,138,139,139, 75, 84,101,149,231,141,119, 95, 75,103,144, 51,216, 21,250, 17,221, 74, 19,172,242,240, 21,
- 10,133,185, 44,109,215,155,152,157, 58,117,250,254,204,153, 51,181,183,110,221,218,109,208,160, 65,151,183,110,221,138,166, 77,
-155,226,241,227,199,168, 85,171, 22, 54,111,222,140,126,253,250, 93, 94,190,124,121,183,168,168,168, 64, 79, 79,207,105,149, 97,
-246,237,219,119, 76, 80, 80,208,217,212,212,212,102,217,217,217, 1, 7, 14, 28, 24,218,179,103,207, 87,253,251,247,111, 87, 66,
- 24,141,198, 29, 71, 14,239, 71,231,110,189, 80,215, 63, 96,205,224,105,219,234, 87,210, 54,217,135,192,186, 77, 41, 41, 25, 59,
-180, 90, 77, 31,154, 22,137,110,220, 80,236, 91,189,218,190,116,100,129,164,164, 36,116,237,218,149,230,114,185,173, 42, 73,231,
-162, 30, 61,122,244, 57,112,224,128,220,162,213,185,122,245, 42,238,223,191,143,216,216, 88,228,230,230,162,221,200, 2,140, 94,
- 80,132, 61,122, 1,139, 79,190, 98,197,239,216,135,148,136,176, 6,156,237,108, 56, 87,134, 46,171,251,213,136, 53,126, 28,137,
-130,198,246,239,158, 33, 51, 70,183,175, 28, 76,162, 89,179,102,219,194,194,194, 8,189, 94, 15,189, 94,175, 7, 80,166, 87, 95,
- 87, 87, 87, 65,131, 6, 13, 48,114,228, 72,210,198,198,102,121,121,233, 84,171,213,186,163, 71,143, 98,208,160, 65, 24, 63,126,
- 60,234,212,169, 3,185, 92, 14,154,166,177,101,219,110,251,126, 67, 71,249, 52,108,217, 58,208,175, 97,211, 6,249, 58,170, 49,
- 45,148, 15, 47, 71, 27, 82,102,222, 11, 28,163,240, 32,230, 26, 86,116, 75,100,110,110,214, 20, 76,250,252,231,232, 39, 23,210,
- 30, 78, 11, 91,247,128,189,214, 60,115,219,215,241, 72, 51, 62, 70,171, 62, 30,240, 12,146,127, 35,118,135,239,187,150,167,149,
- 82, 37,204,250,245,235,183,188,121,243, 38,191,117,235,214,136,139,139, 3, 77,151,204,167,204,239,147,206,217,179,103,243,181,
- 90, 45,254,252,243, 79,132,135,135, 39, 25, 12,134,111,222, 39,157, 85,209,104, 89,184,200,191, 76,214,189,113,164,148,167,209,
-154, 13, 0, 70, 6, 17, 3,195,135,106, 34, 35, 35, 69, 60, 30, 15,113,113,113, 72, 73, 73,193,150, 77,155,204,109, 29, 29,243,
- 59,184,186,170,182,108,218,196,234,245,122,176, 44, 11, 95, 95, 95,244,238,221, 91,248, 89,159,254,233,132,170,112,183, 21,203,
- 60, 74,203,250,250,208,161, 67,223,250,251,164, 73,147, 96, 99, 99, 3,130, 32,156,173,200, 92,216,184,217, 61,220,228,158,178,
- 52, 54,117, 75, 54, 40, 1,192,145, 2, 28, 27, 64, 96, 11,240,165, 0, 79, 4, 93,212,217,108,146,237, 16,219,171,213, 48, 87,
- 0, 85, 89,234,129,139,139,203,140,179,103,207, 58, 68, 69, 69,177, 42,149, 10, 41, 41, 41,236,252,249,243, 29, 92, 92, 92,102,
-188,235, 23, 73, 78, 78,158,211,185,115,231,180,240,240,112,219,227,199,143,187,135,135,135,219,118,238,220, 57, 45, 57, 57,121,
-206,251,124,105, 46,151, 75, 61,124,248, 80, 49,119,238,220,126, 0,110,251,251,251,103,185,186,186,222, 70,145,209,100,133, 34,
-149, 74, 75, 72,150, 69,187,198,225,112, 64,211, 52, 92, 92, 92,244,217,217,217,230, 86, 13,189,132,190,182,164,209,133,207, 21,
- 42,132, 2, 55,169,141,109, 72, 86, 86,214, 61,130, 32, 94, 90,185,196, 23,212,164, 73, 19,218,204,210,204, 15, 12,241,165, 0,
- 0, 32, 0, 73, 68, 65, 84,232,129,109, 93,190, 26, 18,234,248,219,220,225, 53,150,205, 25,225,186,104,214, 23,190,115, 38, 15,
- 8, 37, 25, 70, 91,171, 86, 45,103,139, 65,187, 21,234,243,224, 70,141, 26,113, 24,208,120,252, 52, 54, 45, 46, 49, 41,255,227,
- 54,205, 74, 52,151,126, 65,193, 29, 28, 28, 28, 90,251,250,250, 54, 34, 8,194,170, 45,201, 66,161, 48,168,110,221,186, 28,146,
-162, 9, 59,185,212, 93, 42, 17, 58,149, 44,161,200,100,205, 21, 14, 14, 97, 36,203,230, 41,149, 74, 71,161, 80, 24, 84,133,188,
-115, 24,112,225,228,168,176,117,176,151, 73, 58,132,182,168,211,172,121, 51,159,250, 33, 77,155,249, 55,108,244, 25, 97, 50,169,
-188,188,188, 28, 45, 70,242,149,104, 90, 5, 59,118,236,192,220,185,115,209,192,195, 3,174,174,174,112,116,116,196,213,171, 87,
-113,243,230, 77,200,229,114,164,167,167, 99,241,226,197, 56,120,240, 32, 12, 6,131,180,170,245,201, 26,178, 85,145,152, 76, 38,
-242, 77,130, 85, 30,190, 80, 40,100, 44, 70,242,229,201,209,163, 71,183, 89, 52, 89, 95,127,253,117,203,165, 75,151, 94,142,142,
-142,134, 68, 34,193,205,155, 55, 49,116,232,208,203,203,151, 47,111, 57,106,212, 40,108,218,180, 9,175, 94,189,218, 80, 17, 94,
-223,190,125,103,125,241,197, 23,203, 46, 92,184, 64, 58, 57, 57, 65, 46,151,163, 71,143, 30,216,176, 97, 3,199,100, 50,109, 12,
- 11, 11,187, 27, 22, 22,118,215,156,112,242,251,189,191,207,191,250,224,222, 93,140, 25, 55,145,167, 55, 25,167, 88,145,125,182,
- 80, 34,201, 55,181,110,157,189,199,104,212,244,229,114, 69,182,119,239, 42, 34, 54,110, 44, 33, 91, 83,167, 78,133,173,173, 45,
- 80,100,192,140, 10,180, 58, 35, 14, 30, 60, 88,210, 31,218,217,217,129,199,227,129,203,229,130,166,105, 80, 20,133,211,107,196,
- 88, 61,181,136, 95,172,158, 74,224,228, 74, 66,253, 62,223, 78,228,138, 0,185, 19,239,238,151,155,253, 3, 3,218,217,225,234,
-174, 84,204,239, 28,149,120,115, 79,198, 4,109, 58,126, 41,231,181,134,147, 38, 77,242, 75, 79, 79,199,173, 91,183,112,235,214,
-173,242, 52, 64,218,195,135, 15,255, 84, 80, 80, 0, 79, 79, 79,116,239,222,189, 53,128,198,229,180, 27, 52,106,212, 8, 93,187,
-118, 69,104,104, 40, 26, 52,104, 0,189,193, 68,135, 13, 28, 81,247,225,171, 12,215,249,139,231,139,206,158, 59, 64, 94,190,124,
-129,218,182,255,164,109,179,208, 79,150,113,165,202,235, 16,218, 41,173,201,167,198,156,133, 32,229,167, 88,119,102, 28,185,226,
-124,184,100, 75,196, 10, 47,169, 84, 74,220,185,117,215,184,101,213,158,248, 0,113,247,244,235,187,178,160, 33, 82,209,110,136,
- 39,201, 0,189,255, 41, 35,187, 64, 32, 88,122,225,194, 5,103,131,193,128, 7, 15, 30, 96,252,248,241,218,247,132, 44, 81,128,
-184,187,187,227,252,249,243, 24, 48, 96,128, 54, 45, 45,237,218,223,149,167,210, 92,228,127, 69, 56,165, 24,100,137, 36, 36, 36,
-228,202,229,114,215,186,117,235,146,122,189,190,104, 73, 98,223, 62,243,239, 27, 55, 30,209,106,181,227, 0,112, 87,254,246,219,
- 26, 87, 55,183,208,129,131, 6, 17, 70,163, 17,157, 59,119,230, 69, 70, 70,218,189, 76, 79,207,183, 98,192,121,237,247, 6, 15,
- 30,140,165, 75,151, 2, 0,198,142, 29, 91,162, 90, 39,172, 48, 88,146,216,162, 83,135, 46,141,108, 18,196, 43,108, 12,205,141,
- 5, 53, 95, 72,175,139, 11,132,141, 64,242, 56, 16, 80, 96, 12, 70,211,179,244,158,183, 95, 60,171,231, 39,204,206,170,213,222,
-255, 35,252,126,106,107, 39,141, 89,187,199,234, 14, 71, 36,106, 34,145, 72,112,251,246,237,236, 70,141, 26,229,178, 44,107, 59,
-103,206, 28,123,145, 72,212,228, 61,202, 62,230,233,211,167,173, 91,180,104,241, 21, 73,146,237, 25,134, 57,157,150,150,182, 18,
- 64,140,149,239,143, 6,240, 3,128,146,153,165, 94,175, 7, 73,146, 96, 89, 22,125,251,246,197,212,169, 83,253,238,223,191,143,
-179,103,207, 42,218,183,111,127, 29, 64, 46,128, 97, 0,202,212,154,169, 84,170,194,155, 55,111, 10,207,158, 61, 11,134, 97,160,
- 80, 40, 96, 99, 99, 3, 62,159,143, 30, 61,122, 72,166, 76,153,210,238,196,137, 19,233,170,154, 53, 40, 65, 74,146,154, 47,145,
- 72,225,236,218,106, 84,255,207,163, 89,150, 61, 88,133,206,129, 39,228,152,180,132, 89, 71, 46,154,185,156, 20,113,185,132,128,
-203, 1,159,209,224,251,159,230, 17, 92,214,204, 65, 21,215,231,185, 92, 46, 87,202,135,158,226, 81, 70, 17, 1,246, 67, 52, 14,
-138,162,120, 2,110,249,246, 24, 52, 73,146, 36, 73,114, 1, 88, 29,180,143,207,231,115,165,124,182, 92, 76, 33, 69, 80, 4, 65,
-240, 80,206, 78,180, 32,103,176, 22, 45, 18,111,220, 75, 93,105, 82,220,170, 85, 43, 28, 57,123, 27,251, 34, 78, 35, 51,238, 30,
-166,127,247, 53, 26, 55,110,140,200,200,200, 10,211,100,177,209, 42, 79,187,236,226,226, 18,149,156,156,220,176,188,119, 43, 90,
- 50, 44, 71, 75,245, 54,254, 76, 91, 4,207,142, 70, 37, 54, 90,221, 91,181,106, 53,102,199,142, 29,250,142, 29, 59,242,250,246,
-237,139,128,128,128,150, 67,134, 12, 1, 0,180,111,223, 30, 75,151, 46,109, 57,100,200, 16,236,222,189, 27, 7, 14, 28,208,181,
-105,211,230,187,243,231,207, 39,161,104, 71,231, 91,194, 48, 76,215,181,107,215,190,169, 41,132,201,100,130,209,104, 84,154, 76,
- 38,101,113, 95,132,101,203,150,103,158, 60, 17,137,239,166,205,134,163,131,115,144,149,117,136, 24, 60,113, 98,230,230,197,139,
-177,120,247,110, 76,172, 85, 75,180,245,209, 35,156,212,106,177,231,236,217,204,226,223,169,212, 54, 83,173, 86, 23, 30, 61,122,
-212,102,207,158, 61,144,201,100,168, 83,167, 14, 20, 10, 5,104,154, 6, 73, 9, 65,113,229,168,235,223, 4,192, 77, 0, 64, 45,
- 23,168,125, 61,113,153, 32,144,203,146, 85,183, 41,226,215, 64, 77,123, 55,193,133, 49,155, 2,100, 54,142, 92, 28, 95, 25,143,
- 19, 43, 18, 14,106, 51,241, 43, 76,120,130,242,109,190, 26,121,122,122, 34, 61, 61, 29, 71,143, 30, 85, 3,229, 18, 50, 48, 12,
-243,211,111,191,253, 54,105,218,180,105,124, 95, 95, 95, 0, 8, 2,112,171,172,103,197, 98, 49, 92, 93, 93, 75,136,101,223,240,
- 81, 94, 35, 39,140, 18,246,252, 36, 20, 28,142, 61,114,213, 70,100,229, 27, 33,183,151,224,187, 9, 97,130,211,141, 92, 27,175,
- 93,190,253,112, 97, 33, 26, 3,111,247, 7, 4,129, 91, 55,238, 93,174, 47,240, 5, 8, 18, 72, 32,207,129, 0,129, 2,194, 8,
-130,162, 88,179,217,140,248,248,120,176, 44,139, 1, 61,135, 38,140,152,127,192,177,229, 0, 21,220,235,186,128, 96,241,209, 63,
-133, 8,216,217,217, 5,101,101,101, 33, 38, 38, 6,225,225,225, 73,153,153,153,167,212,106,245,208,228,228,100, 0,200,126, 7,
-200, 18, 50, 31, 20, 20,132, 38, 77,154,160, 79,159, 62, 2,141, 70, 19,230,229,229,229,154,145,145,209,252,175,204,207,155, 92,
-228,127,138,104,149,217,208,140,198,186,186, 53,107,160, 62,125, 26,188,147, 39,177,199,197,165, 64,171,213,126, 11, 32,161,184,
-225,127,189,105,243,230, 43,221,174, 93,179,209, 71, 71,195,235,254,125,208, 50, 89, 80, 85, 19,176,113,227, 70,168, 84, 42,228,
-229,229, 1, 0, 86,172, 88, 1,149, 74, 5,147,149, 1,103, 57, 92,180,116,118,172,133, 84, 60, 3,195, 33, 37,177,117, 53, 77,
- 37, 90,105,178,107,188,147, 58,143,116, 69,116, 92,136,184, 48, 75,223,148,160,244,208,102,106,224,218,162, 14, 56,224,180,172,
- 74, 26, 45,235,254, 28, 14, 39,251,233,211,167, 93,125,124,124, 34, 0,216,191,139, 61,192, 27,242, 60, 45, 45,109,220,187,188,
- 72, 81,212, 15,175, 94,189,114,220,176, 97,195, 87,115,230,204, 97, 75, 19, 45,203,255, 57, 28, 14, 88,150,133,173,173, 45,104,
-154,118,186,122,245,170, 83, 72, 72,200, 42,134, 97,130,202,201, 39, 27, 16, 16,128, 87,175, 94,129,195,225,192,214,214, 22,140,
-201,128,217, 19, 70,193, 76,241, 57,147, 39, 79, 14,234,213,171,215,131, 13, 27, 54, 24,109,154,181,104,158,149,149,245,112,204,
-128,129, 15, 14, 29, 58,164, 47,118,241, 80,249, 20,159,101,239, 62,123,246,140,114,115,113,162, 88,147,134, 17,115, 1,193,189,
-101, 44, 79,226, 12, 1,135, 98,185, 4, 9,190, 64,104, 27,147,152,152,197, 48,204, 99,107, 48, 25,134,185,243,234,213, 43,161,
-147,163, 29, 71, 83,168, 47, 16,210, 44, 47,246,206,237,151, 53,131, 27,121, 1,128,246,206,205,243,252,186,245,132,177,105, 25,
-226, 90,181,106, 89,133, 89, 88, 88,120, 55, 41, 41,137,114,114,114,226,196, 37, 36, 30,150, 73,196, 14, 54, 50, 89, 83, 0, 48,
-228,231,221, 36,117,186, 12,138,230, 56,101,100,101,101, 23, 22, 22,190,178, 54,239, 47, 94,188,224, 40,149,142,212,241,147,103,
- 34,156, 68,124, 71, 41,143, 99,195, 39, 8, 66, 68, 17, 42,174,137,201, 20,136, 68,142, 49,137,137,217, 44,203,150,171, 33, 92,
-152, 59,176,103,209,247,154,189,187, 20, 54,238,221,187,135, 99,151, 31, 67,204,234, 65,104,243,112,114,211,122, 12,152, 60,237,
-189,237,254, 42, 35, 91,239,164,205, 90, 91, 47,234, 13,124,164, 84, 98, 8, 63, 96,192,128,217,219,182,109, 43, 49, 64,121,252,
-248, 49,218,182,109,107, 89,230, 64,135, 14, 29, 16, 18, 18,130,199,143, 31,195,219,219, 27,103,207,158,229, 83, 20,197, 31, 56,
-112,224,252,237,219,183, 31,173, 84,239,191,110, 29,134, 14, 29, 90,150, 97,245, 11, 0, 90, 66,238, 91, 48,117,225, 22,251,236,
-172, 76,164,103,164,222,181,182, 28, 8,130,192,224,137, 19, 51,215,234,245,216,113,227, 6, 6,137,197,162,205,207,159,163,115,
- 72, 8,234,183,109,155,105, 77, 95,103,209,234,104,181, 90,208, 52, 13, 27, 27, 27,216,217,217,129,203,229,130,162, 93,192,225,
- 5,130,228,114, 17,220, 42, 16,139,191, 21,107,194, 63,197,114,130, 64, 46,159,135, 59, 92, 81,185,182, 58,132,184, 6,122,176,
- 44, 84,154, 4,156,179, 16, 18, 91, 15,216,210, 82,250,228, 23,171,124,101, 54,142, 92, 28, 91, 30,135,147,171, 18,247,107, 83,
- 49,189,184, 44,152, 10, 38, 18,245,101, 50, 25, 18, 18, 18, 16, 31, 31,255, 8, 21, 27,248,107, 30, 63,126,252,146,207,231,251,
- 57, 56, 56, 0,128,103,121, 19,115,134, 97, 74,236,176,182,238,216,107, 31,212,218, 75,240,113, 75, 63,108,137,152,135, 47,195,
-150,131,166, 8,152,205, 6,252,186,180, 11,204,186, 2,132,117, 27, 65,124,212,222, 59,240,116,132,254, 11, 99, 97,206,250,183,
- 38, 2, 28,204,253,185,223, 85, 25, 95, 66,214, 7, 67,200,236,237, 29,197, 92, 46, 23,118, 54, 74,253,180,145,223,164,176, 44,
- 91,210,110,104,138,107, 36,243, 21,133, 89,169, 5, 66, 25, 93, 8,176,100,205,119,243,102,243,225, 37, 49, 49,113, 92,235,214,
-173,231,231,231,231,231,168,213,234, 1, 0,224,233,233,233, 65,146, 36, 31, 64, 69,171, 35, 30, 40,219, 45, 4,247,254,253,251,
-144, 74,165, 72, 74, 74, 42,173,124, 1,195, 48,255,152, 77, 0,255, 80, 9, 6,112, 7,128, 18, 64,103,148,114,239, 64, 22,171,
-234, 62,138,140,140,100, 35, 35, 35, 63, 42, 25,188, 88,150, 49,101,103,131,213, 21,149, 45, 77,211, 44,128,210, 59,154, 68, 50,
-153,140,160,221,220, 64,240,139, 76, 63,216, 15,184,245,213,104,180,206,181, 12, 99, 6, 5,194, 0,182,212,164, 69, 45, 32, 48,
-207,190, 29,198,241,102, 32,149, 39, 43, 61,210, 1, 38, 22,102, 48, 84, 21,147,195,170,213,106,152, 76, 38,121,237,218,181,143,
-152, 76, 38,121,241,224,198,254,183,190,168,217,108,126, 73, 81, 20,190,250,234, 43, 88,180, 63,122,189, 30,169,169,169,208,233,
-116,208,235,245,120,245,234, 21,242,242,242,160,215,235,241,240,225, 67,120,122,122,130,162, 40,101, 5,157, 57,203,178, 44,220,
-221,221, 81,179,102, 77, 80, 4,139,223, 23,205,194,247,227, 71,161,159, 39,131,141, 43,127, 69,155, 54,109,234,213,170, 85,171,
- 25,135,195, 49, 59, 59, 59,115, 15, 28, 56,112,216,108, 54,247,128,245, 61,207,209,169, 83,167,214,244,247,247,119,148,217, 72,
-141,124, 30, 5,158, 81,205,242,117, 89, 44, 71,147, 9,119,119, 15, 19,132, 34,239, 65,131, 6,153,203,211, 66,148,133,249,237,
-183,223, 42,125,125,125,109,229, 50,169,154, 71, 83,233, 92,176,153,121,247,110, 93, 7, 0,158,131,163, 22, 2,145, 95,120,120,
-184,169, 42,152, 51,102,204,240,116,112,112,144,145, 96,243,205, 6,195,127,214,219,117,250, 44,130,166, 11,193,229, 53, 26, 59,
-118, 44, 81, 21,204, 73,147, 38,213,242,243,243,147,201,108,196, 5, 28,154, 74,225, 50, 76,138, 0, 76, 42,173, 55,228, 8, 28,
-236, 53, 16, 73,130, 7, 13, 26, 84, 46,166, 69,155, 53,101,202,148,132, 55,136, 55,178,179,179,161, 77,125, 0,110, 82, 52, 2,
- 37, 52, 26, 59,200,193,231,243, 75,182,190,151, 87, 93,203,179,209, 42,139,108, 89,251,110,163, 31, 43, 88, 2, 92, 91, 47,234,
- 77,191, 89,201,201,201, 80, 42,149, 21,182,167,237,219,183, 79, 11, 13, 13, 77,239,208,161,131,254,200,145, 35, 32, 8, 2,103,
-207,158, 69, 82, 82, 18, 58,116,232, 0,150,101, 45,187,218,112,247,238, 93,180,111,223, 94,223,186,117,235,164, 98,255, 90,149,
-202,208,161, 67, 97, 52, 26, 81, 80, 80,128,236,236,108, 68, 70, 70, 34, 48, 48,144, 21,137, 68,189, 40,247, 79,230,133,125, 49,
-173,121, 64,131, 32,172, 90,190, 88,207,227,208, 11,171,210, 94, 9,130, 64,248,183,223,102,230, 5, 7,103,111, 85,171, 53,131,
-109,108, 68,181, 19, 18, 20,183, 79,156,176, 55, 24, 12, 86, 97, 88,180, 58,110,110,110, 37, 36,139,203,229,130,195,115, 0, 37,
-174, 15,158, 93, 7,136,156,123,225,220, 29,190,206, 86,140,131, 82, 9,142,139,101,229,187,118, 16,185, 99, 94,243,190,202, 3,
- 45,250, 41,207,136,106, 96, 67,241,120, 64,178, 28,226,192,144, 95,125,106, 59,212, 20,226,218,222, 84,156, 92,149,248,135, 54,
- 21,179, 0, 60,175,172,157, 27, 12, 6,173,217,108, 6, 73,146,224,112, 56,165,109, 2,175,252,241,199, 31,184,125,251, 54, 80,
-202,109, 79,126,126,190,153,162, 40, 8, 4, 2, 0,144, 84,208,223,129,166,105,208, 52,141,243,215, 47,218,245,251,172, 11,113,
-245,207, 83,104, 17,216, 31, 89, 5, 6,164,229, 25,144,171, 1,252, 27, 79, 71, 64,251,131,184,247, 42, 31, 65, 13, 2, 40,138,
- 39, 14, 47, 11, 79, 27,131, 4,117, 60,122,103, 61, 98,234,232, 19,133,199,174, 29,122,252,232,226,190,123, 15,119,253, 22,241,
-188,121,227,214,234, 98,101, 2, 10, 10, 10, 88,130, 32,216,111,134, 79,123,185,117,104,142,121,249,128,123, 12, 71, 39,120,241,
- 55,118,245, 30, 14, 14, 14, 87,237,236,236,206, 22,147, 35, 15,169, 84,122, 69,169, 84, 70,163,104,163,199,161,148,148, 20, 95,
-181, 90,221, 2, 69,155,179,226,178,178,178,218, 22,107,158,226, 42,208,132,109, 80,169, 84, 95,155,205,230,110,197,199,167,102,
-179, 57,232,217,179,103,126, 65, 65, 65,143,188,188,188,238,122,121,121, 29,243,242,242, 58,236,229,229,117, 56, 52, 52,116,169,
-197,221,195, 95,188,108,248, 22, 23,249,151, 17, 45, 20,147,172,117,197,103,148, 16, 45, 0,231,223, 52, 64, 51,241,249, 15, 77,
- 99,198, 64,118,248, 48,232,103,207, 48, 36, 60,220, 70, 36, 18, 45, 71,145,143,166, 22, 18,137,100,213,172, 89,179,164,246, 11,
- 22,192,229,226, 69,196, 70, 70,194, 72,211,183,222, 37,117,133,133,133,224,112, 56, 37,154, 24,177, 88, 12,179,217,140,178, 84,
-190,111, 53, 64, 19,174, 37,165, 69,131,135,154, 96,192, 22, 28, 87,181,190,209,255,229,116,199, 72,149,167,247,115, 53,215,251,
- 71,135,166,142,203, 61, 90,222, 80, 19,156, 2,158, 76,128,248,248, 4,152,193, 84,105,189, 89,171,213,230,169,213,106, 4, 5,
- 5,217,221,190,125,187,118, 96, 96,160,162,248,254,205,247,252, 48,205, 92, 92, 92,246,186,186,186,198,184,184,184,236, 5,208,
-172, 10,239,110,184,116,233, 18, 40,138,194,172, 89,179,144,159,159, 15,131,193,128,172,172, 44,196,199,199, 67,175,215, 35, 49,
- 49, 17, 79,158, 60,129, 94,175, 71,108,108, 44,116,186,202, 39, 36, 12,195,192,198,198, 6,218,194, 2,172,158,247, 61,102, 76,
-153,128,188, 23, 81, 72, 76, 78,131,204, 86,140,113,227,198, 81,114,185,156, 97, 24,166,166,217,108,110,207, 48,204, 26,107,190,
- 83,169,250,118,217,221,221, 61, 96,209,162, 69,126,223,207, 91,195,181,225, 20,176,124,169,128,225, 73,249, 44,175, 94, 83, 12,
-157,190,156,187,108,201, 47, 79,175, 93,187,150, 4,235,156,119,146, 0, 46, 7, 7, 7,251, 36, 37, 37, 5,250,250,250,214,181,
-247,168,197,231, 43, 93,115,185,202, 26, 42, 86,167,189, 65,184,214,104,181,102,205,154, 7, 87,174, 92, 73,174, 10,166, 88, 44,
-174,183,101,203,150, 0, 39, 39,167, 0, 90, 40, 20,104,242,242,246,152, 52,234,189,148, 76, 46, 32,109,100,159, 30, 60,120, 48,
-106,255,254,253,169, 85,193,244,246,246,246,157, 55,111,158,127,253,250,245,253,157, 61,107,243,133,174,238, 89, 2, 55,143, 44,
- 97,253, 64, 62,220,106,118, 92,181,106,213,221,107,215,174, 89,133, 73, 81,148,137, 36, 73,208, 52, 13,145, 72,132,227,199,143,
- 99,204, 23,253,225,238,106,135,186,190,190,104,247,229,215,216,191,127,127,137, 13, 15, 69, 81,229,142,232,155, 23,140,139, 8,
- 86, 18, 81, 88, 91, 47, 10,107,235, 69, 5, 43,137,168,114,201, 86,241,223,203,122,198,170,222,168,156,229, 70, 43,200,214,209,
-243,231,207,255, 52,120,240, 96, 94,167, 78,157,112,227,198, 13, 12, 29, 58,244,242,129, 3, 7, 0, 0, 55,110,220,192, 55,223,
-124,115,249,204,153, 51, 24, 53,106, 20,218,182,109,203,187,116,233,210, 42, 88,225,251,199,100, 50, 97,227,198,141, 48,153, 76,
-144, 72, 36, 80, 40, 20,232,210,165, 11, 30, 60,120, 48,106,211,166, 77,209, 20, 77,127,222,185,219,103, 56,114,248, 0,158, 60,
-124, 48,106,243,252,129, 85,118, 10, 76,146, 36, 58,133,135,103,102,250,251,103,111, 86,169, 52,195,228,114,145,111,106,170,226,
-220,222,189,246, 86, 16, 53,194,108, 54,151,144, 43, 11,233,176, 28, 28,158, 3, 56,226, 0,112,164,141,113,239, 57,215,200, 13,
-193, 29, 94, 99, 60,174,200,127, 22,205, 35,135,246,250,222, 19,189,190,247, 68,247,201,181,134,136,106,224,119,113, 13,140,238,
- 52,190,102,168, 87, 99, 91,168,210, 13,136,252, 53, 54, 78,155,133, 5, 0,158, 88,211,206, 25,134,121,148,148,148, 4, 30,143,
-135, 26, 53,106,248, 0,176,216, 5,110, 24, 62,124,248,216, 31,127,252,113, 2,128, 31,139,239, 73, 66, 67, 67,253, 11, 10, 10,
-240,236,217, 51, 0,184, 93,129, 54,184,100,151, 97,182, 42,150, 95,203,165, 62, 2,235,141,132, 92,222, 0, 73,217,122, 36,103,
-235,241,251,234, 30,136,186, 52, 23,183, 79, 14, 66, 92,106, 42,132,206, 61, 97, 54,233, 2,172,152,212,187,252,249,231,159,196,
-165, 75,151, 8,134, 97, 96, 52, 26,217,124,149,138,189,115,249, 50, 10, 47, 92, 32,108,108,108,136,150, 77, 90, 23,108,158,123,
-228,230,193,149,151,111, 27, 52, 85,158,168,191,143,204,120,249,242,101,179,189,123,247,134, 2,152, 81,191,126,253,107,241,241,
-241,205, 47, 94,188, 88,215,205,205,109,249,187,130, 90,220, 66,196,198,198,190,118, 20,187,133,208, 23,147,134, 78,197,100,174,
- 59,128,111,240, 30,187,236,171, 32,231,255,197,198,240, 71,240,198,110,195, 55,137, 86,105, 71, 97,240,146,203,165, 70,163, 33,
-241,212,169, 83, 6,146, 36, 33, 18,137, 48,120,232, 80,114,245,111,191,181,234,223,172,217,217, 17, 31,127,124,236,236,153, 51,
-193, 33, 33, 33, 96, 89, 22, 36, 73, 98,247,238,221,133, 90,109, 97,150,187,187,187,204,154, 78,163,116, 3, 82,169, 84, 37, 68,
- 43, 47, 47, 15, 78, 78, 78, 86, 47, 29,170, 85, 56,125,230,120, 84, 14,107,254, 50,190,211,243, 37,134,133,169, 61, 66,114, 25,
- 51, 39,207,108, 68, 94, 33,139,124, 45, 56, 55, 72, 69,200, 96,239,158,134, 87,237, 67,158, 92,136,190,154,165, 53,107,171,180,
- 91, 34, 61, 61,253,251,176,176,176, 44,165, 82, 73,216,216,216,192,213,213,149,236,222,189,123,102, 66, 66,194,143,239,250, 69,
-236,236,236,250,133,134,134, 70, 36, 37, 37,245,190,112,225, 66,205,139, 23, 47,246, 14, 13, 13,141,176,179,179,235,103, 37,196,
-158,105,211,166,169,121, 60, 30,154, 54,109,138,252,252,124, 20,239,242,169,240,176,102,137,148,203,229, 98,237,162, 31, 48, 99,
-202, 4,100, 71,223,192,189,203,167,112, 62,149,192,244,121,191,128,203,229,190,147,175,175, 58, 14,162,250,245, 93,164,143,191,
- 25,218, 55,121,234,148, 41,210,187,119,239,210, 99,199,127,195,198,166,100,131,215,105, 49,133,143,190, 39,255, 84, 59,160,243,
-167,237, 48,107,198,196,250,197, 78, 59, 43,148,122, 14,162,250, 1, 46,210, 71, 19, 71,244,127, 57,126,252,120,225,194,133, 11,
-181,205,154, 53, 43, 76, 75, 75, 19,138,229, 10, 95,142,173, 44, 32, 54, 37, 85,210,172, 89,179, 87, 95,126,249,101,110, 85, 49,
-167, 79,159, 46, 58,113,226, 4, 39, 44, 44,204,148,147,147, 35,161,133,194, 32,130, 47,104,146,145,147, 99,219, 59, 44,236,121,
-239,222,189, 53,197, 14, 75,173,198,156, 57,115,166,232,201,147, 39,156,102,205,154, 25, 83, 83, 83,165, 98, 59,251, 64, 74,166,
-104, 28,147,146,102,211, 36, 36,228,197,216,177, 99,213, 21,165,179, 52, 73,145, 74,165, 73, 45, 90,180,192,175,191,254,138,101,
-203,150,161, 99,199,142,120,240,240, 1, 58,143,157, 0,191,209,223,224,240,213,235, 72, 74, 74,194,156, 57,115, 16, 24, 24, 8,
- 46,151,251,164,204,246, 56, 42,154,184,155, 10,226,110, 42, 8, 98, 84, 52, 97,185, 46, 87,179,245, 99, 30, 74, 63, 95,214,115,
-183,103,150,173,233, 10, 86, 18, 81, 21,217, 97, 85, 70,182,122,247,238, 61,198,226,194, 97,216,176, 97,151,151, 47, 95,222,114,
-216,176,162,137,118,211,166, 77, 49,119,238,220,150,211,167, 79,191, 60,111,222, 60,180,107,215, 14, 94, 94, 94,149,110,124, 49,
-155,205, 48,153, 76,232,223,191, 63, 76, 38, 19, 50, 50, 50,240,244,233, 83,172, 91,183, 14, 44,203, 10, 0, 64,233,226,214,136,
-199,227,225,207, 59,183, 52, 51,134,133,108,175,130, 38,139, 40, 61,137, 41, 40, 40, 64,239,209,163, 51, 19,235,212,201, 94,147,
-153,169,249, 66, 46, 23,213,138,139, 83, 72,245,122, 87, 84, 96,151, 72, 16, 4, 24,134, 41, 33, 86, 22,194,245,230, 81, 60, 80,
- 90, 37, 6, 13,115,244,226,182,100, 0, 64,235,129, 46,232, 62,185,214, 16,165,183,104, 69,171, 1, 69, 74,239,253,115, 95,178,
-249,201,230,133, 48,226, 81, 21, 52,214, 55,110,220,184, 1,153, 76,134,176,176, 48, 62, 73,146, 11, 44,243, 85, 20,249,206, 90,
- 98,193,226,243,249,139, 7, 13, 26, 68,230,230,230,226,222,189,123, 0,112,166,188,126,137,101,217,146,188, 23,100, 19, 48, 51,
- 60, 92,185,115, 28, 39, 47,238, 67, 76, 82, 6,226,210,181, 0,199, 22, 90,117, 34, 12,133, 73,208,231,222,129, 74, 39,178, 42,
-193, 92, 46, 55,163,126,253,250,108,227,198,141, 89,150,101,241,226,197, 11, 83,108, 92,156,233,214,210,165,236,253,145, 35, 9,
-233,211,167, 92,161, 80, 72,120,122,122, 66, 32, 16, 48, 2,129, 32,235,111, 28,188,255, 18,119, 11,127,129, 91,136, 15,169,213,
- 98,241,239,148, 20,188,190,219,176,196,129,105, 89, 14, 75,193,218, 8,251,238, 91,181,218, 54,172,255, 64,117, 96, 96,160,220,
-213,213, 21, 4, 65,160, 71,207,158, 68,232,133, 11, 82,218,197, 5,118, 13, 27,150, 44, 71,156, 62,117, 10,199,143, 31, 87, 31,
-249,227,160,235,208, 47,190,232, 10, 96, 75, 5,137,225,240,249,252,146,223, 77, 73, 73, 1,159,207, 47,177,137, 80,169, 84,112,
-112,112, 64, 74, 74, 10,172, 92,153,219, 58,117,202,245, 41,233, 33,223,123,134, 72,105,226,152, 58, 21,102,150, 5, 77,152,129,
- 66, 22, 70, 51,160, 51,178,104, 84,139, 82,156, 44, 52,201, 35,111, 28,120, 5, 96,107, 85, 74, 79,167,211,157,187,123,247,238,
- 72,134, 97,246, 1, 32, 47, 92,184,192, 60,122,244,104, 12,172, 55, 92,127, 91,109, 47, 18, 77, 62,123,246,172, 98,242,228,201,
- 57,145,145,145,121, 93,186,116,177, 93,183,110,157,162,109,219,182,147,179,178,178,118, 89,163, 8,140,143,143,223,146,144,144,
- 48,166,113,227,198,200,206,206,134,193, 96, 64, 84, 84, 20,188,189,189,113,251,246,109,248,248,248,224,214,173, 91,168, 91,183,
- 46,204,102, 51,180, 90, 45, 24,134, 49, 87,214,153,103,103,102, 0, 89,241, 72,190,113, 12, 79,239, 71,225,108, 50,129,149,187,
- 34, 80,163,166,231, 59,249,169,241,113, 20,249, 43, 29,236, 78, 46,156, 61,211, 49,246,220,110, 28,216,184,146, 57,127,236,152,
- 31, 79,138,145, 31,245,255,250, 51,189, 17, 30, 0,120,205, 67, 26,163,147,252,137, 89, 84, 19,169,103, 31, 85,236, 96,209,199,
- 81,228,239,100,111,119,226,231, 5, 63, 74, 95, 28,223,140, 61,107,127,101,247,111,219, 25,168, 5, 66,252,253,253, 59,145, 36,
- 41, 3,160, 45,182,243,178, 42,180, 77, 89,152,167, 35, 34,130,181, 64,200,161, 67,135, 58,137, 68, 34,103, 0, 70,141, 70,243,
-242,125, 48,207, 68, 70, 6, 91,210, 73, 16,132, 35, 0, 3,203,178, 47, 80,197, 16, 60,125,250,244,153,251,205, 55,223, 76, 49,
-155,205, 14,165,102,231,212,226,197,139, 57, 12,195, 80, 44,203, 26, 72,146, 52,156, 56,113,194,108, 50,153,146,181, 90,237,232,
-247,233, 69, 62,251,236, 51, 92,191,126,125, 54,138, 54, 97, 88,171,173,126,205, 78,171, 56,100,207, 59,227, 95,184,112, 97,206,
-231,159,127, 62,117,215,174, 93, 79,151, 47, 95,222,109,212,168, 81,216,189,123, 55,234,212,169,131, 63,255,252, 19,223,127,255,
- 61, 0,180,156, 62,125,250,225, 13, 27, 54,120,197,198,198, 46,182, 66,163, 1,147,201,132,157, 59,119,162, 71,143, 30,112,112,
-112,128,139,139, 11, 8,130, 56,247,197, 23, 95,252, 6, 0, 20, 65,113, 1, 64,167,213,233,124,125, 27, 91,173,193,229,114,185,
- 37,125, 93,106,106,106,201, 78,193, 79, 62,255, 60,243,247,133, 11,177,189,176, 16, 95,200,229,162, 68, 55, 55,229,225, 23, 47,
- 70, 60, 44,234,156,217,138,180, 58,149,145, 44,107, 77, 26, 10, 83, 48,237,143,249, 49,206, 0, 58,182, 30,232,130,214, 3, 93,
-208,184,187, 35, 65, 82, 4,238,159,204,194,131,211,217,251,141, 42,156, 67,213,194,229, 60, 90,176, 96,193,225,143, 62,250,168,
- 91,189,122,245, 48,124,248,240, 47, 55,110,220,200, 53, 26,141,227,241, 31, 55, 15,182, 36, 73,254,184,118,237,218, 17, 10,133,
- 2,151, 46, 93,194,197,139, 23,207, 1,136, 47,175, 95, 2, 80,226, 51,171,134,187,143,246, 73,108,129, 40, 61,233, 10, 46, 95,
-250, 3,117, 2,191,134,208,185, 43, 20,190,243, 96,136, 94, 6,125,214, 73, 40,220,187, 32, 49,246, 5, 40, 14,255, 65,101, 70,
- 40, 44,203, 62, 76, 76, 76,244,242,242,242, 34, 98, 98, 98, 76, 0, 88,179,217,204, 26, 90,181, 50,250, 45, 92, 72, 63,248,242,
- 75,162,249,147, 39, 20, 75, 16, 76, 84, 84, 20, 0, 60,254,111,140,226, 22,119, 11, 15, 30, 60, 40,207,221, 66,149,164,126,253,
-250, 45, 47, 94,188,200,215,106,181, 56,127,254, 60,154, 52, 41,217,219,245, 95,245,126, 95,154,139,252,203,100, 68, 25,247,214,
-189,166,209,122,173, 98, 51, 4, 93,215,199,199,204, 37,177,169, 71,215,174,154,187,119,239,150,204,250,180, 55,111, 66,125,252,
- 56,204,102, 51, 88,150,197,197, 11, 23, 48,104,224,192, 2,154, 34,126,175, 85,171, 38, 75,176,175,249,110,105, 95,198,236, 33,
- 44, 44, 44,172,164,243, 73, 72, 72,128, 88, 44, 6,143,199, 3,195, 48, 48,153, 76,160, 40, 10,182,182,182, 48,153, 76,101,169,
- 96,222,196, 52,154,179,213,189, 55,116, 30,144,226, 82, 96, 96, 71,202,106,193,131, 43, 44,105,156,206, 54, 4,186, 5,210,176,
-231,164,179,103, 22,127,156,204,232,178,122,227,237, 29, 93,149,109,249,247,105,208,160,193,111,131, 6, 13, 34, 1,160,125,251,
-246,100,131, 6, 13, 86,160,226, 80, 57, 21, 98, 10, 4, 2, 62, 0, 68, 68, 68,100, 63,125,250,180, 99, 68, 68, 68,118,233,251,
- 86, 98,174, 91,180,104, 17, 68, 34, 17, 76, 38, 19,244,122,125,137,125, 86,233,179,193, 96,128,189,189, 61,142, 28, 57, 2,179,
-217,124,164,178,116,186,123,212, 4,225, 80, 27, 91, 34,206,226, 98, 38,247, 93, 72, 86, 9,102,109,103,113, 93,103,123,187, 83,
- 63,207,159,227,144,243, 60, 10,137,137,137,236,137,227, 71,174,105,129,164,188,124,204,200, 85,163,110,161, 30,130, 38, 94,136,
- 63,181,246, 59,118,122,107, 24, 81,246,174,193, 18, 76, 63,103,113, 93, 87, 7,187, 19,191,252, 60, 95,154,251, 60, 10, 41,169,
-169, 56,122, 36,226,174, 22,176, 44, 55, 14, 97, 24, 38,128, 97,152, 0, 0, 67, 42, 32, 47, 85,194,212,104, 52,245, 53, 26, 77,
-253, 15,137,201,178,108,125,150,101,173,198, 44,109, 19,181,100,201,146,232,148,148,148, 65,233,233,233, 29, 44, 71, 78, 78, 78,
-251,130,130,130, 54, 26,141,166, 85,225,146,154,182, 26,141,198,177,160,160, 64,169,213,106, 27, 1,136,170, 66,157, 47,145,210,
- 94,167, 83, 82, 82,102,165,164,164, 16,149,165,147, 26, 29, 77,236,248,101,226, 31,107,215,174, 85,190, 39,254,107,233,204,204,
-204,220,183,107,215,174, 32, 79, 79, 79,175, 33, 67,134, 96,205,154, 53, 88,190,124,185, 14, 0, 54,108,216,160, 43,165,201,114,
-143,141,141,109, 92,206,178, 97,251, 82,218,146,173,159,124,242, 9,123,241,226, 69,244,232,209,163,196,145,232,250,245,235, 97,
- 50,153, 84,237,218,181, 99, 0,160, 80,171, 81,177, 12, 11,189,161,220,245,247,183,202,147,199,227,125, 90,218, 95,160,197, 25,
- 51,143,199, 3,203,178,168,219,178,101,102,110, 96, 96,246,198,188, 60,205,172,250,245,109, 70,248,250, 14,169, 7, 12, 44, 11,
-147, 32,136,215,180, 58,111, 30, 85,208,100,149, 78,103,122, 97, 50,134,255, 49, 63,230,184, 69,179, 37,144,112,160,205, 55,225,
-224,194,152, 12,109, 6,214,151, 71,126, 42,202,123,118,118,246,216,133, 11, 23,234,228,114, 57, 62,251,236, 51,204,155, 55,239,
-139,150, 45, 91,230, 57, 58, 58, 94,175, 83,167,206,253,190,125,251,166, 68, 69, 69,141, 13, 13, 13,197,179,103,207,240,203, 47,
-191,228,230,228,228, 12,168, 8,147, 32,136, 18, 77, 94,247,206,237,179, 87,175,248,149,105,247,209, 24,136,132, 54, 48,210,238,
-200, 46, 48, 34, 71,205, 66,207, 15, 1,143,203, 71,135,102,254,184,126, 98,179,198,172, 87,111,169,172,206, 23, 20, 20,236, 31,
- 60,120,176,138,203,229, 66,175,215,179, 52, 77,131, 95,100,119,204,208, 29, 59, 26,154, 63,122,100, 50,179, 44, 67, 16, 4,190,
-253,246, 91,117, 78, 78,206,174,119,105, 71, 85,144,210,152, 31,202,221, 66,251, 55,198,159, 15,225, 22,226,175,200,251,191, 89,
-214,149,113,252, 71,163,101,217, 82,105, 57, 19, 4, 99, 54,155, 25,212,242,172, 37,141,141,137, 95,217,167, 79,216,176, 78,157,
- 58,139, 58,119,238, 44,240,143, 46,154,141, 70, 68, 68,224,192,129, 3,154,147, 39, 79,170,248, 52,181,193,189,134,187,147,217,
-204,128, 32,152, 10,217,176, 84, 42, 29, 63,109,218, 52, 97, 94, 94, 30,150, 47, 95,206, 4, 5, 5,145, 98,177, 24, 6,131, 1,
- 27, 54,108, 48,250,251,251,211, 36, 73, 34, 47, 47, 15, 36, 73, 62,177, 50,131,247,242,226,147, 58,252, 22,218,235, 64,227,175,
-134,218,249,133, 54,151,183,113,119,133,177, 33,139,228,132, 24, 60, 61,115, 50,231,225,137,165, 89,208,166,245, 66,229,225,129,
-202, 26, 8,126, 56,121,242,164,227,216,177, 99, 89,173, 86, 75,196,199,199,179,243,231,207,119, 28, 62,124,248, 15,201,201,201,
-253,222,241,163, 16,185,185,185, 32, 8,130, 41,238, 72, 44,179,254,170,172,203, 61,216,178,101,203,161,158, 61,123,118,111,215,
-174, 29,162,163,163, 75,150, 8, 75, 19, 45,203,238,195, 5, 11, 22,228, 2,152, 90, 25, 40, 77,211, 88,190,101, 31,114,115, 50,
-225,228,228, 2,129, 80,136,119,221, 97,201, 35,201, 89, 63,205,153,233,152,249,248, 58,241,224,218, 89,102,239,189,180,116,147,
-153, 45,219,227,127,126, 50, 91,204,254, 43,158,205,144,212,172,159,230,255,104,107, 89,214,220,117, 39, 69, 69,152,217,177,239,
-213, 68,254, 45,152,127,179,184,184,184, 32, 37, 37,133,112,113,113, 97,139,109,180,216, 10,136,214,235, 21,188,104,185,140,168,
-104,217,240, 93,241, 95,189,122, 53,191, 97,195,134, 19,159, 61,123,182,215,207,207,111, 20,128, 26, 58,157, 46,119,250,244,233,
- 63,111,216,176, 97,152, 53,154, 44, 0,216,189,123,247,210,161, 67,135, 30,239,218,181,235,119, 12,195, 52, 40, 53,176,191,114,
-116,116, 44, 89,194,205, 72, 75,157, 50,114, 88,255, 41, 5, 5, 57, 86,251,185,147, 72, 36, 35,166, 79,159, 46, 80,171,213, 88,
-181,106, 21,227,239,239, 79, 90, 38, 69,219,182,109, 51,249,248,248,112,194,198,140,201, 92,146,154,138,185,151, 46,169,167, 4,
- 4, 4,109,124,250,180, 17, 24,102,107,121, 90,157,178, 52, 89, 22,179,139,119,148,228, 98,178,181, 30, 64,199,230,125,156,113,
-104, 81, 12,114, 98,245, 63,195,132, 23,176, 34, 44, 80, 25,146,184,127,255,254, 14,105,105,105,135,102,206,156,105,219,168, 81,
- 35, 4, 4, 4,208, 18,137, 36,196,226, 46, 38, 47, 47, 15,167, 79,159,198,154, 53,107,244, 15, 31, 62,236, 89,209,114,149,217,
-108, 78,247,241,241,177,148, 3, 75, 16, 68,150, 74, 71,216,238,169, 23, 34, 25, 50,114, 47,113,249,214, 85, 36, 27, 24,232,140,
- 12,106,121, 6,163, 77,199, 37, 56,124,236,190, 57, 57,246,209, 35, 99, 97,206,239, 86,164,247,197,243,231,207, 15,206,153, 51,
-167,207,119,223,125, 39,204,204,204, 52,235,116, 58,102,223,190,125,212,144, 33, 67,204, 44,135,195,112, 57, 28,140, 31, 63,190,
- 48, 55, 55,247, 15,224,111, 13, 48,253,151,184, 91,248, 11,220, 66,124, 48,109, 86,233,243,255,138,148,217, 66, 25,138,188,178,
-102,237,234, 79,119,239,220,229, 76, 81,164,243,139,151, 47,111,117,235,213, 59,233,212,169, 83, 10,174,173,109, 19, 0,140,126,
-212,168,107, 6, 93, 97,118,228,161, 67, 30,181,106,213, 12, 44, 14, 42,205, 50, 20,121,165,162, 31, 44, 40, 40, 80, 95,186,116,
- 73, 51,117,234, 84, 34, 33, 33, 97,135,147,147, 83,223, 99,199,142, 73,122,245,234, 85, 24, 29, 29,189,223,217,217,185,123,104,
-104,168,116,226,196,137,186,130,130,130,170, 4, 30,125,196,102,228,212,187, 57,115,241,231, 55, 23,173,254, 24, 28,170, 5,116,
- 52,192, 24,175,192,144,127, 10,192, 14, 84,193,223, 81,105, 17,139,197,129, 34,145, 8,119,239,222,205, 9, 9, 9,209,107,181,
- 90,238,188,121,243,236,196, 98,113,224,187, 22, 60,203,178,108, 78, 78, 14, 24,134,225, 0, 32,138,207, 96,170,190, 23,191, 95,
-183,110,221, 14,237,217,179,231,147,206,157, 59,195,203,203, 11, 70,163, 17, 62, 62, 62,208,235,245,240,246,246,134, 78,167,195,
-236,217,179,145,151,151, 55, 1, 21,196, 60, 35, 8, 2, 38,147,169,196,216,214,213,205,163,200, 79,207,123,184,177, 16,211,164,
-215,147,200,141, 72,207,202,100,246,252,153,150,166, 49,152, 59, 60,207,208, 60,124,243, 57,141, 25,234,208, 33,227,146, 0, 64,
-199, 84, 28,113, 94,204,131,215,211, 35,235,145,150,158,137,221,119, 82,114,213, 6,166,227,211, 50, 48,171,148,206,127, 9,102,
-240,236,104,244, 30,103,253,179,239, 35,214, 18,170,242,228,110, 42,136,219,162,141, 44,214,110, 44,211, 71,214,123,226, 31,122,
-246,236,217, 33, 0,120,244,232, 81, 66,255,254,253,167,196,196,196,204, 1,112, 52, 54, 54,118,109, 85,128, 54,110,220,248, 12,
-192,208,138,158,217,181,120,232, 65, 0, 7,171,130,155,159,159,175,141,138,138,210, 78,156, 56,145, 72, 72, 72, 56,230,236,236,
-252,201,241,227,199, 69,189,122,245,210, 61,120,240,224,140,139,139, 75,235,246,237,219, 75,142,222,184,145,164,121,241, 34, 50,
- 50, 38,198,205,200, 48,145, 21,181,207, 15, 76,178, 94, 35, 91, 7,231,198,252,116,232,167,152,246,140, 14,251,245, 57,184, 6,
- 32,241, 61, 48, 47, 94,185,114,197,111,224,192,129,123,186,116,233,210,220,207,207, 15, 53,106,212,192,211,167, 79,145,145,145,
-129,123,247,238, 33, 34, 34, 34, 66,171,213, 86, 26, 80, 59, 59, 59,251,237,240, 68, 2,133,203,230, 85,179, 34,110, 93,110,226,
-211,170,243, 96, 97,128, 11,112,159,172, 26, 0, 0, 32, 0, 73, 68, 65, 84, 3,189,129, 69, 66,220, 11,204,158,241,187, 38, 37,
-238,217, 35,131,201,208, 19, 86,110,212, 41, 44, 44, 92,183,108,217, 50, 58, 50, 50,178,243,202,149, 43,165, 30, 30, 30, 20,151,
-203, 37, 1,176,183,111,223,102,199,141, 27,167,206,204,204, 60,162, 82,169,214,253,205, 99,244,197,151, 47, 95, 6, 83, 20,245,
- 65,221, 45,188,135, 91,136,106,249,144,226,233,233,230, 87,219,195,101,148, 87, 13,183, 49,158, 30,238,225,101, 25,185,123,201,
-229, 82,207,154,174, 35,188,106,184,141,169,237,225, 50,202,211,211,205,207, 10,213,162,151,141,141,205, 49,165, 82, 25, 4, 0,
-182,182,182,221,101, 50,217, 67, 91, 91,219,238,197,179,192,238, 18,137,228,177,191,191,255,240,191, 81, 93, 89, 33,166,143,143,
- 79,255,130,130,130, 47,125,124,124,250, 91,174, 95,188,120, 81,114,253, 46,152,238,238,238,237,110,223,190,221,111,241,226,197,
-159,213,169, 83,167,251,252,249,243, 63,251,227,143, 63,250,185,185,185, 53,122, 7, 76, 62,128,237, 52, 77,167,241,120,188,116,
-154,166,211, 44, 7,135,195, 73,163, 40, 42, 13,192,218,114,180,101,237, 75,205,114, 46, 59, 57, 57,197, 58, 57, 57,197, 58, 59,
- 59,199, 58, 59, 59,199, 42,149,202,183, 14,123,123,251,203,214,150,167,175,179,164,101, 72, 13,233,149,250, 74,201,229,122, 78,
- 98,223, 15,241,141,124,157, 37, 45,155,212,176,189, 82, 95, 41,189,244,255, 13, 51,200, 25, 44,187,198,151,101,215,248,178, 65,
-206, 96, 43,187,254,144,106,127,165, 82,201, 42,149,202, 89,127,213, 82, 66, 57,248,127,123,123,255,128,152, 94, 82,169,116, 87,
-141, 26, 53, 44,125, 93, 87, 27, 27,155,115, 18,137,164,107,113, 95,215, 85, 44, 22, 95,240,247,247, 31, 92, 25,166, 66,161,184,
-237,232,232,152, 90,124,164, 56, 57, 57,165, 56, 57, 57,165, 56, 58, 58, 38, 59, 58, 58, 38, 59, 56, 56, 36, 89, 14,153, 76,118,
-253, 29,243,238, 8,160, 41,128, 70, 0,108, 62, 96,121,122, 2, 24, 89,220, 7, 45, 4, 48, 28, 64,131, 15,240,141, 8, 90,168,
- 24,205,151,185, 95,161, 37, 14,249,180,196, 33,159,111,235,118,165,130, 16, 60,214, 96,214, 85, 40, 20,243,108,108,108,254,144,
- 74,165,151,164, 82,233, 33,123,123,251,249, 0,234,254,151,234,146, 4,192, 6, 20,249,103, 58,138,162,165,240, 67, 40,218, 84,
-224,241, 15,172,243,255,159,101,196,127,235,135,219, 87, 99, 86, 99, 86, 99, 86, 99, 86, 99, 86, 99,254, 11, 49,201,234,242,172,
- 38, 90, 85, 36, 90,111, 30, 0, 42,240, 12, 95, 45,213, 82, 45,213, 82, 45,213,242,255, 88,152,234, 34,168,150, 42, 74,153, 75,
-203, 68, 5,172,180, 42,190,166,222,133,217,158,174,198,172,198,172,198,172,198,172,198,172,198,172,198,252,127,135, 89, 45, 31,
- 80,170,213,170,213,152,213,152,213,152,213,152,213,152,213,152,213,152,255,235, 82,189,116, 88, 45,213, 82, 45,213, 82, 45,213,
- 82, 45,213,242, 23,201,186, 82,132,235,181, 37,196,106,162, 85,117, 33, 1,124, 9,160, 55,128,218, 40,138,102,191, 15,192,111,
-120,183, 53,125, 27, 0, 83, 0,180, 64,209,238,156, 87, 0, 46,161,104,119, 78, 65,117,113,151, 45,246,246,246,211,104,154,150,
- 1, 69,161, 77, 44,231,210,255, 55,155,205,185, 42,149,106,254, 95,148, 4, 10, 86,122, 80,182,164,181,116,218, 74,159,141, 70,
-227, 95,153,206,106,249,103,138,143, 66,161,216,158,157,157, 61, 0,165,130, 44, 87, 75,181,252, 47,136,131,131,195, 40,131,193,
- 48,157,203,229,206,203,200,200, 88,253,255, 40,235,111,145,172,215,136, 86,100,100,228, 5, 0,232,210,165,203, 71, 0, 32,147,
-201,174,146, 36,233, 89,149, 95, 96, 24,230, 85,110,110,110,185, 14,212,100, 50,217, 85,138,162,222,194, 52, 26,141, 82, 14,135,
-147, 95,214, 59, 38,147, 41, 81,165, 82, 53,250,135, 20, 34, 1, 32, 82, 46,151,107,231,204,153,243, 91,155, 54,109,220,147,147,
-147, 77,147, 39, 79,110,253,231,159,127,118, 6,240,105, 21,201, 86, 51,130, 32, 54, 7, 5, 5, 29, 12, 15, 15,223, 19, 18, 18,
-194,203,202,202,146,238,219,183,207,117,203,150, 45, 81, 12,195, 12, 64, 5,129, 86,255, 63, 11, 77,211,178,196,196, 68, 41, 80,
- 20,154,164,152, 88,193,104, 52,194,104, 52, 66,173, 86, 35, 48, 48,240,131,255,174,179,179,115, 48, 65, 16, 43, 37, 18, 73,163,
-130,130,130, 91, 0,198,164,164,164,252, 89,149,180,154, 76, 38,176, 44, 91,146, 78, 63, 63,191,234, 15, 90, 53,249,130,199,227,
-117,244,246,246,110,162,211,233,114, 94,189,122,117,211,108, 54,207,196,135,139,209,102, 11, 96, 38,159,207, 15,169, 93,187,182,
-251,179,103,207, 18, 12, 6,195, 13, 20, 5, 67,206,251, 16, 36,235,163,143, 62,186,188,106,213, 42,187,209,163, 71, 95,190,116,
-233, 82,203,106,178, 85, 45,255, 45,113,119,119,151,169,213,234,223, 1, 4,211, 52,237, 44, 16, 8, 32, 20, 10, 83,249,124,254,
- 93,161, 80, 56,236,202,149, 43,185, 85,197, 52,155,205, 51, 99, 99, 99,157,155, 54,109,186,200,209,209,113,118,102,102,166,214,
- 96, 48,156,201,201,201,153, 0, 64, 85,209,187,111,114,145,127, 25,201, 42,125,134,133,116,113,138, 51,198, 2,104,243, 26, 3,
-227,112,220,226,226,226, 28, 5, 2, 1, 24,134, 41, 25,204,222, 60, 44,247,245,122, 61, 2, 2, 2, 12,149, 12, 56,238, 9, 9,
- 9,142, 60, 30,175,228,158, 94,175,135,171,171, 43,147,152,152,232, 88, 28,246,160, 68,116, 58, 29,220,220,220,254, 73, 49,143,
-190, 84, 40, 20,121,241,241, 9,129, 90,157,225,199,225, 99,167, 78, 27,208,251, 99,249,213,171, 87,153, 79, 63,253, 84,119,225,
-194,133, 47, 81, 20, 56,213,170,206,156, 32,136, 45,147, 39, 79,158, 45, 16,217,216,157,189,250, 72,183,101,223,145,164, 32,159,
- 90,196,132, 9, 19,168,113,227,198, 93, 12, 14, 14,222,206, 48, 76, 67, 84, 65,179, 37,151,203,143,243,249,252,154,197,229, 23,
-159,147,147,243,201, 63,176, 66,114,240,182,243,216,178,238, 85, 42, 89, 89, 89, 40, 44, 44,124,235,240,243,243,179, 54, 86,102,
-149,210, 77,211,244,161, 5, 11, 22,184,166,166,164,224,215, 37, 75,154,162, 72,147,217,212,154,151,211,211,211,223, 74,167,175,
-175, 47,170,165, 74, 50,101,246,236,217, 11, 62,255,252,115,152,205,102, 20, 22, 22,186, 60,127,254,220,127,250,244,233, 61, 95,
-188,120,209, 4,192,203,247,157,140,123,123,123, 71,127,253,245,215,138, 38, 77,154,160, 56, 74,133,203,165, 75,151,154,110,216,
-176, 97, 80,124,124,188, 47,128,140,247,249, 1,133, 66,177,125,253,250,245,118, 34,145, 8,135, 15, 31,182,107,215,174,221,165,
- 59,119,238,180,122, 15,178, 69,218,217,217,141, 3,208,150, 97, 24, 30,128, 27, 57, 57, 57,115, 81,117,175,238, 74,137, 68,178,
-159, 36,201, 90,192,127,188,209,147, 36,105, 79, 16, 68,166,229, 30, 65, 16,142, 12,195, 92,203,206,206,110, 94, 93, 29,255,221,
- 98,103,103,247, 69, 90, 90,218, 42, 62,159,207,149,203,229, 16,137, 68,224,112, 56,224,112, 56, 53,248,124,126, 13, 62,159,223,
- 41, 52, 52,116,204,185,115,231, 42,244,176,223, 44,200,105, 8, 72,226, 71,138, 32, 41, 0, 32,105,177,141,173,173, 45,126,252,
-241, 71,113,247,238,221,197, 0,112,249,242,229,240,193,131, 7,183, 75, 76, 76, 12, 40,143,108,149,197, 69,254, 69,178,174,162,
- 1, 15,197,236,241,194,107, 45,151, 36,193,227,241,112,253,250,117, 88,227,172,220, 18, 34,161,194,222,160,216,195,248,159,127,
-254, 71, 1, 96, 25,104,120, 60, 30,174, 92,121,221,169,124,179,102,205, 74, 26,251,223, 37,189,253,138,156, 60,238,253,170, 40,
- 93, 97, 43,139,188,107,239,253,202, 23,173,127,137, 67,239,113,179,250,106,180,134,198, 0,212,185, 57, 57, 57,183, 14, 28, 72,
- 14,242,241,225,110,223,190,189,137,171,171,107,239, 42, 16,173, 41, 13, 27, 54,220, 79, 9,109,237,195, 7, 15, 9, 31,198, 33,
- 13,131, 70, 78,156,151,144,146,169, 30, 49, 98,196,129,195,135, 15,135,255,244,211, 79,143, 39, 77,154, 52, 5,192,247,214,166,
- 95, 32, 16,212,124,242,228,137,183,217,108,134,159,159,223, 63, 49,140, 65, 16,138,156,239,125, 14, 96,103,241,189,254, 40,242,
-220, 31, 12,224,110, 85,192, 44, 26,172,178,142, 15, 45,174,174,174,190, 3, 7, 14,180,207,206,204,196,175, 75,150, 88,110, 55,
- 66, 37,203,136,150,246,163,215,235,241,217,103,159, 13, 52,155,205, 28, 11, 9,212,233,116,250,188,188, 60, 45,254, 99, 88,154,
- 1,224, 99, 43,146,227, 41, 22,139,127, 6, 16, 92, 88, 88,232, 10, 0, 98,177, 56,137, 97,152,131,106,181,250,123,252, 39,128,
-111,149, 39,184, 0,252, 81,126, 40, 40,118,193,130, 5,207,166, 78,157,250,242,191,128, 89,211,201,201,105,126, 88, 88, 24,142,
- 28, 57,130,163, 71,143, 26,133, 66, 33,103,240,224,193,196,152, 49, 99,228, 95,127,253,117, 39, 0,203,222,243, 51,119,154, 61,
-123,182,162, 94,189,122,216,183,111, 31,238,221,187, 87,232,237,237, 45,108,211,166, 13, 56, 28,142, 98,218,180,105,159, 2,216,
-252, 62, 63,144,157,157, 61,119,226,196,137, 91,118,238,220, 41,125,245,234, 21, 86,174, 92,105,223,183,111,223, 11,241,241,241,
- 31, 85,129,108,241, 1,140, 3, 16, 74, 81, 84,171,193,131, 7,155,198,142, 29, 75,147, 36,105, 92,178,100,137,195,134, 13, 27,
-250,210, 52, 29,156,149,149,101,205, 36,141, 4,240,227,176, 97,195,134,158, 59,119, 78,126,243,230, 77,158,157,157, 29,204,102,
-115,137,166,152, 97, 24, 71, 75,157, 53,153, 76,240,245,245,117, 43,245,190,240,223, 74, 52, 72,146, 52, 48, 12, 67, 3, 16, 0,
-208, 85,118,253,191, 68,178, 20, 10,197,232,236,236,236,223,156,157,157,225,228,228,244,214, 88,171,211,233, 32, 16, 8,184,206,
-206,206,235,187,119,239, 78, 31, 58,116,168,220, 37, 64,130, 34,102, 30,222, 53,199, 85, 33,151, 2, 0,150,174, 57,161, 1,128,
- 63,254,248, 3,201,201,201,144,203,229, 8, 8, 8,160,230,204,153,163,156, 48, 97,194,175, 57, 57, 57,195,202,195,122,147,139,
-252,203, 52, 90,235,202,186,174,208, 70,139,101,217,146, 56,121, 86, 86,218, 55,111,157,126, 3,143,208,235,245,120, 83,163,101,
-105,188, 52, 77,191,169,126, 4, 65, 16,108, 69,152,101,200, 96,177, 88, 28,168, 86,171, 87, 84, 97,118, 91,130,185,247, 43, 95,
-108,225, 79,238,111,137, 68,218,105, 98,209,121, 11,128,171, 49,195, 86,174,250,232, 35,215,113, 51,150,207, 42,204, 74,206,156,
- 54,176,107, 77,111,103, 59,161, 56, 55, 61, 79, 81,183,110,135, 55, 52, 50,149,165,179,117,120,120,248,214,147,215, 99, 9,129,
-128,203,229, 80, 20,221,178,190,143,157,187, 45,101, 43, 5,108, 19, 94, 62,187, 58,100,200,144,250,147, 38, 77,106, 85, 5, 76,
- 20, 15,184,216,182,109, 27, 8,130, 32,171,146,247, 15, 40,167, 43, 34, 89, 44,203,130, 32,136, 29,165, 6,149, 29,197,247,238,
-148, 34, 91,156,138,202,211,162, 77,181,144,170,193,131, 7, 15, 52,153, 76,156, 82,157,196,155, 4,166, 44, 18, 99, 85,222,149,
- 74,229, 73, 0, 31, 19, 4, 1,189, 86,171,255,249,151, 95, 74,255,249,246, 27, 36,235,116,121,109,201,104, 52,194,108, 54,115,
-238,220,185, 67,151,170,235, 52, 0, 49, 0,123,150,101, 65,146,228,125, 43,202,211, 87, 36, 18, 93,141,136,136,176,105,212,168,
- 17,193,227,241, 96, 50,153,240,224,193, 3,247,159,126,250,105,228,233,211,167, 63, 85,171,213,126,120, 59,120,186, 53,223,200,
-255,210,165, 75,106, 47, 47,175, 50,137,163, 74,165,226,248,248,248,124, 84, 14, 41,250,171, 49, 19,211,210,210,122,124,252,241,
-199,163, 82, 83, 83,163, 77, 38,211,119, 0, 2,236,237,237,239,244,234,213, 11, 66,161, 48,180,176,176,112,217,251,212,121, 71,
- 71,199,238,205,155, 55,199,202,149, 43,241,211, 79, 63,181, 7,112, 6, 64, 59,149, 74,117,186, 91,183,110,144,201,100, 61,114,
-115,115, 55,191, 71, 59,242,105,221,186,245,250, 31,127,252, 81,122,228,200, 17,120,123,123, 35, 63, 63, 31,223,126,251,173,227,
- 15, 63,252,112, 62, 55, 55,183, 77,169,118, 81, 30,166, 31,159,207,223,188,115,231, 78,137,151,151,151, 23,151,203, 37,189,188,
-188,144,157,157, 13,173, 86,203,159, 55,111, 94,125,161, 80,248,231,178,101,203, 54, 3,232, 85, 73, 58, 73, 0,115,215,174, 93,
- 59,106,196,136, 17,178,129, 3, 7,154,245,122, 61,246,236,217, 3,138,162, 64,211, 52, 68, 34, 81, 73,240,106, 46,151,139,186,
-117,223,114,146,126,184,130,252,230,161,200, 14, 85,134,170, 45,187,158,174, 0,175,100,233,131,166,105, 8, 4, 2, 8, 4, 2,
-240,249,124, 60,121,242,100,134, 64, 32, 88, 66, 16,132,201, 26, 76,226, 63,236, 34, 16,192,205,202,174,241,182,105,200,223,217,
-127, 90,196,141, 32,136,165, 0, 66,139,134, 93,242,130,189,189,253,248,180,180,180, 56,107, 49,149, 74,165, 93, 86, 86,214, 50,
-165, 82, 9, 39, 39,167,146,241,219,213,213, 21, 70,163, 17,105,105,105, 96, 89, 22,185,185,185, 16,137, 68,112,113,113, 89, 54,
- 98,196,136,125,235,214,173,203, 42, 19,147,193, 79,221,250, 78,159, 73, 81, 20, 9, 0, 20, 71, 34,249,122, 42, 80,179,102, 77,
-180,108,217, 18, 90,173, 22,121,121,121,240,247,247,231, 16, 4, 17, 78, 16,132, 13,203,178,171, 1,156,253, 31, 84, 20,150,107,
- 12, 63,251,205,117, 81, 75,180,120, 46,151,107, 21,209, 42,126,190, 50, 13, 10,105, 52, 26,193,229,114, 95,211, 72, 16, 4, 1,
-179,217,252,218,125, 11,209,122, 23,162, 62,102,204, 24,102,253,250,245,163,114,114,114,214,224, 29,151, 18,194,195,195,223,178,
-247,152, 48, 97, 66, 98,122,122, 58,251, 89,135, 64,113,244,177,228,148,218,114,137,208, 65, 42,173, 37,144, 43,100, 89, 89, 89,
-215,138, 59, 19,107,165, 78,195,134, 13,133, 91, 14, 92, 74, 28,254,205,130, 57,141,188,236,108, 26,184,217,203,157,109,133, 60,
- 9, 73,168, 5, 38, 99,162, 66,161,240,174,106,186, 45,253,130, 72, 36, 2, 73,146,255, 36,141, 22,199, 66,178,178,179,179,113,
-228,200, 17,116,238,220,249,142,133,132,168, 84, 42,164,164,164, 64,169, 84,222, 41,214,124, 84,186,140,200, 48, 12, 12, 6, 3,
- 12, 6, 67, 9,129, 41, 85,135, 74, 8,140,229, 89,138,162,238,191, 99,218,231,200,229,242,214,161,161,161,188, 93,123,246,240,
- 88,150, 85,163, 40,134, 90, 1,203,150, 19, 32,251, 13, 49,153, 76, 37, 90, 54,154,166, 17, 31, 31, 95, 50,112, 89, 98, 75, 10,
- 4, 2,235, 84, 25,124,254,196,221,187,119,219, 52,105,210,132,200,202,202, 2,195, 48, 37,157,228,111,191,253, 38,232,221,187,
-183,107, 84, 84,212, 52,157, 78, 55,251, 29,242, 74,148, 71,136, 0,192,198,198,198, 4,235, 60,102, 87,138,105, 50,153,136, 22,
- 45, 90, 76,202,204,204,172, 95, 88, 88, 56,207,154, 98, 4,112, 56, 49, 49,177,244,192,254,103,116,116,116, 97,159, 62,125,132,
-181,106,213, 10,121,244,232,209,123, 85, 82, 31, 31,159,102, 52, 77,227,198,141, 27, 58, 0,150,153,245,133,123,247,238,233,122,
-245,234,197,119,119,119,111,150,155,107,181,201,138,143,175,175,239, 41, 71, 71, 71,161,165, 15,117,112,112,160,215,173, 91, 39,
- 77, 74, 74,130,193, 96,192,148, 41, 83,208,165, 75, 23,216,219,219, 99,194,132, 9, 78,139, 22, 45,218, 94, 80, 80,208,176, 34,
-165, 53,143,199,219,250,252,249,115,111,165, 82, 41,188,126,253, 58, 26, 52,104,128,204,204, 76,164,166,166,162,160,160, 0,169,
-169,169, 24, 54,108,152,227,175,191,254,234, 98,133, 38,171,132,100,173, 91,183, 46,119,255,254,253,212,239,191,255, 46,165,105,
-186,132,104,113, 56,156, 18,162,101,137,173,248, 14, 43, 13,185,197,164, 77,150,151,151,247, 62,118,110,124, 0,188,210, 36,139,
-207,231,131,207,231, 67, 32, 16,188, 87, 92,214,127,137,184, 18, 4,241,136,203,229,242, 69, 34, 17,151, 36, 73,240,249,252, 14,
- 10,133,226, 97, 64, 64, 64,192,169, 83,167, 98,173, 1,209,106,181, 91,249,124, 62,237,232,232, 8, 0,240,246,246, 70,131, 6,
- 13,160, 86,171,153,188,188, 60,200,100, 50, 50, 46, 46, 14,133,133,133, 72, 73, 73,129,135,135, 7, 77,146,228, 86, 20,217, 33,
-191, 37, 87,239,164,174, 1,176,198,114,109,111,111,159, 86, 90,211, 41, 16, 8,224,234,234,138,164,164, 36, 72,165, 82,234,135,
- 31,126,232,181,103,207,158,158, 87,175, 94, 13, 7,176,173, 20,212,236,127,177,141,150,133,100,149, 62,255,135,104,117,233,210,
-101, 86,100,100,228, 71,101,205,194,105,154,254, 96,182, 46, 22, 66,101, 99, 99,243,166,214, 10, 12,195,148,167,209,170,242,239,
- 8, 4, 2,225,232,209,163,243, 87,175, 94, 93,101,178, 21,182, 50,186, 68,139,245,214, 52,210,207,239,234,180,105,211,186,159,
- 59,119, 46,169,145, 87, 45,142, 56, 57,174, 64, 96, 35,147,193,173, 70,231,193, 61,122,221, 67,209,238, 67,107,229,121,126,126,
-190,176,182,155, 72, 79,146, 90,162, 6,159, 35, 85,138,185,124,103,185,220,149,171,215,165,219,200,229, 60,157, 78,151,139, 10,
-130, 64, 3,128,147,147,211, 9,161, 80,232, 97,185,150,203,229,182, 44,203, 66, 36, 18, 65,169, 84, 74, 40,138,122, 90,170,113,
-197,165,165,165,117,168, 44, 97, 50,153,236, 4,159,207,247, 32, 73, 18, 4, 65,128,162, 40,144, 36, 9,146, 36, 75,254, 79, 81,
- 20, 8,130,128, 70,163,137,139,141,141,237, 96, 69,126, 77, 0,130, 9,130,184,115,228,200, 17,132,132,132,224,216,177, 99,232,
-216,177, 35,242,242,242,240,224,193, 3,180,110,221, 26, 40, 90, 82,180, 74, 74, 27,191, 91, 38, 5, 79,158, 60, 41, 33, 46,165,
- 15,169, 84,250, 62, 42,246,203, 97, 97, 97, 88,191,126, 61, 91, 60,153, 16, 19, 4,209,192,214,214,246,201,227,199,143,173,178,
-131, 97, 89, 22, 6,195,127, 30,181, 12, 94,197,246, 16, 85, 10, 14, 76, 81, 84,135,134, 13, 27, 18,121,121,121, 22, 2, 9, 14,
-135, 3,138,162, 64, 81, 20, 86,173, 90, 37,108,210,164,201,116, 62,159, 63,137,203,229,170,140, 70,227, 46,173, 86, 59, 15, 64,
-238, 63,169, 71,106,213,170,213, 55, 9, 9, 9, 93, 60, 60, 60, 34,222, 3,134, 53, 26,141,122, 0, 66,138,162,232, 15,208, 71,
- 81,197,117, 75, 91,138,236,155,138,175,249, 40, 90, 38,182, 74,236,237,237,183, 31, 61,122,212,205,195,195, 3, 70,163, 17, 38,
-147, 9, 5, 5, 5,184,112,225, 2,116, 58, 29, 76, 38, 19,188,189,189, 49,115,230, 76,237,248,241,227, 5,107,215,174, 77, 47,
- 40, 40, 24, 80, 9,236,248,125,251,246,137,149, 74,165,176,176,176, 16, 47, 95,190, 68,195,134, 13,145,159,159, 15,181, 90, 13,
-141, 70, 3,131,193, 0,149, 74, 37, 51,155,205,250, 74,176,102,148, 38, 89, 35, 71,142,188,207,227,241, 26,142, 29, 59, 22,137,
-137,137, 37,109,126,248,240,225,112,114,114, 42,105, 75,197,125,114,149, 58,102, 14,135, 3, 62,159, 15, 46,151,155, 91,163, 70,
- 13, 16, 4, 33,136,139,139,123,151,165, 56, 27, 0, 42,154,166,121,165, 9, 22,159,207,199,141, 27, 55,166,241,120,188,242,180,
- 89,229,181, 75,182, 42,215,255,109, 33, 8, 98, 41,151,203,229, 43, 20, 10,110,169, 9, 39, 87, 34,145,192,209,209,113, 37,128,
- 78, 86,230, 59, 72,161, 80,148,244,239,129,129,129, 72, 72, 72, 56,152,151,151, 55, 40, 61, 61, 29, 36, 73,110, 37, 73,178,167,
-101,146,154,147,147, 3,119,119,247,160,242,240,154, 7, 59,143, 2,193,190,166,209,122, 99,130, 6, 27, 27, 27,196,196,196, 64,
-173, 86,179,207,158, 61, 35, 70,143, 30, 77,232,245,250, 77, 81, 81, 81,215, 80,180,219,190, 92, 46,242, 47,145,170,219,104, 89,
- 52, 90,214, 14, 0, 4, 65, 84, 58,155, 48, 26,141, 18,127,127,255,178, 12,190,136,178,136, 86,241,114,210, 59, 85,116,154,166,
-165,239, 74,182,222,148,136,253, 59,157,126,154, 57,101,166,194,165, 86,237, 73,147,102,112,186,118,237,122,125,203,150, 45,102,
- 69,189, 78,237,206,158,216,230,180,236,219,201,199,142, 30, 61, 10, 20, 25, 70, 91, 43,151, 35, 35, 35,157, 39,140, 27,131,153,
- 19,199, 31,183,241,182,231, 73, 8,133, 88,160, 83,103, 72,192, 22,242,235,248,118, 57, 16, 17,145, 2, 32,170, 34, 16,145, 72,
-228,241,232,209, 35,239,210, 27, 9,244,122, 61, 68, 34, 17,206,158, 61,235, 32, 20, 10, 29, 0,160,176,176, 16, 1, 1, 1,214,
-106, 76, 60,158, 62,125,234, 45,149, 74,161,209,104,160,211,233, 96, 52, 26,193, 48, 12, 8,130, 0, 77,211,224,241,120, 16,139,
-197, 85,221,217,119, 23,192,231,157, 59,119,222,113,236,216, 49,248,251,251, 35, 39, 39, 7,209,209,209, 22,146, 85, 37, 27, 45,
-139,150,168,180, 61, 22,135,195,193,118, 47, 47, 12, 79, 78, 46, 33, 48, 75,109,109, 49,147,121,183,104, 26, 1, 1, 1,236,229,
-203,151,113,252,248,113,116,235,214,141, 56,116,232,144,193,108, 54,115,147,147,147,239, 39, 39, 39, 91,133,193, 48, 76, 73, 90,
- 45,253,118,105,130, 85, 85,162,101, 50,153,164, 60, 30, 15, 90,173, 22, 22,205, 67,233,195,211,211, 19,217,217,217, 28,149, 74,
-197, 73, 78, 78, 22,205,157, 59,119,236,249,243,231,149,249,249,249,253,255,155,189,208,234,213,171, 61,134, 15, 31, 30,207,225,
-112,216,142, 29, 59, 14,140,139,139,235,161, 84, 42,207,156, 59,119,238, 23, 0, 62, 85,197,179,183,183,191,205,225,112,220, 84,
- 42, 21,119,239,222,189,198,252,252,124,174,131,131, 67,154,165,239,176,148,181,209,104,180,106,231,178,189,189,253,237,204,204,
- 76,238,138, 21, 43,140, 89, 89, 89, 92, 39, 39,167, 52, 11, 78,110,110, 46,119,239,222,189, 70,149, 74,197,181,181,181,189,157,
-151,151, 87, 41, 94,102,102,230,128,240,240,240, 75,103,206,156,177,167, 40, 10,113,113,113,200,202,202,130, 76, 38,195,214,173,
- 91,225,225,225,129,125,251,246,101,103,103,103,127,241,243,207, 63, 79, 47, 38, 89,149,217,104,181, 14, 9, 9,241,200,205,205,
-133, 76, 38,131, 90,173,198,237,219,183,225,231,231,135,228,228,100,144, 36, 9,153, 76,134,223,126,251, 77, 67, 16, 68,118, 69,
- 64, 66,161,176,199,136, 17, 35,100, 0, 48, 98,196, 8,217,136, 17, 35,202, 28,224,154, 53,107,134,149, 43, 87,190, 73,180,170,
- 50, 49, 40,209, 58,149, 34, 71,218,166, 77,155,226,252,249,243,147,171, 72,142,244, 22,210,246,166, 54,139,207,231, 87,121, 51,
- 13,195, 48, 92, 20,153, 52, 16,214, 92,255, 3,228, 35,161, 80,200,125,243,166, 70,163,225, 42,149,202, 86, 85, 32,190,118, 66,
- 97,145,194,201,195,195, 3,121,121,121,102,189, 94,223,247,255,218,187,206,240, 38,174,180,123,102, 70,189, 88,238, 21, 3, 6,
- 2,152, 14,166, 99, 58, 14, 16, 32, 75, 18,218, 38,212,133,152, 16,216, 44, 36, 11, 36, 31,201,134, 56,148, 64, 96, 33,129, 16,
-240, 66, 48, 16, 72, 66, 11, 29, 66, 89,140, 9, 53, 54, 4, 55,108, 76,115, 47,178, 44,217,146,101,149, 25,205,247,195,146, 34,
- 27, 23,201,150, 41, 89,157,231,153,199, 26,207,232,232,206,157, 91,206,125,239,123,223,187,103,207, 30, 35, 0,132,133,133, 77,
- 97, 24,166,130,166,105,138,207,231, 67,163,209,192,207,207,207,187, 14,219,232,210,163, 63,172, 8,168,238,163, 21, 24, 24,136,
-176,176, 48,232,116, 58,228,229,229, 33, 54, 54,214,200, 48,204,222,111,191,253,214,228,235,235,251,183, 9, 19, 38, 80,241,241,
-241, 11, 0, 44,170, 77,139,188, 96,214,172,232, 90,133,150, 89, 65, 94, 4, 48,180,250, 67, 86, 23, 63,117, 9,173,250,166, 14,
-249,124,190, 50, 51, 51, 83, 98,219,169,208, 52,141,160,160, 32, 19,203,178, 68, 77, 66,171, 49,166, 96, 46,151,235,246,209, 71,
- 31, 41,191,253,246,219,169, 15, 31, 62, 92,110,207,119,246, 47,232,128, 93,213, 68,214,214, 53, 81,155, 55,173, 89,225,149,113,
-122, 39,182,127,189,142, 97, 24,196,119,237,218,117,144, 90,173,230,184, 75,140,144, 43,113,202, 44,178,236, 21,133, 36,128,239,
-110,220,184, 17, 63,102,204,152, 95,191,251,241,144, 87,238,253,251, 87, 5,165,242, 60, 89,219,118, 28, 94,179,150,175,151, 85,
- 84,240,166, 76,153,226, 11, 96, 66,125,141,152, 82,169, 68,126,126,126,117, 1,134,187,119,239, 62,113,175, 93,137, 35, 73, 48,
- 12,131,131, 7, 15, 66, 44, 22, 67, 34,145, 84, 57, 44, 34,171,129, 11, 21,210, 0, 96,244,232,209, 80, 40, 20,144, 74,165,118,
-167,171,186,120, 97, 89, 22,122,189, 30,122,189, 30, 6,131,129, 1,192,229,112, 56,152,157,157,109,181,242, 56, 34, 96,170,163,
-107,215,174,236,149, 43, 87,240,235,175,191, 66,163,209, 96,211,166, 77, 8, 12, 12, 28, 14,224, 19, 71,185,108,156,244,153,210,
-210, 82,110,105,105,169,213, 58,200,229,114,173,214, 3, 59, 45,121, 60, 14,135, 99, 29,141, 90, 14, 91,171, 22, 69, 81,240,247,
-247, 71, 64, 64, 0,182,110,221,202,107,213,170,213,184,103,217, 2,173, 93,187,182,237,198,141, 27,119,236,218,181,235,212,212,
-169, 83,127, 74, 76, 76,156,229,238,238,126,231,194,133, 11, 43, 4, 2,129,169,129,245, 59, 56, 55, 55,215,207,246, 95, 38,147,
- 73, 76,211,180, 85,216,150,151,151,219, 61,192,224,114,185,193,201,201,201, 98, 0, 88,177, 98, 5, 23,128,216,226, 12,110,225,
- 44, 47, 47,231,118,234,212, 41,216,222,178, 30, 23, 23, 55, 40, 34, 34,226,202,217,179,103, 61, 91,182,108,137,156,156, 28,228,
-228,228,160,109,219,182, 88,181,106,149,166,180,180, 52, 28, 64,154, 90,173, 62, 98, 39,103,144,167,167, 39, 55, 51, 51, 19, 52,
- 77,163, 71,143, 30,216,178,101, 11,166, 76,153,130, 46, 93,186,160,180,180, 20,201,201,201,136,137,137,241,228,241,120,117,182,
- 29, 90,173,246, 72,116,116,116,243,234, 22,173,105,211,166, 73, 10, 10, 10,172,101, 50, 42, 42,170,202, 20,162, 35,109,178,121,
-106,171,214,163, 33,160,105, 90, 38, 20, 10, 75, 5, 2, 1,223,226,159, 21, 27, 27,235,176, 53,171,218, 0,208,145,243,103, 6,
-139,104,173,161,111, 69, 64, 64,128,221, 60, 2,129,128,176,180,141, 52, 77, 67,165, 82, 49,129,129,129,214,233,253,132,132, 4,
- 38, 36, 36,132,161, 40,138,226,243,249, 32, 8, 2, 98,177,184,214, 6,159,101,216,168, 87,167,124, 82,101,213,225,194,143, 0,
-131,193,128,132,132, 4, 24, 12, 6,196,198,198, 26,191,252,242,203, 92,165, 82,185, 16, 0,231,204,153, 51, 51,150, 44, 89, 66,
-249,249,249, 69, 20, 22, 22,162, 62, 45,242, 2,137,173, 39,172, 92,150, 94,232,226,184,113,227, 8,243,210, 74,194, 34,156, 28,
- 17, 90,230,202, 87,111,207, 75, 16, 4,242,242,242,172,231,126,126,126, 14,255,150,189,240,246,246,214,244,239,223,223, 77, 46,
-151, 31, 89,187,118,109,131, 44, 89, 91,215, 68,109, 94,253,249,167, 94,138,148,107,200,206,205,131,162,208, 24,127,249,206,195,
-195, 0, 14, 3, 0,182,117,188, 72,188,147,250,141,189,156, 29,124, 68,221,185, 60,206,225,151,199,140,107, 62, 57,114, 17,249,
-238,187,239, 14,156, 49, 99,134,106,234,212,169,239, 73,165,210,246, 6,131,161,228,208,137, 19,143, 38, 79,158,220,138, 97,152,
- 25,168, 39,230,136, 86,171,125, 60,116,232, 80,219,252,148,157, 59,119,206,255,209,163, 71,152, 63,127,126, 81, 78, 78,142,210,
-246, 94,123,210,104, 48, 24, 30,119,239,222,189,214,233, 66,203,148, 34, 0,148,149,149, 61,118, 32, 75,223,132,217,241,189,184,
-184, 24,119,239,222, 5,135,195, 65,191,126,253,112,249,242,101, 12, 28, 56, 48,193, 17,171, 86, 69, 69, 5, 90,182,108,137,138,
-138, 10,104, 52,154,114, 0,130,221,173, 90, 1, 0, 22, 20, 23,227,183, 47,191,196,181,213,171, 97, 91,158,237, 69,183,110,221,
-216,107,215,174,225,206,157, 59,208,233,116,152, 51,103, 14, 0, 16,230,178,235, 72,200,140, 54, 20, 69,141, 30, 51,102, 76, 16,
- 0,104, 52, 26,226,198,141, 27, 16, 10,133,214,186,112,236,216, 49,228,228,228,128, 32, 8,120,122,122, 6,151,148,148,180, 2,
-240,176, 14,179, 63,241,240,225, 67,124,241,197, 23, 48,153, 76, 88,178,100, 9,218,181,107,103, 21, 88,143, 31, 63,198,138, 21,
- 43,192, 48, 12, 62,253,244, 83,180,109,219, 22, 70,163, 81,136, 6,134,208,112, 6,222,127,255,253,140,195,135, 15,159,202,202,
-202,122,101,205,154, 53, 67, 8,130, 48, 45, 94,188,248, 11,153, 76,198, 52,134,183, 68, 85,134,187,247, 30, 91,133, 80,245,195,
-215,199,203, 97,190,244,251, 89,214,239, 51,140, 45, 31, 3,111, 47, 79, 71,147, 88,110, 52, 26, 53,175,191,254,186,199,193,131,
- 7,137,182,109,219,226,193,131, 7, 22,203, 80, 57, 28, 15,233,144,163, 80, 40,218, 81, 20,197,187,119,239, 30, 66, 66, 66,208,
-183,111, 95,172, 92,185, 18,114,185, 28, 52, 77,195,207,207,207,100, 52, 26, 19, 12, 6,195,165,122,184,162,230,206,157,203, 3,
-240,142,217,178,213,117,225,194,133,166,117,235,214, 33, 33, 33,193,106,193,178,117,134,119,116,234,208,214,234,100,123,196,198,
-198, 46,225,243,249, 44,128,235,112, 60,208,179,190,186, 69,171, 33,214,172,166, 66, 83,174,100, 12, 12, 12,140,117,115,115, 27,
- 87, 82, 82, 82,197,170, 21, 30, 30,110,240,247,247,143,179,151, 71, 42,149,150, 80, 20,229, 13, 0, 57, 57, 57,144, 72, 36,188,
-251,247,239,175, 70,101,240,108,180,106,213,106,181, 66,161,224,181, 50,183,167, 1, 1, 1,208,235,245,181,186,177, 92,189, 85,
-176, 19,192, 78,203,185,151,151, 87,158, 74,165, 18,173, 91,183, 78,189,122,245,106, 45,195, 48, 58, 0, 23,148, 74,165, 53,142,
- 86,126,126,190,138,203,229,122,121,120,120, 52,179, 8,173,154,180,200, 11,134,218, 45, 90,102, 37,201, 86, 23, 68, 4, 65, 60,
-225,160, 94,143,208,170, 87,100, 49, 12, 83,197,202, 96,113,120,175,233,183,204,157,122,131,166, 14,205, 34, 75,120,232,208,161,
-221,107,215,174,189,110,239,247,108,125,180,182,173,255,124,141, 69,100,253,254,235, 89, 28, 73, 85,201,151,172,222,176,177,161,
-111,160,163,143,184,155,191,191,247,197, 47, 87, 69,201, 50, 78,199,224,167,109,255,102,127,191,121,179,207,205,155, 55,167,207,
-159, 63,191,133,185, 96, 41, 0,220, 6, 48, 25,118,172,210,201,201,201, 25, 85,173, 19, 78,227,241,120,254, 98,177, 24, 57, 57,
- 57,234,244,244,116,135,167,100,228,114,249,168, 38, 40,128, 28,139,200,146,203,229, 72, 78, 78,198,176, 97,195, 0, 0,151, 47,
- 95, 70,120,120, 56,226,227,227,209,179,103,207, 4, 0,189, 81, 79,160, 86,163,209,168,236,216,177,163,213,186,165, 82,169, 76,
- 0, 16,153,151,135,232,192, 64,112, 56, 28, 92, 91,189, 26,203,140, 70,172,116, 80,192,119,239,222,157,189,113,227, 6, 30, 61,
-122, 4,154,166, 49,126,252,120, 52,176,210,119,233,208,161,195,185, 11, 23, 46,248, 74,165, 82,104, 52, 26,168,213,106,204,156,
- 57, 19, 83,166, 76,129, 78,167,195,254,253,251,113,244,232, 81,184,185,185, 65,163,209, 64,163,209,120,142, 29, 59,246, 74, 90,
- 90,218, 96, 0,247,106, 17, 90,236,168, 81,163, 16, 23, 23, 7,138,162,208,167, 79, 31, 20, 23,255,177, 24,200,223,223,191,166,
-107,212,179, 20, 90, 28, 14,135,141,141,141, 93, 51,100,200, 16,100,101,101,189,210,179,103,207, 77,179,102,205,202,105, 44,175,
-167,187, 27,186,119,106, 3,157, 78, 7,157, 78,135,160,160, 32,148,149,149, 33, 35, 35, 3, 58,157, 14,254,126, 30, 14,243,133,
-117,105,107,229,243,243,243,131, 70,163,193,195,135, 15,161,215,235,225,227,227,144,208,106, 62,106,212,168,255,238,221,187,215,
- 59, 38, 38, 70, 63,116,232, 80,254,166, 77,155, 8,153, 76, 6,155,142,197, 81,196, 94,190,124,185,101, 68, 68, 68,104, 74, 74,
- 10, 98, 99, 99,161,215,235, 17, 22, 22,134,244,244,116,244,239,223, 31,106,181,250,250,205,155, 55,143,218, 99, 24, 6,240,241,
-220,185,115, 97, 17, 91,113,113,113,200,203,203,131,155,155,219, 19, 66,203,226,251,104, 94, 53, 30,100, 79, 98, 45,130,200,198,
-242,180,204,195,195,195, 0, 96, 99, 3,173, 79, 0,128,172,172, 44, 65,215,174, 93,117, 66,161,144,111, 22,109, 27, 26,195,231,
- 76, 56, 97, 37, 99,173, 8, 8, 8, 88,232,227,227, 19,209,186,117,107, 20, 20, 20,240,248,124, 62,194,195,195, 13,189,123,247,
- 54, 4, 4, 4, 44,176,151, 71, 32, 16,164,240,120,188,193,149,131, 9, 6,153,153,153, 96, 89,118, 73,151, 46, 93,254, 81, 86,
- 86,134,226,226, 98,190, 76, 38,179, 14,170, 67, 67, 67,161,211,233, 82, 28,176,188, 69,133,132,132,124,204,227,241, 86,202,229,
-242,154,194, 66,240, 61, 60, 60,100, 60, 30, 15, 6,131,161,138,216,172,174, 69, 94,116,145, 85, 69,104,217,168,200, 42, 66,199,
- 17,139,150, 61, 86, 3,139,131,189,237,185, 69,212, 85,255,173,134,198,208,114,119,119,215, 89, 68,214,202,149, 43,175, 55,132,
-227,192,222, 61,129,238,166,242,230,185,215, 79, 34,237, 78, 60, 14, 39, 43,229, 75, 86,111,120,239,213, 9,111, 22, 84, 23,102,
-246,160,157,175,184,139,191,159,247,197,245,107, 87,203, 20, 41,215,144,151,159,143,147,215,111,198, 27,128,100, 0, 75,156,105,
- 90, 6, 42,167, 14, 41,138,122,158, 10,172,213, 25, 62, 47, 47,207, 34,178,194, 0, 96,224,192,129, 9,102,145, 5,123, 45, 90,
- 74,165,178,250,150, 53, 17, 0,124, 44,207,207,225,112, 16,254,241,199, 14,139, 44, 0,108,124,124, 60, 20, 10,133,101,164,216,
- 80,145,133,128,128,128,127, 94,184,112,193,247,187,239,190, 43,221,181,107, 87,177,201,100,226,118,239,222, 61,184, 87,175, 94,
-196,238,221,187, 1, 0,147, 39, 79,198,146, 37, 75,144,148,148, 4,137, 68,130,129, 3, 7, 50,203,151, 47,247, 91,184,112,225,
-130,130,130,130,247,106,236, 29, 77, 38,158, 80, 40, 60, 15, 96,120, 74, 74, 10, 0, 92, 65,229, 22, 78, 22, 43, 66,173,215,236,
-233,124,203,202,202,184,110,110,110, 53,134,134,224, 85,142,134, 28,181, 64, 88, 57,127,253,245,215, 47,214,175, 95,127,248,131,
- 15, 62,184,215, 72,206, 26, 45, 90,227,198,141,131, 86,103, 64,118,129, 10, 12, 67, 67,107, 40,116,152,207,214,162, 53,110,220,
- 56,148, 87,232,145,153,167, 0, 77, 51, 40,211,218,221,151,139, 95,126,249,229, 51, 63,252,240, 67,192,213,171, 87,193, 48,140,
- 41, 61, 61,253,225,235,175,191, 46, 91,188,120,177,119, 35, 22, 25,125,253,230,155,111, 78,252,245,215, 95, 21,161,161,161, 94,
-215,175, 95, 71, 97, 97, 33,104,154,198,240,225,195,193,231,243, 51, 87,175, 94,205, 3,240,181,189,239,198, 44,182, 12, 55,111,
-222,124,251,218,181,107, 94, 94, 94, 94,124, 83,135, 14,200, 59,123, 22, 7, 15, 30,124,226, 11,219,182,109, 3,236,140,194,111,
-177, 56,221,184,113,195, 41, 2,171, 74, 79,205,231, 55,120,250,241, 69,197,141, 27, 55,114,222,125,247,221, 78, 50,153,108,227,
-160, 65,131,134,121,123,123,147,158,158,158,177,205,154, 53,251, 71,247,238,221,237,158, 93,224,114,185,179, 36, 18, 73, 6, 77,
-211,148, 90,173,134, 70,163,169,108,164,105,154, 79,146, 36, 90,181,106,101,237, 75,250,244,233,131,128,128, 0, 38, 53, 53,117,
-150,189,252, 69, 69, 69, 85, 86, 33,214,128,185,225,225,225, 28,157, 78,135, 71,143, 30, 93,182,189, 80,147, 22,121, 65, 16, 89,
-167,248,178, 60,148,237,195, 53,107,214, 44,203,104, 52,178,201, 0,123,251,246,109, 54, 50, 50,178,206,163,162,162,130,245,243,
-243,203,171,161,243,131, 45,167, 78,167,171,242, 61,157, 78,199,250,251,251, 51, 90,173,246, 9, 78,173, 86,203, 6, 7, 7,231,
-212,197, 89, 3,102,222,186,117,235,219,101,203,150,245,117, 32,131,172,156,236,214, 14,108, 76, 76,204, 95, 89,150, 29, 50,168,
- 83,203, 59,147,186,251,179,225,237,252,114,143, 30,216, 59,133,101,217, 33,213, 15, 75,128,211,186, 56, 59,248, 75, 58,142,232,
-220,162,228,247,211,251,216, 11,235,254,206,174, 31,223,142,237, 25,236,166,236,224, 35,114,116,143,152,122,119, 75,239,220,185,
-115,154,201,100, 98,245,122, 61,219,185,115,231,116,103,112, 54, 0,117,113,246, 64,165, 47,219,155, 53,252,175, 71, 35,210,249,
- 59,203,178,172, 66,161, 96,213,106, 53,171,211,233, 88,134, 97, 88, 91, 0,248,221, 14, 78,214, 96, 48,176, 37, 37, 37, 44,236,
-247,185,171,145, 51, 48, 48,240,225,253,251,247,217,151, 94,122, 41,203,108,142, 95,168,209,104,216,234,208,104, 52,236,176, 97,
-195,216,244,244,116, 54, 36, 36,164, 34, 61, 61,157, 13, 12, 12,188, 91, 79, 58, 91, 55,111,222,252,188,143,143, 79, 44,128,118,
- 14, 92,171, 51, 63,247,239,223,223,134,101,217, 57, 44,203, 70,214,114,204,119,133,129,130, 0, 0, 32, 0, 73, 68, 65, 84, 97,
- 89,182,195,179,230, 52,231,111, 1,203,178,108,121,121, 57,171, 80, 40,216,220,220, 92,182,188,188,156, 85,171,213,236,173, 91,
-183,216,171, 87,175,178,119,238,220, 97,189,188,188, 10,236,225,180,240,233,245,122,182,180,180,148, 45, 44, 44,100,181, 90, 45,
-171,209,104,216,196,196, 68,246,183,223,126, 99, 83, 82, 82,106,226,123,130,211,219,219,123, 91,126,126,190,250,202,149, 43,229,
- 91,183,110, 45, 15, 8, 8, 72, 1,208, 18, 64,123, 79, 79,207,252,191,255,253,239,172, 84, 42,125,220,192,122,212,137,203,229,
-222, 90,179,102,205,141,227,199,143, 23, 28, 61,122, 84,191, 99,199,142,236,249,243,231, 95,226,112, 56,183, 0,116,106, 96, 61,
-242,243,240,240,184,114,253,250,117,186,164,164,132, 85, 42,149,108,105,105, 41,171,209,104, 88,173, 86,203,234,245,122,214,104,
- 52,178,151, 46, 93, 98,253,253,253,109,167, 37,151,214, 49,176, 94,196,178,236, 63, 89,150,229, 56,187,173,179,225, 30,228, 44,
- 78,103,180,117, 36, 73, 26,204,109, 71,191,202,211,186,207,159, 85, 58, 71,140, 24,241,233,148, 41, 83,216,209,163, 71,179, 97,
- 97, 97, 79, 28, 61,123,246,100,231,205,155,199, 30, 63,126,156,253,242,203, 47, 63,117, 66, 58, 57,168, 92,244,178,106,196,136,
- 17,198,184,184, 56,118,242,228,201, 44,128, 81,117,105,145, 63,131,224,178,132,119, 32,108,255, 2,128,193, 96,200, 74, 75, 75,
- 11, 12,165,105, 10, 0,190,249,230,155, 39, 44, 83,182,136,139,139,163, 9,130,200,168,235,215, 13, 6, 67,214,133, 11, 23,252,
- 55,111,222,204,181, 49, 1,131,166,105, 83,110,110, 46,185,105,211,166, 42,247, 95,188,120,145,166,105, 58,211,193,135,140,233,
-209,163, 71,140, 51,114,235, 82,210,163,127,156, 57,249,179, 79,191,190,131,148, 50, 47,175, 26, 71, 97,251, 23,116, 0,241, 78,
-221, 86, 45,130, 67,174, 92,179, 42,202,195, 50, 5,249, 99, 66,190,178, 66,199, 12, 75,149,107,127,119,246, 27, 86,171,213,143,
- 44, 43, 1, 53, 26, 77,230,115, 88, 8,111,161, 50,198, 21, 93,237,127,189,209, 72,167, 83,147,201, 4,119,119,119,171, 53,180,
- 1, 22, 81,214, 98, 97,181,188,186,198,164,135,101,217, 95, 19, 19, 19, 67,102,206,156,233,182,107,215,174,251, 12,195,112,103,
-207,158,109, 8, 8, 8,224, 93,190,124,217, 8,128, 24, 50,100, 8, 39, 63, 63,159,205,201,201, 81,252,229, 47,127, 41,123,251,
-237,183,189,111,223,190,205, 55,153, 76,245, 5, 45,124,144,149,149, 53,162, 1,215,234,196,164, 73,147,238,163,241,219,216, 52,
- 57,167, 5, 10,101, 41,238, 63,202, 49, 71, 48, 55,129,121, 92, 96,245,171, 50, 26,105, 40, 74,139, 29,182,104,101, 60,204, 49,
-111, 49,198,128, 97,114,205,124,149, 14,241,108, 73,121,253,189, 9,135, 51,112,249,242,229, 99, 72,146, 36,175, 93,187,166, 91,
-187,118,109, 86, 81, 81,209,120, 0,153, 0, 80, 82, 82, 50, 52, 38, 38,230,123, 59, 66, 57,212,134,100,163,209,216,127,233,210,
-165,239, 1, 24, 8,160,133,153,251,178,217,146,213,208, 8,230,133, 74,165,114,228,152, 49, 99,206, 82, 20,213,202,166, 30,249,
- 0,144, 91,234, 5,203,178,126, 5, 5, 5,175,216, 67, 72, 16,196,134,166,106, 72,154,146,187,145,237,208, 11,177,146,241,252,
-249,243,159,141, 31, 63,158,211,178,101,203,255,107,217,178, 37, 89, 82, 82, 2,181, 90, 13,146, 36, 17, 16, 16,128,206,157, 59,
- 35, 32, 32,192,148,146,146,178,234,195, 15, 63,172, 55, 38, 95,199,142, 29,219, 24,141,198,151, 72,146,108, 3,160, 13,203,178,
-109, 8,130,104, 3,192, 11, 0,100, 50,153, 44, 36, 36,132,211,175, 95, 63,244,237,219, 23, 23, 47, 94,196,129, 3, 7,118, 2,
- 56, 99,107,205,170,174, 69,158, 7, 36,247, 0,219,233, 22,136,164,158, 24, 66,152,112,145, 37, 49,180,115,188, 53,206, 94,117,
-145, 85,251,166,210, 53,152,254, 70, 13, 31, 62,220, 90,225,236,232, 84, 30,213, 87,249,138,138,138, 70,205,154, 53,171, 10, 39,
-195, 48,186,226,226,226,119, 7, 12, 24,176,133,162, 40, 65,181, 2,251,184,176,176,240,169,238,213, 87, 61,142,214,168, 49,175,
-201, 27,203, 41,229,145, 47,165,157,248, 15, 10, 10,229,248, 49, 33,191,164, 76,207, 12, 77,151,151, 39, 54, 69,250, 31, 63,126,
- 60,250, 5, 80,252, 53,137,214,198,110,158, 93,100, 71, 64,210,250,246,168, 35,204,225, 68,156, 82,201,243,243,243,215,125,252,
-241,199, 35, 87,173, 90,229,123,234,212, 41,153,101,128,242,198, 27,111, 20, 38, 38, 38, 14, 2, 32,168,168,168, 56,183,106,213,
- 42,223,168,168, 40,111, 0,222, 0, 48,118,236,216,130,130,130,130,205,112,161, 78, 24,141,198,236,206, 29, 67,173, 3, 63,219,
-144, 14,182,159,105,154,206,118,132,175, 38, 30,219,115,134, 97,234,228,163, 40,234,131,190,125,251, 82, 31,124,240, 65,193,169,
- 83,167, 44, 27,233,218, 42,180,180,122,130,146,218, 3, 29,128,181,230,195,153,208, 40, 20,138,254, 14,126,135,113,149,198, 26,
- 7,148,142,156, 63, 19, 28, 57,114,228,147,201,147, 39,199,120,121,121,237,105,211,166, 77,168,191,191,191, 76, 36, 18, 65,167,
-211,149,233,245,250,187,105,105,105, 83, 63,249,228,147, 7,118, 89, 56, 98, 98, 40, 0, 60,147,201, 36, 36, 73, 82, 2, 64, 70,
- 16,132,167, 69,104, 17, 4, 1,131,193,128, 71,143, 30, 97,217,178,101,204,249,243,231,191, 4,240,169, 3, 3,215,222, 0,124,
-109,218,113, 95, 0,122, 84, 6,176, 45, 34, 8,226,102, 83,231, 23, 97,194,197, 78,183, 64, 36,247, 64, 77,253, 68,221,155, 74,
-215, 86,225,138,138,138,250, 59,187, 18,215,198, 89, 84, 84,212,242,121,169, 33, 51,116,107,247, 97,219,218, 42,251, 28, 90, 68,
- 88, 77,231,245, 65,165,165,231,127,125, 38,105,157,142,102, 77, 6,218,244,183,244,162,242,100, 87, 59,228,116,188,236,172,186,
-228,196, 52, 37,166,166,166, 14,152, 63,127,254, 39, 98,177,184, 15, 0,148,151,151, 95,203,205,205,253, 28,230, 85,133,245, 93,
-119,161,118,200,229,242, 94,207, 35,159, 94,175,255,199,128, 1, 3,190, 98, 24,102, 61, 77,211,151,255, 7, 94, 69,133,171, 52,
-190,184,248,233,167,159, 30, 0,232, 15, 0, 19, 39, 78,164, 0,224,192,129, 3, 14,139,231,153, 51,103, 50, 44,203, 26,204,229,
- 65,131,202,213,133, 37,150, 54, 85,163,209,148,228,230,230,166, 48, 12,147, 2,224,123, 56,190,226,214,151, 32,136,227, 44,203,
-142, 51, 11,183,227, 44,203,142,179,253, 95, 83, 91,181,234,185,165,126,103,120, 23, 42,113, 32, 25, 68,245,169,192,250,206,235,
- 67, 90,129, 38, 22, 64, 79, 87,238,254, 79,226,126,110,110,238,140, 70, 92,119,225,197, 67,166, 94,175, 31,255, 63,244,188, 42,
-215, 43,255,147,244,127, 13, 16, 88, 22,164,164,164, 52,153,139,192,179, 70,167, 91, 85, 7,224,213,207,109, 16, 89,147,240,114,
- 9, 45, 23, 92,112,193, 5, 23, 26, 3,165, 43, 11, 92,248, 51,195,226,155,101, 57,175,197, 71,171,186,127,150,245,156, 64,237,
- 43, 7, 28,217,149,188, 33,171, 36,206,185, 56, 93,156, 46, 78, 23,167,139,243,153,115,122, 0, 8, 1,176,166,158,251,170,175,
- 46, 44, 0, 32, 7, 96,116,229,167,139,179, 17,250,193, 46,176, 44, 59,182,174,169, 67,130, 32, 78, 52,149,208,178, 58,195,247,
-192,242,206,183,176,220,114,110,175,208,106,106, 68,184, 56, 93,156, 46, 78, 23,167,139,211,197,233,226,116,113, 54, 82,104, 13,
-251,240,195, 15, 63, 66,101,104, 12,246,195, 15, 63,252,136,101,217,177,149,151,216,177, 77,249,219, 73, 61, 49, 36,185, 7, 88,
-203,145,212, 19, 67,106,185, 53,210,230,176,194, 53,117,232,130, 11, 46,184,224,130, 11, 46, 60,239,184,178,122,245,234,242,213,
-171, 87, 91, 28,223,139, 0, 16,102, 11, 87, 81, 83,254,176,121,154,208,158,133, 82,117,111,193,243, 12, 16, 68,114,120,211,184,
- 60,193, 48,176,166,206, 0, 0,146, 74, 98,244, 21,255,165,105,195, 30, 0,185, 13, 37,238, 0,116,108,235, 33, 58,170, 99, 24,
- 94, 86,153,126, 98,106,229, 54, 7, 14, 99, 34, 16, 46,224,243,127, 17,120,120,136,106,186,174, 83, 42,181, 58,189,126,228, 1,
-224, 87, 87, 29,112,193, 5, 23, 92,112,225, 5,129,196,211,211,243, 60, 73,146, 45, 45,255,176,141, 59, 88, 61, 6, 33,195, 48,
-121, 10,133, 98, 36, 42,167,138,159, 38,167,237,247,245,104, 96, 95,238,108, 56, 58,117,200, 1,170, 68, 97,125, 42, 59,102, 83,
- 92,193,219,110,238, 30, 43,255, 58,235, 31,222,237,218,135, 18,205,155, 55, 3, 88, 32, 51, 43,219, 63,227, 94,250,136,159,118,
-125,253,126,169, 74,177,204,168,211,253,199, 81,238,142,128,164,133, 84,112,249, 63, 31,190,229,193, 1,141, 55, 87,236, 61, 77,
-168, 13,205, 83, 42,151,155, 58, 36,178, 60,188,189,207,172, 62,119, 78,228,217,173, 91,149,107, 44,203, 86,238,175,247,251,239,
-162,255, 27, 57,242,204, 68,133, 98,148, 75,108,253, 41, 17, 32,147,201, 22,114,185,220,161, 6,131,161, 37,159,207,207, 98, 24,
- 38,182,164,164,100, 35,128, 28, 87,246,252,185, 17, 26, 32, 25, 20,218,166,229,222,220,252,130,132,210, 10,253,236,180, 92,181,
-194,149, 43, 14,163,174,253, 53,159,217,222,155, 0, 32,149, 74,127, 35, 73, 50,216, 86, 4, 88,246,236,181,156, 87,255,107, 50,
-153, 30, 40, 20,138, 1,117,208,182,241,242,242,218, 2,160,119,125, 1,147,205,177,217,110, 42, 20,138,119, 81,251,106, 61, 55,
- 79, 79,207,207, 8,130,152, 68,146, 36, 85,223, 51,153, 76, 38,134,101,217,253, 37, 37, 37,159, 2, 40,171,237, 62, 79, 79,207,
-115,169,169,169,189,253,252,252,234,181,210,208, 52,141,204,204, 76,223, 62,125,250, 92, 82, 40, 20, 29,154,146,243,105,107,145,
-134,162,142, 85,135,181, 22,116, 0, 85,246, 23,106,210,136,172, 60,161,244,104,255,193,163,134,205,123,239, 3,201,173,196,187,
-248,229,226, 85,148,106,116,160, 72, 18, 30,110, 98,180,111,255, 18,177, 33,250,160,207,206,173, 27,214, 95,139, 59, 59,182, 66,
-163,250,139, 67, 50, 93,204, 89,182,228,245, 62, 18,111, 47, 6, 48, 49,248,231,152,238,146,255, 59,158,176, 12,229,244, 71, 14,
-139,172,243,231,197,133, 5, 5,136, 10, 10, 2,135,166, 33, 36, 73, 8, 9, 2, 66,146,132, 68, 40,196,232, 29, 59,240,249,169,
- 83,226, 79, 94,121,197, 37,182,254,100,144, 74,165,179,130,130,130,214,110,223,190,221,187,117,235,214,144, 72, 36, 80, 40, 20,
- 62,105,105,105, 61, 22, 45, 90, 52, 35, 47, 47,239,227,210,210,210,109,174,156,250,243,194,100,194,180,239, 86,190,219, 44,239,
-241,189,102,115, 87,237,107, 79,120, 51, 67,239, 22,107,243, 93, 57, 99, 55,122, 0, 72, 64,205,251,151,214,117,173, 86, 8,133,
-194,130,138,138, 10,191,186,238,225,243,249,133,122,189,222,191, 62, 46,146, 36,131,115,114,114,252,196, 98, 49, 24,134, 49,239,
- 6, 96,178, 14,164,109,119, 63, 49, 7,170, 69,135, 14, 29, 12,117,113,186,185,185,125, 83, 88, 88, 24, 97,217, 39,208, 70, 80,
-213,136,156,156,156,136, 78,157, 58,125, 83, 86, 86, 54,178, 22,241,242,217,123,239,189,183,176, 75,151, 46, 22, 43,144,121, 23,
-132,202,191,114,185, 28,243,231,207,183,254,134,201,100,194,217,179,103,223,155, 53,107, 22, 74, 74, 74, 22,213,241,236, 45,253,
-252,252, 8,243,134,226,181, 98,249,242,229, 88,190,124, 57,190,254,250,107,130,203,229,122,212,147,159, 78,225,124, 90, 90,164,
- 33, 22,172,122, 34,195,159, 64, 85,223,172, 19, 79, 8,173,167, 1,138, 43,248, 91,239, 1, 17, 67,231, 47, 92, 34,217,247,243,
- 5,164,165,252,142,212,203, 63, 84,185,167,215,200, 89,200,151,151, 97,214,188,127, 74, 9,138, 51, 52,238,220,145,191, 25,117,
-218,239,236,180,102,249,183, 20,240,255,222,175, 79,103,110,142, 40, 13, 1,158, 34, 12,236,217,150,219,252,204,157,191,107, 64,
-127,149, 82,185, 74,198, 33,145,181,253,173,183, 48,200,104,132, 31, 69,129, 34, 8, 80, 0, 72,130, 64,133, 78,135,155,211,166,
-161,207,238,221,248,244,216, 49,241,103,175,190,234,144,216,146, 72, 36,183, 8,130,240, 84,171,213, 99, 81,185,177,244,139,128,
- 78, 82,169,244, 4,203,178, 37, 26,141,166,199,115,148,174, 64, 84,206,209, 87, 31, 29,243, 80,185,162,202,161,157,133, 5, 2,
-193,219, 19, 39, 78,220,176,121,243,102,113, 65, 65, 1,114,115,115,193, 48, 12,132, 66, 33,218,181,107, 71,156, 59,119,206,123,
-201,146, 37,235, 78,156, 56, 33, 40, 43, 43,251,202,145,129, 13,151,203,141,246,242,242,122,197,223,223, 95, 82, 88, 88, 88,174,
- 84, 42,207,234,116,186,183,209,240,109, 83, 72, 46,151, 59, 53, 36, 36,228,181,160,160, 32,255,156,156, 28,121,118,118,246, 81,
-157, 78,183, 19, 13,220,168,217, 38, 79,187,193, 28,173, 30, 64, 94, 72, 72, 72,210,163, 71,143, 10,157,200,153, 27, 18, 18,146,
-220, 0, 78, 9,128,159, 0, 4,213,115, 95, 46,128,201,112,208,154,109,205, 88,214,116,114,197,198,237,179,163,102, 14, 36,190,
- 91, 20,209,238,157,175,207, 93, 37,121,236,224,148,188,138, 44,151,134,178, 79,100,153,183,180,170, 46,168,234,186, 86, 39,116,
- 58,157,175,193, 96, 0,183,150,205,226, 53, 26, 13,220,220,220,124,237, 77,164, 72, 36,194, 15, 63,252, 0, 46,151, 11, 46,151,
-139,146,146, 18, 4, 7, 7, 91,207,121, 60,158,245,115,139, 22, 45,234,229, 99, 24,166, 15, 69, 81, 80,171,213, 96, 24,198,122,
- 40,149, 74,176, 44, 11,129, 64, 0,134,169,220,206,201,230,122,159,218,248, 8,130,152, 20, 20, 20,132,125,251,246, 65,175,215,
- 63,113, 93, 38,147, 33, 49,241,143, 77, 70, 40,138, 66,223,190,125, 73,130, 32, 38, 1, 88, 84, 7, 47, 11, 0,145,145,145,160,
- 40, 10, 20, 69,129, 36, 73,235,103,203,193, 48, 12,150, 47, 95,142,106, 91,147, 61, 53,206,231, 13,245, 68,134,207, 67, 45, 62,
- 90,100, 19,167,203,118,137,103,144, 88, 34,251,226,221,127,252, 83,122,226,210, 29,100,102,101, 62, 33,178, 0,224,183, 95,118,
- 34, 47, 55, 7, 9,169,217,152,250,183, 5, 82,153,204,227,139,106, 13,106,173,203, 70,221,221,120, 95,126, 56,121,160, 80,109,
-204, 69,153, 39, 64,181,225,131, 43,214, 96,201,184,110, 2,153, 27,111,173, 61,233, 20,240,249,191,172, 62,119,206, 42,178,194,
-117, 58, 8, 24, 6, 52,195, 88, 69,150,158,166,161,213,235, 17,168, 86, 35, 99,214, 44,176, 70, 35, 62, 62,124, 88, 44,224,243,
-127,177, 39,157, 0,192,227,241, 2,143, 30, 61,218,162,107,215,174, 23, 97,127, 48,211,115, 77,252,142,234, 66,207,238,221,187,
-199,238,222,189,187, 5,143,199, 11,116, 6,167, 80, 40,156, 32,145, 72,138,132, 66,225,132, 6,166,147, 4,176, 98,246,236,217,
-241, 47,189,244,210, 5,179,176,178,138,154,151, 94,122,233,220,236,217,179,111, 1, 88, 94, 75, 89,175,137,179, 89, 80, 80,208,
-202,205,155, 55,139,211,211,211,145,147,147, 3,163,209,136, 55,223,124, 19, 12,195, 64,171,213, 66,175,215, 99,205,154, 53, 18,
-111,111,239,101,168,220, 40,216,158,103,231,185,187,187,167,239,218,181,107,226,195,135, 15,165, 23, 46, 92, 32, 18, 19, 19, 37,
-235,214,173, 27,239,237,237,157, 6, 64,208,128,252, 36, 3, 3, 3,191, 59,114,228,200,187,137,137,137,193,135, 14, 29,226, 94,
-187,118, 45,112,235,214,173,115, 2, 3, 3,119, 3,160, 26,248,142,122,136,197,226, 17,139, 23, 47, 54, 93,185,114, 37,231,202,
-149, 43, 57, 27, 54,108,192,160, 65,131,194,163,162,162,194, 26,200,217,211,205,205,109,248,226,197,139, 77,113,113,113,185,215,
-175, 95,207, 94,183,110, 29, 57,124,248,240,129, 43, 87,174,236,230, 32,231, 79, 87,174, 92, 25,146,149,149,213, 58, 59, 59,187,
- 85,118,118,118, 72,118,118,118, 72, 78, 78, 78,203,188,188,188, 22,249,249,249,205, 11, 11, 11,155,199,198,198, 14, 4,176,215,
- 30,206, 80,127,201,187,139,222,140, 40, 95,246,183, 49,236, 71,211, 95,102,151,188, 57,132,125,101,112,215,159, 41, 14,135,184,
-158,156,137, 96,119, 96,231,252,222, 45,155,251, 72, 18, 59,123, 73,219, 63,103,117,243,121,227,228, 88,132,148, 66,161,192,137,
- 19, 39, 96,182, 94,245,176, 21, 89,165,165,165,200,203,203,179, 92,227,216,147, 78,153, 76,118,126,251,246,237,108, 69, 69, 5,
- 84, 42, 21, 10, 11, 11,145,149,149,133,140,140, 12, 20, 23, 23,227,238,221,187, 16,139,197,231,237, 73, 39, 65, 16, 96, 24,198,
- 42,164,206,158, 61,139,217,179,103, 67,161, 80, 88,255,199,225,112,172,159, 45,223,169,143,211, 98,121, 98, 24, 6,215,175, 95,
-199,220,185,115,177, 97,195, 6,236,221,187, 23,199,143, 31,135, 66,161,176,138, 45,154,166,235,229,148,203,229, 48,153,236, 27,
- 51,177, 44, 11,149, 74,101,247,123,183, 21, 64, 28, 14,231, 9, 81,100, 57, 28, 41, 75,141,228,124,110, 97, 71,100,248,218, 71,
-216,150, 15,102, 83,221,208,166, 74, 36,201,225, 77,157, 52,243, 61,239,236,194, 82,228, 20,168, 64,145,127,244,123, 97, 17, 51,
-193,161, 72,220, 56, 83,105,184, 34, 41, 10, 42,141, 14, 74,181, 1, 19,103, 46,244,250,207,134,127, 77,165, 13, 21,117,198,120,
-233, 2,180,235, 44,149,190,222,169, 83, 11, 50, 69,144,138,176, 87, 46,131, 49, 1,108,220,171,232, 81,226, 71,117,248,133,255,
-186,166,204,176, 50, 17, 72,175,211,154,225,225, 33,242,236,214, 13, 81, 65, 65, 24,108, 52,130,199,178,120,185,160, 0,191, 47,
- 92, 8,221,193,131, 32, 1,240, 38, 76,192,176,141, 27,113, 41, 40, 8, 1, 90, 45,148,239,191, 15,223,211,167,193,147,201, 68,
- 40,178,111,241, 3, 65, 16, 24, 58,116, 40,206,157, 59,231, 61,122,244,232, 51,119,238,220,121,131,166,233, 75, 13,201, 91,119,
-119,247,223, 56, 28, 78,112,125,247,209, 52,157,173, 82,169, 28,222,102,132,195,225, 12,238,219,183,239,225, 67,135, 14,121, 26,
- 12, 6,167,140, 66,248,124,254,232,241,227,199,111,255,246,219,111,101,115,230,204,217,126,252,248,241,114,189, 94,127,218,145,
- 34, 5, 96,197,182,109,219,222,137,140,140,244,152, 51,103, 14,155,145,145, 97,107,189,242, 29, 52,104,208, 75,219,183,111, 15,
-232,221,187,247,123,115,231,206,229, 1,248,184, 62, 43,143, 84, 42,157,183,125,251,118, 31,185, 92, 14,181, 90,109,109,100,179,
-179,179, 33, 18,137, 64,146, 36, 72,146, 4,151,203,197, 23, 95,124,225, 61,111,222,188,133, 10,133, 98,161, 29, 86,178,232, 45,
- 91,182,248,142, 28, 57,146,124,248,240, 33, 72,146,132, 80, 40,196, 91,111,189, 69,106,181, 90,207,168,168,168, 24,141, 70, 51,
-197,145, 60,228,114,185, 83,163,163,163,219,135,135,135,115, 82, 83, 83,209,191,127,127,220,184,113, 3, 19, 38, 76,224,150,149,
-149,181, 90,178,100,201,108,157, 78,231,104, 28,151, 64,177, 88,220,229,191,255,253,111, 86,243,230,205,173, 13, 75,171, 86,173,
-152,177, 99,199, 42, 82, 83, 83, 67,175, 92,185, 82, 60, 96,192, 0, 71, 54, 44,111, 38, 22,139, 59,156, 60,121, 50, 47, 42, 42,
-106,196,182,109,219,198, 3, 64,159, 62,125,142,126,254,249,231, 23, 20, 10, 69,231, 75,151, 46, 41, 6, 15, 30,156,109, 39, 95,
- 80, 96, 96, 32, 51,127,254,124,105, 93, 55,237,216,177, 67,137,202, 13,151, 91, 3,168,115,191,182,208,144,128,101,107, 23, 78,
- 18,129, 49,128, 53,106, 1, 67, 57, 96, 80,195,164, 47, 7,193, 19, 1, 70, 45,124, 5, 10,252, 52, 47, 84,182,116,223,253, 20,
-230, 46, 49, 54, 85, 94,118, 26, 46,212,216,212, 0, 8, 35, 8, 34,225,196,137, 19,232,219,183, 47, 78,156, 56,129,177, 99,199,
- 38,216,138,129,196,196, 68, 12, 30, 60, 24,102,139,150, 93,190, 90, 42,149,234,195,229,203,151,199, 77,157, 58, 85, 92,165, 49,
- 32, 73,120,120,120, 96,204,152, 49, 21, 26,141,230, 67,123, 19,202, 48, 12, 56, 28, 14,178,179,179,177, 99,199, 14,172, 90,181,
- 10,237,218,181,131,209,104,124, 66,108,153,219, 61,187, 26, 63,154,166,113,243,230, 77,236,217,189, 27, 31, 47, 91, 6, 55, 55,
- 55, 0,128,193, 96,128,162,164, 4, 66,161,208, 42,198,234, 17, 78,251,239,221,187,183, 48, 56, 56,184,202,148,161,229,175,185,
-205,130,201,100, 2, 77,211,168,168,168,192,134, 13, 27,104,150,101,247,215,215,255, 88, 68,209,194,133, 11,161,211,253, 97, 80,
-239,102,246, 73, 14, 9, 9, 65,247,238,221,173,231, 36, 73,178,246,114,254,103, 64, 23,104,109,238, 14, 93,190, 14, 0, 16, 28,
- 28,140,208,208, 80, 4, 6, 6,214,202,217,212, 90,164, 33,112, 32, 50,124,237, 66,235,105,236,148,205,229, 9,135,181,105,219,
-158,200,204, 83,128,195,225, 64,226,238,131, 1,175, 45, 2, 69,145,144,122,248,128, 96,180,127, 40, 98,146, 2,135,226, 64, 81,
-166, 69, 72,235,182,164, 64, 40, 26,166,169, 71,104,201,220,185, 91, 22, 79, 25, 32, 44,166,179, 33,106, 33, 4, 99,233, 78,131,
-248, 32,189,203,240,193,232,118,162,200,163,119,182, 64,101, 28,110, 79,122, 41,154,134, 31, 69,193,192,178,248,125,225, 66,132,
- 69, 71, 35,193, 34, 12,163,163,145, 16, 25, 9, 47, 46, 23, 2,146, 4,107, 52, 62, 49,167,111,143,208, 2,128,172,172, 44, 28,
- 60,120,208,107,210,164, 73,135, 19, 19, 19,167, 58, 40, 54, 44, 92, 62,215,175, 95,247,107,221,186,117,173,247, 60,120,240, 0,
-189,122,245,114,120,122,138,207,231,143, 30, 62,124,248,190,131, 7, 15,186, 39, 39, 39,195,207,207,175,209, 66, 75, 32, 16, 12,
-142,136,136,216,183,107,215, 46, 89, 81, 81, 17,162,163,163,101,175,190,250,234,222,248,248,248,215,116, 58,157, 61, 98,179,138,
-200,138,142,142, 86,238,216,177,227, 63,168, 58, 69,152,183, 99,199,142,239,122,247,238,253,110,100,100,164, 7,128,119,204,190,
- 3,117,138, 45,129, 64, 48,180, 77,155, 54, 85, 70,181, 2, 65,165,177, 73, 34,145,192,221,221, 29, 60, 30, 15, 58,157, 14, 97,
- 97, 97, 4,159,207, 31,104,207, 51,187,185,185, 69,188,254,250,235,228,229,203,151,145,159,159, 15, 15, 15, 15, 72,165, 82, 48,
- 12,131, 57,115,230, 80, 27, 54,108, 24,170,209, 56, 54,195,213,188,121,243,241, 35, 70,140,224, 36, 37, 37,225,225,195,135,208,
-233,116, 72, 75, 75,131, 76, 38,195,244,233,211,121,107,215,174,125, 53, 39, 39,199, 81,161,213, 37, 50, 50,178,192, 86,100, 89,
- 32,145, 72,136,246,237,219, 43,188,189,189,123, 2,112, 68,104,117, 89,176, 96, 65,225,234,213,171, 7,159, 59,119,206, 26,244,
-242,220,185,115, 75, 0,224,171,175,190,138,243,245,245,237, 9,192, 94,161, 5,150,101, 77,127,253,235, 95, 31,243,249,124,112,
-185, 92,240,249,252, 42, 7,143,199, 3, 73,146,110,150,234, 92, 31, 95,202,195,252, 53,115,150,172, 91, 39, 17, 82,220,127,188,
-214, 21, 45, 60,120,128,200, 11,188,193, 75, 65,120, 84, 26, 45, 89,197, 3,224,151,165, 88,255,186,130,140,252,190,226,103, 3,
-227,233,123,191,164,164,236, 25,247, 1,189, 1,252, 27,149,155,235, 46, 3,112,253, 57,233,155,110, 1, 8, 27, 59,118,172, 85,
-108,157, 58,117, 10,163, 71,143,134, 82,169, 68, 82, 82,146,173,200,114,100,131,229, 91, 70,163,241,246, 15, 63,252, 48, 96,210,
-164, 73,132, 77,253, 66,114,114, 50,238,222,189,155, 96, 47, 31, 73,146, 48,153, 76,224,114,185, 88,183,110, 29, 12, 6, 3,190,
-255,254,123, 28, 56,112, 0, 36, 73,130, 32, 8, 16, 4, 1,153, 76,134,175,191,254,218,161,118,143, 97, 24,196,196,196, 96,233,
-146, 37, 86,145,101,158,201, 64,128,191, 63,188,125,124,112,255,254,253,122,133, 86, 73, 73,201,167,199,142, 29, 67, 93,206,240,
-199,142, 29,179,126,174,230, 12, 95,127, 63, 71, 81,208,233,116,120,249,229, 63,182,138, 93,176, 96,129,245,179, 66,161, 0, 69,
- 81,150,188, 32,236,229,212,178,192,107,194, 63,254, 55,230,131, 15,170, 88,232,106,227,124, 26, 90,196, 89,214,173, 26,196, 86,
-152,217, 58, 27, 8, 96, 44, 42,125,180,242,128,167,232,163,197,178,166, 14,193,205,130,112, 59, 35, 17, 28,138, 2,223,221, 7,
-238, 94,254, 48,209,122,168, 10, 31,226,226,161,111, 0, 0,219, 98,246,131, 36, 73,112, 56, 20,116,122, 6,237, 90, 4,193,100,
- 50,117,168,139,187, 35, 48, 96,168,191, 79,223,230, 45, 61,136, 36,207,135,104,239,231, 93,109, 34, 68,128,118,185, 82,162,191,
- 84,212,167, 68, 85, 58, 32, 5,184, 82,175, 24, 32, 73,144, 4, 1, 49,143, 7,221,193,131,149, 94,155,209,149,125, 86, 66,100,
- 36,200,159,127,134,155, 64, 0,138, 32,192, 49,155,160, 27,130,210,210, 82, 16, 4,129, 61,123,246,120, 78,159, 62,125,111, 82,
- 82, 82,100, 69, 69,197, 65, 71, 56,148, 74,229,216,240,240,240, 11, 49, 49, 49,190, 1, 1, 1, 79, 92,207,207,207,199,204,153,
- 51,139,148, 74,165, 67, 65,221,132, 66,225,132,241,227,199,111,223,185,115,167,236,222,189,123, 80,171,213,240,245,245,109,108,
- 81,232,217,175, 95,191,195, 7, 15, 30,116,207,207,207,135, 74,165,130, 78,167,195,158, 61,123, 60,198,140, 25,115, 48, 53, 53,
-117, 52,128,248,122, 56, 62,177, 21, 89,115,231,206,189, 3,192, 15,192,150,234, 26,212,124,173,171,141,216, 82, 1, 88, 91,199,
- 72,180,165, 68, 34, 65, 97, 97, 33,102,206,156,137,244,244, 63, 12,160, 65, 65, 65,214,145,222,253,251,247,225,235,235, 11,130,
- 32,252,236,121,104, 95, 95, 95,169, 94,175,199,236,217,179,145,149,149, 85,133, 51, 59, 59, 27, 4, 65,136, 29,205, 72,127,127,
-127,127,173, 86,139, 65,131, 6,161,162,162,114, 95,223,201,147, 39,131,203,229,162,176,176, 16, 92, 46,215,167, 1,239,199,103,
-236,216,177,181,134, 86,145,201,100, 6, 79, 79,207,142, 14,114,122,191,250,234,171, 57,209,209,209, 79, 44,108,185,113,227,198,
- 95,188,188,188,206,121,121,121,181,119,144,211,100, 43,170,120, 60, 94, 21,161,197,229,114, 65,146,164,221, 62,106,233,133,154,
-205, 28, 34,175,251,234,249, 35,103,182,240,115, 7,171, 46, 0,111,248,167,184, 93, 36,194,186, 13, 39, 1, 0,255,124,171, 23,
-186, 69,172,128,126,231, 72, 44,236, 79,241,167,101,235, 22, 3,248,228, 25,183,249, 95, 2,176,172,130,251, 22, 64,247,231,168,
- 63,178,138,173, 83,167, 78,161,115,231,206, 40, 41, 41, 65,106,106,106, 67, 69,150,165,189, 91,250,217,103,159,253,242,198, 27,
-111, 72, 44,131, 86,145, 72,132,247,223,127, 95,171, 86,171,151, 58, 84,136, 76, 38,112, 56, 28,235, 32, 89, 40, 20, 34, 44, 44,
-204, 42,178, 8,130, 64,121,121, 57, 56, 28,142,101, 69, 34, 97,103, 26, 17, 24, 16, 0, 55, 55, 55,180,109,215, 14,247,204,237,
-136,229,179, 64, 32, 0, 65, 16,160,233,122, 13,121,101,102,167,246, 69,206,238,146, 45,162,168, 78,211,113, 80, 16, 76, 38,147,
- 69,100,178,206,224,244,241,241,129, 90,173,182,151,243,185, 68, 45, 22, 45,139,208, 26,139, 74, 95,173, 39,194, 59, 12, 1,112,
- 17, 77,184,164,146, 0, 75,152, 88, 22, 28,138, 52,207,221, 82,160, 40, 18,138,162, 60,108,252,244, 29,179,200, 58,128, 19,113,
-169, 8,110,211,249,143,121, 92,130, 0,216,186, 11,183,175, 59, 47,122,222, 27,253, 68, 5, 68, 30, 60,130,196, 16, 10,171,233,
- 71, 79, 30,136, 16, 18,243,135, 6,139,111, 30,171,136, 78, 81, 25,234,237, 40,132, 36, 89,233,252, 78, 16, 53, 58,247,144,230,
-107, 20, 65,128,101, 89,176, 38,199,252,142, 45, 66, 94, 36, 18,193, 96, 48,128,162, 40,108,218,180,201, 35, 34, 34, 98,139,163,
- 66, 11, 64,114, 65, 65,193,152, 57,115,230,156,218,191,127,191,143,143,143, 79,149,209,195,156, 57,115,228, 5, 5, 5, 99,224,
-160,211, 61,151,203,221,242,237,183,223,202, 30, 61,122,132,242,242,114,136, 68, 34,107,227,211,208,242,217,167, 79,159, 51,167,
- 79,159,246, 84,169, 84, 48, 24, 12, 16,137, 68, 96, 89, 22, 20, 69,225,199, 31,127,244, 30, 55,110,220,201,204,204,204,225,117,
-165, 85, 36, 18,189,102, 22, 78,136,140,140,244,136,140,140, 28, 2,212, 26,169,215,138,200,200, 72,143, 69,139, 22,189,170,213,
-106,215,214,241,204, 89, 10,133, 34, 64, 36, 18,225,208,161, 67,144, 74,165, 16,139,197, 8, 10, 10,130, 66,161,128, 88, 44, 6,
-203,178, 48, 26,141,150,198,162,216,158, 7, 47, 42, 42, 82,211, 52,237,126,234,212, 41, 20, 23,255,241,149, 22, 45, 90, 64,169,
- 84,194,100, 50,149, 59,154,153,185,185,185, 5, 4, 65, 52,191,125,251, 54, 30, 61,122,132,209,163, 71,227,231,159,127, 70,175,
- 94,149,179,195,122,189,190, 33, 65,252, 24,138,162,216, 58,202, 45, 1,192,211,153,156,230,206,203, 33, 78,147,201,100,178,136,
- 44,219,191,182,226,171,158,223,172, 82,157, 59,250, 75,119,172,158, 55, 98,230,200,206, 62,208, 22, 61,132,208,205, 7,132, 71,
- 8,214,109, 56,137,164, 7,149,239,107,221,222,223,176, 47,106, 12, 32,242, 66,168,187, 28, 1,110,156,215,239, 22, 62,115,161,
-229,110, 59, 78,120, 94, 59,166,209,163, 71, 67,161, 80, 64, 42,149, 58,195, 63,231,170, 86,171, 77, 59,114,228, 72,207,177, 99,
-199,130,207,231, 35, 45, 45, 13,241,241,241,169, 0,174, 58, 42,180,184, 92, 46, 62,251,236, 51,188,243,206, 59,240,247,247,199,
-210,165, 75,193,225,112,172, 7, 65, 16, 86, 11,151, 35,240,243,175,123,225,163,197, 33,190, 62, 99,184,187,187,251,103, 36, 73,
- 78,162,236,200, 56,134, 97, 24,147,201,180, 95,165, 82,213, 25,222,193,226,184,110,207,187,176,205,131,122,250,180, 70,115, 62,
- 13, 45,210, 16, 84, 95,109, 88,139, 69,203,178,234,240,137,173,128, 44, 79,121,209,108,178,187,216, 84, 9, 37, 72,234,110,118,
- 78, 46,188, 61,165,102,145,101, 62, 72, 18,221, 58, 87, 14,102, 79,196,165, 34,184,117,103,112, 40, 10, 28,138,130, 84, 36, 64,
- 65,126, 30, 56, 28,242,110,109,188, 93, 40,188,241, 70,251,230, 33,158,222, 92,200,125,245, 8,244,175,197, 48,208,211, 13,193,
-129,124,140,242, 22,182,236, 66,225,141,186,173,111,172, 85,104, 25,104, 26,188, 9, 19,172,211,133, 9,145,145, 8,139,142, 6,
- 51,126, 60, 52, 6, 67, 21, 83,113, 67,133,150, 72, 36, 66, 89, 89, 25,166, 78,157,170, 48, 26,141,239, 54, 48,139,227,139,139,
-139, 39, 78,155, 54,173,216, 34, 96, 12, 6, 3,166, 77,155, 86, 92, 92, 92, 60,209, 14, 43,209, 19, 48, 26,141,239,246,234,213,
- 75, 33,151,203,173,233,108, 72,131, 99,129,151,151,215,137, 29, 59,118,120,233,116, 58,208, 52,109,229, 20,137, 68,160, 40, 10,
-190,190,190,216,183,111,159,175,151,151, 87,157,123, 86,105,181,218, 35,209,209,209, 74, 0,136,142,142, 86, 18, 4, 17, 75, 16,
-196, 86,130, 32,190,173,118,108, 37, 8, 34,214,246, 94,173, 86,123,184, 46,110,189, 94, 31,155,154,154,202,138,197, 98, 80, 20,
- 5,131,193, 0,161, 80,104, 53,137,151,150,150, 66,171,173,156,230,142,143,143,135,209,104,188,108,207,179,151,149,149,157,143,
-137,137, 49,181,104,209, 2,157, 59,119, 70, 88, 88, 24,250,245,235,135,150, 45, 91,226,243,207, 63,103, 52, 26,141,195,117, 47,
- 55, 55,247,196, 79, 63,253,100,108,222,188, 57,122,246,236, 9,129, 64,128,110,221,186, 33, 40, 40, 8,171, 86,173,210,171, 84,
-170, 83, 13,120, 77,153,137,137,137, 84, 29, 34, 87, 6, 59, 86,239, 86, 67,214,205,155, 55,169,126,253,250, 29,173,126,161, 79,
-159, 62, 71,165, 82,169,187,197,196,238,200,136,220, 86, 92, 9, 4, 2,235, 97,249, 63,135,195,177,103,244, 67,118,244,151,238,
-248,226,157, 97, 51, 71,118,246,196,209,243,215,193, 51, 40, 1,125, 29, 51,130,140, 17, 4, 79, 2,127,119,110,240,115,208, 7,
- 44, 4,112, 7,149,113,152,150,226,249,130,213,241,189,184,184, 24,169,169,169,136,143,143, 71,191,126,253,112,249,242,101,224,
- 15, 7,121,135,161, 82,169,150, 70, 69, 69,105, 44, 43,249,150, 45, 91,166, 45, 43, 43, 91,234,104, 27,204,178, 44,184, 92, 46,
- 66, 67, 67,177,104,209, 34,156, 60,121, 18,105,105,105, 48, 26,141, 86, 33,100,241,201,116,196,162,197,227,241,224,239,239, 15,
-163,209,104,181,102, 1,192,189,244,116,112, 56, 28,152, 76, 38,232,245,250,122, 45, 90,238,238,238,159,109,223,190,253, 61,185,
- 92, 30, 88, 84, 84,228,103,123, 20, 20, 20,248,229,229,229,249,229,228,228,248,101,101,101,249, 61,126,252,216,239,225,195,135,
-129,107,214,172,121,207,221,221,253, 51,123,210, 73, 81, 20,186,117,235,134, 5, 11, 22, 88,143,205,155, 55, 91,143,139, 23, 47,
- 58,236,188, 78, 81, 20, 66,151,175,195,152, 34,214,122,156,244, 37,172, 71,210, 63,231,214,197,217,228, 90,164, 65,250,197,188,
-218,208,118, 99,233, 26, 96, 89,117,104,105,203,172,110, 27,213,157,225,155, 12,180,190,226,194,131,140,244, 97,161, 93,122,147,
-249,114,117,149,229,159, 97, 67, 39,130, 32, 8, 52,107,221, 25, 20,135, 3,138, 34,193,161, 40,120,200,132, 72,189,125,219,164,
-211,106, 47,212,196, 57, 4,224,240, 69,252,205,111,141,234, 38,204,229, 23,194, 55, 80, 2, 30,183, 82, 59,178, 15, 38, 86,235,
- 33, 56, 64, 23, 55,204,202,241, 22, 93, 40,168,216,236,169, 49, 28,141,173,101, 4,104, 50,153, 32, 21, 8, 80,161,211, 65, 75,
-211, 24,186,113,163,117,186,144, 36, 8,220, 2,208,117,227, 70, 92, 57,120, 16, 50, 62, 31, 16, 8,236, 94, 21, 82,147,208,146,
-203,229,152, 49, 99, 70,113, 94, 94,222,244,134,248,104, 89,160,211,233, 46,229,231,231, 79,159, 56,113,226,158, 67,135, 14,121,
- 77,156, 56, 81,145,159,159, 63,221, 78,191,167, 39, 80, 81, 81,113, 48, 43, 43,171,124,198,140, 25,187,247,238,221,235,237,227,
-227, 99, 29,137, 52,168,176, 18,132,124,196,136, 17, 2,123,238,171,231,150, 40,179,115,251, 59,102,203, 86,215,185,115,231, 94,
- 65,165,255,149, 45,150,111,219,182,109,178,205, 20,227, 86, 0, 27,235, 34, 46, 45, 45,253,118,209,162, 69,127,187,116,233,146,
-143, 80, 40, 4, 65, 16,224,241,120,104,219,182,173,117, 21, 13,151,203, 5,203,178,248,224,131, 15,228,133,133,133, 95,217,249,
-110,230, 70, 69, 69, 13,174,168,168,240,156, 49, 99, 6, 37, 20, 10, 81, 80, 80,128, 13, 27, 54, 48, 59,119,238, 84,106, 52,154,
-153, 13, 16,194, 49,255,250,215,191,134,170,213,234,214,115,230,204,225,169, 84, 42,104,181, 90, 44, 94,188, 88,255,221,119,223,
-101,107,181, 90,135, 3,254,246,239,223, 63,227,241,227,199, 3,203,203,203, 75,196, 98,113,117,107, 31, 33,145, 72,122, 3,216,
-237, 8,103, 88, 88,216,253,204,204,204,126, 43, 86,172,136, 53, 26,141,220, 27, 55,110, 88,157,225, 55,109,218,116, 81, 40, 20,
-142,128,131,155,175, 18, 4, 97, 18, 8, 4, 85, 44, 88,213, 63,115, 56,156,122,219,180, 14, 1,226, 21, 95,188, 61,120,230,203,
- 29,221,113,228,252,111,136, 58,252,224,110,187,153,190,161, 47,121, 22,193, 84,148,138,127,190,213, 11,235,246,254, 6,160,114,
-234,208, 84,152, 4,182,228, 62, 88,183,230,120,168,144,231, 62, 7,125,192, 69, 84,134,204,120,222, 80, 69,100, 37, 37, 37, 97,
-216,176, 97, 0,128,203,151, 47, 35, 60, 60, 28,151, 47, 95,198,192,129, 3, 29,142,165,101,198,127, 75, 75, 75, 31, 95,188,120,
-177, 83,243,230,205,113,245,234,213,135, 0,254,235,104, 34, 45, 66,139,195,225,224,205, 55,223, 68, 68, 68, 4, 90,180,104, 81,
-101,181,161,229,179, 35, 98,131,166,105,116,233,210, 5, 58,189, 30, 60, 30,207, 58, 53,201,225,112,224,235,231,135,140,140, 12,
-187, 44, 90, 36, 73, 78,122,237,181,215,200,228,228,100, 76,153, 50, 5,123,246,236,169,245,222,105,211,166,225,135, 31,126,192,
-107,175,189, 70,126,244,209, 71,117,134,119,176, 56,161,219,243, 76,150,126,186,190,118,223, 89,156, 77,173, 69, 26, 3,155,208,
- 14, 53, 78,154,212,240,191,232, 42, 66,203, 38, 72, 88,211, 8, 45,218,176,231,231,239,191, 89,212,111,203, 64,223, 64, 63,119,
- 40, 84, 90,171,216, 74,184,120, 0, 0,240,198,220,149,224, 80,149, 83,138, 50,169, 16, 34, 30,133,131,187,190,146, 27, 12, 21,
- 53,150,174, 50, 46,249,206, 71, 3,218,186,243, 37, 70,148, 6,176,232,236,251,199, 78, 57, 68,235, 3, 79, 10,174, 30,158,240,
- 73, 42,193, 91, 47, 73,101, 95, 37, 43,223,129,209,180,249,137, 14, 81,169,212, 42,111,223, 22,141,222,190, 29, 55,166, 79, 71,
- 51,134, 65,108, 80, 16,188,184, 92,184, 11, 4, 32, 9, 2,218,227,199,113,229,208, 33,248, 11, 4,128,155, 27,232,207, 63,135,
- 46, 53, 21,198,178, 50,109, 3, 70,102,152, 60,121,178, 92, 46,151, 79,212,235,245,151, 26,155,207, 90,173,246,116, 86, 86, 40,
-104, 68,151, 0, 0, 9, 69, 73, 68, 65, 84,214, 59,253,251,247,223, 98, 52, 26,223,213,106,181,141, 90, 25,165,215,235, 79,231,
-231,231, 79,152, 60,121,242,129,195,135, 15,251,120,120,120, 52,152,171,184,184,184,151,147,138,147, 9,192,199,102,231,246,119,
- 34, 35, 35, 61,110,222,188,249,183, 29, 59,118,108,177, 25, 77,248,205,158, 61,251,237,106, 34,171,222, 85,135, 0, 50, 11, 11,
- 11, 63,127,255,253,247, 87,174, 95,191, 94,106,113,124,255,253,247,223, 65,211, 52,184, 92, 46, 24,134,193,236,217,179,213,197,
-197,197,235, 80,123, 68,231, 39,138, 86,105,105,105,219, 21, 43, 86,236,216,184,113, 99, 4, 69, 81, 18,134, 97, 52,229,229,229,
-177, 21, 21, 21, 51,209,176, 56, 90,166,162,162,162, 25,159,124,242,201,140, 13, 27, 54,188, 70,146,164, 31, 77,211,242,178,178,
-178, 99, 90,173,246, 59, 52, 96, 42,233,234,213,171, 69,111,189,245,214,131,162,162,162, 14,193,193,193, 42,169, 84,170,215,235,
-245,148, 72, 36,146, 73, 36,146, 48, 0, 87, 9,130, 72,113,132, 51, 33, 33, 33,127,206,156, 57,143,116, 58, 93,232,214,173, 91,
-227,100, 50,217,121,130, 32, 8, 30,143,231, 41, 18,137,134, 1,136, 37, 8,226,158, 35,156, 36, 73,154,108,173, 87,213,253,179,
-248,124,190, 93, 62, 90,173,125,197,179, 34,218,114,112,228,194,111,136, 58,146, 25,195,176,236,161, 67, 9, 37,199,151,134, 3,
-134,253,111,161,219,196,221,149,211,133, 0, 76,133, 73, 48,236,159, 6, 66,236,131,184, 28, 46, 84, 90,195, 9,184, 80, 19,172,
-225, 29,228,114, 57,146,147,147, 45, 34, 43, 12, 0, 6, 14, 28,152, 96, 17, 91,241,241,241,232,217,179,103, 2, 0,174,163,229,
-181,180,180,244,253,169, 83,167,158, 54, 15,142,223,111,192,192,207, 42,180, 44,130,170, 69,139, 22,214,115,219,195,198, 71,203,
- 46, 48, 12, 3, 30,143, 7, 14,135,131,192,160, 32,235,111,177, 44,139,140,140, 12, 40, 20, 10,187,132, 22, 69, 81, 20, 65, 16,
-152, 50,197,190, 5,201,127,253,235, 95, 17, 27, 27, 11,202, 78, 85, 72, 81, 20, 66, 66, 66,234,189,199,162, 75,237,229, 12, 14,
- 14,110, 48,103, 83,107,145,134, 10,172,154, 62,215, 36,170,106,171, 16, 79, 11,185,106,181,234,227, 93,219, 55,173,159, 61,239,
- 3,105,210,253, 2,168,212, 58, 80, 20,105,219,120,130,195,161, 32,147, 8,209, 60,192, 29,123,255,243,239,178,178, 82,229, 39,
-168,101,223,195, 22,110,188,185, 35,122,191, 36,224, 5,106, 16,218,117, 50, 40,225, 31, 34,128,205,175,101,118, 48,252, 23,188,
-146,169, 17,254,156,169,153,123,171, 68,255,164,208,210,235, 71, 46, 27, 53,234, 76,212,201,147,226, 62, 49, 49,184, 63,123, 54,
-130,180, 90, 8,204, 83,137, 36, 65, 64,202,227, 65,202,227, 85,138,172, 13, 27,160,165,105,108,156, 62,189, 92,167,215,143,114,
-164,146, 23, 23, 23, 99,252,248,241, 69,185,185,185, 99,208,128,169,189,218,160,209,104, 14, 2, 56,232, 44, 62,157, 78,119, 41,
- 59, 59,251,149,241,227,199,159, 60,125,250,180,239,115, 18,100,206, 34,182, 12, 55,111,222,124, 59, 46, 46,238, 62,170,110, 44,
-170,140,139,139,187, 63,103,206, 28, 98,199,142, 29,223, 1,248, 23,236, 12,224,169,209,104, 54,157, 61,123, 22,131, 7, 15,254,
-215,234,213,171,189,123,245,234, 5, 63, 63, 63,148,149,149, 33, 62, 62, 30, 11, 23, 46, 84,148,150,150,174, 86, 42,149,235, 29,
- 76,179, 65,167,211, 77,179, 93, 74,237,140,124,208,233,116, 59,243,242,242,118, 58,139,112,254,252,249,191,103,100,100, 20,251,
-250,250,246,229,241,120, 93, 81,233, 7,148, 15,224, 59, 71, 5,145, 5,243,230,205,187,157,145,145, 33,111,214,172, 89, 63, 51,
-167, 7, 42,183, 49,218,222, 0,206,220,223,126,251, 45,184,119,239,222, 36,151,203,101, 41,138, 2,151,203,101, 57, 28, 14,107,
-246,171, 97, 1,224,216,177, 99, 2, 0,117,110,155,115,191, 80,187, 98,218,191,127,253, 40, 37,191,226, 80,106, 65,249, 34, 0,
-236,254, 36,241, 47,221,124,169,145, 35,219,103, 67, 23, 61, 16,132,172, 50, 80, 37,171,206, 3, 33,241, 71,182,169, 25,150, 31,
-189,155, 79,131, 88,235,210, 84, 53,143,171, 97, 14,239,144,151,151,103, 43,178, 44, 86,171,176,129, 3, 7, 38,152, 69,150,229,
- 90, 67,252,203,206,153, 76,166, 70,245, 97, 44,203, 34, 42, 42, 10,219,182,109, 67,125, 17,205,205,171,251,136,250,248, 44, 22,
- 45,134, 97, 96, 48, 24,144,148,148,100,141,217,101,153, 46,180,132,118,160,105,186,206,213,234, 12,195, 48,122,189, 30, 63,254,
-248,163, 93, 98,107,223,190,125,168,168,168, 0, 83,143,130,179, 13,197,208,189,123,119, 40, 20, 10,235, 98,159,176,176, 63, 66,
-229, 25, 12, 6,135,132,171,133, 51, 52, 52, 20,114,185, 28, 22,127,225,230,211,255, 48,246,208, 26,205,159,181,220,215,106,209,
-122,234, 61,166, 64, 44, 59,221,107, 64, 68,248,244,183, 23, 74,212, 58, 6,143, 30, 61, 70, 81, 97, 30, 72,130, 68, 96,179, 96,
-180,108, 25, 2, 17,159,196,158,232,245,154,132, 43,231,127, 85,151,149,140,174,141,107,172, 59,239,202,134, 9,225,253,218,180,
-113, 35, 64, 27, 1,198, 8,208, 70,192,100,254,107,249,159,169,106,153, 75, 78, 86,178, 31,221, 82, 92, 59,161, 50,212,184,103,
-213, 68, 32,220,195,203,235,204,242, 99,199,196, 38,131, 1,197,239,191, 15, 49, 77, 67,104, 30,149, 84, 62,136, 0,244,231,159,
- 87,138,172,105,211,202, 85, 74,165, 67, 91,240,248,248,248,252, 70, 16,132, 79, 81, 81,209, 11, 21, 25,222,215,215,247, 4,203,
-178,114,185, 92,222,235, 57, 74,151, 31, 0, 37, 0, 67, 13, 3, 9, 95, 56,238,255, 99, 65,136,175,175,239, 71, 36, 73,246,103,
- 89,214,155, 36,201, 18,147,201,116,181,176,176,112, 13,128, 12, 87,127,250,204, 96,137, 12,223,170,158,251, 10, 1,252, 3,149,
- 78,193,143,236, 37,239,230,238,238,174,227, 27, 15,255,165,179, 96,232,164, 48,119,180, 14,112, 3,151, 39, 68,110, 41,141,115,
- 41,165,216,126, 49, 63, 75,107,100,198,165, 23,149, 39,186, 94, 69,157,112,250, 22, 60,206,132,151,151,215,245, 51,103,206,244,
-106,221,186, 53,105,235,240,110,137,149,103,153,222,226,112, 42,181,220,165, 75,151,232, 41, 83,166, 92, 45, 40, 40, 24, 92, 27,
-167,155,155,219, 47,119,238,220,121, 89,165, 82, 61, 33,168,108, 35,197, 91,206, 53, 26, 13,230,205,155,119,182,182, 45,120,220,
-221,221, 55,172, 95,191,254,189, 55,222,120,131,180,132,163,176, 61, 44,219, 5, 89, 14,131,193,128,221,187,119,155,190,250,234,
-171,175, 85, 42, 85,173, 83,135,129,129,129, 89,185,185,185,193,150, 80, 11,246, 4, 21, 13, 9, 9,201,123,252,248,113,208,211,
-228,124,129, 5, 87, 21,235,214, 51, 49, 77,112, 69,162,249,110, 82,207, 79,223,152,186,192, 59,164, 77, 59,194, 63,176, 25, 8,
-144, 40,200,207,193,227, 7,233,236,225,239,191, 41,214,148, 42, 62,211,106, 53,223,212,197,211, 17,104,211, 74,198,219,207,103,
-208, 30, 22, 1, 84,109,127,170, 39, 70, 28, 0, 12, 92,242,238,163, 50,227,228,148, 58,166,125, 44, 98,235,227,195,135,197,252,
-246,237,159, 8, 20,103, 50,153,160, 75, 77,197,198,233,211, 29, 22, 89, 46,184,224,130, 83,208, 26,245,199,200, 50,162, 50, 62,
-151,163, 22, 19, 34,212, 79, 50,153, 5, 38,145, 48,117, 33, 9,130, 79,179, 72, 3,139, 95,196,156,242, 45, 9,121,208,186,178,
-223, 46, 60,183,155, 74, 3,144,120,121,121,157,167, 40,170,165,197, 34, 99,107,173,175, 97, 67,233, 71, 5, 5, 5, 35, 0,212,
-181, 66,184,141,155,155,219, 55, 12,195,244,177,103, 83,105,138,162,110,148,149,149,205, 71, 29,155, 74, 55,197,170, 67,111,111,
-239,140,199,143, 31,183,177,172,162,182,237, 43,107, 90, 89,126,239,222, 61, 12, 25, 50,228,113,126,126,126,200,211,228,124, 94,
- 81,203,170,195,231,199,162,101,131, 32,158, 64, 58,131, 47, 18, 14, 55, 25,233, 80, 16, 0,135,203,189,171,175,208, 94,208,105,
-213,187, 80,203,116,225,211,196, 68, 32, 92,192,231,255,194,147,201, 68, 53,137, 54, 99, 89,153, 86,167,215,143,116,137, 44, 23,
- 92,112,193, 5, 23, 94, 32,180,247,242,242, 58,195,229,114, 5,182, 98,178,250,103, 11,104,154,174, 40, 42, 42, 26, 13, 32,237,
- 41,115,254,111,194, 65, 39,181, 8,123, 57,205,199,144,231,157,179, 9,159,157,117, 34,231, 16, 51,231,242, 23, 36,157, 67,158,
- 87, 78,203,243, 58,192, 27,225, 72, 57,114, 86,126,218,164,147,117,118, 58,155,138,211, 89,245,168,134,116,178, 77,240,222,151,
-191, 32,233, 28,242,188,113, 86, 47, 63,118,242, 58,196,105,103,153,114, 52,157,172,179,211,217, 84,156,141,173, 71,117,164,147,
-109,108, 89,170,229,221, 47,199, 11,136,228, 30, 96,147,123,128, 77,234, 89, 99,220,198,200,218,190,231,144, 35, 97, 83,173, 4,
-176,132,221, 55,243, 19,207, 43,167,109, 62, 56,115,171,128, 38,216,118,224,162,179, 57,171,229,167,179,176,220,188,194, 36, 22,
-118, 4, 28,117,228,217,157,241,222,171, 61,171, 83,120, 27, 32,178, 28,226,116, 86,185,111,106, 78,103,213,165,234,156,206, 40,
-247, 53,189,247, 38,124, 71,206, 74,167, 83,234, 82, 83,148,249, 26,202, 79,163,121,171,115, 58,163, 46, 85,231,116, 70,185,127,
- 26,156,206,168, 75, 53,113, 58,163,220,215,246,238, 95, 84, 67,147,101,186,208, 28,226,129,176, 67,108, 69, 3, 0,217,144, 76,
-107, 66, 75,217, 80,103,115, 58, 59,205, 77, 33, 54, 29,176,192, 60,115, 78, 39,191,163,229,102, 78,103,142,110,134, 58,235, 29,
- 53, 69,121,183,229,116, 22,127,117, 30,103,188,167,154, 56, 27,155,222, 90,210,233,244,103,111,108,185,127, 90,156, 78,126, 71,
- 78,169, 75,213, 56,135, 58,121, 48, 48,212,230,124,185, 51, 57,157, 85,151,106, 72,103,163,223, 83, 77,156,141, 77,111, 45,233,
-116,250,179, 59,163, 15,105, 42,222,103,105,209, 98,201, 90,203, 68,116,181,227,169, 8,141,103, 54, 37,231, 32,247,159,138,211,
-193,233,153,136, 38,120,247,207, 52,157,206,228,172,158, 70,103, 78,247, 52,101, 58,157,201,233, 64, 90,255,116,156, 47,218,123,
-127, 30,243,179, 54,190,198, 76, 75,213,102, 29,109,138,116, 58,147,211, 78,238, 63, 5,103, 35,222,253,159, 14,156,231, 37, 33,
-150,140,119,242,200, 4, 78,182,192, 52,217,115, 59, 57,157, 67,155,194, 66,216, 4,112,122, 58,205, 35,229, 79,155,224,217, 95,
-148, 60,117,213, 37, 87, 93,122,238,234, 82,181, 50, 57,212,137,150, 34,167, 90,158,171,115, 58,227, 55,108, 57,156, 85, 70,155,
-250,217,157, 89,151,154,226,221,191,104,248,127,145,193,179,185, 29, 76,112,153, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
+int datatoc_blender_icons_png_size = 227018;
+char datatoc_blender_icons_png[] = {
+137, 80, 78, 71, 13, 10, 26, 10, 0, 0,
+ 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,
+104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,
+247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,
+193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,
+225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66,
+ 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,
+192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75,
+ 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96,
+ 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,
+138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12,
+ 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,
+120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,
+121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,
+234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162,
+ 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,
+229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50,
+ 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,
+185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223,
+ 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,
+128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0,
+ 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,
+100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184,
+ 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,
+248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135,
+ 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,
+100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,
+196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119,
+ 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,
+132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,
+196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,
+201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248,
+ 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,
+161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186,
+ 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,
+103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,
+202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51,
+ 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6,
+ 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,
+205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,
+156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171,
+ 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,
+231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,
+158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,
+197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70,
+ 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76,
+ 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,
+184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167,
+ 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98,
+ 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86,
+ 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,
+103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,
+245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,
+229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247,
+ 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223,
+ 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,
+101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,
+105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,
+119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186,
+ 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,
+123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168,
+ 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,
+236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,
+189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149,
+ 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,
+158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106,
+ 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122,
+ 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,
+157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,
+207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,
+151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,
+181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251,
+ 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213,
+ 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,
+233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251,
+ 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,
+103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,
+139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,
+187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57,
+ 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237,
+ 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15,
+ 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,
+203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,
+198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245,
+ 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,
+160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,213, 0, 0, 13,213, 1, 61,214, 88,241, 0, 0, 0, 7,116, 73, 77,
+ 69, 7,220, 4, 24, 17, 13, 59,208, 68,241,106, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,197, 3,125,187,183,
+215,239,114,233, 61, 16,146, 64, 32,148,132, 80, 20,144, 94, 5,162,168, 8, 2, 34, 69, 44,136, 40,160, 40,168,136, 72, 87,233,
+ 42, 32, 42, 77, 65,176, 1, 1, 41,145, 18, 72, 2,132, 38, 61, 65, 18, 72, 35,237, 82,175,183,221,223, 31,201,157,151,203,181,
+ 64,162, 63,116,223,247,237,119,119,123,187,111,103,103,103,102,223,188,105, 0, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22, 44,
+ 88,176, 96,193,130, 5, 11, 22,255,106, 36, 38, 38, 50, 13, 56,124,160,187,156,181, 91,159,255,119,206, 38,188,119,166, 17, 57,
+251,212,114,126,244,144,132,179,207,255, 43,167,249,126, 27,192, 59,176, 33,233,168,177,226,211, 42,156, 76, 99,135,179,169, 56,
+ 27, 43, 31,217, 9, 39,211, 4,207,253,163,135, 36,156,125,254,223, 56,109,211,143,155,188, 13,226,116, 51, 77, 53, 52,156, 76,
+ 99,135,179,169, 56, 31, 52, 31, 57, 9, 39,243,160,105,201,193,179,255, 8,255, 33, 80, 77, 40,178,220, 70, 66, 66, 2, 97,197,
+ 79,252,191,114, 90,199,131,153,191, 49,195,218,136, 56,222,216,156, 54,241,217, 88,248, 40, 33, 33,129, 72, 76, 76, 60, 1,160,
+ 79, 99,222,123, 99, 60,119,155,123,109, 20,222,251, 16, 89, 13,226,108,172,116,223,212,156,141,149,151,108, 57, 27, 35,221,219,
+123,238, 77,248,140, 26, 43,156,141,146,151,154, 34,205,219, 73, 63, 15,204,107,203,217, 24,121,201,150,179, 49,210,253,223,193,
+217, 24,121,201, 30,103, 99,164,123, 71,207,254,191,102, 80,145,255,176, 32,176,205,224,125,255,159, 5, 81, 83,137,205, 6, 56,
+ 48,255, 56,103, 35, 63,163,143,106, 57, 27,179,118,211,183,177,158, 81, 83,164,119,107,206,198,226,183,229,105,140,231,100,143,
+243, 65,195,235, 32,156,141,126,239, 15,154,238,255, 46,206, 70,126, 70,141,146,151,108, 56,251, 54,114,101,160,175,213,239,143,
+ 26,147,179,177,242,146,157,112, 62,240,115,178,199,249,160,225,117, 16,206, 70,191,247,198,120,135, 52, 21,239,191, 26, 77,213,
+124,214,216,156, 13,228,254, 87,113, 54,176,121,102, 96, 19, 60,251,127, 52,156,141,201,105, 27,198,198,108,238,105,202,112, 54,
+ 38,103, 3,194,250,175,227,124,216,158,251,255, 99,124, 58,226,123,144,102, 41, 71,238,104, 83,132,179, 49, 57,221,228,254, 87,
+112, 62,192,179,255,215,129,250,127, 9,136, 57,226, 27,185,102,130, 70,118, 96,154, 82,184, 54,102, 56,251, 54,133, 67,216, 4,
+104,244,112,214,214,148,231, 55,193,189, 63, 44,113,202,230, 37, 54, 47,253,223,229, 37,155, 52,217,183, 17,157,162, 70,117,158,
+109, 57, 27,227, 26,214, 28,141,149, 70,155,250,222, 27, 51, 47, 53,197,179,103,241, 0, 46, 4,203,201,114,178,156, 44, 39,203,
+201,114,178,156,255, 89,206,127, 37, 72, 54, 10, 88,176, 96,193,130, 5, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22, 44, 88, 60,
+ 84,112,216,190, 27, 18, 18,146, 40, 22,139, 91, 58,250, 95,169, 84,222,187,119,239, 94, 63, 54, 10,255, 57,176,207,136,197, 67,
+ 4, 18,127, 57,232, 52, 0,166,118, 99,193,130, 5,139,127, 53, 28,118,134, 23, 8, 4,145, 55,110,220,136,166,105, 26, 38,147,
+ 9, 70,163,209,242,169,211,233,208,187,119,239, 6,119,164, 15, 12, 12, 76,230,112, 56, 45, 26,114,142,201,100,202, 41, 42, 42,
+234,233,228,144, 84, 0,145, 4,241,151,102, 52,127,119,244, 9,160,192, 96, 48,116,114,198, 73, 16, 68,164, 45,159, 3, 46,243,
+119,167,156,158,158,158,231, 40,138, 10,179,199,229,232, 59, 77,211, 89, 37, 37, 37, 61,254,206,103,244, 95, 70, 96, 96, 96, 50,
+ 69, 81, 13, 78,159,133,133,133, 14,211,103,112,112,240, 69,146, 36, 67, 26, 64,201,161,105, 58,227,222,189,123, 61,157, 8,145,
+ 84, 0,145, 78,107, 80, 54,233,137, 32,136, 60,147,201,212,197, 85, 62,114,198,101, 39,141,186,226,180,136, 44,138,162,150, 5,
+ 4, 4, 76, 85,169, 84, 26, 0, 12,135,195, 97,172,194, 6, 0, 48, 26,141, 37, 21, 21, 21, 29,216,148,200,130, 5,139,255,132,
+208,162,105,154,212,106,181,200,204,204, 4,195,216, 45,239, 77,247,113,189,232,243,191, 31, 9,240, 8, 8,132, 81,175,135,196,
+207,223,194, 93,116,253, 42,140, 6, 61,140, 58, 29,154,119,237,102, 14, 3,218,182,109,203,113,193, 25,182,124,249,242, 0, 15,
+ 15, 15,104, 52, 26,104, 52, 26,104,181, 90,104, 52, 26,232,116, 58,232,116, 58,232,245,122,232,245,122, 24,141, 70,104,181, 90,
+ 36, 37, 37,153, 12, 6,131, 83,206,197,139, 23, 7,200,100, 50, 11,159,121, 51,115,154,121, 13, 6, 3, 52, 26, 13,142, 30, 61,
+234,148,147,162,168,176,130,130,130, 0, 30,143, 7,134, 97, 64,211, 52, 24,134,169,179,217, 34, 42, 42, 74,239, 44,144, 77,244,
+140,254,203,136, 94,188, 99,127,128,167, 72, 0, 35, 77, 35, 33, 46,202,242, 71,214,215,187,193, 24, 77,160,141, 70,180,122,125,
+188,101,127, 76, 76,140,211,244,201, 48, 76,248,226, 29,251,189,220,229,148,203,229,234, 54,109,218, 20,160,198,109,118, 36,180,
+194,212,106,117, 64, 45,127, 61, 65, 68,146,100,157,237,208,161, 67, 72, 72, 72,112,117,239, 97, 51,103,206, 12, 48, 24, 12,208,
+233,116,208,106,181, 48, 24, 12, 48, 26,141,150,205,100, 50, 89, 54,157, 78,135, 51,103,206,184,235,100, 45, 31, 52,104,208,228,
+253,251,247, 75,126,253,245, 87, 73,139, 22, 45,192,227,241,192,225,112,192,225,112, 64,146, 36, 40,138,194,163,143, 62, 74,176,
+ 73,144, 5, 11, 22,255, 25,161,165,213,106,179,227,227,227,153,218,239,161, 2,129,128,103, 83,203, 13,105,213,170, 85,134,237,
+121,174,154,171, 60, 2, 2, 49,183,153, 15, 0,224,195,187,114,203, 11,226,147, 30, 29, 45,199,124,156, 95, 9, 0, 16,137, 68,
+ 32,172,171,209, 14, 32,145, 72, 48,104,208, 32,240,249,124,116,233,210, 5, 92, 46,215,238,198,227,241,192,229,114, 93, 70, 10,
+ 65, 16,144, 74,165, 88,176, 96,129, 89, 36, 65, 34, 20, 96,122,143, 46, 16,130,193, 87, 87,111, 65, 71, 51,160, 40,202,178,185,
+195,201,227,241,112,229,202, 21, 80, 20, 5, 14,135, 99,249, 52,127,223,187,119, 47,158,125,246, 89, 80, 20, 5,145, 72, 4,184,
+152, 57,216,250, 25,233,116,186, 96, 62,159,175, 7, 96, 22,103, 60,130, 32,130,238,231, 25,253,151,225, 41, 18, 96,194,250, 95,
+ 0, 0,185,171, 94,183, 60,187, 51,175,125,104, 57, 38,252,229,209, 32, 8, 2, 92, 46, 23, 36, 73, 54, 26,103, 89, 89,153,122,
+204,152, 49,167, 60, 60, 60, 14, 85, 85, 85,193,133,128, 67,110,110, 46, 40,138,114,152,222, 73,146,196,202,149, 43,241,231,159,
+127,186,117,239, 26,141, 6,155, 54,109,130,201,100,170,195,107,254,110,187,207, 77,145,181,104,240,224,193,227,247,239,223,239,
+ 77, 16, 4, 62,255,252,115,240,120, 60, 12, 27, 54, 12,190,190,190, 56,124,248, 48,120, 60, 30,222,121,231, 29, 54,241,177, 96,
+193,194, 89,153,199, 5,208, 17,128,127,173,137, 80, 13,192,203,234,144,146,218, 79,127,243,111,130, 32,210,237,240,116,173, 61,
+166,132, 32,136,116,171,223, 58, 0,124, 59,251,229, 0, 68,181,155, 22, 53,238,127,123,171,235,152,207,131,163,235, 82, 64,205,
+250, 67, 0,142, 3,232,155,144,144,112, 2, 0, 10, 11, 11,135, 22, 22, 22, 2, 0, 34, 35, 35,111,100,100,100,180, 49,107,158,
+218,230, 41,158,209,104,140, 54, 55, 85,153,221,162,129, 3, 7, 58,173,225, 27,245,250,122, 2,196,158,150,178,215, 92,225, 72,
+192,232,245,122,140, 30, 61, 26, 0, 28,190,116,172, 55, 55,180, 27,116, 58, 29, 40,138, 66,235,102,254,152, 55, 36, 30,143, 48,
+ 6, 40, 21, 4,140,149, 74,140,144, 26,112,163,109, 39,108,204, 41,193,221, 42, 5, 40,138,114,139,147,166,105,135, 34,139,195,
+225, 96,253,250,245, 24, 51,102, 12, 56, 28,142, 91,124,214,207, 40, 34, 34, 98,127, 70, 70,134, 47, 65, 16,218,218,103, 36, 48,
+ 26,141, 50,163,209,232,107, 50,153,124, 27,242,140,254,203, 48,210,180,221,116,232, 40,205,186,243,156,220,225, 44, 43, 43, 83,
+ 39, 36, 36,156, 22, 8, 4, 91, 3, 3, 3, 11,242,242,242, 92, 10, 45, 91,241, 99, 91,169, 88,177, 98, 5,214,174, 93,139,126,
+253,250,185, 21, 78,173, 86, 11,130, 32,176,113,227,198,122,255, 45, 92,184,176,222,245, 92,112, 18, 0,200,144,144,144,215, 14,
+ 30, 60, 40, 51, 31,235,231,231, 7, 46,151,139, 14, 29, 58,192,195,195, 3,167, 78,157,130,201,100,114, 59, 95,178, 96,193,226,
+223, 11,123, 90,196, 10,189,231,206,157,219,101,217,178,101, 75,186,119,239,190, 51, 53, 53,117, 7, 65, 16,137, 86,101, 98, 66,
+109,249,154,104,254,205, 48, 76, 87,107,209, 83, 43,214,252, 9,130, 72, 52, 31,111,253,219,252,201, 48,204, 64, 0,124,243,239,
+185,115,231,182, 95,182,108,217,146, 57,115,230,188,183,116,233, 82,222,220,185,115, 99,151, 45, 91,182,196,124, 29,123,225,176,
+231,104, 57, 93,123,202,220, 68,117,243,230, 77, 71, 77, 84,214, 47, 0,167,165,165,196,207,223,226,100,125, 28,238,107,217,191,
+ 32,175,194,242, 2, 91,215,185, 37, 36, 18, 9,134,124,252,169, 91, 78,145, 78,167, 67,113,113,177,197,101,112,181,185,203, 41,
+ 22, 9,145, 52,179, 3,114,229,124,124,148, 86,134,253,151,254, 4,151,203,197,227,109, 59, 96, 40,207, 3, 31,132,243, 49,243,
+214, 29, 24, 24,247,250,244, 50, 12, 99, 87, 96,153,191,155,155, 80,220, 21, 90, 54,207, 40, 87,163,209,200, 51, 51, 51,213,116,
+205,139, 93,196, 48,140, 55, 65, 16,213,181, 46, 87,176,187,207,232,191,140,132,184, 40,139,235,116,198, 99,128,101,255,179,202,
+ 43,150,103,242,214,250, 79, 0, 0,253, 58, 61,234, 50, 63,184,195, 41,151,203,213, 61, 7,244, 61, 97, 82,235,182,140, 31, 63,
+ 62,251,216,177, 99, 34,119,194,106, 79,104,153, 93, 91,179,200,162, 40, 10, 58,157,206,173,123,215,233,116, 14,243, 7,143,199,
+187, 31, 71, 11, 74,165, 82,183,103,207, 30,172, 91,183, 14,190,190,190, 24, 60,120, 48,130,131,131,177,123,247,110, 48, 12,131,
+215, 95,127, 29, 34,145,200,236, 94,179, 9,144, 5,139,255, 54,156,105, 17,193,178,101,203,150,216, 10, 25,235,223,214, 2,202,
+ 70, 76, 89,139,181,246, 46,222,255,137,182,226,201,124, 93,130, 32, 18,151, 46, 93,154,224, 34, 28, 37,142,132,150,211, 41,241,
+181, 90,109,118, 92, 92,156, 91,106, 66,165, 82, 21,186, 18, 27,246,106,245,214, 46,129, 84, 42,133, 68, 38, 5,233,102,185,107,
+ 48, 24, 44, 66,229,200,145, 35, 16,137, 68, 24, 54,108,216, 3, 57, 90,122,189, 30,124, 30, 23,164, 95, 32, 38,172, 58, 6,121,
+181,218,242,130, 57,158,149,141, 11, 69,197,152,217,125, 0, 36,162, 98, 40,116, 58,183,156, 55,154,166,235,137, 44,138,162, 48,
+122,244,104,139,155, 96,221,111, 5, 78,154, 14,125,125,125,207, 81, 20, 21,102,245,140,132,145,145,145,192, 95,253,122, 8,154,
+166, 21, 94, 94, 94, 63, 3, 8, 97, 24, 38, 12,128,135, 59,207,136,133,253,244,105,187,159,182,113,170,238,135, 83, 46,151,171,
+ 19, 18, 18, 78,155,212,186, 45,249,249,249,167, 1, 8, 31,121,228,145, 6, 11, 45,179,192,226,114,185, 88,185,114, 37,214,174,
+ 93,107,249,223, 93,161,101, 52, 26,235, 8,168, 91,183,110,213,185,150,173,176,115,209,108,202,160,102,116, 33, 29, 25, 25,105,
+ 57, 39, 40, 40, 8, 94, 94, 94,160,105, 26, 52, 77, 67, 40, 20, 66, 36, 18,129,199,227,177,137,142, 5, 11, 22,206,180,136,122,
+206,156, 57,239, 17, 4,145, 88,235, 44, 93,117, 34,168,236,105,143,174, 54, 98,173,196,193,113, 9,246,196,150,245,119, 51,230,
+206,157,219,222, 54, 28,246,154, 43, 45,165,170,205,180,251,117, 96,221, 68,213, 88, 47, 49,103, 47, 50,169,151, 12, 34,137, 4,
+ 28, 14, 9,130, 32, 24, 87, 92,122,189,222, 82,240, 79,157, 58,213,105,191, 21,119,251, 83,233,245,122,144, 20, 7,247,130, 34,
+ 96, 34, 79, 90,206, 53,111, 36,197,197,221,160, 54,224,220,188, 8,174,155, 47, 92, 91, 71,235,245,215, 95,199,166, 77,155, 64,
+146,164, 37, 78, 40,138, 66,171, 86,173,144,157,157,237,148,139,162,168,176,187,119,239, 6, 88,199,163, 89,196, 50, 12, 3,147,
+201,132,168,168, 40, 77,102,102,230,155,108,214,125, 48,145,229,104,191,201, 68,187,237,194,216, 59, 78, 46,151,171, 71,141, 26,
+117,162,178,178,114, 75,187,118,237,110,161,238, 20, 8, 46,249, 40,138,170, 35,176,204, 34,107,205,154, 53,117, 68,145,193, 96,
+112,171, 34, 96, 48, 24,234, 9,158,207, 62,251,172,206, 39, 0,244,232,209,195, 45,103, 24, 0, 67,146, 36,195,227,241, 48,104,
+208, 32,196,198,198,226,215, 95,127, 5, 77,211,152, 54,109, 26, 68, 34, 17, 86,175, 94, 13,163,209,136,229,203,151,179,142, 22,
+ 11, 22, 44,156,105, 17,237,210,165, 75,175, 46, 93,186,212,226, 44,217, 58, 90, 14,222,187,195,107, 69,149,191, 89,164, 1,208,
+218, 19, 68,246, 92, 50, 91, 1,102,189,111,217,178,101, 75,108,195, 97,219, 92, 89, 71,104,253, 93, 40,188,118, 5,159, 62, 22,
+ 15,160,110,115,225,250, 71,219, 64, 34,149, 64,226, 33,197,168,189, 39, 1,160,182,208,159,227,150,163,101, 22, 90,114,185,220,
+169,200,106,136,163, 69,242, 41,252, 24, 86, 14,134,207, 5,165, 51,212, 17, 90, 28,138,139, 92,223, 8,144, 92, 30, 40,147,209,
+ 45, 78,134, 97,234, 53, 21, 78,156, 56, 17, 4, 65, 88, 70,136,197,197,197, 89,115, 17,174, 94,142,179,125,106,250,224,217, 54,
+199, 46, 47,213,176, 57,246,126,210,231,185,175,113,227,167,215, 0, 0, 61,149, 74,203,179, 88, 28,247,215,216,129, 85, 87, 78,
+ 88,220,199,143,241,246,125,113,202,229,114,245, 35, 49,237, 79,243,124, 60,183,228,228,228,156, 6, 64, 62,247,220,115, 94,113,
+113,113,110,229, 73,243,224, 10, 91,145,101,237,100,153, 63, 93,140,176,181, 18,142, 38,183, 4,148,185, 25,209,141, 52,207,152,
+211,182, 76, 38,131, 84, 42,181,140,184, 21, 10,133, 16,139,197,150,254,157,110, 10, 55, 22, 44, 88,252,119,225,109, 22, 58,181,
+ 98,169,142,211, 84,219,183, 42,193,250,183, 61,199,171,214,129, 74,118, 81,190,238,175, 21,104,118, 97,118,214,108,206, 73,116,
+ 36,210, 40,179,130,180,254, 12, 10, 10,250, 77, 42,149, 70,184,123,247, 13, 25,197,102, 50,232,235, 57, 91, 4, 65, 64,234, 33,
+133, 72, 42,129,200, 67,234,208,245,114, 38,180,204, 78,145,249,165,179,117,235, 86, 72,165, 82, 76,154, 52,169,193,125,180, 44,
+ 66,139, 71,226,176,224, 40, 56,124,170,142,200,162, 40, 10, 28, 46, 23,133,210, 96,144, 92, 46, 40,163,123, 46, 89,101,101, 37,
+ 40,138,194,188,121,243, 44, 53,120,107,145,213,144,123,118, 6,146, 32,204,238,150,160,101,203,150,111, 19, 4, 17, 14,160,133,
+ 82,169, 20,220,187,119,175, 63,155, 95,157, 40, 3,147,161,158, 11,229,200,125,189, 95, 78,179,147,197,243,241,220,210,166, 77,
+ 27,139,147, 37, 22,139,205,163, 77, 93, 63, 99,146,180, 43,178,108, 71, 8, 82, 20, 85,147,150, 93,140,142,180,118,180,150, 46,
+ 93,106,225,181,118,178,204,104, 72, 62, 50,135,245,196,137, 19,184,112,225, 2,166, 78,157, 10,145, 72,132,181,107,215,194,104,
+ 52, 98,225,194,133, 16,137, 68,224,243,249,108,226, 99,193,130,117,179,234,104, 17, 27,148,216,244,131, 34,108, 68, 77,137, 61,
+129,101,221, 76,104,254, 78, 16,132,193, 14,175,206,166, 73,209,118,191,249, 83,190,116,233,210, 99,102, 39,203,106,127,157,112,
+184,116,180, 4, 2, 65, 68,102,102,166,101, 34, 76,103,159, 58,157, 14,253,250,245,115,219, 25, 51,143, 58,164, 40, 78, 29, 97,
+ 33,246,144, 66, 44,243,128, 72, 42,181, 21, 28,132,171, 66,220, 92, 35,182, 22, 90,243,231,207, 7, 69, 81,216,180,105, 19, 0,
+224,237,183,223,118,187,143,150,153, 19, 38, 2,121,204,109,196,175,122, 22,186,239, 12, 40, 74,249, 3, 20, 69, 33,160,219, 80,
+208,143, 60, 11,149, 72, 10,202,100,116,123,212, 97, 89, 89, 25,178,179,179,193,225,112, 48,107,214,172, 58,115, 29,217,142,100,
+ 59,114,228,136,203,123,183,231,100,205,207, 41,179,240,136, 68, 34,242,143, 63,254,136,160,105, 58, 82,173, 86,183,236,209,163,
+ 7,205,102,101, 23,162,136, 54,186, 37,170,220, 77,159,182,156,230, 62, 89,149,149,149, 91,114,114,114,206, 0, 32,199,143, 31,
+239, 37, 22,139,241,205, 55,223,168, 0,240,119,239,222, 45,114, 37,138,204,233,198,149,200,226,114,185, 53,105,217,157,123,103,
+234, 78, 89,226,170, 99,188, 59,105,222, 28, 86,130, 32, 96, 50,153, 32, 18,137,234, 56, 89, 66,161, 16, 2,129,128, 77,120, 44,
+ 88,176,112, 85,150,164,187, 93,142, 51, 76, 87, 43, 81,149,126, 63,188, 13,185,158, 43, 80,142,132,134, 86,171,197,245,235,215,
+221,229,113,123, 98,204,102, 93, 30,197,199,249,149, 32, 8, 2, 95,245,104, 7,137, 76, 10,177, 68,130,145,191,158,176, 20,220,
+ 87,150,188, 13,129, 68,138,144, 94,131,221, 42,200,205, 77,135,214, 66,171,162,162, 2, 92, 46, 23,139, 22, 45, 2, 73,146, 88,
+190,124, 57, 66, 67, 67,113,239,222, 61,236,222,189,219, 45, 71,139, 99,226, 32,248,133, 24,136, 39,122, 66,246, 66,111,120, 15,
+154,143,124, 29,133, 84,141, 24,189, 53,215,192, 63,188, 6, 58,218,228,246, 8, 44,163,209,136, 19, 39, 78,216,118,120,183,244,
+169, 50, 26,141, 48, 24, 12,208,235,245, 88,190,124,185, 59, 35, 60,235, 61, 55,115, 28,214, 78,130,202,201,200,200,240,103, 24,
+198, 7,128, 39,128, 82, 54,187, 58, 71,112,183,215,225,223,229, 85, 0,192,222,165, 47, 90,246,207,187,242, 87,250, 92,249, 93,
+205, 2, 0,109, 90, 12,110, 16,167, 92, 46, 87, 63,222,175, 71,178,134,230,110,238,208,161, 67, 29, 39, 75, 40, 20, 18,181,191,
+221,178,203, 72,146, 4,135,195,169,215, 92,232, 72,108,185,211, 71,203,104, 52, 90, 38, 18,117,214,159,241,126, 28,173, 23, 95,
+124, 17,193,193,193, 22, 39,235,227,143, 63,134, 72, 36,194,220,185,115, 97, 48, 24,176,102,205, 26, 54,241,177, 96,193,226,111,
+ 23,101,127, 7,236,150,164, 26,141,230, 78,108,108, 44, 28,252, 23, 42, 20, 10,185, 54, 55, 21,210,170, 85,171, 12, 59, 77,136,
+ 3, 1, 36,217, 43,212, 9,130,128,135,204, 3, 66,169, 4, 98, 27, 23, 75,232, 33,131, 64, 42, 5,201,179, 91,152,215,227, 52,
+247, 45,177, 22, 90,230,173,178,178, 18, 92, 46, 23,235,214,173,131, 76, 38,131, 86,171,117,201,105,126,233,112, 56, 28,168,114,
+171,113, 99, 73, 18,248,194, 84,180, 28, 60, 6,193, 92, 17,120,167,126,134,218,100,112, 53, 97,105, 61,206,232,232,104,124,248,
+225,135,245,166,117,112,132,208,208, 80,151,247,110,235,100,173,108,215, 28, 60, 62, 15,111, 93,203,133, 86,171, 37,198,140, 25,
+ 67, 3, 80, 3, 40, 81,171,213, 57,238,196,103, 35,224,161,231,116, 54, 42,214, 12,154, 49,217, 19, 48,118, 57,205, 78,150,134,
+230,110,206,206,206, 54, 59, 89,158, 98,177, 24, 27, 54,108, 80, 1, 32, 23, 46, 92, 40, 14, 15, 15,231,184,147,150, 56, 28, 14,
+ 86,173, 90,101,183, 79,150, 61,209,213,144,124,100,125,110,159, 62,125,236, 78, 88,234, 64,188,213,227, 52,135,213,215,215,215,
+226,100,153, 76, 38,203,104, 67,243,236,243, 78, 42, 21,108,250,100, 57, 89,206,255, 14,231,191, 18,118, 75,224,123,247,238, 61,
+238,232,132,168,168,168,204,204,204,204, 86,230,165, 56,106, 11, 78,158, 70,163,137,238,209,163,135, 75,107,135,166,105, 8, 4,
+ 2, 48, 12,131,254, 31, 46, 3, 65, 2, 36,234,190,196, 2, 30, 27, 0, 14,135, 2, 93,179,212,135,203, 81,135,106,181,186,206,
+203,193,222,166, 80, 40,160,213,106,221,158,205, 91,163,209,212,153,130,129, 96,104,220,253,125, 87,189,209,135,230,205,221,126,
+ 59, 66,161,176, 78,211,143, 11,199,138,112,199,209,178,110,122,228,241,121,160,120, 92,179,163, 85,125,235,214,173, 81,108, 50,
+119, 31,230, 1, 11, 0,208,186,199, 48,208,180, 9,140,201, 84,103,153,164,152,136,199, 65, 51, 38,232, 13, 42,104,181, 90, 87,
+211,158, 16,165,165,165,234, 81,163, 70,157, 0,240,237,136, 17, 35, 50, 80, 51,187, 48, 35,149, 74, 5, 92, 46,151, 6, 80, 6,
+128, 41, 47, 47,247,204,207,207,167, 53, 26, 77,115, 87,225,220,191,127, 63,174, 95,191,142, 94,189,122,213, 89, 14,202,236,138,
+ 90,207,238,238, 78,250, 52, 55,151,219,155, 17,222,145,144,115, 23, 28, 14, 7,158,158,158,224,241,120, 88,180,104, 17,120, 60,
+ 30,196, 98, 49, 0, 96,205,154, 53,150,201, 87, 89,176, 96,193,226, 63, 35,180, 92,149,155, 78,154, 21,157, 54, 33, 26,141,198,
+188,240,240,240, 6, 93,204,100, 50, 21,185, 16,110,121,187,119,239,230, 89,187, 16,174, 62, 25,134, 41,114,241,178,205,219,187,
+119, 47,207,158,187,225,104,129,105, 87,156, 38,147, 41,175, 69,139, 22, 14, 29, 19,123, 48, 24, 12,249,174, 68,235,178, 18,117,
+ 29,145,240,214,181, 92,135,107, 39,178,112,153,214,156,164,207,247,239, 55,125,222,106,221,186,117,190,151,151,215,129,192,192,
+ 64,121, 74, 74,138,111,215,174, 93,125,173,143,233,218,181,107,176,205,105, 58, 56, 94,231, 16, 4, 65,228,141, 24, 49,194,110,
+154, 55,139, 38, 59,233, 51,207, 85,154, 63,123,246, 44,207,250,124, 71,252, 86,249, 40,207, 13,225,122, 55, 62, 62,158,180,230,
+113,148,246, 13, 6, 67, 9,155, 10, 89,176, 96,241,159, 23, 90,106,181, 58, 55, 54, 54,214,232,224,191, 28,103,231,202,229,242,
+ 46,141,125, 3, 6,131,161,199,195,192, 89, 90, 90,218,168,247,110, 52, 26,243,106, 39, 40,117,122, 12,155,196,255,185,103, 4,
+ 0,197,197,197,143, 0,128, 82,169,132,171,101,117, 26, 32, 8, 27, 61,125, 26,141,198, 30, 77, 17,167,101,101,101,221,217,148,
+197,130, 5, 11, 86,104, 53, 0,236, 98,196,255, 31,104, 10,209,202,130, 5, 11, 22, 44, 88,176,104, 92,144,108, 20,176, 96,193,
+130, 5, 11, 22, 44, 88, 52, 13, 8,212,140, 28,176,135,134,140, 38, 24,120, 31,215, 78, 98, 57, 89, 78,150,147,229,100, 57, 89,
+ 78,150,243, 63,199,233,138,155, 29,205,216,196, 2,140,229,100, 57, 89, 78,150,147,229,100, 57, 89,206,255, 30,231,191, 18,108,
+211, 33, 11, 22, 44, 88,176, 96,193,130, 69, 19,129, 98,163,224, 31, 3, 7, 13,152, 81,223, 21, 24,134,241, 6,224,104,193, 56,
+ 29, 65, 16,229,247,193, 73, 0,224,213,110,230,137,142, 12, 0,244, 0,244, 4, 65, 48,174, 57, 62, 34, 11, 10,188,219, 51, 38,
+110, 87,134, 32,184, 52,141, 75,205,155, 55,187, 72, 16, 67,117, 0, 32, 9,140,105, 43,149,136, 6,106,245,186, 8, 1,151,127,
+189, 66,169, 56,162, 45,206,188,195, 38, 15, 22, 44,254, 17, 60, 1, 96, 1,106,186,149, 44, 5,176,139,141, 18, 22, 44,154, 72,
+104, 73,165,210,115, 36, 73,134,185,154,159,199,140,218,181,204,242,202,203,203,187, 52,224,218,163,164, 82,105, 63, 46,151,251,
+ 24, 0, 24, 12,134, 20,133, 66,113, 12,192,110, 0,198,251,188, 39, 25,128,209, 0,198,213,254,254,190,182,176,168,186, 79,190,
+ 88, 79, 79,207,159,184, 92, 46, 83, 90, 90,218, 13, 0,124,125,125, 79, 27, 12, 6,162,170,170,106, 36,128,203, 13,228, 35,185,
+ 92,238,202,110,221,186,245, 62,121,242,228,183, 0,214, 53,210,179, 20,144, 36,105, 87,160,208, 52,221,226, 62, 68, 22, 15,128,
+231,186,117,235,124,183,111,223, 30,159,151,151,215, 1, 0,194,194,194,174,140, 31, 63,254,226,244,233,211,229, 12,195, 84, 18,
+ 4,161,119,198, 83, 80,224,221,190,184, 48,107,106, 81,241,245,209, 0, 16, 20,220, 97, 23,135, 67,242, 24,230,124,154,216,111,
+156, 95,171,150, 45, 94,221,249,205, 58, 94,139,136,102, 56,154,122,161,227,244, 55,223,107,159, 15,172, 96,197,214,223, 7, 15,
+ 15,143,115, 36, 73,134, 57,203,227,246,242,188,201,100,202, 43, 43, 43,235,226,136,147,162,168, 48,103,229,133,189,125, 52, 77,
+103,149,150,150,218,157,106, 66, 38,147,165, 81, 20, 21,225, 46,151,249,211,104, 52,230, 57, 26,165, 43,147,201,206,113, 56,156,
+ 48,103,247,105,239, 63,154,166,179, 74, 74, 74, 28,133,179,222,189, 55, 70, 56,239,135,211, 89, 56,205,229, 17,128, 53,190,190,
+190,143,202,229,242,231, 1,188, 87, 85, 85, 21,199,225,112,224,227,227,243,158, 78,167,251,211,211,211,243,235,202,202,202, 84,
+ 0,111, 2, 96,215, 75,101,193,162,177, 32,147,201,138, 20, 10, 5, 99, 6, 77,211,140,193, 96, 96,180, 90, 45,163, 86,171, 25,
+165, 82,201, 40, 20, 10,166,170,170,138,169,172,172,100,228,114, 57,227,239,239,111, 59,121,163,163, 54,220, 14, 50,153, 44,115,
+217,178,101,218,236,236,108, 70,175,215, 51,122,189,158,185,115,231, 14,243,233,167,159,106,101, 50, 89, 38,128, 14, 14,206, 29,
+232,160,176, 24, 4, 96, 71,124,124,188,110,255,254,253,140, 70,163, 97,148, 74, 37,179,107,215, 46,166, 93,187,118, 58, 0, 59,
+106,143, 33,221,228, 4,128,158, 65, 65, 65,121,183,111,223, 54, 29, 57,114, 68,239,233,233,153,228,233,233,153,116,231,206, 29,
+211,237,219,183,105, 63, 63,191, 60, 0, 61, 27, 16, 78, 0,120,246,173,183,222, 42,186,115,231, 14,211,167, 79,159, 75, 86,251,
+ 9,184, 94,231,110,160, 61, 39,139, 97,152, 32,134, 97,130, 81, 51,201,101,189,141, 97,152,224,218, 99,188,221,228,148,100,101,
+101, 53, 11, 12, 12, 92, 70, 16,132,206,150,143, 32, 8, 93, 96, 96,224,178,172,172,172,102, 12,195, 72,156,113,230,229,172,127,
+233,192,254, 1, 21,202,242,155,140,178,252, 38,243,237,230,190, 85,175, 76,127,126, 71,112, 84,167, 77, 94, 97,237,215, 93,191,
+121,107, 35,195, 48, 27,143,165,103,110,156,255,229,111, 27,159,158,190,122,131,111,120,252, 43, 13,136,207, 7, 1,203, 9,192,
+203,203,171, 80,169, 84, 50, 12,195, 48, 38,147,137,209,235,245,140, 86,171,101, 84, 42, 21,163, 80, 40,152,234,234,106, 75, 62,
+175,172,172,180,124, 15, 8, 8,112,152,223,189,189,189,139,212,106,117,157,178, 67,167,211, 89,202, 15,149, 74,197,168, 84, 42,
+ 70,169, 84, 90, 54,133, 66,193,132,132,132,228, 58, 9,231, 61,115, 56,105,154,102,140, 70, 35,163,215,235, 45,188, 26,141,166,
+206,166,213,106, 25,173, 86,203,132,135,135,187, 29, 78,119, 56, 53, 26, 13, 19, 22, 22, 86,224,136,211,199,199,167, 72,163,209,
+212,225,180,190,127, 91, 94,243,239,160,160,160,194,134,112,186, 19, 78,103,241, 89,139,117, 25, 25, 25,140, 90,173,102, 66, 67,
+ 67,229, 35, 71,142, 52,152, 76, 38,102,255,254,253, 76,124,124, 60,221,183,111, 95,125,105,105, 41, 51,105,210, 36,198, 73,165,
+144,205, 71, 44, 39,139,251,113,180, 8,130,128, 68, 34,193, 15, 63,252,224,112, 57, 14,235,239,205,155, 55,119,247,154, 93, 34,
+ 34, 34, 78,156, 58,117, 74, 20, 28,252,215,132,216, 58,157, 14,222,222,222,152, 54,109, 26,255,137, 39,158,104, 53,120,240,224,
+211,119,239,222,237, 3,224,156, 11,190,103,252,253,253, 63,159, 55,111, 94,224,115,207, 61, 7, 95,223, 58,147,110, 99,212,168,
+ 81, 24, 57,114, 36, 47, 35, 35, 99,204,214,173, 91,199,172, 95,191,190, 80,161, 80, 76, 7,240,179, 51, 82,145, 72, 52, 34, 36,
+ 36,100,195,169, 83,167, 2, 2, 2, 2, 16, 25, 25, 73,190,243,206, 59,173,162,163,163, 69, 97, 97, 97,228,189,123,247,240,235,
+175,191,134,142, 29, 59,246,199,162,162,162, 87,245,122,253, 30, 55,238,157,239,235,235,251,222,171,175,190,234, 87, 85, 85,101,
+ 60,127,254,124,166,121, 63,159,207, 95,216,189,123,247,174,199,143, 31,255, 14,192,215,247,227,100, 49, 12, 83,133,191,154,248,
+204, 48,152,255,119,199,217, 98, 24,134,127,233,210, 37,159,238,221,187,255,172,213,106, 59, 77,157, 58, 53,103,201,146, 37, 34,
+153, 76, 38, 3, 64, 84, 85, 85,149, 47, 88,176, 64,183,122,245,234,119,219,182,109, 59, 32, 45, 45,237, 25,134, 97, 12,181,130,
+172, 62, 31, 65, 88,194,147,155, 95,130, 19,169, 52,255,195,185,111,135,125,178, 56,226,110,250,181, 92,154, 18,201,176, 47,249,
+ 42,138,228, 10,252,150,118, 13, 65,190, 30, 4, 79,192,109,239, 25,218,174, 79,101,254,181,100, 56,153, 33,157, 69,227,128, 32,
+ 8,136,197, 98,236,219,183,175,222,210, 85,246,150,181,162, 40, 10, 94, 94, 94, 46, 87, 55, 16, 10,133, 56,114,228,136,221,181,
+ 23,237, 45,233,227,233,233, 9,103,149, 13,130, 32, 32, 20, 10,145,146,146, 2,146, 36,237, 46, 13,100,187, 79, 34,145,128,116,
+178,214,149,153, 51, 57, 57,217, 37,151,249, 83, 42,149, 2, 53, 77,255,142, 51,165, 64,128, 83,167, 78, 57,188,103,219,239,210,
+218,245, 94, 93,113,166,164,164,212, 89,250,203,118, 73, 48,235,223, 18,137, 4,132, 11, 82,111,111,239,110, 97, 97, 97, 56,123,
+246, 44,118,239,222,237,211,190,125,123,220,186,117, 11, 4, 65, 96,201,146, 37, 68,187,118,237,184,133,133,133,232,213,171, 23,
+126,249,229,151, 30, 85, 85, 85,108,134, 97,241,143,128, 97, 24, 46,128,142, 0,252, 81,211,237,166, 26,128, 23,106, 86,210,224,
+ 3,144, 3, 16,213,110, 90, 0, 10, 0,126,181,167,151,214,150, 45,214, 2,161,196,122,241,105,134, 97,186,214,114,155, 87,168,
+240,183, 58,214,124, 13,219,223,182,159,118,185, 41, 0, 72, 76, 76, 52,191,204,250, 38, 36, 36,156,176,190, 57,119, 68,150,121,
+157, 50, 59,121,218,118,136,166, 64, 34,145,252,116,250,244,105,145,191,255, 95,247,160,213,106, 81, 93, 93, 13,133, 66,129,234,
+234,106,120,120,120, 96,247,238,221,162, 1, 3, 6,252, 84, 93, 93, 29, 93, 27,105,142, 56, 87,221,187,119, 47,208,104, 52,130,
+207,183,223, 69,137, 36, 73,196,196,196,224,189,247,222,195,144, 33, 67,130,250,245,235,183,202, 70,104,213, 27, 74, 42, 22,139,
+ 55,156, 63,127, 62, 64, 44, 22, 35, 51, 51, 19,121,121,121,120,235,173,183,154,209, 52,141,220,220, 92,220,186,117, 11,249,249,
+249,216,186,117,107,192, 83, 79, 61,181,193,142,208,178, 55, 60,117,234,204,153, 51,219,120,123,123,147,159,126,250,105,133, 82,
+169,252,162,118,255,135,107,215,174,125,161,119,239,222, 1, 83,166, 76, 97, 82, 82, 82,182,215, 62, 56,135,241,105,221, 39,171,
+182,153, 15,181,137,239,134,205, 57, 49, 86,255,131, 97,152, 32, 0, 90,130, 32, 42,236,112, 18, 0, 60, 7, 15, 30, 60, 75,171,
+213,118, 58,117,234,212,159,143, 61,246, 88, 56,128,123,230,196,231,233,233, 41, 89,181,106, 85, 96, 66, 66, 66, 70,255,254,253,
+ 59, 13, 30, 60,120, 86, 73, 73,201, 18,134, 97, 74,172,250,108, 89, 56,105, 26,151,130,130, 59,236, 74, 78,155, 62,250,120,138,
+142,247,246,155,243,115,154, 55,107, 81,121, 41,179,204,116, 45,171, 4,213,106, 35,158,238, 95,179,128,121,183, 14,205,241,249,
+ 15,167, 48,109,198,251,220,159,119,109, 27,249, 39, 3,137,162,224,218,126, 39,241,249,160, 96, 57, 97,105, 98, 2,151,203,197,
+208,161, 67, 65, 16, 68,189,181, 60,185, 92, 46,210,210,210,208,191,127,127,112,185, 92,188,248,226,139,110,113, 82, 20,133,193,
+131, 7, 91,214, 81,180,230,179, 21, 13, 14, 52, 65,146, 77, 97, 11,138,162, 64,146,164,195,133,180,109, 57, 93,149, 75,230,112,
+ 58,227,178,254,207, 85, 56,107,151, 60,114, 91,100,185,203,105, 14, 39, 69, 81,232,209,163, 7, 46, 94,188,232, 84,116, 57,208,
+151,117,238,189,188,188,124, 66,116,116,116,242,186,117,235,124, 0, 64, 46,151, 91, 22,188,231,112, 56,184,121,243, 38,116, 58,
+ 29, 62,250,232, 35,125, 85, 85,213, 20, 54, 31,177,156, 77,201,233, 76,139, 0,232, 61,119,238,220, 46,203,150, 45, 91,210,189,
+123,247,157,169,169,169, 59, 8,130, 72,100, 24, 38,193,252, 57,119,238,220,246,203,150, 45, 91, 50,103,206,156,247,150, 46, 93,
+122,149, 32,136, 68, 0,176,253, 93, 91,150, 36,216,136, 56,127, 51, 79,109,158,171,115,172,189,223,182,159,246,184,235, 56, 90,
+ 9, 9, 9, 68,237, 77, 18,214,133,154,187, 66,203,157,181,251, 40,138,122,125,201,146, 37,129,206, 68,150, 66,161, 64, 65, 65,
+ 1,194,195,195,241,226,139, 47, 6,174, 91,183,238,117,163,209,248,153, 19, 90, 30,135,195,193,217,179,103, 81, 92, 92,140,216,
+216, 88, 68, 68, 68,212, 57,224,246,237,219, 56,112,224, 0, 42, 42, 42,208,185,115,103,160,166,115,183, 93,196,197,197,125, 20,
+ 19, 19, 51,152, 36, 73,163, 72, 36,194,165, 75,151,208,169, 83, 39,252,240,195, 15,104,222,188, 57,196, 98, 49, 50, 50, 50, 16,
+ 27, 27,139, 19, 39, 78,192,223,223, 31,241,241,241,198,170,170,170,147,101,101,101,199,238,222,189,251,145,163,112,134,134,134,
+206,127,229,149, 87,248, 5, 5, 5,244,150, 45, 91, 78, 1, 56, 5,224,245,247,223,127,127,242,144, 33, 67, 2, 46, 92,184, 80,
+153,158,158,126,198,129,200,114,199,201, 50,218,190,148, 76, 38,147, 86,173, 86,235,180, 90,173,129, 36,201, 59, 4, 65,232, 76,
+ 38, 83,180, 35, 19, 98,226,196,137, 81,165,165,165,211,102,204,152,145, 93, 43,178,110,162,166, 3, 60, 0,192,104, 52,106, 21,
+ 10, 69, 85,247,238,221,195,199,142, 29,251,231,142, 29, 59,166, 77,156, 56,113,247,150, 45, 91, 20, 0,212,182,132,205,155, 55,
+187,200,225,144, 60,101,181, 79,214,143,187,191,158,121, 96,239,235,205,114,115,243, 91,249,250,249, 43,121, 82,255,130,221,223,
+111, 62, 7, 64, 87, 80, 82,133,203,183, 11,193,229,114,112, 61,183, 18,189, 31, 31,197,253, 51,115,113, 79, 0,251,217,186, 92,
+211, 87, 22,205,139, 80, 31, 63,126,220,169,163,149,150,150, 6, 46,151, 11,145, 72,132,213,171, 87, 59, 37, 53, 11, 3,179, 91,
+228, 74,204,152, 23, 71,119,230, 62,209, 52,109, 89,232,221,118,251,226,139, 47, 48, 99,198,140, 58,215,168, 21, 27,132, 43, 78,
+ 71,225, 11,111,209, 2,197, 69, 69,117,246,185,179, 40,189,201,100, 2,151,203,197,166, 77,155,144,144,144,128,196,196, 68,167,
+159, 67,135, 14, 5, 73,146,140, 59,241,217,163, 71, 15,232,245,122, 75,152,111,222,188,105,151,119,253,250,245,174,130,249, 4,
+128, 5,157, 58,117,146,245,235,215, 15,201,201,201, 24, 57,114,164, 86,175,215,103, 2,192,240,225,195, 91,175, 91,183,142,127,
+254,252,121,248,250,250,114,115,114,114,190, 5,219, 65,158, 69, 19,195,158, 22, 49,191,243,150, 45, 91,182,196, 86,196, 88,195,
+252, 63, 65, 16,137, 75,151, 46, 77,176, 22, 69,214,191,205,174,147,141,136,107,111,237, 72, 89,139, 40, 71, 2,202,230,125,107,
+125,124,137, 93,161, 85,123, 99,125,173, 93, 32,115,225,235, 74,100, 57,169, 57,214,129,167,167,231,176,167,159,126,218, 34,114,
+ 52, 26,141, 69, 96,153, 69,150,249,119, 70, 70, 6,186,116,233,194,243,244,244, 28, 38,151,203, 63,115, 67,196, 33, 36, 36, 4,
+165,165,165,184,114,229, 10,194,195,195, 97, 48, 24,112,232,208, 33, 84, 86, 86,130,203,229,130,199,227, 65,175,119,218,119, 27,
+ 49, 49, 49, 67,183,111,223,222,101,219,182,109,229,230, 26,221,247,223,127, 15,134, 97,224,239,239, 15,149, 74,133,162,162, 34,
+ 28, 59,118, 12, 70,163, 17, 82,169, 20,145,145,145,252, 17, 35, 70,244, 92,176, 96, 1,215,137,208,234, 49,114,228, 72, 79,153,
+ 76,134, 55,223,124,147,209,235,245, 75,107,247,205,159, 62,125,186,239,157, 59,119,116, 47,189,244,210, 89,189, 94,255,169,217,
+ 76,180, 22, 56, 14, 30,172, 67, 39,203, 96, 48,152,227, 52, 91,161, 80,192,207,207, 47,220,218,217,114, 36, 6, 83, 82, 82,122,
+ 0,224, 44, 92,184, 80, 8,160,200, 58, 12, 58,157, 14, 10,133, 2, 74,165,210, 80, 89, 89, 89, 60,123,246,108,227,142, 29, 59,
+ 56,181,231, 92,183, 39,180, 8, 98,168, 78, 38, 19,243, 25,134,243,254,198,141, 27,165, 67,134, 12, 33,165, 82, 41,170,171,171,
+101,191, 29, 60, 40, 29,208,175,103,228,146,101,159, 28,150,133,197, 22,165, 92,202, 66,126, 97, 37,116, 6, 3, 34,131, 61,107,
+252, 48, 22, 77,142,218,129, 44, 22, 71,203, 90, 84, 36, 39, 39,227,241,199, 31,183,228,117, 30,143, 87,199,249,114,197, 73, 81,
+ 20, 30,127,252,241,122, 14,207,241,227,199,237,186, 79,174, 96, 45,138,108,197,145, 61, 1, 70,146,164,203, 5,214,205,110,158,
+ 61,177,101,237,234,219,136, 55, 87,205, 28,160, 40, 10,211,167, 79, 7,151,203,197, 59,239,188, 3,138,162, 16, 31, 31, 15,138,
+162,208,189,123,119,112,185, 92,244,239,223,191,193,247,126,250,244,105,116,234,212,201, 18,166,248,248,120,116,237,218, 21, 20,
+ 69,161, 87,175, 94,224,114,185, 24, 60,120,176, 59,156,239, 85, 87, 87,199, 73, 50, 7, 8,223, 0, 0, 32, 0, 73, 68, 65, 84,
+165, 82,100,100,100,128,195,225,128, 32,136, 91, 0,226, 0, 32, 56, 56,248, 79,149, 74, 21,165,209,104,240,202, 43,175, 16, 58,
+157, 46,246,157,119,222,121, 95,163,209,176, 66,139, 69,147,193, 86,139, 88, 65, 61,103,206,156,247, 8,130, 72, 52, 59, 84,182,
+206,147,189,223,118,202, 38,179, 3,149, 94,155, 87,187,218,136,184, 18,130, 32,210, 25,134, 25,238,232, 92, 0, 58, 27, 97, 85,
+167,233,208,186,217,208,165,163,101, 46,124,221, 21, 90,174,160,209,104, 58, 6, 4, 4, 56, 20, 89,214,159, 58,157, 14, 17, 17,
+ 17,208,104, 52, 29, 27,250,210, 8, 14, 14,134, 94,175,199,215, 95,127, 13, 30,143, 7, 30,239, 47,125,161,211, 57, 55,139,174,
+ 93,187,150,125,250,244,233, 78,157, 59,119,246,254,229,151, 95, 74,250,244,233,227, 63,100,200, 16,136, 68, 34,168,213,106, 24,
+ 12, 6,116,235,214, 13, 49, 49, 49,200,203,203,195,111,191,253, 86, 26, 29, 29,237,119,230,204, 25,186,176,176,240,174, 19,234,
+ 65, 3, 6, 12, 0, 65, 16, 56,120,240, 96, 41,128,116,129, 64,112, 96,241,226,197,222, 58,157,142, 30, 63,126,124, 78, 89, 89,
+217, 12, 0,122, 62,159,191,182, 79,159, 62,221,147,146,146,190,163,105,122,117, 67, 19,170,109,220, 42,149, 74, 8,133, 66,119,
+166,146,224,150,149,149,117, 0, 0,137, 68,226, 3,224, 79, 75, 10, 87,171,235,136, 97,157, 78,167,241,241,241,145, 0, 64,237,
+ 57, 92, 7,156,254, 70, 35,126,188,123, 55,203,195,186,255,156,151,151, 23,198,141, 29, 75, 62,214,163, 7, 63,174, 99,199,193,
+ 31,172,216,246, 67,136,175, 76, 23, 25,226, 11,131,201,128,164,195,135,104,134, 54, 28,102,139,157,191, 71,104,153,197,134,173,
+163,197,229,114,113,226,196,137,122,251,120, 60, 30,190,250,234, 43,183,132,129, 89, 84, 57,106, 58,179,105,234, 34, 92, 9, 24,
+ 46,151, 11, 14,135,131, 77,155, 54,129,166,105,204,156, 57,179, 78,115,162, 53,191, 91,118,158,149, 8,140,153, 79, 3,208, 33,
+111,165,192,114,190,109,120,107,207,113,203, 37, 91,183,110,157, 91,142,214,240,225,195, 93, 10, 87,235, 22, 6,235,112, 93,188,
+120,209, 46,239,198,141, 27, 93,198,167,201,100,194,254,253,251, 45, 34,213,140, 15, 62,248,224, 21, 62,159, 31,120,242,228, 73,
+ 20, 22, 22, 66,169, 84, 66,161, 80,160, 91,183,110,145, 36, 73, 94, 42, 44, 44,188,115,253,250,245,167,217,220,195,226,111,116,
+180,180, 75,151, 46,189,186,116,233, 82,187,142,149,173,179,228,204,121, 50, 11,172, 90, 65,228,111, 22,111,168,233, 86,147,238,
+234, 92, 0,124,219,166, 67,167, 70,144,141,138, 92, 96,175,240,117,167,249,208, 77, 59,157, 34, 8, 2, 26,141,198,174,192,178,
+ 22, 7,122,189, 30,101,101,101, 48,153, 76,247, 61,215,151,189,154,172, 43,161,117,229,202,149, 73,147, 39, 79, 46,240,244,244,
+140, 43, 41, 41, 41,166,105,186,127, 90, 90,154, 63, 69, 81,144,201,100,144,201,100, 56,112,224, 0,196, 98, 49,166, 79,159, 94,
+108, 50,153,146, 61, 60, 60,124,213,106,245, 31,133,133,133, 31, 56, 84, 48, 92,238,224, 94,189,122,225,252,249,243, 40, 47, 47,
+ 63, 2, 32,254,249,231,159,127,188, 89,179,102,196,226,197,139, 53,183,111,223, 94, 13,160, 88, 34,145,108,223,190,125,123,191,
+206,157, 59,123,140, 31, 63, 30, 39, 78,156,216, 8, 64,227,238, 61, 43,149,202, 58, 2,171,170,170, 10,213,213,213,144, 72, 36,
+ 70, 55,227,140,139,191, 70, 24,130, 97, 24,203,179,169,117,179,204,207,135,161, 40,202, 60,170,209,145,200,130, 68, 34, 89,184,
+109,219, 54,145,237, 32, 5,147,201,132,162,162, 34,200,100, 50,204,251,224, 3,222,199,111, 77,233,196,145, 6,166,145, 36, 1,
+157,158,169, 96,104,221, 33,101,209,115, 39,129,143,216,146,231,111,128, 89, 24, 60,249,228,147,245,154, 11,121, 60, 30,142, 28,
+ 57,130,167,158,122,202, 82,113,233,220,185,179,203,202,149, 89, 24, 60,241,196, 19, 22,103,232,208,161, 67,118,155,253,204,142,
+148, 59,130,208,124,236, 27,111,188, 1,138,162,240,249,231,159, 99,214,172, 89, 32, 73, 18, 43, 87,174, 4, 73,146,248,240,195,
+ 15,221, 22,153,214, 2,230,206, 39, 53,159, 97,179,170, 32, 95, 31, 8, 0,240,144,201,204, 55,212,160,178,135,162, 40,139,147,
+213,177, 99, 71,112,185, 92,116,239,222, 29, 20, 69, 89,156,172, 97,195,134, 89,199, 35,227, 14, 39, 69, 81,200,204,204,180,132,
+185,123,247,238,117,156, 44,138,162, 48,124,248,112,119,130,185,196,203,203,107, 65, 76, 76, 76,219, 85,171, 86,113, 57, 28, 14,
+ 6, 12, 24,208, 58, 40, 40,232,174,209,104,244, 93,184,112,161,216,206, 57, 34, 0,113,109,219,182,149,176,185,134, 69, 19, 58,
+ 90, 11,236,252,229,109,221,231,170, 1, 21,201, 68,235,227,205, 28,182,226,168,214, 33, 75,118,197,101,239, 92, 87,160,204, 10,
+210,153,165,238,142,208,170,181,157,157, 94, 76, 44, 22, 95, 46, 46, 46,238, 46, 18,137,234,136, 44,123,130,139,195,225,160,176,
+176, 16, 98,177,248,178, 86,171,109,180,135,232,170,233, 16,128,230,214,173, 91,111, 89,253, 30, 56,108,216,176, 45, 71,142, 28,
+ 9, 78, 74, 74,194,153, 51,103,224,239,239,143,117,235,214,221, 43, 42, 42,154, 4,224, 72,105,105,169,203,235, 70, 69, 69,117,
+144, 74,165, 72, 73, 73, 1,128, 19, 0,166, 76,155, 54,141, 48, 24, 12, 88,191,126,189, 18,192, 65, 47, 47,175,253,187,119,239,
+238, 20, 23, 23,199, 79, 74, 74,170, 58,115,230,204,239,110,138, 44, 19, 77,211,245, 4,150,117,156,122,120,120,184,227,104, 25,
+ 60, 61, 61,175, 84, 85, 85,141, 82,171,213, 85, 2,129,192,163,170,170, 74,107, 45,176,204,252, 20, 69,113, 51, 51, 51, 11, 0,
+ 68,122,122,122, 94,129,131,102, 78,138,162, 6, 12, 24, 48,128,178,125, 6, 69, 69, 69, 40, 44, 44,132, 94,175, 71,231,206,157,
+ 9, 14, 97,224,148,231, 94,182,153,214,129, 21, 89,127,147,163,197,152,243,186,121,148,160,189,145,134,135, 14, 29,178,252, 38,
+ 73, 18,155, 55,111,118, 75, 20, 29, 57,114,196,105,135,117,155,166, 67,151,214,184,249,248, 47,191,252, 18, 12,195, 88,156, 44,
+146, 36, 49,103,206, 28, 8, 4, 2, 44, 94,188, 24,115,230,204, 1, 69, 81, 46,155, 14,173, 5, 76,139,119, 84,214,149,163,154,
+ 76, 81,219, 31,138, 32, 8,107,177, 69,184, 43,222,156,185,121,238,180, 4, 88,115,154,207, 19, 10,133, 14, 59,194,219,112, 58,
+187,192, 62, 0, 89,193,193,193, 41,221,187,119,247, 60,119,238, 28, 86,174, 92,201,211,106,181,205,147,146,146, 44,215,181, 23,
+ 95, 74,165, 82,196,230, 28, 22, 77,225,102, 57,249,187,196,166,127, 21, 97,221,140,231,228,211,246,120, 88,237,179,230, 45, 33,
+ 8,194, 96,231,122, 37,118,196,149,237, 53,172,143, 41,113,232,104,185, 42, 44, 92, 9, 46,119, 28, 45,149, 74,245,251,193,131,
+ 7,187,142, 29, 59,150,114,214,108,168, 84, 42, 17, 24, 24,136,171, 87,175, 26, 85, 42,213,239,110, 56,101,141, 41,180,108,145,
+ 84, 92, 92,204, 49, 24, 12,104,213,170, 21, 66, 67, 67,161,209,104, 80, 81, 81,193, 1,112,196, 77, 14,158, 68, 34,225, 0, 64,
+ 69, 69, 5, 80, 51,212,180,117,116,116, 52,206,159, 63,143,178,178,178,159, 1, 12, 89,176, 96, 65,231,110,221,186,241,126,248,
+225, 7,213,212,169, 83,127, 54, 24, 12,110, 41, 13,154,166,117, 70,163, 49,130, 36, 73,125, 69, 69, 69,190,117,124, 6, 6, 6,
+250, 72, 36, 18,162,168,168,200,224,142,208,138,139,139, 59,155,147,147,131,133, 11, 23,150, 44, 89,178, 36,186,186,186,186,188,
+178,178,210,104, 45,182, 52, 26, 13,233,231,231, 39, 88,191,126,189, 8, 0,226,226,226,206, 58, 18, 90, 74,165,178,153, 88,252,
+ 87,197, 88,171,213,162,176,176, 16,133,133,133, 40, 42, 42, 66,117,117, 53, 34, 35, 35,161, 82,169,194,217, 98,230, 31, 19, 90,
+117,154,207,172,243,183,245,139,188, 33,121,221, 90,192, 60,249,228,147,150,190, 93,102,135,204,188,253,248,227,143,182, 29,204,
+221, 18, 90, 95,126,249, 37,222,120,227, 13, 8,133, 66,172, 90,181,170, 78,211,161,173, 56,160,105,154,112,231,222, 35,222, 85,
+163,112,173, 15,184, 92, 46,124,167, 22,213,105,162,179, 35, 56,220, 10,231,146, 37, 75, 26,165,233,208,154, 51, 60,188, 38,171,
+108,218,180, 9,163, 70,141,194,201,147, 39,239,187,233,176,125,251,246,223, 39, 38, 38,122, 94,187,118, 13, 85, 85, 85, 40, 41,
+ 41,129, 86,171, 69, 94, 94,158,195, 86,129,218,178, 92,200,230, 28, 22,127,115, 57,149,254,119,242, 54,230,245, 40, 23, 47,112,
+183,133,150, 59,142,150, 86,171, 93,245,230,155,111, 78, 27, 56,112,160,143,135,135, 7, 10, 10, 10,234,137, 44,133, 66, 1,169,
+ 84, 10,181, 90,141,189,123,247, 86,105,181,218, 85,174,196,129,193, 96, 64, 64, 64, 0, 74, 75, 75, 65, 59,232, 63, 77,146, 36,
+ 68, 34, 17, 20, 10, 5,224,162,147,185,189, 23,134, 94,175,135,193, 96,128,193, 96,128, 94,175,119, 89, 75,182, 53,243, 36, 18,
+137, 89,120, 0,128, 50, 36, 36,164,149, 80, 40, 68,118,118, 54, 80, 51,178,111,224,227,143, 63,206,149,203,229,204, 75, 47,189,
+116,138, 97,152, 87,224,124,118,124, 93,114,114,114, 4, 0,136, 68,162, 12, 0,200,203,203, 51, 84, 84, 84,212,113, 10,197, 98,
+ 49,243,212, 83, 79, 5, 51, 12,131,228,228,228, 8, 30,143,199,192,241,168, 70,205,158, 61,123,174,121,122,122,238, 88,182,108,
+217,216,132,132,132,171, 29, 58,116,136, 80, 42,149,197,106,181, 90,173,209,104, 24, 14,135,195,243,246,246, 22, 30, 62,124,248,
+207,180,180,180,129, 50,153,108,199,158, 61,123,174, 57,114,222, 36, 18, 73,158, 74,165,106, 97,126,166,214, 34,171,176,176, 16,
+ 12,195, 32, 43, 43, 11, 98,177, 56,199, 85,179, 46,139,166,131,185, 82,101,235,188,216,238,115, 87,100, 89, 11,131,195,135, 15,
+ 59,157, 67,203, 93, 78,107, 81, 52,107,214, 44,172, 93,187,182,158,163,181,120,241, 98, 0,192, 7, 31,124,224,118, 31, 45,179,
+123, 85,184,214, 7, 65,111,148,213, 9, 59, 0, 16,230,240, 53, 44,207,131,162, 40, 44, 92,184,176, 94, 39,117,235,166, 61, 55,
+155,248,234,132,179,184,184, 24, 20, 69,193,199,199, 7,227,198,141,195,224,193,131, 45, 77,144, 13,229,189,113,227, 70,202,187,
+239,190, 27,219,190,125,123, 44, 90,180,168,204,203,203,203,227,229,151, 95,166, 42, 42, 42, 8,103,142, 22, 43,180, 88,176,104,
+ 4,161,101,206, 96,238,142, 58,116, 80, 88, 14, 68,221,185, 54, 42, 85, 42,213,184, 65,131, 6,253,178,107,215, 46, 81, 84, 84,
+ 20,110,220,184,129,178,178, 50,232,116, 58,240,120, 60, 4, 7, 7,163,162,162, 2,155, 55,111, 86,171, 84,170,113, 0, 42, 93,
+112,190,223,165, 75,151, 13,159,125,246,153, 48, 62, 62, 30,101,101,101, 80, 40, 20, 22, 33, 68, 16, 4,100, 50, 25, 68, 34, 17,
+206,158, 61,139, 67,135, 14,169, 1,188,239,130,211,158,154,131, 94,175,183, 8, 46, 55,132,150, 53,167,196,236,234,168, 84, 42,
+ 0, 48, 52,107,214, 44, 8, 0,178,178,178, 0,224, 78,100,100,228,130,168,168, 40, 98,251,246,237, 12,195, 48,135, 28,136, 44,
+ 11, 39, 65, 16,101, 12,195,148, 3, 8,210,233,116, 60, 0,168,172,172,212,251,249,249, 5, 8, 4, 2, 90, 36, 18,209, 66,161,
+144, 46, 40, 40, 48, 26,141, 70, 30, 0,244,234,213, 75, 7,160,208,102,141, 66,107, 78,154, 97,152,170,141, 27, 55, 46, 24, 63,
+126,124,247, 30, 61,122,180,127,237,181,215,174,188,244,210, 75,100,104,104,168,119,117,117,181,230,214,173, 91,229, 43, 86,172,
+168, 62,125,250,244, 64, 46,151,123,119,227,198,141, 11, 0, 84, 17, 4, 65,219,227, 52, 26,141,191, 39, 37, 37, 77, 74, 72, 72,
+160,242,243,243, 81, 84, 84,100, 17, 89, 69, 69, 69,136,137,137, 65, 90, 90,154, 73,175,215, 39, 53, 32, 62, 27, 11, 44,103, 77,
+ 37,132, 49,231,117, 71, 2,203, 92,153,114,151,211, 90, 20,141, 26, 53,170,142,139,197,227,241,240,211, 79, 63,217, 45, 55,236,
+228,171, 58,247,110, 61,199,215,187,239,190, 91, 71,180,205,155, 55,207, 97,113,230, 42, 62,205, 60,149,155, 66,235,142, 58,116,
+144,207,157,133,211, 92,118,114,185, 92,204,155, 55,207,109, 71, 11,245,251,104,213,227, 52,223,123,159, 62,125,160, 82,169, 44,
+ 66,214,145,163,229, 42, 62, 77, 38,211, 27,107,215,174,101,100, 50,217,163, 85, 85, 85,207,231,228,228,108, 85,169, 84,143, 84,
+ 86, 86, 58,117,180,180, 90,173,128,205, 71, 44, 39,154,102,126,174,255,142,208,170,125, 73,162, 89,179,102,117,214,206, 34, 73,
+178,206,214,144,126, 6,181, 56,156,153,153,249,204, 99,143, 61,246,221, 27,111,188,225, 17, 31, 31,207,109,209,162, 5,148, 74,
+ 37,178,179,179,113,245,234, 85,227,158, 61,123,170, 84, 42,213,243, 0,220, 25,117,182,237,218,181,107,135,134, 12, 25,242, 97,
+183,110,221, 94,157, 63,127, 62,167,117,235,214,168,172,172,132,183,183, 55, 2, 2, 2,112,243,230, 77,236,221,187,215, 84, 90,
+ 90,186, 1,192,199,176,211,134,234,170,194,175,215,235, 49,102,204, 24,208, 52,141,213,171, 87,195,157, 5,149,173,160,215,235,
+245, 12, 0,162,182, 63,151,170,118,118,105,220,186,117, 11, 0,238, 70, 68, 68,120, 0, 64, 82, 82, 18,129,154,249,181,220,169,
+225, 51, 12,195, 88,156,173,152,152,152,108,219,194,209,236,100,153, 93, 48, 87,225, 38, 8, 66,195, 48, 76,177, 74,165, 26, 50,
+107,214,172, 15,191,252,242,203,177, 95,126,249,101,189,227,100, 50,217,142,149, 43, 87,126, 60,122,244,232, 98,130, 32, 28,246,
+ 35, 83, 42,149, 31, 76,152, 48, 97,244,229,203,151, 61,132, 66, 33,148, 74, 37,228,114, 57,244,122, 61, 34, 35, 35, 81, 92, 92,
+140,109,219,182, 85,171,213,234,143,216,236,248,207,192, 90, 24, 56,114,181,220, 16, 89, 14, 93,157,125,251,246,217,157,163,170,
+161,156,182, 98,195,221,185,173,156, 85,138,204,211,210,216,155, 50,162,129,229, 90, 61, 94,138,162,240,233,167,159, 90, 38,109,
+181,231,100, 53,196,209, 50,115,250,248,248,212,216,228, 98, 49,104,154,198,240,225,195, 31,132,151, 6, 48,221,106,198,247, 37,
+179,103,207, 94, 16, 19, 19,211, 26,128,192, 58, 14, 26,232,226,179, 96,193,194,149,208, 50,153, 76,121,109,218,180,169, 83,192,
+185, 90,204,212, 96, 48,228,185,121,221, 67, 74,165, 50,114,229,202,149,111, 74, 36,146,129, 42,149, 42,182,182,224,184,172, 84,
+ 42,147,180, 90,237, 26, 52,108, 17,232, 18, 0,175,159, 62,125,122,245,144, 33, 67, 22,247,239,223,255,217,183,222,122,139, 96,
+ 24, 6,235,215,175,103,110,223,190,253, 99,173,139,117,251,126, 34,201,199,199,231,218,230,205,155, 3,127,249,229, 23, 24, 12,
+ 6,172, 89,179, 6, 30, 30, 30,215,202,202,202,220,165, 40, 62,122,244,232,150, 30, 61,122,188,144,150,150,182, 13,192, 31, 39,
+ 78,156,216,218,179,103,207, 9,105,105,105,223, 3,184,122,236,216,177,173,221,186,117,155,144,158,158,190, 27,192,197, 6, 20,
+190, 22,103,203,104,180,223,210,232,192,201,114,198, 89,197, 48,140,126,242,228,201,111,141, 30, 61,250,235,244,244,244, 71, 42,
+ 42, 42, 98, 1,192,203,203,235,114,215,174, 93,207,238,218,181,235,102,173,147,229,170,179,126,137, 82,169,124, 42, 54, 54,246,
+231, 69,139, 22, 73,218,183,111, 79,181,106,213, 10,119,238,220,193,149, 43, 87,140,223,126,251,173, 66,173, 86, 63, 9,160,156,
+205,142,255,156,208, 98, 24, 6, 94, 94, 94,117, 42, 81,230, 33,255, 13,109, 46,180,126, 49,155,151,234,177,229,117,196,233,108,
+218, 4, 51,164, 82,169,101,114, 83,119,186, 44,208,180,243,249,216, 24,134,177,112,154, 55, 55, 68,150,203, 17,130,181, 75,224,
+184,205,233,206,244, 14, 18,137, 4, 6,131,193,194,235,198,200,207,134,170,197,125, 0,246, 25, 12,134, 91, 0, 90,178,226,138,
+ 5,139, 38, 20, 90,229,229,229, 93,154,248,218, 85, 90,173,246, 99,173, 86,251,177,121,135, 70,163,121, 80,206,219, 0, 70, 31,
+ 61,122,244,179,163, 71,143,154,219, 17, 22,194,245,122,137, 78,113,227,198,141, 4, 46,151,251,213,142, 29, 59,186, 49, 12, 3,
+ 79, 79,207,211,119,238,220,121,185, 33, 28, 38,147,105,114, 90, 90,218, 52,212,246,101,210,235,245,147, 83, 82, 82,222, 68,205,
+122, 76, 48,153, 76,147,207,156, 57, 99,249,221,192, 23, 37,195, 48,140,150, 97,152, 16, 7,135,104, 27,232,192,153,157, 45,221,
+174, 93,187, 20, 0, 46,225,175,121,178, 12,181,155,198,166,185,208, 25,142, 41,149,202, 86,243,230,205, 91,194,225,112, 6, 40,
+149,202, 80,137, 68,146,107, 52, 26,127, 87,169, 84,239,163,102,141, 42, 22,255, 16,116, 58, 93,126,155, 54,109, 40,123, 21, 40,
+103, 47,114,103, 21, 43,147,201,148, 23, 29, 29,237,178,114,102,135, 51,223,137,104,184, 27, 25, 25, 73,186,203,101,134, 94,175,
+ 47,118, 22,206,200,200, 72, 52,148,211,213,189, 71, 68, 68,216,189,119, 23,130,208,225,189, 27,141,198,251,226,116, 22,159,206,
+160, 86,171,203,253,253,253, 21, 26,141,134,171,213,106,185, 70,163,177,142,253, 40, 18,137, 74,212,106, 53,155,121, 88,176,120,
+ 16,161,245,144,227, 28,106,150,151,104, 44,104, 47, 95,190,252,130,197,158, 42, 46,190, 95, 30, 91, 37,169,112,241,187, 33,194,
+168,209, 29,161, 90, 33,165,106, 36,186, 82,133, 66,241,146,249,135,185, 15, 8,139,127, 30,114,185,252,209,198,230, 44, 43, 43,
+107,244,138, 90,105,105,105,247, 38,184,247, 46,255, 85, 78,103, 40, 40, 40,120,212,133, 16, 99, 51, 14, 11, 22,110,130,100,163,
+128, 5, 11, 22, 44, 88,176, 96,193,162,105, 64,160,102,228,128, 61, 52,100, 52,193,192,251,184,118, 18,203,201,114,178,156, 44,
+ 39,203,201,114,178,156,255, 57, 78, 87,220,236,104,198, 38, 22, 96, 44,231,255, 63, 39, 7, 0, 33, 18,137, 8,161, 80, 72,136,
+197, 98,130,141, 79,150,147,229,100, 57, 89, 78,150,147, 69,125,252,227,125,180,252,253,253,147, 41,138,138, 86, 42,149,202,234,
+234,234, 40, 15, 15,143,219, 18,137, 68, 98, 52, 26, 51, 75, 74, 74,122, 63, 32,253,100,129, 64, 48, 51, 46, 46,174,221,205,155,
+ 55, 51,170,170,170, 86, 0,248, 6,246, 71, 12,113,109,246, 19, 0,226,155, 55,111,190, 85, 40, 20,138, 51, 50, 50,230, 0,248,
+222,141,120, 36,224, 98, 68,146, 53,188, 37, 60, 46,106,250,147,245, 5,112, 28,192,190,114,165,222,240, 32, 55,125,191,156, 82,
+169,212,167,101,203,150,235, 35, 34, 35, 35, 25, 64,203, 48, 53,243, 15, 25, 13,122,222,213, 43, 87,146,239,220,185,179,161,127,
+255,254, 95,135,133,133, 5,114,185, 92,131,121,212,151, 74,165,226,109,219,182,173, 21,155,157, 88,176, 96,193,130, 5, 11, 55,
+133,150,164, 57,218,240, 37,196, 54,147, 1,106,163,150,153,170,204,197, 13,105, 51,244, 96,128, 23, 24, 32,130,228,144,254, 38,
+ 19, 93, 72,107, 8, 35,215, 32,138, 38, 25, 74, 88, 85, 85, 21,218,224, 0, 80, 84,116, 65, 65, 65, 64, 72, 72,136,121,241, 99,
+137,249,247, 3,128, 0,240,197, 43,175,188, 50,245,213, 87, 95,133,183,183, 55, 12, 6, 67,235,157, 59,119,110,154, 55,111, 94,
+119, 0, 47,218, 17, 67, 12,234, 78, 18,218, 58, 54, 54,118,127,106,106,170,111, 69, 69, 5, 58,119,238,188,162,184,184,216,145,
+208, 50, 54, 52,128,222, 18, 94, 27, 0, 47, 6,121, 9, 38,125, 51,171,191,119,139, 1,175,225,202,143, 11,166, 77,255,230,114,
+ 57,128,205, 0,190, 41, 87,234,111,254, 93,156, 30, 30, 30, 1,109,162,163,119,253,248,243,207,189, 79, 31, 59, 6, 31, 1, 31,
+ 18, 17, 31, 96,128,192, 86,109,240,218,236,217,198, 71, 30,121,164,223,119,223,125, 23,151,158,158,142,208,208, 80,136, 68, 34,
+136,197, 98,200,229,114,108,219,182,237,190,211, 17, 77,211,247, 0, 28, 37,141,216,167, 40,192, 45, 54, 91,178, 96,193,130, 5,
+139,127,189,208, 98,104,172, 88,125, 96,114,231, 43,101,191,225,139,103, 10,151,138,194, 96,236, 49, 34,250,233,132,137,157,224,
+233, 47,134, 80, 74,161, 66, 94,213,225,230,133, 92, 28,223,253, 39,188, 13,173,145,246,251,249,235, 42,149,170,237,253, 4, 68,
+ 44, 22,139,131,131,131,139,196,214, 11,227,221, 31,132, 0, 86,188,250,234,171, 83,223,121,231, 29,252,254,251,239,216,179,103,
+ 15,198,143, 31,143, 25, 51,102, 64, 42,149, 78,154, 49, 99, 70, 26,128,175,157,112,180,142,141,141, 61,149,154,154,234,171, 86,
+171,113,229,202, 21,148,149,149,253,209, 88,145,238, 45,225, 45, 91,255,114,220,187,221,158,158, 14,255,246,131, 64,144, 53,143,
+161,215,236,189,184,248,166,218, 59, 47,229,187,183,246,252,248,253, 91,203,247,220, 90, 94,174,212,207,249, 59, 56,163,162,162,
+214,237,250,233,167,222, 97, 97, 97,216,159,125, 27, 45, 35,130,209,172, 77, 39, 84,102,223, 70,201,221, 44,232,244,122,244,237,
+219, 55,238,212,169, 83, 40, 40, 40,128,159,159, 31, 52, 26, 13,210,211,211, 33, 20, 58, 94,141,163, 1,233,104,200,177, 93,183,
+150,223, 58, 95,178, 76,153,131, 15, 1,152,216,236,249,175, 65,235,102,205,154,253, 44, 18,137,100, 25, 25, 25, 31, 0,216,210,
+132,215, 26,215,173, 91,183, 53,151, 46, 93,186,160,213,106,223, 4,144,193, 70, 63, 11, 22, 44,254, 73, 56, 27,117, 24,236,239,
+239, 7,191, 72, 46,188,125, 36, 67,151,255,244,252,211,175, 45, 29, 0, 94, 84, 62,202,164,103,112,151,249, 29, 26,223,155,104,
+ 51,132,135,183,191,233, 7,223,238,114,192, 71, 85,128,112, 8, 28, 17,250,248,248,252, 28, 16, 16,144,106,189, 25,141, 70,225,
+156, 57,115, 76, 25, 25, 25,146,130,130,130,128,140,140, 12,201,156, 57,115, 76, 70,163, 81,232, 31,232,115,193,163, 57, 47, 47,
+162,183,168, 68,210, 28,175,187,112,176, 62, 11, 10, 10, 82,141, 29, 59, 86,221,161, 67,135,169, 12,195, 96,235,214,173,120,249,
+229,151,119,254,246,219,111, 17, 99,198,140,217,122,244,232, 81, 76,153, 50, 5, 94, 94, 94, 51,220, 21, 89, 23, 46, 92,192,132,
+ 9, 19, 74,140, 70,227,140, 70,140,247,137,163, 86,156, 65,200, 35,207,130,195, 19, 89,214, 82, 35, 72, 18, 92,145, 12, 97,143,
+ 61,143, 87, 22,127, 7, 0, 19,255, 46,206,200,168,168,150,231,146,147,241,237,194, 69,104, 29, 16,128,208,102,161,240,105,211,
+ 1, 30,254,126,160, 40, 10, 12, 3,134,207,231,211,229,229,229,144,203,229,144,203,229,200,206,206,198,241,227,199,113,239,222,
+ 61, 52, 70, 58,154,253,109,127, 50,225,181,182,239,137,155,225,160,179,116,196,226,225, 18, 89,177,177,177,167,110,220,184, 17,
+147,148,148, 20, 18, 26, 26,250, 73, 83, 94,172, 75,151, 46,203, 79,158, 60,233,115,240,224,193, 65, 65, 65, 65,201, 0, 90,223,
+ 79,152,155, 55,111,126,189,117,235,214,121, 0,198, 53,114, 16, 39,118,239,222,189,140,207,231, 31,186,207,176,177, 96,241, 48,
+161, 3,128, 88, 86,104,185,129,197, 59,199, 82, 62,109,181,184, 82,126, 0,187, 62,249, 3,159, 12,189, 73, 47,238,158, 77,127,
+254,194, 13, 28,222,245, 7,138,241, 7,134,189,214, 18, 99, 63,232, 56, 80,108,194, 34,153, 76,118,193, 30, 15,143,199, 11,204,
+200,200,240,205,202,202,242,189,125,251,182,111,102,102,166,239,181,107,215,138, 42, 42, 42, 20,195,135, 15,167, 1, 96,248,240,
+225,244,221,156,187,170, 65, 79,247,161,195, 7,160,227,172,159,218,133,206, 73,236,228,231, 29, 44,152,235,232, 30, 56, 28,206,
+158, 47,191,252,242,173,220,220, 92,209,247,223,127,143,244,244,116, 68, 69, 69, 97,209,162,133,229, 35,122,180,237,245, 72,148,
+239, 42, 79, 17,247,179, 45, 91,182, 64, 44, 22,163, 99,199,142,142, 92,183, 22, 29, 58,116, 72, 49,139,172,139, 23, 47,226,249,
+231,159,215,203,229,242,171, 0,150, 1,216, 67,145, 68,178,191,167,164, 66, 34,160,238, 18, 4, 14,160,166,207, 87,120,195,163,
+158, 64,229,221, 75, 48,233,213,160, 4, 18,112,120, 66,144, 20, 31,101,183,210,144,241,235, 66, 84,100,221,207,194,225, 15,192,
+ 73,146, 26, 79, 46, 23,113,126,190,136,141,136,132,143, 80, 6, 85,218, 49,160, 66, 1, 30, 79, 0,128,129, 64, 32, 64,117,117,
+ 53, 46, 92,184,128,235,215,175,227,220,185,115, 56,123,246, 44,138,138,138,112,191,233,104, 73,143,108,173,163,116,196,150, 81,
+255, 14,145,149,154,154,234,171,209,104,112,227,198, 13,148,148,148, 92,108,202, 11,102,100,100,148,167,166,166, 34, 44, 44, 12,
+223,127,255,189,127, 68, 68,196,201, 6, 10,154,214,177,177,177,167,174, 95,191, 30,147,148,148, 20, 26, 16, 16,176,162, 49,195,
+247,200, 35,143, 44, 62,121,242,164,247,225,195,135, 7,251,251,251,223,175, 16,100,193,226,255, 25, 2, 0, 47, 16, 4,113,182,
+ 67,135, 14,151,219,183,111,255, 7, 65, 16,105, 0, 70,225,223, 59,119,167, 83, 88,110, 58, 49, 49,241, 4, 0, 36, 36, 36,244,
+177, 61, 72, 17,112, 30,249,217, 69,216, 60,177,152, 86,151,160, 98,209,123,159,237, 57,127,250,226, 83,111,206,120,211,123,245,
+198,229,216,158,118, 0, 99, 86, 24,209,107,116, 59,156,217,159,243,214,196,126,115,241,214,140,217, 64,253, 33,154, 12, 73,146,
+ 72, 73, 73,129,201,100,130, 78,167,131, 78,167, 67,187,118,237,202,142, 29, 59, 38, 5,128,204, 63, 51, 24,174,175, 78, 48,240,
+ 29, 25,111,202,128, 24, 40,228,122,124,247,110, 38, 74,179,181, 63,214,114, 36,213,145, 7, 36,249,245,134, 13, 27,158,152, 50,
+101, 10,190,248,226, 11,236,220,185, 19, 79, 62,249, 36,158,123,238, 57,148,148,148,120,135,226, 30, 6,180,243, 11,233, 59,125,
+ 67,159, 49, 99,198, 64,161, 80, 32, 61, 61,253,186, 77,184,146, 80,211, 25,254,245,227,199,143,251,168,213,106, 84, 87, 87,163,
+111,223,190,144,203,229, 60, 0,253,237,196,157, 39,128,230,106,181, 26, 45, 90,180,104, 93, 82, 82,210,195, 14,103, 61,120, 75,
+120, 22,113,171, 87,150, 67,175, 44, 7,135, 39,132,208, 59, 12, 87,191,155, 1,134,174,105, 49,243, 12,239,104,239,244, 38,227,
+ 20, 11, 4, 72, 76, 77,193,241,196,125,104, 27, 25,137,158,177,177, 56,117,249, 10,120, 36,129,145,147, 38, 3, 52, 19,144,146,
+146, 66,148,148,148,224,242,229,203, 88,184,112, 33,114,114,114,112,224,192, 1,152, 76, 38,183,194,105,147,142, 84,139,222,251,
+ 44,123,236,179,207,223, 60,120,228,183, 59,137,191,255, 52,104,123,218,209,248, 49, 43,140, 68,175,209,237,112,246, 64,206,204,
+108,162,252, 91,101, 46,110, 56,227,124, 64,176,156, 77,199,217,190,125,251,246,167, 83, 83, 83,197,106,181, 26,187,119,239,198,
+252,249,243, 13,122,189,158, 2,176,199,206,185,233, 0,190, 64,253,165,183,236,133, 83, 6, 96, 26,128,174,245,210,152, 66, 81,
+242,204, 51,207, 24, 22, 44, 88,192,125,252,241,199,177,111,223, 62,191,145, 35, 71, 94,204,200,200,136,199, 95,205,136, 73,174,
+132,225,125,116, 25,112, 43, 62,107,133, 96,112,104,104, 40,182,111,223,238, 63, 97,194,132,228,162,162,162,222,176,223,196,201,
+166, 37,150,243, 97,226,108, 1,224, 85,169, 84, 58,165,111,223,190,222, 79, 62,249, 36,124,125,125, 97, 52, 26,145,155,155,219,
+ 45, 49, 49,177, 91,106,106,106,129, 78,167, 91, 11, 96, 19,128, 10,123,164,206,180,200, 67, 45,180, 18, 19, 19, 25,212,140, 80,
+179, 11,149, 73,142,248,224,161,232,246,187,148,172, 40,171,210, 47, 24,185,244,104, 69,142,254,169,175,190,250, 10,207, 61, 49,
+ 1,251,126, 23,227,244,206,189, 24, 56,190, 16, 3, 39, 71,226,207,147,142,187, 69, 24, 12, 53,131,223,140, 70, 35, 12, 6, 3,
+244,122, 61,244,122, 61,196, 98, 49,174,221,188, 2,163,119, 9,231,249, 53,173, 56,161,109, 36, 72,221, 89,136, 3,171,115,116,
+138, 98,195, 92, 93, 57,126,170,103,223, 0, 95,175, 90,181,106,210,148, 41, 83,176, 96,193, 2,252,244,211, 79,204,138, 21, 43,
+136,121,243,230,161,188,188, 28,253,250,245,195, 43,147,159,199,181,184, 16,188, 59,127,177,108,212,168, 81,248,248,227,143,161,
+ 84, 42, 87, 57, 8,158,151, 78,167,179, 44,118,155,151,231,122,233,198,156,156, 28, 48,206,151, 82,131,183,132, 39,244,146,240,
+150,112, 72,226, 57, 14, 1,127,131,137,193,241, 5,189,192,137, 25,137,249,107,119,194, 68, 51, 24,247,212, 32, 68, 42,170, 32,
+ 18, 75,106, 20, 41,109,186, 47,206,232,161,111,130,228, 10, 97,210,107,176,101,203,102,236, 57, 84, 1,157,252, 14, 94,123, 60,
+ 10,129, 78, 56,141, 70, 35,211,188,121, 27,180,108,175, 3, 35,224,225,216, 93, 45, 98,251, 36,224,198,181,219,200,175,212, 35,
+ 46,182,125,139,201,147, 95,132, 64, 32,192,237,219,183,177,100,201, 18, 40,149, 74,119,215,133,179,151,142,164,171, 95, 91, 43,
+124,245,197,215,222,187,144,126, 49,119,235, 23,187,126,153,246,238,148,175, 79,239, 60, 24, 59,112,124, 33, 6, 76,138, 36, 55,
+ 92, 42,127, 22,192, 2,182,130,248, 80, 98,195,153, 51,103,196, 42,149, 10,213,213,213,120,249,229,151, 49,109,218, 52,174,189,
+ 74, 75,113,113, 49, 82, 82, 82,158,156, 62,125,250,152,194,194,194,222,112,190,238,165,119,167, 78,157, 82,143, 29, 59,214,218,
+195,195,195,178,147,166,105,232,245,122, 75,153,162,213,106,161,213,106, 33,147,201,144,154,154, 42,244,241,241,217, 5,231, 77,
+ 24,127, 71,151, 1, 84, 85, 85, 61, 59,106,212,168,228,109,219,182,249, 71, 70, 70,226,251,239,191,247,127,241,197, 23, 79,222,
+189,123,183, 23,216,254,100, 44, 30, 94,204,121,230,153,103, 22, 7, 6, 6,146, 29, 58,116, 64,112,112, 48,180, 90, 45, 42, 43,
+ 43,193, 48, 12,252,252,252, 48,105,210, 36, 60,245,212, 83, 33,201,201,201,203,143, 29, 59,182,160,188,188,124, 51,128, 53, 0,
+ 50,173, 68,150, 83, 45,242,208, 59, 90, 9, 9, 9, 39,234,168, 24, 2,233,103,254, 56, 21, 43,140, 1, 8, 18,200, 37,143,129,
+ 0,129, 10,131,158,103,168, 34,215, 30, 62,124,216, 91,169, 84, 66,161, 80, 96,104,223, 17,152,187,225, 23,244,124,190, 10,205,
+218,132, 96,245,135, 7, 12,174,132, 22, 77,211, 48, 26,141,168,174,174, 38, 79,156, 56,225, 23, 30,209,140,120,254,173, 33,152,
+254,125, 59,200, 2,120, 56,248,121, 14,202, 83, 67,148, 76,105,197, 29, 93,121,217, 86, 59,133,239,228,247,223,127,127,210, 27,
+111,188,129,229,203,151, 99,217,226,143, 79,135, 4, 5, 62, 18, 31, 31, 79,124,244,209, 71,152, 61,123, 54,194,195,195,193, 17,
+120,160,101,223,231, 49,107,214, 44,172, 93,187, 22, 95,173, 94,170,111,231, 35, 77,187, 86, 86,111,181, 27, 3,128, 69, 3, 6,
+ 12,120,226,240,225,195, 62, 66,161, 16, 87,175, 94,197,248,241,207, 67,204, 5,184, 28, 18, 96,104, 48, 52, 13,130, 96,224, 47,
+ 19,192, 91,196,129,191, 7, 23, 49,126,116,251,114, 70,218,250,106,153, 34,195,158, 32,242,245,224, 95,221,241,193,136,176,216,
+ 73, 95,240, 40,129, 20,218,202, 66,252,182,102, 26, 22, 45,254, 26,167, 82, 79,163,162,162, 2,131, 7, 14,192,154, 81,126,127,
+ 89,127, 78,196,155, 35,206, 27,187,222,195, 43, 83,167, 99,227,250,117, 32,185, 66,252,118,226, 28, 14, 31, 61,137,148,148, 20,
+188, 52,113, 44, 62,143, 46,116,200,105, 50, 25,224, 31, 16,142,199,250, 68, 65,234, 33, 5, 73, 0, 45, 34,252,225,231,155,135,
+160, 32, 2,105,167,143, 34, 57, 57, 25, 30, 30, 30,136,136,136,192,218,181,107,145,157,157,141,151, 95,126, 25,124, 62,223, 33,
+175,163,116,164, 32, 12, 32, 76,252, 86, 30, 30, 30, 59,116, 58,221, 42,189, 94,191,247,249, 81,147,119,188,188,228,231,118, 61,
+159,175,226, 52,107, 19, 2,130, 65, 31, 86,104, 61,180,144, 24, 12, 6,152,215,115,206,205,205,117,122,112, 92, 92, 28,182,108,
+217,210,110,226,196,137,201,133,133,133,143,193,254,162,242,178, 78,157, 58,165, 38, 39, 39,183,214,104, 52,200,202,202,114, 43,
+ 32,181, 11, 35, 43,157, 28, 98,238, 50,224, 99,221,101,160,172,172,204,220,101,192, 30,202, 80,179,142,234, 93, 59,255,133, 3,
+120,179,182,134, 15, 59,194,242,234,248,241,227,123,110,223,190,157, 23, 21, 21,133,125,251,246,249,141, 26, 53, 42, 37, 35, 35,
+163, 43,128,108, 54,233,176,120, 8, 49,113,225,194,133,164,201,100, 66,105,105, 41,180, 90,109,189, 60,200, 48, 12,196, 98, 49,
+134, 14, 29,138, 33, 67,134, 8,206,159, 63, 63, 53, 41, 41,233,213,172,172,172,249,181,121,201,174, 22,249, 87, 9,173,122, 47,
+ 94, 10,139, 62, 29,147,234, 37,144,146,177,160, 9, 47, 63,191, 0, 9,151,203, 37,188,196,129, 94,171, 86,206, 46,187,121,243,
+230,189, 93,187,118, 5,119,239,222, 29, 96,128, 78,205, 6, 67, 94,120, 26, 94, 92, 53, 74,229,165,142,230,145, 98,126, 61,176,
+ 91, 82, 94, 94, 73,183,137,108,167, 86,169, 84,228,129, 3, 7,194,122,245,238,201,219,155,250, 29,241,236,178, 96,200, 2,120,
+248,109,237, 93, 92,252,222, 64, 79,155, 56,162,242,207, 75,107,170,237,213,112,121, 60,222,140, 55,222,120, 3, 59,119,238,196,
+156, 57,115,182, 60,213,173,229,160,103,134,245, 37, 83, 82, 82, 48, 98,196, 8,228,231,231,227,151, 95,126,193,252,249,243, 49,
+ 97,194, 4,124,241,197, 23,184,240,227, 39,184,190,164, 43,111,238,206,219,215,232,155,196,240, 27,165,213, 7,109,104,179,111,
+220,184,241, 88,255,254,253, 79,238,221,187,215, 47, 38, 38, 6,219,182,109,199,204,215, 95,197,143, 11, 70, 33, 58, 80, 12,232,
+ 21,160,117, 42, 16, 60, 17, 96, 80,131, 41,191, 11,189, 94, 45,125,119,199,237,235, 38, 59,156, 94, 18,222,146,239,223,127, 34,
+172,211,212,109, 60,243,190, 91,183,239, 96,237,241,114,156, 74, 61, 13,115, 19, 69, 72,128,183,109, 84, 57,124,104,246, 56, 9,
+146, 66,199,151,190,198,220,170, 4, 28,218,188, 4, 67, 95, 94, 8,121,105, 49, 82, 83, 83, 17, 26, 26,138,207, 55,110,198,140,
+233, 83, 97,162, 25, 71,207,156,215,166, 77, 36, 56,156, 2,240, 5, 52, 8, 0,122,125, 57,252,252, 40, 52,107,230, 7,128,176,
+184, 87, 4, 65, 96,216,176, 97,122,134, 97,138, 52, 26, 77,233,174, 93,187, 8,103,233,232,147,209,169,161,124, 49,249, 40, 1,
+210, 51, 32, 32,144, 16, 8, 5, 8,244,142,192, 7,111,190, 6,197, 11,234, 71,183,109,219,182,235,219,111,191, 45, 72, 77, 77,
+221, 78, 8,124,110,203, 11, 21,209, 94, 92, 53,192,144,205, 1,154, 45,194, 30, 78,140,126,228,145, 71, 46,254,246,219,111, 66,
+ 62,159,143,189,123,247, 98,254,252,249,134,178,178,178,147,182,162, 39, 48, 48,176,253,214,173, 91, 35, 34, 35, 35,177,110,221,
+186,118, 35, 71,142,156, 6, 96,137, 29,206,105,199,142, 29,107,173,209,104,112,241,226, 69, 76,152, 48, 33,187,168,168,232,170,
+173,192,139,136,136,232,181, 98,197, 10,110,231,206,157, 81, 85, 85,133, 65,131, 6,169, 0,188,234, 36,172, 13,233, 50, 0,160,
+102,173, 63, 7, 93, 6,224,235,235,251, 77, 78, 78, 78, 63,145, 72,228, 52,130,244,122, 61,242,242,242,224,229,229,133,196,196,
+ 68,159,150, 45, 91,126, 0, 96, 50,155,116, 88, 60,140,208,233,116,216,185,115, 39, 58,117,234,132,182,109,219, 66,161, 80, 88,
+ 68,151, 78,167,131,209,248,215, 44, 72, 36, 73,162,107,215,174,136,142,142, 38,102,206,156, 57,206, 90,104,253, 27, 97,126,233,
+ 46,176,109, 23,213,100, 35, 23,192, 56, 90, 36,120, 95, 40, 20,142, 14,111, 30,139, 54,109,218, 8,159,126,250,105,190, 78,167,
+147,158, 56,154,252,103,207,158, 61, 81, 86, 86, 22, 60,103,206,156,178,176,102, 97,116,242,164,114, 95,130, 41, 7, 71,199, 79,
+ 1,234, 47, 58,170,229, 84, 55,223,251,231,242, 96, 0, 56,158, 22, 81,253,204,160,177,165, 28, 14,135, 58,125,227, 24,209,123,
+ 6, 5,255, 22, 34,164,237, 46, 4, 63,187, 51, 34, 3, 43, 33,147,201, 28,206, 79,213,177, 99,199,118, 36, 73, 98,231,206,157,
+ 0,240,193,141,236,194, 75,146, 35, 39, 62,219,179,120, 11,247,221,247, 63,196,220,185,115,241,210, 75, 47, 65,175,215, 99,249,
+242,229, 72, 77, 77,197,175,191, 28,135, 49,105, 46, 86, 60, 93, 70,190,252,157,230, 87,189,201,219,255,118,121,121,181, 13,117,
+198,173, 91,183,122, 13, 29, 58,244,228,238,221,187,253, 90,183,110,141, 21,107,191,196,248, 55,167,224,236,210, 65,128,200, 7,
+188,222,239,130,240, 10,175,145, 67,101, 89,192,225,119, 29,114,114, 72,226,185,216,137, 95, 88, 4, 81, 70, 70, 6,166,207,122,
+ 7,191, 29, 60, 12,115, 19,197,204, 55,167, 99,235,218,143,161, 60,179, 1, 66,159,102,144, 4, 68,161,234,238, 37, 0,144,219,
+ 28, 42, 43,123, 0, 0, 32, 0, 73, 68, 65, 84,187,119, 91, 78, 0, 80,203,239, 66,113,239, 38, 34,135,188,137, 15,198,141,199,
+208,151,129,181,139,222,193, 11, 19,198,224,243,141,155, 17, 25, 25,137,207,215,111,194,228,201,147,100, 85, 57,185,173, 97,211,
+ 76,113, 46,253,194,141, 85,171, 23,138, 85, 42,165, 39,143,207, 15, 2,195, 32, 56, 56, 24, 85, 85,213, 48, 24, 12, 80, 42, 85,
+ 32, 73, 18, 36, 73,130,195,225, 96,196,136, 17,188,228,228,228,102,127,252,241,135,127,173, 5, 28,109,109, 1,155,161,201,198,
+216,103,158,121,102,112, 96, 96, 32,233,235,235,139, 62,125,250,192,100, 50, 65,171,213,130,166,105,240,249, 38,139,165,124,242,
+228,201, 57,122, 83,184,113,203,132, 36, 13,135, 40,215, 82, 90, 97, 82,227,173,105,205,226,111, 70, 70,102,102,102,252,192,129,
+ 3, 79,254,248,227,143,126,195,134, 13, 67,203,150, 45,185, 79, 63,253,180,191, 74,165, 26, 96,125, 96, 81, 81,145,247,132, 9,
+ 19,206,229,230,230, 70,212,238,234,234,128,179,171,135,135, 7,178,178,178,204, 34,171,139,109, 37,140,207,231, 31,186,116,233,
+ 18,151,207,231, 35, 61, 61, 29, 19, 39, 78, 44,205,206,206,118,213, 44,119, 95, 93, 6,104,154,214,218,251,143, 36, 73,193,249,
+243,231,225,106, 46, 64,146, 36,193,227,213,201,198, 21,108,178, 97,241,144,194,160,211,233,208,165, 75, 23,100,103,103,227,252,
+249,243, 22,193, 85, 90, 90,138,130,130,130, 58, 7,159, 61,123, 22, 23, 46, 92, 64,239,222,245,230, 36, 95,240,111,236,163,101,
+113, 34, 18, 19, 19,251,216,216,118,124,137, 68,114,246,185,231,158,107,246,244,211, 79,123,113, 56, 28,104, 52, 26, 24,141, 70,
+164,165,165,161,109,219,182,170,118,237,218, 85, 12, 31, 62,156, 40, 45, 45,237,127,245,234,213,172,210,210,210,120,153, 76,150,
+245,216, 99,143,105, 52, 26, 77, 61,165,229, 21, 69,233,150, 95,236,198, 3,128,228,237, 5,200,217,239,163, 48,168, 77,226,200,
+145,149,100,159, 9, 33,168, 42,214, 99,245,179, 55,240,235,166,163, 88,241,217, 10, 83,239,222,189,243, 22, 47, 94, 92, 80, 80,
+ 80,240,152, 45,151,167,167,231,181,228,228,228,182, 71,143, 30,197,236,217,179,191, 51,153, 76,203,132, 92,206,193, 73, 47,189,
+ 18,166,215,235,113,254,252,121,248,248,248, 32, 39, 39, 23,188,128, 56,196,246,123, 1,111,143,235,138, 56,239,114,232, 54, 15,
+198,141, 2, 53,198,239,210, 46,186, 89,172,156,231, 32,110, 90,135,134,134, 38,111,223,190,221, 63, 48, 48, 16,227,158, 25,134,
+180,247, 98,193, 27,186, 2,151, 74,196,248,236,251,115, 0,128,183,199,117,113,200,233, 45,225,145, 1, 50,190,225, 70,126, 53,
+ 9, 0,119,238,220,193,132, 23,198,227,224,161, 26,145,117,241,226, 69,140, 27, 55, 14,237, 99,162, 33, 22,242,161,173, 44, 2,
+109, 50,224,110, 94, 33,242,203, 52,101, 70,154,190,202, 48,200,134, 85, 19,133, 45,231,221,187,119,177, 98,249, 98,220,186,126,
+ 9,122, 69, 25,120, 18,111,164,157,191,130, 62,125,250,130,161,141, 40, 47,202, 69, 78,169, 10,155,183,108, 69, 84, 84, 20, 84,
+ 42, 21, 70,141, 26, 85,230,164,153, 34,227,198,141, 27,209,107,215,174,197,252,249,243,241,203, 47,191,192,100, 50, 65, 32, 16,
+128,162, 40,240,249,124, 68, 69, 69,225,250,245,154,241, 4, 52, 77,227,252,249,243, 72, 74, 74, 98,108, 45, 96,107, 62,147,201,
+132,146,146, 18,232,116, 58,168, 84, 42,168,213,106, 48, 12, 3, 14,135, 3,134, 97, 44,181, 29, 14,135,131,172,172, 44, 92,190,
+124,153,217,183,111,223, 39, 12,195,204, 97,203,176,135, 26,173, 67, 66, 66,146,183,109,219,230, 31, 28, 28,140,126,253,250,229,
+ 22, 22, 22, 54,183,115,220, 30,134, 97,158,204,202,202, 66, 84, 84,212, 94, 0, 35,238,231,152,240,240,240,146,244,244,116,191,
+107,215,174, 97,220,184,113, 37,181,125,190, 92,245,125,138,136,137,137, 73, 63,124,248,176, 15, 73,146,184,122,245, 42,198,141,
+ 27,167, 47, 43, 43, 59, 5,199, 77,142,119, 80,211,191,228,174,157,255,194, 1,204, 3,224,227,224, 92, 73,116,116,116,207,115,
+231,206,241, 8,130,192,157, 59,119,204,121,178, 75, 45, 47, 11, 22, 15, 27,158, 10, 9, 9,249,118,218,180,105,158,221,186,117,
+ 67, 94, 94, 30,242,243,243, 81, 94, 94,142,248,248,120,180,111,223, 30,183,111,223,198,161, 67,135,112,225,194, 5, 8, 4, 2,
+132,133,133, 65,186, 99, 39,190, 34,112, 13, 64,123, 39, 90,228,223, 35,180,108, 33, 16, 8, 62,152, 56,113,226,140,215, 94,123,
+205, 71, 32, 16,224,236,217,179,224,241,120,160,105, 26, 3, 6, 12, 64,118,118, 54, 70,140, 24, 81, 86, 88, 88,248, 52,128,147,
+238, 92, 76, 22, 44, 40, 28,254,126,112, 96,239,241, 53, 53,189,228,237, 5, 56,183,183, 24,179,118,117, 4,201, 33,240,205,244,
+ 27, 48,101, 54,167, 91, 71,197, 48, 0,140,205,154, 53, 43,220,186,117,171, 93,161, 5, 96,242,148, 41, 83,190,153, 60,121, 50,
+ 78,156, 56,129, 93,187,118, 97,216,176, 97, 24, 62,124, 56,190,253,246, 91,120,201, 79,227,147, 95,175, 97,236,135, 7,112, 53,
+171,198, 24,106, 31,233,139, 29, 31, 15,131,230,243,120, 48,165, 25, 72,216, 73,221, 56,246,167,194,209, 84, 15,100, 11,111,209,
+ 79,126,254, 94, 79,105, 24, 30, 94,237, 46,198,139, 67,226,192, 31,181,189, 65,156,173,130,165,133,215,179, 10, 2, 41,129, 20,
+111,188,250, 34, 62, 90,242, 41, 76, 38, 19,170,171,171, 17, 22, 22,102, 91,163,173,135,218, 38,138, 52,235, 38, 10,107,206, 39,
+135, 63,142,157,187,127,134,187,205, 20,124, 62, 31, 90,173, 22, 45, 91,182,220, 12,251,205, 20, 25,151, 46, 93,138, 94,188,120,
+ 49, 54,108,216,128,125,251,246,193,104, 52, 66, 32, 16, 64, 34,145, 64, 36, 18,193,207,207, 15,151, 47, 95,174,115, 82, 85, 85,
+ 21,102,206,156,153,137,250,195,213, 51, 46, 93,186, 20,237,204, 82, 54,247,219,179, 36, 74,130, 64,101,101,165, 35, 62, 22, 15,
+161,216,226,241,120,171,253,253,253, 59,230,231,231,207, 66,253,165,172,188,159,125,246,217,171, 63,252,240, 67,240,157, 59,119,
+220, 18, 90,143, 61,246,152, 93, 71, 11,192,196,160,160,160,143,171,171,171, 43, 85, 42,213, 40,184,223,193,188,117,171, 86,173,
+ 78,238,221,187,215, 79, 44, 22,227,250,245,235, 24, 63,126,124,137, 92, 46,239,141,198,237,164,222,186, 77,155, 54,167,206,158,
+ 61,235,203,229,114,145,158,158,142, 9, 19, 38,148,178,157,225, 89,252, 11,224, 1, 96,118,100,100,228,219, 83,167, 78, 21,180,
+107,215, 14,121,121,121, 40, 41, 41, 65,121,121, 57, 78,159, 62, 13, 0, 8, 13, 13, 69,104,104, 40,110,222,188,137,148,148,148,
+ 42,133, 66, 49, 25,192, 47,255,230,136,113,216, 71, 75, 44, 22, 63,247,194, 11, 47,248,152, 76, 38,244,238,221,187, 76,167,211,
+153,102,207,158,237, 31, 20, 20, 4, 15, 15, 15, 12, 26, 52,168,188,170,170,170, 59,224,254,146, 41, 2,147,236,110,241,239,193,
+210,100, 20,136,123,143, 15, 65,239,241, 33,232, 58, 34, 0, 36,135,192,229,195,114,240, 75, 91,170, 94,152, 50,165,178, 89,179,
+102, 6,146, 36,209,188,121,115,227,246,237,219, 29,117, 86,250,246,235,175,191,126,212, 96, 48,188,244,242,203, 47,163, 79,159,
+ 62, 48, 26,141,216,190,125, 59,100,185, 7,176,240,249, 46,142, 3, 98, 50,128,224, 73, 16,232,105, 10,115, 36,178,218, 6, 74,
+191, 89,246,106,191,167, 6,117,240,197,222, 99, 23, 49,172, 13, 23,208, 85,223, 15,231,174, 43, 91,223,152, 26, 59,233, 75, 94,
+105, 81, 30, 26,169,137,194,194,169, 85, 85,163,145,155, 41, 12, 58,157, 14, 18,137, 4, 92, 46, 23, 2,129, 0, 70,163, 17, 4,
+ 65, 32, 62, 62, 30,205,155, 55, 71, 78, 78,142, 59, 22,112, 99, 91,202, 44, 30, 94,100,232,245,250, 33,249,249,249,214,142,143,
+165,179,248,179,207, 62,219,101,251,246,237,193,133,133,133,248,227,143, 63,128,154,169, 30,236, 33,189,168,168,232, 73,177, 88,
+140,173, 91,183, 70, 76,152, 48,225,156, 85, 31, 45,115,231,244, 45,133,133,133, 91,238, 39,140,182, 93, 6,182,110,221,234, 63,
+106,212,168,221, 42,149,170, 67, 99, 69,132, 72, 36, 90,115,230,204, 25, 95, 46,151,139,180,180, 52,140, 27, 55,174,196,201,244,
+ 14, 44, 88, 60, 76,168, 6, 48, 47, 43, 43,235,243,183,223,126,251,131,118,237,218,189, 58,101,202, 20,170,109,219,182,200,207,
+207, 71,118,118, 54, 90,182,108,137,220,220, 92,124,247,221,119,186,146,146,146,213,168, 25,108, 82,249,159,141, 49, 47, 47,175,
+187, 59,119,238,100,130,130,130, 44,253,132,124,124,124,138,230,207,159,207,200,229,114,198,215,215,183,192, 13,154, 58,171,123,
+135,132,132,156,184,120,241, 98, 86, 79, 95, 40,199,125, 17,193,124, 85,221,147,249,170,186, 39,179, 38,191, 27, 19,209,195,219,
+248,218,180,215,242, 62,255,252,243, 91, 27, 54,108,200,252, 31,123,215, 29, 30, 69,181,183,223,153,237, 37,189,147, 4, 18, 32,
+244,208,139, 32, 29,129, 32,132,122, 85,138,128,162,126, 72, 64, 44, 8, 4,244,114, 17,145, 4, 68,165,233, 5, 47,150, 0,210,
+171, 20,169, 66,128, 80, 36, 32, 37,161, 5, 18, 72,207,166,111,175,115,190, 63,178,179,110,194, 38,187, 27,192, 58,239,243,204,
+ 51, 59,237,221,211,230,156,247,252,206,239,156, 89,187,118,237,157,252,252,252, 59,225,225,225,103,234,224,164, 2,228,130,189,
+221,219, 69,145,231, 7, 63, 71,122,182,141, 32, 97,222,162,156,107,241,145, 68,187, 44,130, 88,138,210,201,229,219, 69,100,220,
+191, 15,144,113,255, 62, 64, 46,223, 46, 34,150,194,235, 68,179, 64, 76,212,203,155,145,103, 26,251,220,114, 20,206, 86, 33,178,
+ 37,251, 23, 12, 35,134, 29,147,201,182,184,182,164,117,176,236,102,125, 57,125,229, 66, 73,179, 6, 30,247,206, 38, 12, 50,156,
+223,183,142, 60,211,181, 19,201,201,201, 33,121,121,121,228,240,225,195,196,207,207,207, 0,224, 56,170,214, 22,114,180,125,129,
+223, 22, 68,125,132,243,226,143, 95,147,151,134,245, 37,189,163, 27,144,168, 16, 57, 35, 21,241,212, 0,246,219, 61,127,188,121,
+243,230, 6,165, 82, 73, 84, 42, 21,185,126,253, 58,105,209,162, 69, 9,126,155, 17, 53,208,129, 9,184,124,252,248,241,196, 17,
+146,147,147,201,181,107,215,200,212,169, 83, 73,231,206,157, 73,207,158, 61,201,184,113,227,200,255, 17, 16, 0, 55, 28,112,142,
+ 10, 13, 13, 45, 95,178,100, 9, 57,121,242, 36,217,176, 97, 3, 89,178,100, 9,121,255,253,247,201,230,205,155,201,141, 27, 55,
+200,158, 61,123,156,241, 57, 10,231,147, 0,199,249,199,112, 30, 78, 75, 75,179,149, 41,139,197, 66,114,115,115,201,145, 35, 71,
+ 72, 72, 72,200, 13, 84,173,147,229,136,211,171,117,235,214, 55,111,221,186, 69, 30, 62,124, 72,140, 70,163,141,227,230,205,155,
+ 4,192,169, 39, 16,206, 22, 97, 97, 97, 69, 39, 79,158, 36,183,110,221, 34, 33, 33, 33,217, 79, 50,238,145,145,145, 69, 10,133,
+130,156, 56,113,130, 4, 6, 6, 22,161,110,139, 45, 87,150, 56,206,191, 50,103, 36,128,141,157, 59,119,182,172, 90,181,138,188,
+249,230,155, 36, 34, 34,194,130,170, 69,190,195,240, 15, 66,173, 22,173,242,242,242,136, 55,223,124,243,242,179,207, 62,219,181,
+160,160,128,237,141, 25,104,154, 38, 10,133,130, 49, 26,141,185,238,254,153,209,104, 44,184,126,253,122,192,138, 35,151,139,102,
+ 47,154, 25,148,140, 60,217,179, 47,133, 96,239,178, 76,188,216,127, 74, 89,108,204, 40, 83,100,100,164,205,130,117,235,214, 45,
+232,245,122,109, 29,148,228,153, 38, 62,221,118,204,110,141,125,103,239, 98,209,181,226,239,229, 34,222,174, 93,151,203,246,207,
+237, 9, 24,183, 79, 64,251, 23, 54, 96,243,162,161, 0, 0,166,232, 6,140,219, 39,130,146, 5,224,116,174, 0, 21, 90,227, 1,
+ 71,164, 77, 2,101,175, 14,108,198,199,222, 19,151,176,104,239,195,239, 45,132,212,155,179, 76,109,212, 1,136,158,178,250,124,
+ 2,112,126,172,222,104, 9, 24,208,191, 31,246,253,184,159,110,213,170, 21, 54,109,218, 36,156, 56,113, 98,180, 59, 67, 20, 53,
+ 57, 45, 12, 9,160,128, 98, 2,108, 17, 11,120,243,181, 6,139,142,109, 52,172,195, 20, 66, 7,195, 20,181,249,130,236,201,203,
+203, 59,113,225,194,133, 11,111,191,253,118, 11,137, 68, 66, 9, 4, 2, 88, 44, 22, 48, 12, 3,139,197,130,242,242,114,220,186,
+117, 11,141, 27, 55,182,153,128, 15,120,122, 84, 2,170,255,212,198, 55,127,254,124,155, 73,185, 99,199,142,200,201,201, 65, 86,
+ 86, 22, 46, 95,190,108, 51, 41,187,200,199,225,175, 15,241,249,243,231, 33, 22,255,246,149,165,171, 87,175,226,173,183,222, 74,
+179,250, 84, 85,214,242, 92,101,122,122,122,207,161, 67,135,158, 94,181,106, 85,107,251, 33,231,147, 39, 79, 2,128,254, 73, 88,
+223,114,115,115,251,196,196,196,172,244,247,247,239, 80, 80, 80,176,224, 73, 70, 60, 43, 43,235,189,118,237,218, 45, 81, 42,149,
+149,110, 14,109,114,224,240, 87, 67, 22,128,137,169,169,169,203, 82, 83, 83, 63, 64,213, 84,250,197, 0,210,185,164,169, 5, 97,
+ 97, 97,119,231,206,157,171,187,120,241,162, 37, 46, 46,174, 68, 46,151, 79,171,135,226,149, 6, 4, 4,108, 13, 10, 10, 74,241,
+247,247,191,228, 17, 44, 82,200, 27,210, 70,207, 64,113,129,143,143,207,245,160,160,160,115,246,223, 65,244,243,243,251, 25, 64,
+120, 93,156, 45,131,229,211, 95,232,232,159,219, 42, 68,182, 18, 85,159, 20,162, 90, 4,203, 14,239,158,224, 73, 52, 31,251, 17,
+205, 34, 47,162, 93,217,150,104, 87,182, 37,154,197,254, 68,187,162, 13,185,147,208,157,116,139,244,206,111, 26, 44, 15,248,189,
+ 56, 89, 88, 87,113,111, 17, 25, 25,169,184,116,233, 18,201,202,202, 34, 7, 15, 30, 36, 50,153,236,122,125,123, 16,246, 43,195,
+ 87, 75,108,169,244, 72,101,101, 37,209,233,116,228,196,137, 19, 36, 56, 56,216, 81, 15,186,174, 94, 73, 16,128,213,109,218,180,
+ 49,173, 88,177,130,236,221,187,151,172, 89,179,134,140, 26, 53,138,204,153, 51,135,140, 29, 59,150, 4, 6, 6,234,173,230, 95,
+111, 23, 56,235,203,199,245, 28,255, 94,156, 17,214, 94,173,189,229,118,126, 13, 75, 86, 93,156, 94,214,251,107,179,252,114,121,
+196,113,114,156,127, 77,206,127, 46, 2, 3, 3, 63, 93,176, 96,129,250,167,159,126, 50,206,156, 57, 83,213,160, 65,131,211, 79,
+ 40, 35,130, 0,116, 7,208,165,150, 74,182, 94,153,219,222,219,219,187, 69,144,236,231,185,207,249,145,203,115,155,144,138, 21,
+ 29,136,230,171, 30,228,110, 66, 87,242,229,203,205, 73,135, 80,207,135,205, 3,101,109,255, 96,206,250, 12, 81,184, 85,176, 93,
+ 28,166,112,133,211, 93, 19,240,211, 48, 41,115, 21, 26,199,201,113,114,156, 28, 39, 39,180,254,190,104,214,172, 89, 70,187,118,
+237,238,199,197,197,165,253, 69, 50,151,106, 25, 36, 31,219, 34, 72,190,187, 85,144,244, 94,155, 96, 89, 78,139, 32,217,177, 22,
+129,178,247, 59, 53,128,244, 79,194,217, 66, 36, 18, 29, 9, 13, 13, 85, 0,120,229, 41,164,231,132,144,144,144,135, 86,107, 89,
+139, 39,192, 25, 13, 96, 43,128, 45, 0, 90, 63,129,112,186,202,199, 85,104, 28, 39,199,201,113,114,156,156,208,250,123, 98,218,
+180,105,124,174,192,112,156, 28, 39,199,201,113,114,156, 28, 39,199,201, 9, 45,247, 65,213,145, 88,199,158,114,130, 31,227, 56,
+ 57, 78,142,147,227,228, 56, 57, 78,142,243, 31,199,233,140,251, 24, 56,112,202,156,227,228, 56, 57, 78,142,147,227,172,149,147,
+178,110,180,117, 99,143,255,204,113,167,254,196,113,255,167,112,254, 45,193,255,131,254,151,205, 8, 6,117,125, 61,153,195, 31,
+ 9,251, 23,132,112,249,196,225, 79, 10, 15, 62,159,255,174, 72, 36,234,107, 54,155, 91, 3,128, 64, 32, 72,215,235,245,167,204,
+102,243, 23, 0, 84, 92, 18,253, 97,117, 7,207,174,177,181, 88, 55,252, 9,235, 18,123, 81,192, 60,102,187,244, 52,226,254, 79,
+230,252,219, 11,173, 14,114,185,252, 63, 34,145,168, 9, 69, 81, 22,181, 90,125, 77,175,215,175, 3,112,238, 49,255,243,155,224,
+224,224, 87, 74, 74, 74, 24,246, 35,197, 20, 69,129,166,105, 8, 4, 2,109, 69, 69,133, 87,125, 72, 3,219,142,122,159, 79, 81,
+ 51, 45,196,178,174,232,250,190, 79,156,157,231, 80,247, 11, 35, 20, 10,199,248,249,249,249, 40, 20, 10, 66,211, 85,171, 71,240,
+120, 60,118,133,121,115, 69, 69,197,247,174,146,249,250,250, 94,244,243,243,243, 97,159,167, 40, 10, 37, 37, 37,229, 69, 69, 69,
+221, 0, 64, 34,145,156,149,203,229,254,124, 62, 31, 60, 30, 15, 60, 30, 15, 26,141,166,164,164,164,164,231,239, 25,105, 95, 95,
+223, 20,154,166,155,184,243, 12,195, 48,247,203,202,202,158,229,138, 76,117,108,223,190,157, 23, 19,246, 90, 20,159,104,219,211,
+ 52,241,102, 24,170,194, 76, 73,175, 30,206,253, 38,195,149,231, 95,124,241, 69,139, 11,183,245,241,242,242,218,176,123,247,110,
+223, 78,157, 58,209,197,197,197,104,220,184, 49, 74, 75, 75,187, 37, 39, 39,119,126,237,181,215, 94, 83, 42,149,147, 0, 36,115,
+ 57, 82, 55, 68, 34,209,138,224,224,224,215, 85, 42,149,134,162, 40, 66, 81, 20, 40,170,170,159, 85,115,111,177, 88,114, 74, 74,
+ 74,186, 56,105,108, 5, 34,145,232,243,144,144,144,201, 26,141, 70, 99,229,115,200, 11, 0, 38,147, 41,167,184,184,184,139, 75,
+117,125, 96,224, 58,169, 84,250,178, 70,163, 81, 83, 20,197,216, 95, 35,132,216, 55,230,247,138,139,139,123, 59, 19, 6, 34,145,
+104,101,112,112,240,171,214,184,219,194,249,184,113, 15, 14, 14,158,172, 86,171, 93,226,172, 35,238,143,112, 62,141,112,254, 73,
+ 57,255,254, 66,171, 99,199,142, 91, 46, 92,184,208, 92, 32, 16, 0, 0,116, 58, 93,187,213,171, 87, 79,154, 59,119,110, 34,128,
+121,245,252,191,164,222,189,123,143, 75, 78, 78,166,247,238,221, 75,119,237,218, 21, 20, 69,193, 98,177,192, 98,177,160,109,219,
+182,210,250, 70,196, 91, 46,139,191,124,244,107, 73,135,129,111,204, 44, 2, 62,113,118,190, 46,129, 9,224, 67, 0, 77,220, 12,
+130,194,154, 46,151,127,175, 70,252, 41, 9, 3, 74, 40, 20,254,171,119,239,222,222,199,142, 29,163,178,179,179, 41,169, 84,106,
+ 91,172,212,100, 50,161, 77,155, 54,110, 89, 66,125,124,124,188,226,227,227,163,158,127,254,121,236,220,185, 19,147, 38, 77, 66,
+175, 94,189,238, 20, 21, 21, 1, 0,228,114,185,127, 90, 90, 90,115, 63, 63, 63,104, 52, 26, 84, 84, 84, 96,208,160, 65, 40, 41,
+ 41,121,236, 2,238, 21,142, 38, 22, 1, 22, 7,134, 75, 7, 40, 30,104, 23,169, 31, 98, 77,109,247, 10, 4,130,240, 7, 15, 30,
+ 4,137, 68, 34, 16, 66,192, 48,140,195, 61,251,219,104, 52,162, 77,155, 54,198,218,248,158,233, 24,190,152,162, 41,219,135,133,
+137,217, 82,122,225,106,222,135,143, 27, 39, 63, 63,191,203, 98,177, 56,216,169, 90,182,107,200,116, 58, 93, 97,105,105,105, 39,
+ 39,143, 68, 2, 24,206,227,241,154,241,249,252,150, 0, 34,205,102,115, 48, 0, 8,133,194, 66, 30,143,151,101, 50,153,110, 25,
+ 12,134,187, 0,126, 68, 29, 31, 64,142, 9,123, 45,138, 50,107, 94, 80,234,153,161,178,166,137, 45, 52,247,226,111,203,196,154,
+131, 49, 97,175,237,112, 85,108, 57,193,192,254,253,251,111,217,191,127,191, 68, 40, 20, 66,171,213,226,198,141, 27,240,246,246,
+134, 72, 36,194,200,145, 35,121, 61,123,246,244,239,215,175,223,206,219,183,111,143,135,123, 62, 31, 45, 0,108, 67,213, 7,165,
+223, 68,245, 47, 20,212, 7, 97, 0, 70,160,234,155,143,141,141, 70, 99, 49,128, 84,107,152,238, 0,136, 8, 12, 12,252,129, 97,
+ 24,125, 73, 73,201,107,112,240,161,234,238,157, 27, 94,162,105, 58,156,181, 9, 48,196,146,115, 62, 53,231,137, 52, 80, 52, 77,
+175,140,141,141,125,117,199,142, 29,178,212,212, 84, 89,235,214,173,109, 29, 34,182,204,219,163,113,227,198,206,172, 26,124,154,
+166, 87,188,240,194, 11,227, 55,110,220, 40,123,240,224,129, 44, 52, 52,212,198,105, 47,182, 88, 56,251,132,152, 93,217,255,102,
+240,224,193, 19, 55,108,216, 32,216,183,111,159, 52, 32, 32, 0,254,254,254, 14,191, 25,219,179,103, 79,198,121,212,233,149, 35,
+ 71,142,156,184,117,235, 86,217,133, 11, 23,100,109,219,182, 5,143,199,123,236,184,143, 26, 53,106,252,150, 45, 91,100,215,174,
+ 93,147, 53,107,214, 12,172, 81,161, 38, 31, 77,211,104,216,176,161, 75,156, 35, 70,140, 24,191,109,219, 54,217,229,203,151,101,
+ 45, 91,182,180,165, 39, 91, 39,213, 39,156,127,114,206,127,132, 69, 75,100, 52, 26,113,234,212, 41,208, 52, 13, 63, 63, 63,188,
+242,202, 43, 56,122,244,104,252,137, 19, 39,246,215,195,178,245,141, 85,100, 9, 0, 96,215,203,163,112, 95, 0,188, 85,100,128,
+ 80, 40,196,189,123,247,192,227,241,220, 54, 45,138,197,226,201,132,144,127,107,114,127, 17,107,181, 38,232,242, 46,201,164, 82,
+169,173, 1,208,228, 89,207,231, 95,146, 73,165,210,123, 60, 30,239, 99,149, 74,149, 84, 27, 95,179,102,205, 54,221,184,113,163,
+149,179,143, 61,215,132, 70,163, 65,163, 70,141, 34, 74, 75, 75,155,253, 30,141,184, 51, 78,179,217, 12,137, 68, 2,214, 26,101,
+ 48, 24,160, 82,169,156,113, 82, 66,161,112, 12, 43,178, 0, 96,243,230,205, 8, 9, 9, 65, 80, 80,144,237,163,210, 44,167,171,
+224,241,120,136,137,137,193,194,133, 11,145,152,152,136,217,179,103, 87,171,104, 5, 2, 1,252,252,252,240,211, 79, 63,193,203,
+203, 11, 17, 17, 17, 96, 5,126,173, 2, 42,130,166, 76, 38,134,214,230,193,177,229,163, 1,164, 82, 30,150, 70,245,242,121,115,
+216,187,145,252, 6,205,101, 88, 60,248,210, 60,245, 67,253,154,186,132,137, 80, 40,196,245,235,215, 31,169, 16, 28,222,207, 35,
+ 48,136, 43,253, 26,247,145, 42, 28,137, 56,138,166,252,206, 93,122,104,179,208, 14, 25,208,138,255, 76, 39,254, 87,214,166, 18,
+ 52, 13, 48, 76, 85,211, 73, 81, 32,102, 19, 83,118,233, 90,222, 2, 23,210, 51, 52, 43, 43, 43,200, 89, 26,177, 48,155,205, 8,
+ 13, 13,229, 57,185,109,104,116,116,244,174,184,184, 56, 97,179,102,205, 40,161, 80, 8, 62,159, 15, 62,159,207, 10,244, 8, 66,
+ 72, 4,195, 48,253, 10, 11, 11,201,234,213,171,151,157, 60,121,114, 52,128,131, 14, 43, 22,162,109,175,212, 51, 67, 79, 95, 65,
+183, 23, 6,206,197, 79,219,227,187,245,238,200,192, 83,166,205, 0, 80, 47,161,197,138, 13,139,153,161,238,100, 86,248,237,220,
+185,131,162,105, 90,175, 84, 42,193, 48, 12,122,246,236, 9,154,166,113,253,250,117,124,240,193, 7,216,181,107, 23,246,236,217,
+ 35,237,220,185,243,183, 26,141,166, 53,170,190,197,230, 84,100, 69, 71, 71, 95,185,112,225,130,196,104, 52,162,123,247,238,231,
+111,223,190,221, 25,245, 91,193,221, 23,192,103,243,230,205,155, 24, 23, 23,199,243,241,241,129, 72, 36,130, 82,169, 68, 70, 70,
+198,228,239,191,255,158,172, 93,187,246, 75, 0,158, 89, 89, 89, 61, 46, 94,188,136,254,253,251,191, 13,224,221, 71, 21, 1, 47,
+252,236,197,204, 32,246,120, 68, 76, 59, 97,143, 46,116, 97,149, 21,167,230,221, 4,140,133,201,185,248,107,174, 43, 66,108,217,
+168, 81,163, 38,236,216,177,195, 3, 0,254,251,223,255, 98,204,152, 49,240,243,243,131, 76, 38,131, 80, 40,132, 64, 32,168,182,
+119,210,216,242, 0, 44, 27, 59,118,236, 11, 27, 55,110,244, 4,128,141, 27, 55, 98,212,168, 81,240,247,247,135,167,167, 39, 68,
+ 34,145,237,123,175,110,118, 48,190,233,213,173,219,148, 13, 27, 54, 0, 0, 62,120,231, 29, 60,255,204, 51,240,144, 73, 33,147,
+138,192,166,133,136, 39,192,144,183,102, 58,213,151, 0,150,143, 25, 51,230,165,173, 91,183,122, 2, 64,106,106, 42,138,138,138,
+ 16, 28, 28, 12,169, 84, 10,145, 72,100,139, 51, 69, 81,144, 74,165, 46,197,125,204,152, 49, 47,108,217,178,197, 19, 0,146,146,
+146, 16, 19, 19, 99,139,187, 88, 44,134, 80, 40,172,182,213, 20,157,142, 56, 71,143, 30,253,194,182,109,219, 60, 1,224,251,239,
+191,199,192,129, 3,225,235,235,107, 75, 79,150,203,157, 60,250,147,115,254, 51,132,214,149, 43, 87,254, 37,151,203, 19, 0, 4,
+138, 68, 34,159,241,227,199, 55,156, 50,101, 10,198,142, 29,139, 19, 39, 78, 76,117, 83,104, 81,193,193,193,175, 36, 39, 39,219,
+ 90,104, 3,121, 68, 48,185,221,128, 91,241,239, 75, 83,167,134, 36,102,168,112,254,226, 45, 72, 64, 83, 23,151, 47, 15,212,221,
+189, 11,139,193,128, 69,247,148, 85,231,205,132, 58,245,222, 91, 33, 29, 86,124,249,111, 0, 73,117, 52,182, 98,189, 94,143, 59,
+119,238,184, 21,136,236,236,108, 71, 31,127,174,119, 35, 30, 17, 17, 81,215, 11,232,148,243,240,225,195,152, 53,107, 22,110,221,
+186, 5,246, 83, 37, 46,112, 82,126,126,126, 62,172,200, 98, 69,144, 84, 42,133, 64, 32,160,248,124, 62,197, 14,237, 89, 95, 46,
+151,132, 49, 77,211,216,180,105, 19,150, 46, 93,138, 57,115,230, 96,221,186,117,104,223,190,253,111,133,144,207, 71,101,101, 37,
+124,125,125,225,235,235, 91, 77, 32,214,134,202, 7, 12, 1, 28,139, 44,105, 35,132, 72,165,252,131, 99, 63,137,234,208,246, 57,
+127,168, 74,140,216, 52,247, 14,138, 51,245, 59,156,165, 39, 33, 4,237,219,183, 7, 69, 81, 54,161,193,110, 2,129, 0,124, 62,
+ 31, 60, 62, 15, 58,170, 18, 77,122, 9,241,206,206, 86,210, 6,205,101, 82, 71, 34,174,102, 54,127,254,197, 42, 25, 24, 82,229,
+ 4, 66, 24,128, 1, 8, 8, 24,194,160, 48, 55, 3,255, 89,248,169,203,173,143, 64, 32,192,221,187,119,109,225,102, 45,195,172,
+ 48,178,183, 26, 68, 70, 70, 58, 45, 75, 66,161,240,163, 61,123,246,136, 54,109,218,132,173, 91,183,130,162, 40,136,197, 98,200,
+229,114,248,248,248,192,223,223,223,182,133,135,135, 83,223,126,251,173,176,125,251,246, 31, 85, 86, 86, 30,116,156,231,196, 91,
+214, 52,177,197, 11, 3,231, 2, 0, 94,152, 75, 80,118,231,147, 14,116,249, 2,239,250, 91, 94,170,196,198,226,197,139,241,241,
+ 51,207, 64, 36, 18,145,138,138,114, 9,219,185,224,209, 60,164,165,221,192,138, 21, 43, 48, 97,194, 4,220,187,151, 65, 34, 34,
+ 34,245,179,102,205,242, 72, 76, 76,124,199,104, 52, 46,114, 38,178,218,181,107,119, 38, 37, 37, 69,162,209,104,192, 48, 12, 14,
+ 30, 60, 40, 27, 56,112,224,233,204,204,204,222,238,138,173,200,200,200,125, 41, 41, 41, 61, 3, 3, 3, 81, 81, 81,129,202,202,
+ 74,152, 76, 38,240,120, 60, 68, 68, 68, 96,217,178,101,212,200,145, 35,103, 76,158, 60, 89, 39,149, 74, 89,203, 70,164, 35,174,
+154,239,247,234, 53, 95,249, 16, 82, 85,126, 8, 67,170,237, 75,139,178,240,206,123,174,125,189,170, 97,195,134,111,238,220,185,
+211,195,222,178,100, 47, 2,236, 69, 22,187, 57, 17, 6,116,163, 70,141,166,252,240,195, 15, 54,206,128,128,128,106,239, 15, 77,
+211, 56,125,250, 52, 18, 62,154, 7,223,192, 80,172, 90,243, 95,151,134, 11, 99, 98, 98, 94, 78, 74,250,173,234,110,215,180, 41,
+134,245,124, 6, 65, 1, 94, 8,240,245,172, 74, 39,134,194,213, 91,153, 78,219, 35, 0,116,195,134, 13, 95,219,190,125,187,135,
+125,135,144,141, 43,219,121,102,173,248, 6,131, 1, 93,186,116,113, 41,238,246,156,172,181,141, 21,109,108,122,178,255,195,190,
+175, 78,194, 57,133, 21,194, 86,193, 89,141, 67, 32, 16, 96,251, 79, 27,106,181,102,215,151,211,221,124,175,201,153,149,149,133,
+ 37, 75,150,128,237,180,217,187, 10,133,133,133, 97,213,170, 85, 78,235,165, 26,239, 64, 87, 0,129,118,167, 12, 0, 68,118,123,
+ 5, 69, 81,191, 56,184,143, 61, 47,176,142, 88, 5, 90,219, 14, 37, 0, 31, 7,124,181,241, 20, 91,219,188,192, 26,247, 87,251,
+159, 90,133,214,254,253,251,217,183,184, 95,108,108,236, 41,235,239,114,177, 88,156, 45,147,201, 66, 0, 40, 15, 30, 60,136,255,
+251,191,255,131,213,180, 58,194,219,219,251,134, 3,171,206, 21,189, 94, 63, 23, 64,161,245, 20,107,174,167, 75, 75, 75,153,163,
+ 71,143,210, 27, 71, 15,134,129, 0, 29,255,157,128,152,216, 88, 28, 14, 19,129, 7,160,219,205, 98,200,100, 50,126,101,101,165,
+201,222,111,203,129,239,214,177, 26, 5,138, 39,225,243,209,253,204, 1,204, 58,115, 0,221,228, 34,148,236,216, 6,229,217,100,
+208, 52,133, 62,242, 0,204,158,112, 20,207,122,137, 33,210,171, 65,211,180,163,146,109,227,188,115,231,206,139, 94, 94, 94, 9,
+ 53, 18,216, 21,220, 71,213,119,156, 80, 75, 56, 93,106,196,217,237,242,101,135, 35,144,181,114, 90,135,224, 32,151,203,113,252,
+248,113,219, 61,207, 61,247, 28,116, 58, 29,252,252,252, 92,226, 84, 40, 20, 36, 47, 47,143,218,184,113, 35, 4, 2, 1,252,253,
+253, 33,147,201,168, 13, 27, 54,204, 19, 10,133,225, 58,157,142, 49, 24, 12, 16,137, 68,171,216,252,225,243,249,234,202,202, 74,
+255,218, 56,121, 60, 30,226,226,226,240,254,251,239, 99,221,186,117,152, 58,117,234, 35, 22, 47,157, 78,135,128,128, 0,155,216,
+114,240, 2,186, 52,244, 35, 11, 67, 91,159, 96,209,145, 41,171, 90, 5,135,181,148, 35,101, 75, 1, 14,172,204,202, 81, 23, 90,
+190, 48,148, 97,167, 51, 78, 66, 8, 50, 50, 50,106, 21,195, 37,101,197,120,255,227, 55,209,241, 53, 57,106, 17,113,191,113, 50,
+ 4, 55, 46, 31, 70,218,181, 99, 96, 44, 12, 44, 12, 1, 33, 22, 48,102, 32,245,232,249,230,249,247,243,194, 8, 72,149,235, 45,
+ 0,113,133,202,220,215, 95,212, 18,192,222, 83, 37,134, 21,206,226,206,231,243,161,211,233,176,103,207, 30,220,188,121, 19, 7,
+ 15, 30,132, 86,171, 69, 64, 64, 0,124,124,124,240,204, 51,207, 96,242,228,201,136,140,140,116,154,239,132,144,164,236,236,236,
+142,189,122,245,162,202,203,203, 81, 94, 94, 14,173, 86, 11,139,197, 2,179,217, 12, 62,159, 15,137, 68, 2,169, 84,138,224,224,
+ 96,232,116, 58,162,215,235,147,106,227,100, 24,170, 66,115, 47,254,246, 79,219,227,187,189, 48,151, 96,199, 82, 10, 81,141,196,
+154,227,151, 60,167,236, 61, 51,123, 16, 0,194, 16,155,105,129,152, 44, 76,241,251,243, 62,155, 81, 87, 56,217, 60, 73, 73, 73,
+193,140, 25, 51, 96,177, 88, 40, 1,159, 15, 66, 8, 40,154,198,237,219,183,177,122,213,106,140, 27, 55, 14,205,162,162, 96, 48,
+ 26,161, 82,169,208,191,127,127,193,170, 85,171,250,217, 9,173, 99,117,136, 44,127,173, 86, 11,165,178,202,248, 37, 18,137,176,
+ 99,199,142,128,225,195,135, 39,231,229,229,213,245, 61,210, 71, 56, 61, 61, 61, 35,120, 60, 30,174, 95,191,142,181,107,215,226,
+248,241,227, 40, 44, 44, 44, 11, 13, 13,245,238,215,175, 31,253,206, 59,239,160, 99,199,142,248,238,187,239, 36,206, 56, 9, 33,
+200,186,115, 26, 89,119,207,128, 97,170,132,101,213,230,248,119, 29, 61,160,106,225, 84,171,213,186, 43, 87,174,120,172, 95,191,
+ 30, 65, 65, 65,104,220,184, 49,100, 50, 25, 36, 18, 73,181, 70,214,190,225,117,246,110,106,181, 90, 93, 86, 86,150,199,150, 45,
+ 91,224,239,239,143,200,200, 72,200,100, 50,136, 68, 34,240,249,124, 80, 20,133,141, 27, 55, 98,243,194, 9,200,186,117, 13,163,
+134, 13,114, 26, 78,153, 76,246,114, 82, 82, 82, 53, 19, 72,176,175, 47,248, 2, 26, 60, 1, 5,223,231, 70, 3, 0,202, 78,236,
+174,178, 85, 57,143, 59,165, 84, 42,117, 23, 46, 92,240,184,116,233, 18, 24,134, 65,100,100, 36, 52, 26, 13,188,188,188,108,241,
+ 63,122,244, 40, 70,142, 28,137, 77,155, 54,161, 71,143, 30, 78,227,174, 82,169,116,215,174, 93,243,248,225,135, 31,224,231,231,
+135,134, 13, 27,218,226,206,110, 2,129, 0, 60, 30, 15, 77,154, 52, 65, 69, 69, 5, 60, 60, 60,156,230, 81,106,106,170,199, 15,
+ 63,252, 0, 95, 95, 95,132,135,135,219, 44,110,172, 56, 90,250,213,194,106, 4, 18,170,193, 99,115,186,155,239, 53, 57, 71,141,
+ 26,133,168,168, 40,120,121,121, 65, 46,151,219,184,235,226,172, 69,139,216,244, 54, 69, 81,251,237,222,137, 88,138,162,246,219,
+239,107,187,207,250,179,207,188,121,243,186, 36, 38, 38, 46,233,209,163,199,150,148,148,148,205,181,241,213,198, 51,111,222,188,
+232,196,196,196, 37,246,247, 59,248,159,218, 45, 90,177,177,177,148, 53,146, 20,128,198,157, 59,119,254,229,196,137, 19,126,158,
+158,158,182,155, 31, 62,124,136,242,242,114,120,122,122,122,125,254,249,231, 94,253,250,245, 67,112,112,176,173, 7,112,231,206,
+157, 54, 45, 90,180,168, 4, 80,211,110,203,208, 52,141,103,159,125, 22, 55,172,163, 29, 49,177,177, 8, 15, 15,183, 57,121, 72,
+ 36, 18,204,152, 49,131,154, 53,107, 22,159,181,102, 16, 66,160,213,106,209,160, 65, 3,105, 93, 86, 8, 0,136,214, 22, 99,119,
+191, 62,160, 41, 64,115,249, 34,132, 34, 10, 52,143, 66, 39, 82,130, 67,253,251,128, 2, 96,248,245, 28, 92,176,194, 92, 6, 48,
+232,105,152, 15,157, 53,226, 14,226, 69,213,151,147,181,104,164,164,164,192, 98,177,184,202, 73,104,154,134, 92, 46, 71, 72, 72,
+ 8,164, 82, 41,100, 50, 25,181,101,203,150, 15, 27, 55,110,220, 96,214,172, 89,116,101,101, 37,253,236,179,207, 98,204,152, 49,
+124,118,136, 51, 58, 58,218,105, 92, 78,157, 58,133,181,107,215, 98,234,212,169, 14, 45, 90, 20, 69, 33, 48, 48, 16, 94, 94, 94,
+245, 78, 95,113, 35, 68, 6,132, 75, 78, 77,255,174,173,143, 87,144, 16, 63,173,121,136,195,171,179,119,235,138,241, 57,204,184,
+ 5,160,204, 85,139,150, 35, 1, 12, 30, 3,139, 95, 9, 94, 93,221, 28, 97, 45,189,145,178,165, 0, 7,191,120,104, 81, 41, 76,
+179, 29,136, 56, 48, 0,140,102, 19, 52, 42,173,109, 72,215, 98,177,224,218,201, 95,155,223,255,245, 78,244,254, 45,155, 4, 0,
+160, 59,185,187,218,160,231,152,175,182,181,232,235, 43,184,112,170,204,116,161,174, 50,207,231,243,241,202, 43,175, 32, 49, 49,
+ 17, 47,191,252, 50, 14, 30, 60,136, 5, 11, 22,224,245,215, 95,127,196,170,229,172,231,104, 50,153,190,158, 52,105,210,212, 29,
+ 59,118,180,156, 59,119, 46,205, 90,180,100, 50, 25, 40,138,130, 78,167,131, 94,175,135, 86,171,197,173, 91,183,152, 55,222,120,
+227,182,193, 96,248,186,214,225, 74, 74,122, 85, 38,214, 28,108, 26, 78, 71,169, 51, 63,245,236,245, 76,164,150,146,118,174, 24,
+221, 98, 32, 25,250, 74,164, 47, 8, 1, 97, 0,134, 0,122,189, 26, 51,102,188,205,115,165,172,103,221, 57,141, 43,151, 47, 66,
+ 42, 21, 67,165, 84,193,194, 88, 64, 24, 2,177, 80,128, 15, 63,152,143,113,227,198, 35,170,105, 83, 88, 44, 22, 8, 5, 66,124,
+255,253,247,232,210,165, 11, 12, 6, 67,107, 23, 44, 89,254, 58,157, 14, 87,174, 92, 65,255,254,253,145,157,157,141,244,244,116,
+ 52,111,222, 28, 27, 54,108, 8, 28, 63,126,124,114, 81, 81,145,203, 31,127,191,118,237,218,188, 14, 29, 58,172, 84,169, 84,165,
+ 42,149,106, 37,128,205, 0,202, 51, 50, 50, 90,103,100,100,172, 62,124,248,112,239,255,252,231, 63,188, 26, 62, 58,188, 90, 34,
+ 15,147,201, 12,173, 86, 95,167,192, 98,143, 9, 97, 92,122,103, 40,138, 34, 45, 91,182,196,240,225,195, 33, 16, 8, 32,147,201,
+224,225,225, 81,109,216,172,166,224,170, 43,139, 0, 48, 20, 69, 33, 52, 52, 20, 67,135, 14,133, 80, 40,172,198,201,150,195,161,
+ 67,135, 98,230,162,127,227,235,153, 3,176,118, 82,115, 12, 92, 92,232,204, 53, 67,245,243,207, 63, 75,223,159, 58, 21, 29,154,
+ 53, 67,128,151, 23, 26, 5, 7, 66, 42, 22, 65,104, 31, 38,202, 37, 35, 59, 1,192,240,120, 60,180,109,219, 22,133,133,133,200,
+204,204, 68,102,102, 38,104,154, 70,175, 94,189,108, 86,152,187,119,239, 98,209,162, 69,208,235,245, 46,199,189, 89,179,102, 24,
+ 48, 96, 0, 68, 34, 17,100, 50, 89,181, 33, 67, 54, 77,149, 74, 37,162,162,162,176,119,239, 94,180,104,209,194, 41,103,171, 86,
+173,208,183,111,223,106,233, 41,149, 74,109,162, 8, 0,178, 47,168,108,255, 17, 22, 22,230, 22,231,145,139, 15,177,254,232,207,
+208, 27, 24, 84,106, 76,213,189, 48, 2,188,112,230,135,185, 46,197,157,229,252,223,255,254,135,242,242,114, 91,221,201,118,202,
+ 89, 35, 74,195,134, 13,241,223,255, 58,182,100,214,208, 34,142,234,129, 88, 23,219, 91,246, 62,182,112,137, 19, 19, 19,151,212,
+124,222, 25,159,253,245, 26,207, 27,106,136,179, 66,183,134, 14,197, 98,241,252,159,127,254,217,175,162,162, 2,119,239,222, 5,
+ 77,211,182, 49,117, 62,159, 15,163,209,136,123,157,170, 47, 17, 0, 0, 32, 0, 73, 68, 65, 84,247,238,193,207,207, 15, 69, 69,
+ 69, 16,139,197,224,241,120, 48, 24, 12, 0,208,169,182, 6,156, 16,130,153,138, 42, 23,161,159, 66,133,200, 2, 48, 76, 81,245,
+ 98,176, 14,241, 59,119,238,132,135,135, 7, 60, 61, 61,109,123,103,195, 72,215, 50, 51, 80, 40,160, 64,159, 59, 13,138, 6,104,
+ 10,160,120, 0, 77, 19,208, 20, 5,250, 92, 50, 40, 10,144,251,251,186,219,118, 59,115,140,175,211, 1,222,157, 70,188,230,239,
+147, 39, 79,194, 85,206,168,168, 40,120,120,120,216,182,195,135, 15, 87,179,104, 89, 44, 22,248,251,251,187,194, 73,172,254, 56,
+ 8, 10, 10,130, 64, 32,160, 54,108,216, 48,175, 73,147, 38, 13,222,123,239, 61,154,199,227,225,242,229,203, 72, 75, 75, 67,100,
+100,164,203, 62, 91,229,229,229,249,243,230,205,179,204,155, 87, 53,135, 34, 58, 58, 26,229,229,229, 69,182, 97,192,202,202,146,
+193,131, 7, 87,243,219, 40, 46, 46, 46,169,197,179, 66, 32, 15, 71, 44, 33,168,212,100,227,103, 54,204,222, 17,240, 22,120, 10,
+142,188,254,101, 43, 31,175, 32, 33, 14,173,122,128, 35, 95,230,236,212, 21,224, 67,171, 79, 16,227,106,166, 59, 26, 54,206, 45,
+200,198, 27, 31,142,198,164, 53,209, 96, 69, 28,239, 78,123,144,146,242, 82, 67, 89,105,146, 35, 17,199, 48, 12,204, 70, 51, 52,
+ 58, 29, 84, 74,141,205, 58, 84,148, 87,232, 51,119,214,187,130,229, 51, 94, 5, 0,204, 90,177, 6,202,117,191, 85,100,187,103,
+141, 11, 26,253,217,214,120, 0, 35,235, 10,167, 74,165,130, 78,167, 67,211,166, 77,145,146,146, 2,165, 82,137, 33, 67,134,128,
+162, 40,219, 12, 81, 55, 96,200,205,205,237, 25, 27, 27,251,203, 23, 95,124,209,180,117,235,214,148, 90,173,134, 70,163,129,253,
+254,218,181,107,100,243,230,205,247, 53, 26,205,179, 86,211,185, 67, 28,206,253, 38, 35, 38,236,181, 29,199, 47,243, 98,131,162,
+110,123,229,150, 53, 53,151,228,138,213,149,218, 91, 58, 11, 73, 3,177, 0, 22, 48, 32,102, 6, 22,235,176,151, 11, 53, 39, 76,
+ 38, 51, 44, 22, 6, 15, 31, 62, 68,122, 90, 26,218,181,109, 9,157,222, 12, 33, 95,128,153, 55,110,160,213,120,192, 32, 20,128,
+ 97, 24, 80, 20,141,169, 83,167, 26,173, 67, 6,181, 66, 42,149,174, 62,115,230,140,191, 78,167, 67,106,106, 42, 38, 78,156,104,
+ 40, 46, 46, 22, 1,192,203, 47,191,108,216,184,113,163, 40, 42, 42, 10, 27, 54,108, 8, 28, 51,102,204,118,181, 90,221,214,197,
+ 52,221,148,159,159,191,169,230, 73,127,127,255, 85, 15, 31, 62,236,103,239,243, 99, 54,155,109,193,113, 24,117, 6, 48,153, 76,
+208,106,245,168,168, 80,194, 96, 52, 89,235, 76, 6, 22,139,217,186,103, 96,182,214,163, 34, 33,223,179, 83,219, 16, 21, 33, 4,
+ 52, 69,149,167, 94, 47,104, 88,151,104,119, 52,196,229,162, 53,171, 38, 44,236, 44, 51,127,127,127, 8, 4, 2,108,218,180, 9,
+ 87,207, 30,134,136, 71, 96, 49,155, 96, 54, 25, 97, 49, 25, 32,224,241,112,252,114, 38, 6,181,242,116, 73, 16, 6, 4, 4, 96,
+ 88,143, 30,136,237,209,163,106,122, 27,159, 15, 15,177, 24, 50,161,164,202,146, 5,128, 88,104, 87, 23, 17, 96,216,112, 6, 7,
+ 7,227,210,165, 75,152, 57,115, 38,150, 46, 93, 10,169, 84,106,155,253,124,243,230, 77,108,219,182, 13,131, 6, 13,114, 59,238,
+172, 5, 47, 62, 62, 30,121,121,121, 88,177, 98, 5, 58,119,238, 12,129, 64,128,242,242,114, 60,251,236,179, 40, 44, 44,116,137,
+211,126,120, 79, 36, 18, 85,179, 62,177, 2,208,221, 60,178,231,124,117, 84, 3,236, 59,187, 25, 20, 40,156,255,225,221,106,162,
+240,191, 91, 79,187,205,185, 96,193,130,106,225,116,197,154,229,178, 31, 82,117,171,147,211,251, 40,138, 74,101,141,173,241,241,
+241,243, 41,138,218, 31, 31, 31, 63, 63, 33, 33,225,134, 43,124,142,174, 83, 20,117,192, 42,194,134,217,157, 75,117, 75,104,201,
+100,178,110, 30, 30, 30,184,123,247, 46,134, 12, 25, 98, 40, 41, 41,185, 45, 16, 8,154, 23, 23, 23,139,139,138,138,160,209,104,
+ 84, 31,127,252,113, 38, 0,105,247,238,221,163,142, 31, 63,142,236,236,108,108,220,184, 17, 0,118,215,230,167,195, 48,140,173,
+ 80,212,236,182,241,120, 60,156, 59,119, 14,231,206, 85,119,253, 90,191,126,189,211, 6, 99,204,158, 31,113,249,242,101,216, 47,
+ 15,192,254,182, 63, 39,145, 72,128,186,103,120, 84,131, 51,199,120,103, 14,240,174, 54,226,181, 85,128,174, 22,196,220,220,220,
+ 90,159, 63,119,238, 92, 53,139,150, 51, 78, 30,143, 7,139,197, 2,169, 84, 74, 9,133, 66, 74, 40, 20,134,179, 34,139,199,227,
+217, 94, 24,177, 88, 12,177, 88, 92,173,151, 90, 27,242,242,242,250,231,229,229,213,122, 93,161, 80,244, 84, 40, 20, 46,197, 85,
+ 22,134,143,158, 29,219, 96, 30, 0,156,221,154,255,157,230, 33, 94, 7, 0,194,167,118,189,250,121,139,168,192, 72, 41,206,109,
+ 47,192,145, 47,115,246,232, 10,176,208, 58,164,203,184,154,230, 7,142,238,197,155, 83,167, 65,204,147,217,249,100,209, 40,231,
+101, 99,250,198, 22, 96, 69, 92,234, 70, 3,246,111,253, 8, 41, 71,159, 55,213,101, 41, 51,154, 76,208,106, 12, 80,170,180,248,
+ 40,225,187,170,147, 31,225, 2,128, 11, 61,223,156,137,184,152, 65, 3,220, 29,166,102,211, 59, 40, 40, 8,167, 78,157, 2, 69,
+ 81,216,190,125, 59,188,189,189, 17, 19, 19, 3, 47, 47, 47,196,199,199,227,197, 23, 95,116,183, 50,171, 40, 41, 41,233,249,206,
+ 59,239,252,242,233,167,159, 54,106,216,176, 33, 12, 6, 3,140, 70, 35, 12, 6, 3, 50, 50, 50,176,121,243,230,108,141, 70,211,
+ 19, 64,133, 51,178,195,185,223,100,236, 74,158,149, 55,112,236, 24,237,205,194,159, 80, 80, 80, 2,179, 57, 23,140,197, 12,163,
+217, 82,101,225, 51,155, 97, 54, 91, 32, 20,242,188, 62,253,228,221,163, 12, 8,104,154, 50, 0,120,190, 54,177, 17,209, 48, 8,
+ 94,158, 94,104,221,170, 9, 78, 28, 90, 15,131,209, 12,163, 65, 13,227,244, 24,164,103, 29,135,229,254, 49, 88, 24, 11,206,164,
+164,233, 77, 22, 34,144, 74,229, 84,195, 6,158,188, 59,247,117, 14,195,233,227,227, 19,173, 80, 40,112,231,206, 29, 76,158, 60,
+185,160,164,164, 36, 29,192,115, 0, 80, 82, 82,114,102,226,196,137,173,147,146,146, 66, 26, 55,110, 12, 15, 15, 15, 47,181, 90,
+237, 44,234, 30, 0,226, 0, 12, 70,117, 7,252, 82, 0, 31,211, 52, 45, 78, 77, 77,125,100,166, 93,114,114, 50, 0, 92,112,220,
+ 3,178, 90,180,116, 58, 40, 74,202,240,250,155, 31,254,214, 51, 2,169, 38, 46, 8, 8,166,189, 5, 9, 0, 20, 23,102,224,213,
+215,103,138,235, 84, 28, 12,227,176, 33,116,195, 71,167, 90, 71,141, 45,163, 30, 30, 30, 85,195,111,123, 55,227,192,103,111, 2,
+ 22, 35,136, 73, 11, 24, 53,128, 81, 5,198,160, 1, 37,148, 2, 38,173, 75, 66,203,195,195, 3, 30, 82, 41,130,124,124, 64, 8,
+ 1,159,199,131, 64,192, 7, 99, 2, 40, 11,101, 43, 35,140,197,165,178,110,235, 84, 74,165, 82,100,101,101, 33, 46, 46, 14, 70,
+163, 17,163, 70,141,130,193, 96,128, 78,167,131, 86,171, 69,147, 38, 77,160,209,104, 92,226, 99,103, 43,122,120,120, 64, 40, 20,
+226,221,119,223, 69,151, 46, 93,176,104,209, 34,204,153, 51, 7, 77,154, 52,193,180,105,211,176,121,243,102, 68, 71, 71, 59,227,
+ 37,246,121,196,166, 39, 43,182,236,135,248, 0,184,157, 71, 53, 57, 41,138,174, 38,216,216,237,237, 73,207,185,205,153,152,152,
+ 8,133, 66,241,136, 37,139,253, 29, 22, 22,134,175,190,250,170,190, 35, 67,172,245, 40,216,193,181, 97, 53, 45, 81,132,144,174,
+ 86,223, 41,125, 66, 66,194,141,132,132,132, 88,138,162,246, 39, 36, 36,196,214,102,209,114,196,227,224,186,194,213, 48,243,107,
+140,141,246,179,191,200, 38,180,159,159, 31,175, 81,163, 70,180,151,151, 23,202,203,203, 17, 24, 24, 72, 20, 10,197, 88,153, 76,
+182,112,203,150, 45, 81, 42,149, 10, 55,111,222,196,170, 85,171, 46, 0, 88, 89,151,208, 58, 24,104, 53, 29, 91, 45, 89,246,199,
+195,135, 15, 71,227,198,141,171, 89,179,164, 82,105,157,133,135,189,102,107, 20,121, 60,180,104,209, 66,122,255,254,125,173, 80,
+ 40, 68,120,120,184,180,160,160, 64, 43, 20, 10,221,158,233,226,204, 49,222,153, 3,188, 35,225,211,181,107,215,106, 22, 44,251,
+189,253,239,125,251,246, 57, 29, 58,100, 57, 91,183,110,109, 75, 47, 79, 79, 79,246, 89, 0,192,144, 33, 67,192, 48, 12, 2, 2,
+ 2, 92,226,100, 69,173,213, 1, 30, 58,157,142, 81, 42,149,116,106,106, 42, 68, 34, 17, 60, 61, 61,109,190, 58, 18,137,196,102,
+205,252,189, 32, 16,209, 83,198,124, 80,101, 96,244,111, 40,126,117,239,178, 76, 80,192,229,161,111, 71,246,111,218,213, 27,149,
+ 69, 70,236,255, 60,235,129,174, 4, 9, 0,110,185, 99,201,210,209,149, 94,235,206,188,131, 14, 47,139,208, 64,215, 11,159, 46,
+168, 42,202, 19,103,140,198,176,215,249, 96, 69, 28,125,167, 29,182,127, 55, 31,205,154, 53, 3, 33,132,170,189, 66, 96, 96, 48,
+153,160,213,106,161, 82, 85,173,155,153,113,189,250, 8,163, 81, 95, 89,255,180,176, 86,176,165,165,165, 56,124,248, 48,126,250,
+233, 39,116,233,210,197,161,168,118, 67,112, 41, 74, 75, 75,123,205,158, 61,251,252,226,197,139, 67,253,252,252, 96, 52, 26,241,
+240,225, 67,124,251,237,183,121, 26,141,166,151, 59, 21, 12, 8, 96, 50,153,161,211,232, 81, 81,169,196,194, 79,190,175,181,232,
+ 1, 64,105,209, 45, 12, 31,241,162,168, 46,177,209, 48,204, 7,201,201,201, 24, 52,176, 23,134,141,156, 92,171,216,120,115, 70,
+ 53,177, 33,172,163, 35,240, 94,175, 94,189, 62, 81, 42,149,229, 26,141,230, 69, 0,203,237,251, 83, 37, 37, 37,189, 71,140, 24,
+241,133,159,159, 95,231,162,162,162,249, 46,196, 58, 62, 43, 43,107,126, 68, 68, 68,181,147,122,189, 30, 17, 17, 17, 45,138,138,
+138, 38,244,233,211,231,223, 0,252,236, 46,123, 2, 56, 2,224,171,218,202, 18, 59,116,168, 82,105,225,229,211, 0,185,153,167,
+156, 6, 68,200,211,129, 48, 76,157,117, 8,219, 1,174,109,115, 50, 51,238,145,160,178,247,178, 13,246,243,255,154,132,231,227,
+ 18, 33, 19, 0, 75, 94,237,137, 38, 62, 0,164,126, 16,246,153, 11,202,199,154, 70,113, 63,186, 68, 62,103,237, 90, 92,182,214,
+199,225,129,129,152, 61,118, 44,136, 9, 72, 73, 75,195,214,159,127,198,216,254,253, 33,147, 72, 92,238,176, 48, 12, 3,161, 80,
+136,140,140, 12,164,164,164,160, 85,171, 86,184,123,247,110,181,101, 40, 8, 33,174,198,223, 22,119,177, 88, 12,129, 64,128,130,
+130, 2,196,198,198, 66, 40,172, 26,198, 62,117,234, 20,102,207,158,141, 41, 83,166,160, 95,191,126, 72, 79, 79,119,137,147, 16,
+242,200,108,197,154,195,185,238,230, 81, 77,206,154,237,126,125,242,157,229, 92,188,120,177,195, 9, 21,174,112, 58,210, 34, 14,
+242, 46,213, 94, 12,177,150, 39,123, 97, 84,243, 24,128, 47,123, 46, 62, 62,126,190,171,207,217, 31,179, 22, 49,119,134, 48,109,
+ 66, 43, 54, 54,182, 90,204, 75, 75, 75,207,159, 63,127,190,141, 92, 46,199,173, 91,183, 68, 94, 94, 94,109,216, 10,157,166,105,
+108,223,190,221,115,232,208,161, 71,151, 47, 95, 30,206, 48, 12, 10, 11, 11,241,254,251,239,171,204,102,243, 56, 0,230,218, 26,
+112,103,150,169, 31,127,124,244,101,219,187,119,175, 75, 67, 32,172,144,226,243,249,240,245,245,213,106,181, 90,200,100, 50,248,
+250,250,106, 53, 26, 13,228,114, 57, 59, 86, 76,227,183,153, 10,206,172, 79,206, 28,227,107, 58,192, 59, 69, 90, 90,154, 75,247,
+ 89,135, 90, 93, 42,229, 89, 89, 89,181, 86, 36,167, 78,157, 2, 99,173,104, 93,229,180,246,242, 8, 43,252,100, 50, 25,252,252,
+252, 32, 22,139, 33,149, 74,171,137, 44,177, 88,236,244,197,113,182, 32,169, 68, 34,185, 40,151,203,125,216,235, 2,129, 0, 74,
+165,178,188,180,180,180,219, 35, 22, 34, 13,115, 48,121, 99,222,148, 62, 19, 67,209,103, 98, 40, 0,188,122,105, 95,209, 43,189,
+ 95,174,114,254,220,185,248, 30, 81,230, 89, 18, 97, 66,154, 59, 34, 11, 0,136, 72, 47, 27,243, 65,135, 42,235,194,198,243,152,
+187,248, 29,180,107,213, 1, 62,207,230,162,105,215, 80, 84, 22, 25,241,235, 22, 11, 86,254,231,125,180,110,221,218,169,192,100,
+ 64, 96, 54,154,161,213,234,160, 82,106,241,164, 97, 48, 24, 32, 22,139,177,121,243,102,244,236,217, 19,221,187,119,127, 68,100,
+213,211, 60,159, 83, 90, 90,218,111,229,202,149, 23, 62,255,252,115, 95,149, 74,133,239,190,251,174, 66,165, 82,245, 3,144,227,
+ 86,154, 50, 4, 38,163, 17, 26,157, 30,106, 85, 85, 26,220,187,177,179,158, 61,217, 42,177,209,179, 91,115, 76,159,254, 38, 50,
+239,103, 64, 85,126,247,177,197, 6,128,205, 5, 5, 5,155,235,184,126,207,108, 54,199,178,235,190,185,128,103, 34, 34, 34, 80,
+ 80, 80, 80,237,228,131, 7, 15, 96,177, 88,244,168, 90, 39,235, 53,123, 67, 50,106,153, 65,107,215,131,174,178,142,106,245, 80,
+169,170,172, 32, 58,117,241, 19, 41, 71,172,216,168,205, 39,171, 62,101,136,162, 40,155,211,247,140, 25, 51,112,237,234, 85, 60,
+ 23, 90,137, 38, 33,158, 32,149,185, 16, 14,248, 15,126, 85, 72,177,252,139,131,110,115,111,179,115,129, 88,190,109,155,195,107,
+247, 70,142,116, 43,238,183,111,223,134, 84, 42,133,197, 98,121,164,189,113, 55,254,246, 2,230,139, 47,190,192,236,217,179,241,
+253,247,223,227,218,181,107,232,208,161, 3, 6, 14, 28,136,162,162, 34, 92,189,122, 21,122,189,222,229,112,218,251,205,221,190,
+159,134, 99, 41,135,240, 32, 39, 19,121, 5,217,245,206,119,123,206,154, 66,107,215,177, 43,248,215,160, 78,245,226, 92,184,112,
+ 33,138,138,138,170, 89,178,236,235,165,218, 44, 90, 53,181, 72, 13, 20,215,240,133, 98,143, 13, 53, 68, 79,205,227,154,247, 3,
+ 64, 17, 0,158,147,231,106, 30, 23, 39, 36, 36,156,100, 45, 97, 86, 94,158, 51,255,172, 90,135, 14, 1, 36,142, 28, 57,114,196,
+170, 85,171, 2, 37, 18,137,109, 6, 82,124,124, 60,102,207,158,141,166, 77,155, 34, 32, 32, 32,204,199,199, 7, 37, 37, 37, 88,
+186,116, 41,178,178,178,254, 15, 14, 22,218,171, 41,180,122,223, 87, 66, 36,250,173,195,202, 90,182, 0, 96,202,148, 41,143, 88,
+180,216, 12,170, 11, 38,147, 9,254,254,254,208,104, 52,224,241,120, 24, 53,106, 20,239,250,245,235,150,152,152, 24,140, 30, 61,
+154,119,245,234, 85,203,176, 97,195,192,227,241, 48, 96,192,128,202, 93,187,118,205, 2,240,153, 11, 98,235,137, 57,198,179,133,
+204,213,181,143, 92, 17,151,117,113, 82, 20, 5,141, 70, 3,190,117, 86,150,171,156,236,208,161,253, 11, 72,211, 52,124,124,124,
+108,149, 7,107,209, 98,133,150, 51, 94,103, 11,146,202,100, 50,175, 91,183,110, 69,177, 19, 47,138,139,139, 49, 96,192,128, 59,
+165,165,165,143,112,105,243, 49,127,207,146,204, 16, 0, 67, 88,177,213,117,100, 16, 69,243, 40, 92, 59, 82,130,171,135, 74, 47,
+155, 42,209, 27,192, 90, 0,255, 5,176, 20,192, 92, 0,211,236,142, 31, 58,172, 32,117, 66,125,242,198, 60, 25,203,155,188,241,
+ 28,190,220,181, 23,239,110,173,114,220,223,245,201,125, 76,125,105, 33,218, 69,183,115,109, 45, 32, 6, 48,154, 45, 80,105,117,
+ 80,105, 53,120, 82, 96,223,135,117,235,214, 33, 61, 61, 29, 58,157, 14,171, 87,175,182, 77, 42,176, 23, 89,143, 33,184, 50,164,
+ 82, 41, 51,100,200, 16,156, 63,127, 30, 98,177,216,132,122,172,127,197, 16, 6, 70,179, 25, 58,173, 22, 42,231, 67,110, 78, 27,
+ 48,163,201, 4,134,177,160,107,135,112, 92,191,118, 13,114, 94, 49,254,132,176,169,234,244,244,116, 24, 12, 6, 44, 90,180,200,
+242,203, 47,191,156, 68,213, 2,168,172, 5,111, 66,223,190,125, 63,150,203,229, 62, 7, 14, 28,120, 27,192,247,117,197,221,100,
+182,138,246,199, 76,199,218, 70, 4, 28,249,100,213,103,201, 29,251,134,149, 97, 24,252,223, 27,111, 96, 96,104, 37, 70,119, 14,
+132, 58,255, 14,100,222,129,160,124, 34,177,252,139,131,184,113,223,229, 69,137, 9, 0, 12,233, 59, 18,237, 91, 61,186, 60, 88,
+175,231,170,250,100,103,142, 95, 68, 97,113,158,219,113, 87,171,213,181, 90,174,220,176,104,217,222, 57, 54,253, 58,118,236,136,
+230,205,155,227,228,201,147,232,212,169, 19,238,222,189,139,187,119,239, 34, 43, 43, 11,215,174, 93, 67, 89, 89,153,219,121,180,
+231,200, 86,148, 41, 75, 33, 18,138, 80, 90, 94,140, 7,185,153, 8,246, 15,121,236,124,103,209,114,216, 66, 0, 64,104,160,183,
+ 91, 66,203,158,115,217,178,101,143,136,247,122, 46,223,100,207,127,177,174, 99,119,159,255, 61, 81,155,208,202, 84, 40, 20,221,
+199,142, 29, 27, 15,160,171,245, 92, 5,128,109, 71,143, 30, 29, 25, 20, 20,212,191, 71,143, 30,124,145, 72,132,148,148, 20,236,
+218,181,235,123, 0, 91,235,250, 35,145, 72,164,141,140,140,148,178, 5,145,125, 17,189,188,188,120, 75,151, 46,165,214,175, 95,
+ 95,171,149,203, 89, 6, 85, 84, 84, 64,173, 86,195,219,219, 27, 70,163, 17, 67,134, 12,177,164,167,167, 67, 40, 20, 98,196,136,
+ 17,150,180,180, 52, 91, 70,255,239,127,255, 11,215,106,181,207,254,244,211, 79,131, 1,244,113, 35,173, 88,199,120, 15,184,232,
+ 0, 95, 91, 47,207, 21,184, 58, 28, 87, 27,231,204,153, 51,235,197, 41, 20, 10,205,236,202,239, 52, 77,195,104, 52,162, 83,167,
+ 78, 40, 42, 42,178,189, 52,114,185,220, 38,178, 92, 17, 90,206, 22, 36,229,243,249, 48, 24, 12,232,211,167, 15, 40,138,194,154,
+ 53,107,234, 10,107,145, 54, 15,111,236, 89,146,249, 63, 86,108, 73, 60,248,208, 41,205, 56,241,101, 25, 12, 37,240, 26, 51,102,
+204,248,157, 59,119, 98,233,210,165,211,226,227,227,149, 47,188,240,194,180,237,219,183,219,142, 1,196, 59, 34,150, 18,239, 74,
+205,249,230,178,100,220,129,157,136, 3, 43,226, 42,110,120, 34, 89,119, 6, 87, 83,175, 3, 0,214,174, 93, 11,212, 53, 20,203,
+ 48,148,135,135, 63, 66, 67, 91, 32, 48, 72, 7,198, 69,231, 17, 87, 49,103,206,156,106, 98,202,209,202,203,246, 67,140,245, 17,
+ 54,246,251,122,113, 0,182, 33, 47,181, 90,247,216, 66,139, 21, 27, 62, 94, 66,132,133, 53, 64, 69,129,253,176, 62, 5,118,170,
+ 82, 85,152, 73,189, 29,110, 89, 4, 5, 5,117, 47, 42, 42,218, 91,227,116, 41,128,143,235,232, 88,218, 50, 58, 59, 59, 27, 49,
+ 49, 49, 56,116,232, 16,111,247,238,221,207,237,219,183, 47,237,206,157, 59,217,157, 58,117,106, 56,117,234, 84,113,159, 62,125,
+ 80, 92, 92,140,206,157, 59,127,148,155,155, 91,135,208,178,166,163, 78, 15,181,250,201, 91, 71, 29, 89,179, 30,167, 97,100,211,
+125,193,130,127, 99, 96,131,114,140,234,224,141,164,253,103, 49,161,163, 20, 48,136,221,230, 99,195,226, 23,218, 24,145,209,221,
+ 31,185, 46,246,170, 90,203, 53, 50,186, 59,232,236,187,110,199,221, 62,204, 53,203, 76,125,202,144,125,122,190,254,250,235,152,
+ 59,119, 46, 6, 15, 30,140,187,119,239, 34, 57, 57, 25,119,239,222,197,204,153, 51, 17, 29, 29,141, 14, 29, 58,184,197,185,239,
+216, 14, 84,170, 42, 64, 83, 52, 74, 43, 74,160,211,107, 49,103,218,130,199,206,119, 91,227,127, 44,161,106,116,224,232,229,122,
+115,126,240,193, 7, 40, 40, 40,168,102,201,122, 28,191,172,191, 58,234, 90, 45, 45, 19,192,255, 57, 24,174,240, 92,180,104,209,
+160,128,128, 0, 80, 20,133, 47,190,248, 2,126,126,126, 61, 1,220, 48, 24, 12,197,106,181,122,182,157, 8, 25, 8,235, 90, 27,
+133,133,133, 14,231,237,171,213,106,227,160, 65,131, 4, 13, 26, 52,168, 54,219, 80, 46,151,215,102,221,177,113,178,215,204,102,
+ 51,230,204,153,131, 37, 75,150,160, 81,163, 70, 24, 54,108, 24, 98, 99, 99, 65, 81, 20,134, 12, 25,130, 97,195,126, 27,202,245,
+241,241, 17, 30, 58,116,168, 47, 77,211,105,118, 13, 72, 53, 78, 71, 96, 29,227, 77, 38,147,171, 14,240,213, 56,217,194, 54,115,
+230, 76, 44, 89,178, 4,243,231,215,237,234, 81, 75, 35,254,212, 57, 75, 75, 75,171, 85,246, 50,153,108,205,232,209,163,249,217,
+217,217,213,196,149,253,230,160, 34,170,198,233,108, 65, 82, 30,143,135,224,224, 96, 44, 94,188, 24,254,254,254, 8, 9, 9,113,
+180,144,159, 61,103,158,189,216,122,246,165, 16,236, 93,150,137,231,187,141,197,237, 83, 43,245,110, 52, 16,213,194,105,177, 88,
+178,222,121,125,110,208,138,245, 75,121,172,216, 98, 69,220,233,175, 85, 88,149,248, 45,250,244,238, 99, 51,179, 39, 39, 39,155,
+ 29, 88,121,108,156, 22,194,164,126,154,248,239, 94,223,109,220, 39, 16,139,128,115,201, 59, 81, 89, 86,125, 56, 73,111,252,109,
+ 42,181,168,211,115, 48, 92, 62,238, 82, 89, 98,197,244,194,133, 11,177,112,225,194, 58, 35,185,110,221, 58,167,156,174,138, 46,
+119,210,211,106,210,162,100,114, 95, 72,228,161,104, 19,237, 11,134,152,221,173,163,108,156, 53,197, 70, 64,128, 63, 42, 10,170,
+203, 58,202,150, 70,117,106, 96,103,113,255,229,226,197,139, 35,252,253,253,145,147,147, 19, 40, 16, 8, 70, 84, 51, 87,105,181,
+136,140,140,108,161, 80, 40,158,117,198, 57,115,230, 76,253,135, 31,126, 40, 30, 55,110, 28, 70,143, 30,141,113,227,198,137,133,
+ 66, 97, 51, 66, 8,140, 70, 35,114,114,114,112,252,248,113, 40, 20,138,155,117,133,147, 33,132,146,202,124, 32,145, 55, 64,155,
+182, 62, 96, 24,115,125,235,124,135,117, 72, 77,107,150,155, 34,203, 97,249, 4,128, 95,142,239,197,130,119,219,226,251, 3, 23,
+176,234, 34,208,222,167, 8,109, 2, 21, 96, 20, 55,241,254,132, 46, 88,254,195,165,170,119,233,148,211, 60, 34,117,149, 65,157,
+214,248, 88,113,183,183, 92,217,255,143, 11, 62, 90,143,112,178,157, 68,165, 82,137,242,242,114, 36, 37, 37,225,213, 87, 95, 69,
+ 81, 81, 17,178,178,178,112,231,206, 29,108,217,178, 5, 50,153,172, 94,121, 52,235,141, 15,240,225,242,247, 64, 64,208, 50,170,
+ 13,226,227, 22,162,107,251, 30,143,157,239, 53,225,130, 53,171, 86,206, 21, 43, 86,212,183, 44,253,227,132,150, 67, 4, 4, 4,
+140,235,219,183, 47,116, 58, 29, 2, 3, 3,145,149,149, 5,154,166,155, 2, 85, 67,120, 97, 97, 97,219, 20, 10, 69, 83, 87,249,
+120, 60, 30,204,102,179,205,247,135,221, 0, 96,248,240,225,248,241,199, 31,157,246, 40, 66, 66, 66,208,176, 97, 67,188,243,206,
+ 59,143,204,114,176,159,233, 32,149, 74,113,224,192,129,130,210,210,210, 82, 66,136,194,157,120,179,142,241,103,206,156,113,217,
+ 1,222, 30, 70,163, 49,251,206,157, 59, 13,214,173, 91,199,171,163,241,179,161,150, 70,252,169,115, 58,234,153, 18, 66,106, 21,
+ 89,174, 44, 35,224,108, 65, 82, 62,159,143,219,183,111, 99,193,130, 5,160, 40, 10, 59,119,186,228,195,147,167,205,195, 27,187,
+ 23,103, 46,221,147,144, 57,218, 84, 1,201, 73,245,202, 59, 0, 86,239,216,177,163, 3, 69, 81,236, 80,225,127,119,236,216,225,
+105,127, 92,171,169,172,168, 40,230,197, 23, 95, 60, 74, 81, 84, 83,221,201, 10, 79, 0, 34, 86,196,229, 94,211,169, 94,158,240,
+178,129,207,231, 91,126, 51, 88, 49, 89,133,133,133,207,215,198,119,253, 86,201,122,154,166,125,135, 63,223,171, 29, 40, 10, 70,
+195,163, 35,213, 30,101, 42,155,200, 26,253,217, 86,236,158, 53,214, 21,209,147,113,250,244,105,191,117,235,214,241, 93,201,247,
+211,167, 79,155, 9, 33,110, 15,251,177, 13,142,209,104,132, 86, 91, 63, 43, 10, 33, 36, 37,225,147, 15, 7,109,216,116, 80, 64,
+ 81, 6,156, 59,181, 19, 21,229,142,221, 25, 68, 2, 62,214, 39,237, 50, 11, 5, 60,135, 78, 39, 79, 80,108, 56,195,151,163, 70,
+141, 26,183,122,245,234, 54,142, 46,186, 48, 9, 38, 75,167,211, 33, 55, 55, 23, 26,141,102,199,188,121,243,140, 7, 15, 30,124,
+109,204,152, 49,232,208,161, 3, 26, 52,104,128,252,252,124,100,100,100, 32, 41, 41,137,156, 61,123,118, 7,128,233, 78,210,113,
+111,226, 39, 31, 78, 78,250,225,160,136,166,140, 56,151,188, 19, 21, 53, 68,251,163,214,105, 1,190,249,126,151, 81, 40, 20,220,
+114,102, 45,178,183,102, 61,201,134,113,196,196, 56,140, 94,185, 10, 77,187,198, 32,113,233, 64,124,243,201,139,248,124,136, 16,
+198,237, 19,208,254,133, 13,216,188,104, 40, 0, 32,244, 27, 23,173, 37,124, 33, 30, 58,176, 88,149, 87, 72,172,226,198, 61,171,
+ 41, 27,247,186, 44, 87,238, 90,180,104,154, 70,227,198,141,209,180,105, 83,244,236,217, 19,157, 58,117, 66,255,254,253,113,245,
+234, 85, 92,189,122, 21, 51,103,206,172, 75,100, 57,205,163,126,207, 14,194,133,222,183, 30, 59,111,106,230,251,147,128, 43,101,
+ 41, 46, 46, 14, 0,254, 81,214, 45,183,133, 86,101,101,229, 85,134, 97,218,121,123,123,179, 22, 41,219,181, 7, 15, 30,128, 97,
+ 24,141,187, 25, 99, 48, 24,216,197, 49,171,173,203,196, 58,199,215,245,226, 19, 66, 44,165,165,165,232,219,183, 47,122,247,238,
+109, 27, 62,177,223,236,132, 9,118,239,222, 13, 66, 72, 55,119,227,109,231, 24,175,130,155, 14,240,108, 35,222,167, 79,159,163,
+124, 62,223,165,175,104, 58,107,196,159, 22,167,163,252, 97, 24,166, 86,145,229, 74, 69,228,108, 65, 82, 62,159, 15,185, 92,142,
+ 61,123,246, 32, 32, 32,192,157,224,229,233, 10, 48, 11,192,151,168,154,132,113, 23, 0, 59,141, 47,206,254,221,174,113, 92, 27,
+212, 10,133,130,237, 26,134,238, 94,156,185,116,239,210,204,129,140, 30, 59,117, 10,252, 0, 40, 47,194,137,211,114, 77, 92, 77,
+ 87, 44,171,235,122, 95,127,209, 41, 0,129,163, 63,219,250,240, 84,137, 49, 98,244,103, 91, 31,236,158, 53,182, 81, 93,207, 20,
+ 20, 20, 12, 30, 59,118,236, 33, 87,243,221,108, 54,103, 22, 20, 20, 60,239,110,153, 37,132,224,214,173, 91,204,235,175,191, 94,
+172, 80, 40, 94,172, 79, 5, 19,191, 96,213,231, 75, 62,154,225, 63,100, 80,247,174,160, 1, 67,237,206,191,132, 2, 8, 95,192,
+203,158, 61,127,197, 27, 47,190,248,226,239, 42, 54,106, 86,115, 5, 5, 5, 61,255,245,175,127, 77,199,111,174, 19,213,132, 20,
+106,153, 93,109,197,202,134, 13, 27,182,229,241,120, 98, 0, 11, 0, 60, 56,123,246,236,151,103,207,158, 29, 12,224, 25, 30,143,
+215,192, 98,177,228, 90, 59, 61, 91, 1,252,234,188, 28, 21, 77, 5, 97,194,135, 12,124, 38, 6, 20, 69, 12, 6,189,147, 14, 18,
+ 8, 8, 33, 66,161,224,214, 47, 87,243,219,215,213,145,178,251, 2,199, 19,159, 65, 60,125,250,116, 76,159, 62,221, 86,158,214,
+172,233,141, 29,215,207,224,133,246, 57,208,127,221, 11,148, 87, 35,151, 59,124, 0,240,193,191, 95,127, 98, 97,179,143,187,189,
+ 69,203,209,123,224,142,143, 22,143,199, 67,113,113, 49,110,223,190,141,194,194, 66,104, 52, 26,164,167,167,195,104, 52,162,172,
+172, 12,109,219,182,173,119, 56,159, 84, 30,253,145,156,255,196,225, 67,183,133,150,209,104,252, 79,227,198,141, 5, 18,137,164,
+141,197, 98, 1, 33, 4, 22,139,133, 88, 69,141,219,179,240, 4, 2,129,174,121,243,230,148,163,217, 9,236,111,185, 92,174,173,
+195, 90,146, 16, 25, 25, 57,143,162, 40, 94,109,189, 16,246, 55,195, 48, 22, 62,159,159, 80,207,180,122, 92,199,120,251, 70,252,
+ 73,225,105,112,214,204, 31,117,171, 86,173,108, 95,180,175,185, 38,138,245, 99,171,106, 39,226,188,206, 5, 73,213,106,117,126,
+ 76, 76,140,197,254,186,253,130,166,206, 52,172,117,123,210, 96, 69, 92, 99, 59, 17,103,121,226,255, 66,145, 7, 67,199,189, 22,
+113,170,196, 24, 1, 0,172,216, 2, 33, 15,234,120, 74, 91, 80, 80,208,247,105, 87, 14,247,239,223, 55, 60,243,204, 51,155,148,
+ 74,101, 28,128,122,123,243,207,255,207,154,249, 79, 34, 60, 79, 75,108,212, 86,108, 1, 44,169,103, 80, 31,148,148,148, 12,168,
+113,238, 87, 86, 80,177,235,218,185, 29,255,155,197,207, 63,233, 60, 54,155,205, 57, 77,155, 54,117,203,114, 99, 50,153,114,156,
+ 93,175,185, 70,152, 61,110,192, 27,243,207, 3, 85,147,191, 75, 92,226,212,233,116,165, 61,122,244, 16,184, 25,183, 34, 87,227,
+222,160, 65, 3,132,134,134,218,246, 44,106,158,119, 22, 78,179,217,156, 19, 30, 30,142,128,128,128, 90, 87,124,175,233,147,229,
+ 10,231,147,206,163,186, 56, 67, 67, 55, 60,113,206,250,134,147,131,107, 24,200,113,114,156, 28,231, 95,150,147,199,165, 39,199,
+201,113,114,156,191, 35,231,223, 18,156,151, 26, 7, 14, 28,106,131,133, 75, 2, 14, 28, 56,112,120, 60, 80,117,168,210, 99,110,
+240,212, 71,217, 30,227, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243, 31,199,233,140,251, 24, 56, 60, 85, 1,198,113,114,156,
+ 28, 39,199,201,113,114,156, 28,231, 63,143,243,111, 9,110,232,144, 3, 7, 14, 28, 56,112,224,192,129, 19, 90, 28, 56,112,224,
+192,129, 3, 7, 14,156,208,226,192,129, 3, 7, 14, 28, 56,112,224,192, 9, 45, 14, 28, 56,112,224,192,129, 3, 7, 78,104,113,
+224,192,129, 3, 7, 14, 28, 56,112,224,192,129, 3, 7, 14, 28, 56,112,224, 80, 5, 10, 0,246,239,223,111,251, 32, 96,108,108,
+ 44,197, 37, 11, 7, 14, 28, 56,112,224,192,225,247,196,223, 90,139,216, 71,142, 3, 7, 14, 28, 56,112,224,192,129,211, 34, 79,
+ 6, 52, 39,182, 56,112,224,192,129, 3, 7, 14,156,216,226, 34,198,129, 3, 7, 14, 28, 56,112,224, 68,214, 95, 10,213, 44, 90,
+156,224,226,192,129, 3, 7, 14, 28, 56,252,145, 98,235, 47,170, 69,136,117,179, 63,230,192,129, 3, 7, 14, 28, 56,112,224,240,
+152, 2,171,174, 61, 7, 14, 28, 56,112,224,192,129, 3,135, 39, 36,184,216,223,191,155,208,226,190,108,206,113,114,156, 28, 39,
+199,201,113,114,156, 28,231, 63, 22,124, 46, 9, 56,112,224,192,129, 3, 7, 14, 28, 30, 27,246, 86, 44,138, 19, 90, 28, 56,112,
+224,192,129, 3, 7, 14, 79, 78,100, 81,142,142,185,111, 29,114,224,192,129, 3, 7, 14, 28, 56, 60, 37,112, 22, 45, 14, 28, 56,
+112,224,192,129, 3,135,199, 3, 5,110,232,144, 3, 7, 14, 28, 56,112,224,192,225,169,138, 45,135, 39,107,155, 57,112,204, 13,
+242,250,204, 62, 56,198,113,114,156, 28, 39,199,201,113,114,156, 28,231, 63,142,211, 25,247, 49,252,245,208, 23,192, 73, 0,253,
+172,251, 90,133,215,147, 6, 55,245,149,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,191, 59,106, 93,168,148,115,134,231,224,
+ 12,124,212, 61,196,236,236, 58, 7, 14, 28, 56,112,224,240, 79, 19, 91,196,190,145,116,132,102, 0,230, 3,240,182, 59,119, 17,
+ 64, 66,141,251,126, 0, 32,179, 59, 86, 3, 88, 4,224,174,211,208, 16, 34,180,242,139,173, 27, 3, 64, 7, 64, 15, 64, 73, 81,
+148,137,203,179, 63, 28, 61, 0,196, 90,127,239, 7,112,206,205,235,127, 43, 52,104,208, 64,234,235,235, 59,248,242,229,203,162,
+244,244,116,156, 62,125,154,172, 95,191,222, 88, 86, 86,118, 36, 63, 63, 95,203, 21,151,191, 5, 98, 0,196, 91,127, 39, 2, 56,
+252,152,124,148, 76, 38,155, 41,151,203,135,138,197,226, 80,179,217, 76,105, 52,154, 60,181, 90,125,212,108, 54,127,102,173,247,
+220,197, 72, 63, 63,191,215, 90,182,108,217, 44, 43, 43, 43, 55, 47, 47,239, 7, 0,219, 1,188, 24, 26, 26, 58, 33, 50, 50, 50,
+236,214,173, 91,119, 75, 75, 75,191, 1,176,247, 15, 12, 39, 7, 14,255, 36, 80,117, 89, 35, 28, 97, 1, 33,100, 66, 53, 6,234,
+ 81,142, 1, 3, 6,140, 56,114,228,136,140, 97, 24,176,155, 84, 42, 53, 3,120,197,137,200,242, 79, 73, 73,137,136,139,139, 27,
+157,151,151,215, 69,169, 84,118, 3, 0,153, 76,118, 33, 40, 40,232,151,149, 43, 87,110, 33,132,228, 80, 20,165,116, 51,162,124,
+129, 64,240,170,175,175,239, 80,179,217,220,137, 16, 2,129, 64,112,185,172,172,236,176,201,100,250, 6, 64,125,196,155,136,207,
+231, 79, 23,139,197, 49,102,179,185, 29, 0,240,249,252,107,122,189,254,176,217,108,254, 18,128,161, 30,156, 18,145, 72, 52,221,
+203,203,107,144,193, 96,104, 7, 0, 34,145,232, 90,101,101,229, 81,131,193,240,165, 85,112,254,209,224, 3,136, 37,132, 8, 0,
+128,199,227,141,236,214,173, 91, 4, 69, 81, 12, 69, 81,132, 16, 66, 93,184,112,161,163,197, 98,161,173,229, 35, 22,192, 47, 0,
+204,127,197, 55, 36, 32, 32, 96, 9,195, 48,161,117,102,154, 68,210,229,242,229,203, 45,183,109,219,102,249,250,235,175,203,167,
+ 76,153,226, 17, 23, 23,199, 95,179,102,205,151,249,249,249,111,215,188,223,223,223,255,115,154,166, 3, 92,249,127,134, 97,138,
+ 75, 74, 74,222,251,163,226, 63,121,178,174,154,185, 59, 41, 73, 18, 5, 32,167,158,229,251,233,113,234, 38, 19, 0, 72,146, 36,
+ 69, 77,214, 77,206, 96,127, 63, 46,175, 29,226,191, 58,166,236, 67, 8, 48,125,144, 39,253,184, 66, 43, 44, 44, 44,105,242,228,
+201,227,218,181,107,199, 39,132,192,100, 50, 65,175,215,183, 60,119,238, 92,191,157, 59,119,118, 81, 42,149, 47,186, 73,249,198,
+220,185,115, 23,127,252,241,199, 1, 2,129,128, 50,153, 76, 81,219,182,109,235, 52,117,234,212,119,214,173, 91,215,240,165,151,
+ 94,242,100,207, 47, 88,176,160,107, 98, 98, 98, 19, 0,159,253, 1,225,228,192,225,159,134,190,168,238,163,245, 17,128,133,117,
+ 9, 45,185,181,241, 44,180, 90,178, 96,183,183,225,196,137, 19,251,248,124, 62,107,209,234,166, 86,171,131,107, 88,193, 28,137,
+172,200,137, 19, 39,246,216,177, 99,199,146,151, 94,122,169, 64, 38,147, 53, 31, 51,102,140,146,162, 40,222,182,109,219, 58, 54,
+109,218, 84, 58,124,248,240,137, 3, 6, 12,152, 69, 8, 57, 77, 81,148,194,197, 72,182,241,243,243,219,181,108,217,178,136,152,
+152, 24, 97, 64, 64, 0, 8, 33,200,203,203, 11, 59,112,224,192,144,143, 62,250,104, 86,105,105,233, 40, 0,105,110, 36, 92, 87,
+169, 84,186,227,163,143, 62,106, 48,100,200, 16,126, 72, 72, 8,116, 58, 29,210,211,211, 7, 30, 62,124,184,207,186,117,235,222,
+214,106,181, 47, 88, 5,134,171,232,230,237,237,189,243,187,185,115,131,187,191,250, 42,223,207,207, 15,132, 16, 40, 20,138,129,
+103, 54,108,232, 55,109,217,178,183, 43, 42, 42,254,229, 40,189,255, 72,136, 68, 34,122,227,198,141, 29, 68, 34, 17, 0,192, 96,
+ 48, 32, 58, 58,154,250,187,188, 33, 20, 69,133,231,229,229,121, 11,133, 66,135,215, 45, 22, 11,250,244,233,211, 88, 40, 20,226,
+179,207, 62, 51, 21, 23, 23,119, 92,189,122,245,229,205,155, 55, 7,124,249,229,151, 47, 0,120, 68,104,209, 52, 29,144,147,147,
+227,144,211, 98,177,192,104, 52,194,108, 54,195, 96, 48,160,117,235,214,127,104,252,147,146, 36,225, 0,222,155, 60, 89,247,174,
+245,212,103, 0,102, 1,184,143,122,126,179,235, 41,112,218,151,183,207,237,126, 63,118, 88,237, 16, 1, 0, 7,175,234, 0,192,
+239,113,211, 85, 46,151,183, 26, 63,126, 60, 95,161, 80, 64, 32, 16,192,104, 52,162,160,160, 0,209,209,209,188, 77,155, 54,181,
+112,151, 47, 42, 42,106, 74, 98, 98, 98,224,193,131, 7,141, 27, 55,110, 52, 12, 26, 52, 72, 48,101,202, 20,175, 62,125,250,180,
+ 14, 15, 15,167,191,253,246, 91,253,209,163, 71, 77, 19, 39, 78, 20, 37, 36, 36, 4, 30, 56,112, 96,120, 90, 90,218,103,191,119,
+ 56, 57,112,248, 7,226, 36,126, 91,226,129,221,215, 41,180, 96, 39,174, 70, 2,128, 64, 32,232, 24, 28, 28,156,100, 54,155, 67,
+172, 86,157,130,194,194,194,207, 76, 38,211, 21,235,189,123, 25,134, 25,225,204,146, 53,113,226,196, 30,135, 14, 29, 90,126,238,
+220,185,138,146,146,146,144,125,251,246,233,102,205,154,149, 5, 0,247,239,223,111, 50,124,248,240,176, 25, 51,102,228, 12, 30,
+ 60,120,101,255,254,253,223, 34,132, 28,165, 40, 74,237, 76,100, 69, 71, 71,167, 36, 39, 39,123,250,248,248, 84,187, 16, 25, 25,
+137,183,222,122, 75, 56, 98,196,136,166,207, 61,247,220,217,140,140,140,222, 0,174,187, 34,136,154, 53,107,118,236,196,137, 19,
+ 30,190,190,190, 40, 47, 47, 71, 65, 65, 1, 52, 26, 13,188,188,188,240,210, 75, 47, 9,251,246,234,217,112,198,204,183,143,229,
+228,230, 14,116, 81,108,117,235,217,166,205,177,205, 9, 9, 30,166,135, 15, 33,149, 74,161, 82,169, 0, 0,158,158,158,232,210,
+184, 49,255,210,134, 13, 97, 19,230,204, 57,246,203,237,219, 3,255, 32,177, 37,182,238,245, 0,246,243,120,188,145, 34,145,136,
+ 30, 57,114, 36,142, 29, 59, 70,233,116, 58,190,213,186, 99, 30, 57,114, 36,164, 82, 41, 12, 6,135,200,170, 5, 0, 0, 32, 0,
+ 73, 68, 65, 84, 3,131,170,161, 67,243, 95,249, 45, 17,137, 68,200,200,200,168,118, 78,169, 84, 66,161, 80,160,164,164, 4,122,
+189, 30,229,229,229, 96, 24,134,146, 74,165, 10,134, 97, 64,211,116, 77, 1, 80, 13, 66,161, 16,183,111,223,174,118,206,108, 54,
+ 67,173, 86, 67,175,215,195,104, 52, 66,169, 84, 74, 61, 61, 61,155, 5, 4, 4,228, 0,216, 91, 90, 90,250, 89, 97, 97,225,131,
+223, 57,250,197,172, 32, 74, 74,146,220, 3, 32,250, 51,114,218, 89,178,194,172,199,191, 62,161,176,178,120,184,255,138,174,145,
+213, 58,150,249, 4,248, 24, 0, 56,125,250, 52, 10, 11, 11, 81, 92, 92, 12,133, 66,129,240,240,112, 16, 66,220, 30,142,203,200,
+200,248,170,109,219,182,212,141, 27, 55, 14, 3, 88,179,109,219,182, 87, 74, 75, 75,227,103,207,158,237,247,233,167,159,150,206,
+153, 51, 39, 17,192,247,219,182,109,123,179, 85,171, 86, 67,111,222,188,185,238,143, 8, 39, 7, 14, 79, 26,132,144,174, 0, 2,
+217,186,197, 90,239,250,219, 29, 95,165, 40,202, 96,119,159,193, 90, 55,212,220,179, 96,143, 21, 20, 69,253, 98,247,156,130,162,
+168, 95,234, 27,204, 26,251,170, 78, 55, 0,236,223,191,159,176,155,163, 39,131,130,130,102, 14, 24, 48, 96,121,106,106,106,235,
+252,252,124,223,252,252,124,223,212,212,212,214, 3, 6, 12, 88, 30, 20, 20, 52,211, 46, 33,106, 62,122,204,238,154, 48, 37, 37,
+ 37, 98,215,174, 93,137,199,142, 29,171,232,216,177,163,225,196,137, 19,230,193,131, 7, 23, 89, 27,104,243,224,193,131,139,126,
+254,249,103, 75,247,238,221,165,135, 14, 29,202, 62,123,246,236,231, 59,118,236, 8, 38,132,240, 28,113, 90, 33,240,241,241,217,
+115,234,212,169, 71, 68,150, 61, 26, 54,108,136,253,251,247,123,249,248,248,236, 5, 32,172, 45,156, 86, 72, 36, 18,201,206,159,
+127,254,217,195,211,211, 19, 69, 69, 69, 16, 8, 4, 8, 10, 10, 66, 69, 69, 5, 10,242,243,241,224,206, 29,208, 6, 3,190,248,
+228, 99, 79,169, 84,186,195, 65,101,255, 8,167,183,183,247,206,205, 75,150,120,148, 28, 59,134, 95, 23, 47,134,209,104,180, 13,
+185, 26,141, 70,156,141,139,131,226,248,113,124,187, 96,129,135,183,183,247, 78, 0, 18, 39,156, 79, 2,246,156,113, 0, 74,173,
+ 91, 28,128,115,209,209,209,169,233,233,233,232,221,187, 55,182,111,223,222,126,246,236,217,113,179,103,207,142,219,190,125,123,
+251,222,189,123, 35, 61, 61, 29,209,209,209,169,168,238,159,245,180,195,249,212, 56, 45, 22, 75,181,141, 97,126,107, 99, 66, 67,
+ 67,139,118,237,218,133,151, 94,122,137, 22,137, 68,249, 99,199,142, 21,159, 57,115,134, 88, 69,166,203,225,212,233,116,208,106,
+181, 80,171,213,184,127,255,190,116,217,178,101,189, 22, 46, 92, 24,117,236,216,177,176,249,243,231, 79, 11, 12, 12,188, 28, 28,
+ 28, 28,241, 59,199,221, 88,227,247, 23, 0,114,221,180, 16, 61,109, 78, 98,125, 30,147,117,147, 59,216, 85,176,238,242,214,149,
+158, 5,214,176,170, 1, 60,120,156,178, 52, 96,192,128,182, 81, 81, 81,193,219,110,248,162, 76,216, 18,140,208, 7,140,208, 7,
+ 22,255,174,200, 16, 61,143, 70,141, 26, 5,123,120,120,244,112, 51,156, 27,111,220,184,241,140,181,167, 92, 2, 96,249,156, 57,
+115, 62,162, 40,234,244,156, 57,115, 62, 6,176,220,122,126,241,205,155, 55,187, 3,216,252, 7,133,243, 47,241,190,115,156,127,
+ 46, 78, 39, 90, 36,144,162,168,253, 20, 69,237,159, 55,111, 94,127, 0,254, 53,142,159,181,191, 15,128,200,209,158,221,236,206,
+ 7, 18, 66,134,217, 61, 23, 88,207,224, 83, 14,182,223,132, 22, 0,196,198,198, 82,177,177,177,236,133,139, 20, 69,237, 3,112,
+ 81, 32, 16,116,236,208,161,195,200,159,126,250,201, 51, 48,240,183,255, 15, 12, 12,196,142, 29, 59, 60,219,180,105, 51, 82, 32,
+ 16,116, 4,112,209,203,203,107, 95, 29, 86, 24,159,184,184,184,209,147, 38, 77,170,236,216,177, 35, 0,148,167,165,165,201,186,
+119,239,174, 54,155,205,148,217,108,166,186,119,239,174, 78, 75, 75,147,153, 76, 38,101,215,174, 93,229,207, 61,247, 92,214,123,
+239,189, 55,209,129,224,176,199,248,165, 75,151,134,251,250,250,214,165,132,161, 84, 42, 17, 28, 28,140,184,184,184, 16,129, 64,
+240, 90, 93,169,197,231,243,167, 47, 93,186, 52,200,199,199, 7,101,101,101, 8, 15, 15,135,193, 96,192,237,219,183,161, 83,171,
+ 96, 82, 86,194, 84, 89, 14,197,189,187,240, 17,240, 49,113, 68,108, 48,159,207,159,238,196, 90, 50,253,155, 57,115,130, 13, 89,
+ 89,184,191,125, 59, 44,230, 71,141, 63,102,163, 17,215,254,247, 63,232,114,114,144,248,250,235,193, 34,145,104,250,239,108,201,
+250,148, 16, 34, 37,132, 72, 41,138, 90,217,163, 71,143, 77, 82,169, 52, 46, 33, 33, 33,230,200,145, 35, 67,146,147,147,251,153,
+205,102,129,217,108, 22,156, 62,125,186,183, 78,167,227,139,197, 98,240,249,124,130,191, 41, 4, 2, 1,132, 66, 33,164, 82, 41,
+122,245,234,117,111,253,250,245,166,240,240,112,193,206,157, 59,125, 67, 67, 67,229,107,214,172, 41, 87, 42,149, 75, 93,229, 51,
+ 26,141,208,235,245,208,106,181,208,233,116, 56,113,226, 68,227, 25, 51,102,240,117, 58,157,101,248,240,225,165, 38,147, 73, 63,
+103,206, 28, 47, 63, 63,191, 89,191,103, 60, 39, 79,214, 49, 86,203,211, 77,171,104,201,196, 99,250, 60, 61, 13, 78, 0, 6,171,
+ 79, 22,139, 0, 43,183,225, 9, 37,133, 25,128,202, 42,180,244, 53,222,143,118,118, 22, 95,167, 40, 47, 47, 95,247,205, 55,223,
+132,211, 98, 31,156, 49, 12,197, 22,230, 35, 28,241, 94,131,162,136,247, 17, 20, 30,133,113,227,198, 5, 17, 66,214, 60,129, 48,
+175, 6,208, 7,192,202,250, 60,252, 59,132, 51, 66, 46,151,111,247,244,244, 60, 35,151,203,183,195, 58, 60,251, 56, 24, 20,133,
+129, 35, 90,209, 57,131,154,130,140,104, 69,231, 12,138,226,150, 26,248,187,160,134, 22,177,135,130, 16, 18, 75, 8,137, 77, 76,
+ 76, 92, 98,215,190,179,199, 82, 23, 45, 99,177,132,144,216,106, 10,169, 74, 96, 61,182,209,205,193, 86,165, 41,236,149,164, 93,
+228,108,179, 11,131,131,131,147,146,146,146, 60,107, 50,230,231,231,163,178,178, 18, 31,126,248,161,231,164, 73,147,222,206,201,
+201,153,236, 36, 16,162,130,130,130, 78, 19, 38, 76,144, 24,141,198, 50,134, 97,232,202,202, 74,190,183,183,183,133,189,193,219,
+219,219, 82, 81, 81, 33, 80,171,213, 60,139,197,162,159, 52,105,146,232,245,215, 95,239, 2,128, 87, 27,105, 96, 96,224,160,161,
+ 67,135,214, 58,116, 96, 50,153,160, 86,171,161, 86,171, 97, 52, 26,209,171, 87, 47,241,250,245,235, 7, 23, 21, 21,253,183, 86,
+197, 33, 22, 15, 26, 52,104,144,160,180,180, 20,222,222,222,120,240,224, 1, 50, 51, 51,161, 87,169, 96, 84, 85,194,168, 82,194,
+172,172, 4,169,172, 64,201,221, 91,232,222,170,165,240, 7,177, 56, 70,173, 86,127, 94, 27,167,151,151,215,160,238,175,188,194,
+151,203,229,232, 55,161,106,158,193,161, 86,173, 64, 44, 22, 48, 22, 11, 44,102, 51, 98,110,223,134,201,100, 2, 77,211,232, 90,
+ 90,202,247,218,176, 97,144, 66,161, 88,254, 71, 20,118,177, 88,204,223,184,113,227,120,145, 72, 4, 66, 8,101, 48, 24,112,228,
+200,145,127,220, 75, 47, 18,137, 32,145, 72, 96, 52, 26, 17, 25, 25,169,157, 48, 97, 66,202, 39,159,124,210,136,166,105,185, 80,
+ 40,252,169,164,164,100, 73,126,126,254,125, 87,249, 76, 38, 19, 12, 6, 3, 12, 6, 3,180, 90, 45,238,221,187, 23,210,184,113,
+ 99, 42, 46, 46,206,162,209,104,154,172, 90,181, 42,227,200,145, 35,178,165, 75,151,142, 1,240,214,239, 29,223,201,147,117,173,
+ 0,180, 74, 74,146, 8,173,150, 95,195,159,140,147,160,202,241, 29, 73,146,164,116, 0,138, 39, 40,178, 68, 0,188, 27,249,243,
+213, 2, 30, 84, 0, 60,173,162, 96, 12, 69, 81,221, 91,183,110,237,155,158,158, 94, 70, 8, 57, 15, 96, 11,128,252,186,200, 24,
+134,161, 24,134,193,212,110,229,136,235,193,131,201, 84,129,138,138, 10, 60,120,240, 0,105,105,105,184,112, 33,173,190,239,230,
+107, 30, 30, 30,131, 37, 18, 73,164,217,108,166, 85, 42,213, 3,141, 70,115,140, 97,152,117,168,135,143,218,211, 10, 39, 11,185,
+ 92,190,108,254,252,249, 61,189,189,189,113,229,202,149, 38, 91,183,110, 93,166, 86,171, 31,203,185, 94, 34,160,191,253,124,197,
+154,176,176, 32, 31, 92, 77,254, 49,108,201,218,109,223, 2, 76, 56, 39, 83,254,250,168,161, 69,236,197,208, 47,132,144, 97, 20,
+ 69,237,175, 41,148,220, 50, 59, 61,230,243, 78, 44, 90, 53, 63, 44, 93, 93,104,213,162, 32, 97, 54,155, 67,236, 45, 89,132, 16,
+228,231,231, 35, 55, 55, 23, 10,133, 2,190,190,190, 48, 26,141, 33,174,212, 15, 74,165,178,155,191,191,191, 70, 32, 16,232,181,
+ 90, 45,100, 50, 25, 35, 16, 8,136,245,127, 40,235,172, 69,139, 94,175,167,248,124,190,201,211,211,211, 67,175,215,183, 68, 29,
+190,100,132,144,110,254,254,254, 14,175,233,245,122,168, 84, 42,168,213,106,168, 84, 42,232,245,122, 4, 7, 7,195,108, 54,119,
+170,179, 75,107, 54,183, 11, 12, 12, 68, 94, 94, 30,164, 82, 41,114,114,114, 96, 80, 41, 97, 84, 42, 97, 86, 87,194, 82, 81, 1,
+166,178, 18,140,186, 18, 38,131, 6, 97,205, 91,129,157,145, 88,107, 55,220, 96,104,231,239,239, 15,181,250, 55,119, 51, 98, 21,
+ 88,102,179, 25,102,171,115, 52, 59,156, 24, 16, 16, 0,118, 70,226,239, 4, 61,128,217, 52, 77,175, 20,139,197,252,105,211,166,
+ 33, 63, 63,191, 90,153,152, 54,109,154,205, 39,171, 79,159, 62,167, 37, 18,137, 89,161, 80, 64,175,215, 11,254,174, 47, 61, 69,
+ 81,160, 40,170, 42,143,204,102, 4, 4, 4,168,139,139,139, 47,148,151,151,143,175, 15,159,201,100, 98,103,116, 65,171,213,130,
+ 16,130, 43, 87,174, 64, 34,145, 8, 44, 22,203, 13,179,217, 44, 19, 8, 4,160,173,206, 95,191, 23,172, 51, 2, 63, 3, 16,110,
+181, 16,189,134, 42,135,243, 92, 7, 21,137, 75, 73,231, 34,167,251,194, 77, 55,153,181, 52,229,162,126,195,145,142,208,175,165,
+143,232,243,132,238, 65, 62, 29,134,203,213, 50, 17, 79,205, 60,232, 16,249,221,167,105, 91, 39, 77,124,205,115,209,162, 69, 17,
+ 1, 1, 1,146,140,140, 12,221,199, 31,127,220,120,227,198,141, 20,170,134,233,106,197,195,135, 15,119,207,159, 63,223,111,232,
+208,161, 77,196, 98, 49, 85, 81, 81, 1,133, 66,129,194,194, 66,100,102,102,146,171, 87,175,222,211,235,245,219,221, 9,100,131,
+ 6, 13,214,143, 31, 63,126, 82,231,206,157, 5,172,133, 84,173, 86,119, 60,117,234,212,136, 67,135, 14,245, 86,171,213,110,151,
+203,236,236,236,237, 31,124,240,129,252,249,231,159,111, 41, 22,139,233, 39, 17, 78,123,208, 52, 29,236,225,225,129, 99,199,142,
+193,199,199, 7, 52, 77, 7, 63,110,121,213, 25,153,176,208, 16,127,232,206,126,142,150,129, 17,208, 25,153, 48, 78,162,252,125,
+ 44, 90,181,180,245, 93, 89,139,148, 19,177,164,141,143,143,159, 79, 81,212,254,248,248,248,249,142, 44, 90,214,159, 22,251,251,
+236,238,215, 63,105,177,229,214, 66,147, 12,195, 32, 55, 55, 23,121,121,121,200,205,205, 69, 73, 73, 9,104,154, 6, 33,196,149,
+217,103,132,162, 40,230,232,209,163,190, 41, 41, 41,234,174, 93,187,150,179,254, 47,102,179,153, 50,153, 76,148,213, 47,134,122,
+240,224,129,240,204,153, 51, 62, 55,111,222, 12,182,246, 86, 25, 39,166,192, 71,206,177, 2,203,126,211,233,116,144, 72, 36,174,
+169, 14,107, 67,120, 37, 53,181, 74,100,169,148,214, 33,195, 10, 88, 42, 43, 64,212, 74,136, 44, 38,136, 64, 64,233, 52, 46,167,
+159, 61, 88,145,101,180, 10, 45,131,193, 0,147,201, 4,134, 97, 96, 54,255, 33,126,229, 95,181,111,223,190,211,238,221,187,167,
+228,230, 62,218, 22,142, 26, 53, 10,111,189,245, 22,102,204,152,113,115,216,176, 97, 87,127,252,241, 71, 76,159, 62, 29, 12,195,
+116, 0, 80, 1,224,208,223,237,165,215,235,245, 54, 11,148, 78,167,131,209,104, 4,220,248,172, 66,205,178,201,230,173,217,108,
+102,185,169,221,187,119,225,244,233,211,116, 90,218,141,240,105,211,226, 88,135,251,223, 59,170, 57,168,154,185, 39,178, 86, 20,
+ 6, 84,249, 63,213,182,164, 66, 83,212, 61,100, 71,234,226,124, 28,180, 95,219,254,165,119,223,125,119, 16,170,102, 56,223,127,
+ 76,139,214,243, 34,154,250,122,102, 59, 63,201,172,246,254,106, 17,159, 82,221,254,122,190, 42,179,145,151, 58,184,161,204, 16,
+222,216, 39,116,201,146, 79, 26,220,188,121, 75,255,225,135, 31,166,143, 29, 59, 54,104,214,172, 89,173,119,238,220,217, 91,167,
+211,125, 3,160,188, 54,163,203,136, 17, 35,206, 7, 5, 5, 53, 94,187,118,109, 81,118,118,182,175,201,100,146, 27,141, 70, 70,
+173, 86,103,106,181,218, 99, 70,163,241, 24,128, 84,119, 2,235,233,233,217,254,149, 87, 94, 17,148,151,151,131,207,231,195,104,
+ 52,162,168,168, 8, 61,123,246,228,237,219,183,175, 77,125, 18,160,172,172,236,243,111,190,249,230,228,230,205,155, 7,123,121,
+121,117, 22,139,197, 33, 0, 44, 74,165,178, 80,173, 86,255, 90,159,112, 86,171,231, 44,150,194,212,212,212,166, 94, 94, 94,120,
+248,240, 33, 44, 22, 75,225,227,150, 1,137,144,206,190,150,188,175, 97,171,128,198, 56,147,114, 30, 18, 33,157,205, 45,245,245,
+183, 7,235, 67, 5,123, 1,229, 64, 32,165, 36, 36, 36, 72, 19, 19, 19,145,144,144,112,195,145, 69,139, 21, 92, 9, 9, 9, 55,
+216,251,236,238, 79,126,140, 48,214,110,209,170, 77, 65, 2, 85,179, 11, 21, 10,133,175,143,143,143, 77, 96,229,229,229, 33, 47,
+ 47, 15, 34,145, 8, 15, 30, 60,128, 72, 36,202,119,165, 19, 34,149, 74, 47,117,236,216,177,197,253,251,247,133, 31,127,252,113,
+195,212,212, 84,175,158, 61,123,182,149, 74,165, 22, 66, 8,116, 58, 29,157,158,158,238,177,124,249,242,176,110,221,186, 25,186,
+117,235,118,121,219,182,109, 90,212,177,254, 21, 69, 81, 23,243,243,243,155, 68, 70, 70,178,162,173,154,184,178, 23, 92, 64,213,
+144, 39,159,207,191, 92, 87, 64,249,124,254,181,219,183,111, 15,148, 73,196, 48, 40, 43, 97, 84, 85,194,172, 84,194,162,172,128,
+165,162, 2, 80, 87, 66,100, 54, 67, 96, 49, 65, 42,145, 32, 55, 39, 7,124, 62,255, 90, 93,156, 34,145,232, 90, 97, 97,225, 64,
+ 31, 31, 31, 91, 35,106, 50,155,171, 54,139, 5, 6,179,217,102,209, 18, 8, 4,200,206,206,134, 72, 36,186,246,123,151,100,154,
+166, 45,236, 18, 14,181,196, 3,193,193,193, 76,247,238,221, 49,125,250,116, 88, 44, 22,107, 54, 80,253, 0,156, 65,149,127,203,
+ 95, 18,142,196, 45,235,180,174,213,106,161, 82,169, 80, 86, 86,198,151, 74,165, 45,194,194,194,206, 27, 12,134,237,102,179,249,
+219,204,204,204,202,218, 56,173,194,204, 38,186, 24,134, 1, 33, 4, 22,139, 5, 38,147, 9, 66,161,144, 57,117, 42, 25,203,191,
+ 88,134,164,111, 55,146, 17, 35, 70, 80,251,246,237, 3,195, 48, 57,191,115,244, 13, 86,209, 82, 87,165, 81,115, 73,133,247, 81,
+247,146, 10,181,113,218,247,254,236,207, 81, 14,238,121, 4,239,190,251,238, 97, 84, 13, 25, 22, 91,197,220,227,112,126, 86,190,
+229, 19, 9,204, 22,181,254,212,102,213,166, 59,149,234, 69,155, 86, 92, 50,136,120,149, 93,250, 6,183,107,210,184, 5,207,199,
+199,151,254,239,186,149, 37, 63,108,220,145,241,240,225,195,202, 47,191,252,178, 71,139, 22, 45,188,127,253,245,215,176,218,132,
+150, 76, 38,107,246,218,107,175,189, 82, 86, 86, 38, 76, 74, 74,218,150,159,159,127, 9, 85, 75,203,216,207,160, 30, 6,224,123,
+171, 16, 13,182,214,115,103, 0,124, 92, 87,127,141,162, 40,252,252,243,207,143,204, 14,100, 30, 79,157,251, 68, 69, 69,189,116,
+255,254,253,211,133,133,133,255,170,121, 81, 40, 20, 46,106,222,188,121,204,141, 27, 55, 62, 2,112,208, 29, 98,141, 70, 51,103,
+199,142, 29,159,242,120,188, 80,139,197,146,247,255,236, 93,119, 88, 20,215, 23, 61, 51,219,151,222, 97, 5, 65, 65, 84, 20, 53,
+ 63, 75, 52,177,160,177,196, 88, 18, 19,193, 30,141, 49, 26,147, 88, 99,139, 93,212, 24, 53,177, 17,187,198, 32,177, 18, 75, 68,
+ 77,212,216, 21, 27, 6, 27, 54,164, 73, 7, 5, 22,182,239,206,204,239, 15,118,201,178,236,194, 46, 26,141,102,206,247,237,183,
+187, 51,111,206,123,111,234,153,251,238,189, 79,161, 80, 76,123,102,139,150,150, 30,181,100,253,238,205, 10, 53,229, 47, 22,112,
+ 50,148, 90,250, 51, 86,135,188,190,214, 44, 61, 10,140,172, 81, 5, 0, 8,147,255,137,250,135,145,154, 97, 24, 67,217, 2, 35,
+ 43,150,218,196, 10,102,110, 93,193, 51, 36, 75,103, 44,221,227, 44, 89,180,190, 1,240, 38,128, 43,121,121,121,171, 63,254,248,
+227,239,119,236,216,225, 40,149, 74,145,151,151,135,252,252,124,112,185, 92, 56, 57, 57, 97,221,186,117,138,188,188,188,213,198,
+219,160,106, 6,121, 0, 80,122,120,120, 92,139,137,137,241,217,180,105, 19,119,248,240,225,233,189,123,247,110,188,110,221,186,
+ 20, 62,159,207, 80, 20, 69,168, 84, 42, 98,204,152, 49, 65, 43, 87,174, 76,227,112, 56,118, 3, 6, 12, 32,236,237,237,175,160,
+154,180, 1, 5, 5, 5,199, 15, 28, 56,240,225,228,201,147,133,106,181,218,172, 37,203,176,204,197,197, 5, 23, 46, 92, 80, 23,
+ 21, 21, 29,171,193,138,113,252,247, 35,135, 59, 13, 29, 56,144,175, 45,149, 66, 91, 42,133, 78, 42, 5, 85, 90, 12,162, 76, 10,
+ 30,165,131,152, 79,195,199, 79, 4,157,194, 1,135,175, 38,106, 85, 42, 85,181,137, 13,165, 82,233,241,243,209,209,157,223, 12,
+ 8,224, 94, 24, 63, 30, 26,173, 22,239,221,191, 95, 33,174, 52, 26, 13, 14, 54,111, 14,138, 32,240,198,232,209,120,168,211,233,
+164, 82,233,241,127,227,197,112,227,198,141,252, 33, 67,134, 36,208, 52,221, 18, 47,104,210,204, 23, 1,173, 86, 91,197, 26, 69,
+ 81, 84,185,213,177,220,114, 32, 56,124,248,112,167,164,164, 36,254,173, 91,183,112,238,220,185, 55,118,236,216,241,141,191,191,
+127,243,140,140,140,220,154,196,155,185,164,191,208,251, 31,238,217,185, 23,159,127,254, 57,145,155,155,139, 93,187,118,161,166,
+228,169,255, 4,134, 15, 87,210,209,209,162,186, 48,241,123, 50,147, 82,225, 47, 88,153, 82,193, 18,167,114,120,185,149, 76, 20,
+ 93,158,108, 84, 57,188,124, 56, 80, 20, 93,163,165, 12,195,149,195,165,122,135,248,156,231,192, 41,131,142, 18,171,207,236, 44,
+235,125, 36,163, 52, 62, 71,177, 16,192, 31, 80, 82,204,195,235,204,141, 86,173, 92, 61, 0, 64,165,164,124,130,131,131,195,184,
+ 92,174, 0, 0, 28, 28, 28, 90,185,187,187,175,123,242,228, 73, 7,115,199,180, 79,159, 62,237,188,188,188,254,119,244,232,209,
+196,156,156,156,219, 0, 46,155, 22, 10, 10, 10,154,125,247,238,221, 54, 60, 30,143,168,225, 28, 1, 0,132,133,133, 53, 18, 10,
+133,238, 71, 30, 56, 67,202,111, 0,134, 83, 2,112, 69,160, 92, 90, 32,157,223, 4,126,126,151,220,139,138,138,222, 40, 41, 41,
+ 73,180,241,208,119,249,240,195, 15,127,138,142,142,246, 11, 11, 11, 99,174, 95,191, 78,154,142, 34, 4, 5, 5,245,136,143,143,
+111,249,217,103,159,109,216,189,123,247, 23,168, 28,105, 91, 19,210,245,249, 6,159, 27,142, 39,227, 4, 64, 5,232,109,102,172,
+ 66,249, 15,192,150,148, 11,207,144,158,225,153,154,104,209,128, 97, 97,249,155,250,156, 88,111,106,181,218,191,110,220,184,113,
+112,192,128, 1,101, 79,158, 60,129,187,187, 59,234,213,171, 7,130, 32,176,110,221, 58, 69,106,106,234,175,250, 92, 90,111,102,
+103,103,191,175, 23, 91,230, 80,186,102,205,154,221,219,183,111,119, 73, 72, 72,224,232,116, 58,167,198,141, 27,203, 47, 94,188,
+232,192,227,241, 24, 62,159, 79, 39, 36, 36,216, 5, 5, 5, 41, 9,130, 16,254,249,231,159, 79, 46, 93,186,228, 63,117,234,212,
+173,168, 28, 38,110,138,157,139, 22, 45,202, 74, 73, 73,129, 74,165,130, 84, 42, 69, 73, 73, 73,197,167,184,184, 24, 37, 37, 37,
+224,241,120,200,205,205,197,190,125,251,114,244, 89,226,171,179,108,172,253,113,221,250,130,156,140,116, 56,217,137,161,147, 22,
+131, 42,121, 2,148,150, 64,160,213,192,158, 71,161,110, 3, 49, 68,118, 78,200,147,150, 33,250,226,213, 92,125,150,120,203,230,
+ 2,181,122,237,184,149, 43,243,116,124, 62, 2, 34, 34,160,209, 15, 21, 26, 11, 45,138, 32,224,223,181, 43, 72,103,103,124,251,
+235,175,121,250, 44,241, 47, 20, 52, 77,115,212,106,117,117,253, 0, 77,211,153, 73, 73, 73,187, 1,156, 38, 8,130, 33, 8,130,
+ 65,121,178,182,178, 87,249, 66,214,106,181,152, 59,119, 46,248,124, 62,230,206,157,139,121,243,230,225,251,239,191,199,250,245,
+235,241,203, 47,191,224,240,225,195,245,207,159, 63,207, 63,123,246, 44,179,100,201,146,194,160,160, 32,206,232,209,163, 93,196,
+ 98,241,164,234, 56,167, 77,155, 6, 71, 71, 71, 76,155, 54, 13,203,150, 45,195,150, 45, 91,112,240,224, 65, 92,184,112, 1, 28,
+ 14,135,206,204,124, 12,165, 82,201,172, 89,179, 38,235,224,193,131,138,213,171, 87,131,203,229, 18, 47,233, 38, 49, 73, 47,168,
+140, 45, 65,166, 41, 21,158, 0, 88,133,154,125,163, 44,113, 66, 20, 29, 93, 87, 47,142,146,141, 4,209, 33, 0,147, 81,125,120,
+181,129,227, 11, 0, 62,207,129,115,150,120,200,156, 36,151,205,247, 30,197,231, 40,102, 1,248,221,208, 39, 39, 39, 39,241,254,
+253, 7,184, 0,240,107,236, 62,222,253,251,247,157, 15, 28, 56, 32,242,242,242,194, 47,191,252, 34, 18,139,197, 94, 22, 56,169,
+131, 7, 15,170, 4, 2,129,251,168, 81,163,122,182,105,211,102,162,254, 69,180, 43,128,166, 40,143, 94,236,254,232,209,163, 59,
+ 30, 30, 30, 15,142, 29, 59, 38,179,230, 0,149,150,150,110,253,249,231,159,235, 61,165,220,112, 68,246, 33,162,233,229, 56,236,
+242, 19,210, 3,230,193,174, 78,107, 12, 30, 60,184, 14, 69, 81,155,109, 60,238,131,251,245,235,247,115,116,116,180,223,168, 81,
+163,114,175, 95,191,158, 7, 32, 26, 64,140,241,231,238,221,187,133, 31,127,252,113,206,230,205,155, 37, 3, 6, 12, 88, 15,160,
+ 63,251,232,103,193,162,242,187, 16,106,138, 58, 52,243,192,173,248,157,159,159,191,166,168,168,232,194,195,135, 15, 39,168,213,
+106, 9, 65, 16, 12,159,207,207,205,203,203, 91,109,148,176,212,156, 95, 73, 55,232,115,109, 16, 4,161,101, 24, 38,179, 75,151,
+ 46,147,186,118,237, 26, 21, 23, 23,167,236,220,185, 51, 98, 99, 99, 61,186,116,233, 34,167,105,154, 57,114,228,136,199,187,239,
+190, 43, 63,125,250,180,108,204,152, 49,141, 27, 54,108, 56,122,218,180,105, 5, 4, 65,208,230, 56, 13,207,178,226,226,226,126,
+ 61,123,246,188,240,235,175,191, 58,185,184,184, 64,167,211, 65, 46,151, 67, 46,151,131, 97, 24, 56, 59, 59,163,160,160, 0, 11,
+ 23, 46,148,150,148,148,124, 96, 70,184,153,114, 42,149, 74,101,255, 47, 38, 78, 62,190,122,193, 92, 71,255,250,245,241,228,158,
+ 18, 58,165, 28, 60,134, 68,221, 70,206,224, 11,196,120,120,191, 20, 83,118,239, 47, 85, 40,149,225,102,222,150,171,112,150,148,
+148,244, 31, 62,111,222,137, 13, 83,167, 58,252,207,219, 27, 28, 14, 7, 42,149, 10, 20, 69,129,199,227, 33,116,248,112,240, 61,
+ 61, 49,123,247,110,153, 84, 42,237,143,170, 83,241,152,114, 62, 15, 24,115,126,113,227,198,141,143, 67, 66, 66, 48,118,236, 88,
+244,235,215,175, 82,193, 3, 7, 14, 96,253,250,245, 80,169, 84, 31, 3,184, 14, 96, 29,202,135, 58, 96, 34,178,254,233,118, 62,
+119, 78,138,162,138,238,223,191,239,180,124,249,114, 66,163,209, 96,193,130, 5, 48, 8, 78,195,121,253,229,151, 95,214,113,116,
+116,196,252,249,243,213,133,133,133,239, 44, 91,182,236,100, 76, 76,140,199,214,173, 91, 7, 3,152,102,202, 73,211,116,254,205,
+155, 55, 29, 55,108,216, 64,234,116, 58,172, 88,177,162,202,240,228,200,145, 35,161,209,104,193,225,112,213, 74,165,170,169, 88,
+ 44, 78,118,119,119, 23, 51,149,157,187, 94,228,254,244, 69,121, 10, 3, 99,199,119,181,177,127, 22, 44,167, 84,176,133,179, 64,
+ 20, 29,221, 89, 57,124,248,105,189, 32, 74,210,151,137, 53,152,244,109,224, 52, 8,194,218,112, 30,215,127,106,132, 82,169, 68,
+ 65, 65, 1, 10, 11, 11,225,226,226, 2, 14,135, 67, 88,106,167, 74,165,186, 53,101,202,148, 27,155, 55,111,238, 22, 31, 31,223,
+247,236,217,179, 93, 78,156, 56,161, 76, 79, 79,215,105,181, 90, 70, 34,145,112, 59,116,232, 32,234,213,171,151,189, 80, 40, 36,
+103,205,154, 85,184,120,241, 98, 15, 84,246, 97, 51,237, 59,135, 32, 8,124,221,169, 20,211,186,112,160, 86,107, 80, 92, 92,140,
+172,172, 76,220,185,115, 7,241,241,247,192, 48, 12,105,195,113,119, 7, 48,107,215,174, 93,190, 2,129,128,216,189,123,119,157,
+221,187,119,215,104, 73,221,177, 99, 71,157, 61,123,246, 68,234, 71, 47, 50, 95,197,235,157,229,252,215,114,190,202, 48,205, 12,
+143, 26,133,150,254, 62,255, 38,244,147,146,106,181,218, 43,102, 82, 56,124, 3, 96,174,145, 21,172, 38,115,158,148, 97,152,115,
+221,186,117,251,178,107,215,174, 43,123,244,232,145,147,147,147, 19,184, 98,197, 10, 63,157, 78,167,185,115,231, 14,153,156,156,
+156,126,237,218,181, 6, 13, 27, 54, 28,125,247,238,221, 51, 4, 65,104,172,232,224,157,228,228,228,246, 93,186,116,217, 55,122,
+244,104,255,118,237,218, 9, 92, 92, 92,192,229,114,145,146,146,130,196,196, 68,245,158, 61,123, 50,139,139,139,109,153,130,231,
+ 74, 90, 86, 86,247, 1, 95, 77,248,117,116,191,190, 30,109, 27, 55, 18, 72, 36, 18, 64,161,192,189,140, 92, 92,186,151,168,217,
+114,238, 82,129, 74,165,234, 15,235,167,224,185,114,237,225,195,110,239, 76,157,250,107,228,208,161,222,200,201,225, 74, 36, 18,
+ 8, 4, 2,164,166,166, 34,153,166,117, 75, 55,110,204,211,139,172, 23,157, 21, 94, 8, 96, 57, 77,211, 92, 0, 16,139,197, 24,
+ 55,110, 28,140,167,220, 89,191,126, 61, 20, 10, 5, 0,112, 9,130, 88, 14,224,167, 87,221,138,101,192,211,167, 79,103,191,247,
+222,123, 75,184, 92,174,197,172,183,174,174,174, 40, 45, 45,133, 78,167,163,178,178,178,238,185,186,186,130,199,227,129, 97, 24,
+179,215,209,147, 39, 79,102,247,239,223,127, 17, 73,146,150, 44, 31,112,114,114, 74, 63,121,242,100,240,103,159,125, 70,110,219,
+182, 45,101,212,168, 81,194,147, 39, 79, 82, 12,195,236,123,209,251,160, 99,199,157,192,134,225,225, 0,194,129, 42, 14,239, 89,
+250,101, 54,165, 84,232,216,113, 39, 54,224,111, 78,227, 97, 60,131, 32,210, 91,161,154,136,162,163, 87,162,220,207,162, 90,238,
+142, 59, 59, 98,195,112, 60, 87, 78,107, 96,172,125,101, 50, 25, 40,138,170,206,154,247, 87,108,108,236,202,107,215,174,121,126,
+249,229,151,129, 67,135, 14,117,234,210,165,139,131,113, 1,133, 66, 65, 31, 58,116, 72,182,126,253,250,146,115,231,206,165,141,
+ 28, 57,178, 93,117,237,204,200,200, 56,252,237,183,223, 58,247,234,213,171, 33,128, 10,255,172,130,130, 2,164,167,167,227,214,
+173, 91,233, 26,141,230, 55, 27,186,244, 4, 64,228,160, 65,131,150,111,223,190,189,206,168, 81,163,114,247,236,217,115, 11,229,
+ 9,139, 77,225,210,175, 95,191,230,219,183,111,151,140, 26, 53, 42, 23,229,126,100,153, 96,193,130,133, 1,157, 81,213, 79,171,
+218,145,137,159,213,106, 53,163, 84, 42, 25,185, 92,206,148,149,149, 49, 48, 63, 11,252,193,236,236,108, 38, 51, 51,147,201,200,
+200, 96,210,210,210, 24, 0,191,152, 40, 94,115, 55, 44,251, 29, 59,118, 52,240,245,245, 93, 96,103,103,247, 7,135,195,145,114,
+ 56, 28,169, 80, 40,252,221,221,221,125,222,210,165, 75,125, 25,134,225, 87,163,162, 45,129,203,227,241, 62,243,242,242, 58,232,
+230,230,150,233,234,234,154,233,229,229,117,144,199,227,125, 14,128, 87,131, 50,183, 4, 17,151,203,157, 98,111,111,127, 92, 40,
+ 20,230, 11,133,194,124,123,123,251,227, 92, 46,119, 10,170, 79,164, 90, 45,167, 64, 32,152,226,233,233,121,220,201,201, 41,223,
+201,201, 41,223,211,211,243,184, 64, 32,120, 22,206,103,121, 43, 49, 8, 45, 57,163, 7, 65, 16,218, 55,222,120, 99, 67,203,150,
+ 45,215,181,108,217,114, 93,139, 22, 45, 54,233,173,146,140,222,218, 34,135,229,228,141,255,100, 59, 95, 26,103,104,104,104,204,
+246,237,219,233,217,179,103, 75, 27, 54,108,248,116,246,236,217,210,237,219,183,211,161,161,161, 49,181,229,244,246,246, 14, 8,
+ 13, 13,125,186,121,243,102,221,253,251,247,153,205,155, 55,235, 66, 67, 67,159,154,100,134,127, 17,125, 39, 0, 4,233,173, 63,
+191, 1,216,139,114,231,119, 95, 0,196,112,229,112, 70, 31,125,248, 7,128, 30, 22,142,189,181,156,126,202,225,195, 25,189, 79,
+213, 49, 0, 73, 70,255,195, 80,217,255,235, 69,112,154, 69,211,166, 77, 31, 50, 70, 80,171,213, 76, 65, 65, 1,115,255,254,125,
+230,220,185,115,140,159,159,223, 67, 43, 56,221, 1,140, 1,112,200,199,199,231,238, 91,111,189,149,209,190,125,251,140,128,128,
+128, 20, 30,143, 23,143,242, 12,239,161,250,207,114, 0, 13,107,224,124,203,197,197,229, 91, 63, 63,191,223,130,131,131, 47,212,
+171, 87, 47,222,205,205, 45, 78, 36, 18,125,135,191, 51, 99,219,122,206,119,249,240,195, 15,211,203,202,202,168, 86,173, 90,221,
+ 53,183, 81, 72, 72,200,249,178,178, 50,106,224,192,129,153, 0,250,252, 23,174,119,150,243,165,112,254,167, 16,172, 23, 76, 7,
+141, 62,223,152, 41,247,141, 73,153,159,245,219,214,120, 32, 24,134,225, 48, 12, 99,207, 48,140, 51,195, 48,110, 12,195,184, 48,
+ 12,227,192, 48,140,176, 6,243, 55,123, 98,255,115,156, 95,232, 5,148, 92,255,219, 20, 53,173,127,173,247,167,175,175,175,107,
+155, 54,109,190,218,191,127,255,148, 71,143, 30, 77,217,191,127,255,148, 54,109,218,124,229,235,235,235,250, 44,237,244,246,246,
+ 14,104,210,164, 73, 84, 72, 72, 72,102,147, 38, 77,162, 76, 68,214,139,236,187, 64, 47, 98, 66,244,159, 64,253, 50, 2,229,185,
+176,214,234,133, 77,144,133, 55, 53, 91, 56, 13,124,191, 1,120, 87,255,249, 77,191,204,239, 37,112, 86, 65,253,250,245,143, 54,
+111,222,252, 97,139, 22, 45,146, 91,180,104,241,176,105,211,166, 15, 27, 55,110,252, 48, 40, 40,232, 97,221,186,117, 31,122,120,
+120, 28,173,197, 49,114, 3, 32, 65,213,105,192, 94,246, 57,223, 57, 52, 52,244,146, 72, 36, 50,155, 27,140,203,229, 70,182,104,
+209,226, 38,202, 35, 37,217,251, 39,203,201, 10,173,127, 17,216,147,240,213,227, 20,162,250,105, 70,106, 90,207,238,207, 87,155,
+211,236, 92, 93,122, 33, 19,168, 23, 56,130,231,192,105,204,103, 56,167,130,140, 68,211,203,224,100,207, 37,150,147,229,100,133,
+214,115, 7,151,221, 5, 44, 76,160,122,198,245, 44, 94,109,216,146, 19,235, 89, 56,205,241, 61,122,201,156, 44, 88,176, 96,241,
+188,238,157,157, 1,156, 49,188, 21, 90, 82,165,182, 68, 19,212, 70,217,158, 96, 57, 89, 78,150,147,229,100, 57, 89, 78,150,243,
+ 63,199,105,192, 74, 11,203,239,153,252,223,244,138, 10,175, 23,146,166,135, 53,171,178,156, 44, 39,203,201,114,178,156, 44, 39,
+203, 89, 91,140,126, 69, 69, 86,152,225, 15, 59,116,200,130, 5, 11, 22, 44, 88,176, 96,241,252, 80,115, 30,173,189,123,247,114,
+ 12,191, 7, 13, 26, 52,146,162,168,175, 12,255, 57, 28,206,143,187,118,237,250,169,186, 26, 34, 34, 34,168,234, 56,205,161,166,
+122,204,113, 54,109,232, 52,214,221,217,110, 66,113,137,124, 85, 74, 54,117, 78,169, 84, 54, 49,172, 19,137, 68, 73, 63,253,244,
+211,131,231,221,206,145, 35, 71, 54, 52,173,167,158, 31,175,179,155,163,104,220,211,226,178, 21,183, 31,150,109, 98,207,177,151,
+ 2, 15, 0,125, 28, 69,252,247,155,186,240,223,186,245, 68,121, 81,166,161, 14,161, 60, 26,182,232,117,236,176,143,143, 79, 99,
+ 39, 39,167, 97, 0,154,202,229,114, 47, 59, 59,187,124, 0,119,164, 82,105, 76,110,110,238, 61,107,121,194,234, 33, 29,128,191,
+254,111,198,153, 52, 4, 88,179,174, 38,244, 8,130,146, 1,132, 4, 1,205,177,228,191,157,209,223,109, 0, 37,205, 84, 93,222,
+163, 1,212, 12, 3, 62, 1,168,142, 61,130,232, 53, 58, 84, 78, 0,186,163, 60,133,195, 13,148,167,159,144,179,151, 44, 11, 22,
+175, 21, 76,135, 10, 43,254,115, 45,136,137, 78,124, 46, 17,197,128,113, 1, 24,119,149, 74,197, 19, 8, 4, 80,171,213,176,179,
+ 19,175, 29, 51,106,228, 2,144, 40,214,234, 48,238,167,159,126,170,245, 76,215,182,212, 3,224,148,233,246,174, 78,226, 69,167,
+ 15, 77,119,237,212,123,233,119,234,212,194,105,165,165,165,164, 80, 40,132, 74,165,130,179,179,115,251,177,163, 71,183, 34,121,
+140,154,207,183,191,184,114,229,202,220,218,182,115,210,164, 73, 62, 26,141,242,109,154,166, 5,106,181, 90,104, 90,143,179,157,
+253,210,211,135,166,219,133,245,249,110, 1,192, 10,173,151, 0, 65,128,171,253,153, 85,131, 58,135,188,213, 52, 24,244,157,179,
+ 80,170, 53,239,159,206, 44,123,127, 94,124,246,228,204, 50, 77, 75, 60,135,132,149,255, 34,112, 2, 3, 3,191,244,244,244, 28,
+184,113,227, 70,126, 96, 96, 32, 68, 34, 17, 20, 10,133,228,209,163, 71,146,177, 99,199,134,137,197,226,221, 41, 41, 41,107, 97,
+221, 68,112,254,167,127,158, 3, 0,104, 63,108,161, 63,202, 39,139,150,155,174,235, 60, 98,161, 63,128,169,168, 60, 49,114, 14,
+202, 83, 40,152,187,235, 8,226,182,127,143,247, 63,158,194, 5, 48,182,162,241, 36,240,251, 47,171,209,115,208,132, 74,203, 9,
+ 6,220, 67,219,191, 71,159,143,167, 88,156, 71,241,221, 96, 66, 75,211,140, 69, 75, 60, 73, 18,186, 63, 30, 50,230, 38, 24,206,
+ 67,121, 14,176, 42,148, 40,159,208,217,108,249,222,141, 57,121, 26, 45,101, 54,225, 44,159,199,201, 63,124,143,170,178,237,240,
+255, 65,171,165,202,239,173,124, 46,168,131, 41,206,167,103,205,154,197,237,211,167, 15,182,108,217,210, 97,211,166, 77,163, 75,
+ 75, 75,255,212,239,183,100,246,242,101,193,226,181, 22, 92,230,133, 22,151,131, 13,191,253,250, 83,131,188,252, 66, 12,255,236,
+107,236,220,185, 19, 69, 69, 69,112,117,117,133,128,207,231,173, 90, 62,199,199,201,201,222,103,248,232,105, 27, 0, 52,174,109,
+107,108,172, 39,216,116,123, 66, 63,149, 14,151, 67,242, 4, 2, 1,185,123,247,110, 20, 23, 23,195,197,197, 5, 2, 1,143, 92,
+249,221, 55, 98, 39, 39, 7,241,167, 95,204,232,128,242,252, 63,181,130, 90, 93,214, 97,255,206,159,156, 10, 10, 10, 48,226,243,
+105, 48,173,135,207,231, 83,134, 7, 11,123,142,189, 20,204,218, 56,238,227,144,102,142,128,230,246, 5,240, 56, 28,216, 57,187,
+162, 59,151, 3, 14,129, 38,195,255, 72,155, 9, 96,222,235,210,217,192,192,192, 47, 35, 34, 34, 6, 46, 90,180,136, 79,146,229,
+ 41,231,100, 50, 25, 20, 10, 5,124,125,125,113,250,244,105,254,236,217,179, 7, 30, 56,112, 0, 41, 41, 41,107,108,229,191,125,
+251,118, 61,127,127,127, 37, 0,244,109,238,104,186, 46,192,176, 14, 0, 28, 29, 29,107,228,115,119,177, 87,221,190,125,169,169,
+ 97,187, 47,187,250, 82, 22,150, 43, 1,216, 85,199, 69,211, 12,247, 88,212, 88,139,235, 63, 91,180, 67,119, 99,239,185,198,129,
+129,129, 10,227,229, 14, 14, 14,150, 54,241, 46, 43, 43,243, 55, 93,104, 40,175,209, 82, 94,150,234,235, 49,110,189, 89, 1,166,
+165,192,221,177, 99, 7, 0,224,135, 41, 67, 56,155, 47, 23,114,185,220,242, 91,237,242,229,203, 17, 25, 25, 41,248,227,143, 63,
+122,109,223,190,189,215,193,131, 7, 87, 89, 18,170, 44, 88,176,120, 37, 69,150,241,183,101,161, 69, 18,132,163,147,163, 3,194,
+ 7,143,193,209,163,191,163, 83,167, 78, 21,235,234,215,175,143,136,254, 31, 96,215,207, 43, 1,192,241, 89, 90,244,172,245, 20,
+149,200,230,245, 28, 24,181, 48, 35,183, 44, 62, 46, 46, 14, 29, 59,118,172,180,253,224, 1,225,248,101,235,114, 84,147,101,222,
+ 42, 16, 12,201,119,116,178,199,160,225,159,195, 92, 61,163, 71,244,139,123, 55, 98,117,183,188, 39,178,149,236,121,246,226,209,
+192,199,189, 71,243,144,198, 40,218,183, 22,137,197, 74, 28,205, 86,226,211,238,109, 17,234, 38, 70, 71, 29, 5, 31,123,222, 59,
+185, 50,237,107,109,100,132,121, 0, 0, 32, 0, 73, 68, 65, 84, 33,180,124,124,124, 26,123,122,122, 86, 18, 89,165,165,165, 40,
+ 43, 43,131, 84, 42, 69,105,105, 41, 72,146,196,180,105,211,248,103,206,156, 25,232,227,227,115,194,138, 97,196, 12,189, 37, 11,
+224,240,202,230,206,157,171,242,242,242, 82,217,217,217, 49, 92,190,176,180,243,136,133,142, 0, 64,114,249,165,171, 86,173, 82,
+251,250,250, 42,185, 92,174, 96,194,132, 9,164, 53,109, 86,169, 84,140, 49,167, 90,173,170, 88,190,116,233, 82,181,183,183,183,
+202,206,206,142,209,104,172, 55, 58,222, 76,125, 10, 33,159, 3, 33,159, 3,145,128, 7,199,122,109, 32, 44,186, 5,157, 78,135,
+101,203,150,105,124,124,124,212,118,118,118,140, 64, 32,224,143, 31, 63,190,198,118,142, 28, 57,146,113,113,113,209,216,217,217,
+241, 35, 35, 35,171, 68, 10,157,188,145, 5,177,128, 7, 59, 33, 23,193,245,253, 32,100, 20, 86,183,149,195,169,236,141, 32, 20,
+ 10,209,161, 67, 7, 52,109,218, 20, 7, 15, 30,236,204, 10, 45, 22, 44, 94, 11, 88,140, 48,228, 2, 64, 92, 92, 92, 24,202, 39,
+ 68, 68,159, 62,125,136,242, 45, 24, 76,253,178, 63, 62, 29, 49, 8, 20, 69, 87,204,243, 69,144, 4,190,248,164, 23,104,218,154,
+ 17,137,154, 67, 60,107, 81, 79, 5, 39, 67,144, 28, 0,104, 16, 32, 97, 70,127, 58, 20, 20, 77,255, 61, 80,194, 1,198,140,232,
+ 89,190,236, 57,180,147, 3, 10, 95,143,253, 8,230,234,105,220,160, 14,169,211, 40, 65, 84,158,236,241,159,152,108,147,229, 52,
+131,166,117, 37, 65, 90,133, 2, 74,165, 22,209,247,158, 42,142,103,201,188, 72,151,180,130,213,225,237, 68,156,130,108, 4, 56,
+ 10,130,115,101,218,215,162,239, 78, 78, 78,195, 54,110,220, 88, 69,100,229,229,229,145,101,101,101,208,104, 52,116,105,105, 41,
+ 40,138,194,140, 25, 51,120,179,103,207, 30,150,155,155, 27,105,208, 60,230, 56,245,126, 87, 83,111,223,190, 29, 48,107,214, 44,
+205, 59,239,188,147, 81,191,126,125, 25,135,195,129, 68, 34, 89,221,189,123,119,183, 69,139, 22,105,122,245,234,149,198,225,112,
+ 16, 28, 28, 44,187,117,235, 86, 0, 0,177,181,125, 55,230,252,233,228,143, 12, 0, 16, 4,129,238,221,187,167, 7, 7, 7,203,
+ 56, 28, 14, 30, 28, 90,202, 88,187, 63,121, 92, 18, 13,125,157,245, 55, 17, 2, 16, 59, 84,120,226,117,239,222, 61,179,113,227,
+198,101, 36, 73,226,230,205,155,126,168, 58,173, 85, 21, 78,177, 88,172, 29, 60,120,112,198,189,123,247,204,149, 7,151, 67,162,
+ 93, 99,189, 1,203,183, 37,144,121,222, 98, 59,121, 28,232,102,127, 57,132,235, 34, 2,132,142, 30, 42,169, 84, 10, 39, 39,167,
+114, 11,153, 70,131,191,254,250, 11,111,189,245, 86,216,222,189,123,207,176,215, 59,203,201,114,254, 13,115, 90,228, 21,180,102,
+ 25, 79,116, 95,201, 71,235,180,105,167, 40, 74,135,250,254,222, 88, 58,103, 36, 40,138, 6, 69, 81,208,233,191, 41,138,130, 86,
+163,121, 46, 45,123,150,122, 92,157,196,139,126,223, 61,206,245,157,126,203,187, 46,153, 53,226, 56, 69, 1, 52,173,133, 86, 11,
+ 80,180, 22, 52, 69, 65,171,125, 62,174, 57, 90,154, 70,128,159, 15,150,204, 26, 1,211,122, 98,118,237,237,123,242,183,105,118,
+157,250,124,247,245,131,116,249, 50, 86,216,191, 88,136,248, 66, 46,195, 21, 65,173,214,161, 84, 77,171, 1,200,148, 90, 90,195,
+216,123,136, 0,128, 75, 18,175, 83,116,109,211,192,192,192, 74, 34,235,251,239,191,247, 88,183,110,157, 47, 0,244,239,223, 63,
+171,107,215,174,133,247,239,223,135, 68, 34, 33, 10, 11, 11,123, 3,152,160,223,118, 42,128,117, 22,120,101,254,254,254, 74, 79,
+ 79, 79,149, 65, 16,145, 36, 9, 46,151, 11,127,127,127,165,151,151,151, 42, 56, 56, 88,198,231,243, 65,146, 36, 12, 66,207,170,
+215, 60,130, 0,135,195,129,129,211,212,218, 99,224,180, 5, 60, 46, 89,245,246,102,196, 73,146,164,217,250, 44,158, 67, 34, 17,
+ 3,192, 98,121, 14,105,116,123,228, 86,239, 33, 16,253, 23,120, 0, 78, 51, 12,131,235,215,175, 35, 37, 37, 5,124, 62, 31, 62,
+ 62, 62,136,140,140,132, 74, 85,174,119, 35, 34, 34,194, 0,220,100,175, 96, 22, 44, 42,112,250, 21, 20, 88,166, 86,173,234,125,
+180,226,226,226,194,250,244,233,115,198, 32,128,202,197,142, 25,241,163,213, 65,171,213, 0, 12,243, 92,132,150,165,122, 40,138,
+174,182, 30,131,143, 22, 77, 51, 92,179, 34,139,166,161,211,106,159,203,222,163, 41, 45,104, 90, 11,115,245, 16, 4, 73,233,111,
+248,124,246, 58,121,241,240,241, 15, 32,181,254,245,113, 78,167,132,175,187, 80,128, 66, 5, 2, 27,133,112,254,146,107,113,225,
+ 70, 18, 60, 28,156, 94,155,227, 34,151,203,189, 68, 34, 17,100, 50, 89,133, 37,107,221,186,117,190,106,181,154, 4, 0, 46,151,
+231, 87, 64,251,138, 40, 26,112,118,202, 65, 81, 81,137, 59,195, 48,132, 94,240, 44, 7,240, 19,170,201,238,207,231,243, 43, 4,
+138,177, 0, 18, 10,133,181, 18, 48, 6, 24,196, 25,159,207, 55,187,220,116,120,173, 38,240,141,133, 22,152,114,171,150,137,216,
+226,112, 56, 48,248, 70,213, 4,129, 64, 80,209,119,115,224,114,140,234,227,216,238,138,169,209,104, 80, 86, 86,134,226,226, 98,
+136, 68,229, 6, 51,134, 97, 64, 16,196, 4, 0, 19,217,171,152, 5, 11,243, 90,228, 21, 22, 91,230,133, 22,202, 77,118, 4, 0,
+232,180, 26,179,226,103,239,161, 11,200,200,149,193,199,227, 10, 24, 27,179,158, 14, 28, 56,240,103,137, 68,210,206,240, 95, 40,
+118,112, 31, 61,110, 62,116, 58, 13, 28,197, 36, 62, 27,214,179,146,200, 42,183,104,169, 45,206, 9, 82, 84, 34,155,215, 51, 98,
+205, 66,103, 39,247,120, 83,241,179, 36, 58, 33,188, 72,170,242, 35,201,171, 40, 34, 36, 84,196,152,249, 35,141,110,238, 55,118,
+175,159, 59,217,106,123, 32, 65,242,194,199,174, 30,205,112, 29,154,216,145,165,103,167,143,104,187,223, 88,204,185,185,185,197,
+245, 8, 95,213, 45,239, 41,235,163,245, 50,224,232,236, 66,250,181,238,140,214, 19,162,112,242,155,233, 12, 80, 4,119,137, 47,
+217,229,203,197,112,104,221, 23,151, 62, 27, 70, 3, 79, 95,139,190,218,217,217,229,203,229,114,137, 66,161,128, 84, 42,133, 84,
+ 42,173, 44, 8,120, 60, 98,244,231, 95,121,240,248, 2,104, 53,106, 28,141, 89, 92, 35,167, 33,133, 67,223,230,142,224,240, 4,
+165,119, 2, 3, 87,115,185, 92,144, 36,137, 67,107,167, 79,216,183, 98,156, 35, 0,220,136, 91, 43, 29, 52,237,199, 53, 36, 73,
+ 66,165, 82, 9,109,105,247,227,199,143,253, 84, 42,149, 82, 47,208, 12,194, 15,169,169,169,117, 85, 42,149,194,120,185, 53, 16,
+219, 57, 2, 46,245, 1, 59,175, 42,214,179,180,180,180, 58, 90,173, 86,206,229,114,161, 86,171,173, 82, 69, 36, 73,242,111,222,
+188,233, 71,211,180,217,242, 77,131,234, 0, 62,205, 1,129,179,213,125,102,172,120, 17,213,139,173, 23,150, 65,154, 5,139, 87,
+197,178,245, 10, 94, 19,132,133,223, 21, 66,171,115, 92, 92, 28, 99,252,134,168,211,106,245, 34,235,111,209, 67, 81, 52,178, 11,
+148,184,127,255, 1, 86,173, 90,133, 11,151,166, 56, 47, 90,180, 72, 56,123,246,108,213,192,129, 3, 87,208, 52,221,130, 36,201,
+ 27,248,123,168,162,178, 85,136,166,235, 38, 36, 36, 4, 26,254,107,181, 90, 56, 58, 58,194,209,209, 17,141,131,253,170,136, 44,
+138,162,160,169,102,232,208,224,163, 69, 48, 52,163,213, 82,160,104,186, 66,252, 20, 73, 85,126,191,157,184,222,192,168,120, 35,
+195,143, 14,109,154, 88, 22,131, 99, 35, 43,250,177,123,253,220,201,139,182,108, 17, 22, 81,158,227, 7,133,127, 26, 26, 49,104,
+ 24, 6,127,244, 94,152, 74,173, 62,200, 33, 25, 90, 91, 81, 31, 72, 48, 48,245,209, 98,241,130,144, 92, 44,211,242,132, 98, 56,
+248,212,195,131, 50,138,207,225,112,174, 60, 42,150,243, 73, 14, 23, 36,151,143, 59, 69, 74,237,107,212,221, 59,201,201,201,146,
+186,117,235, 66, 42,149, 66,167,211,209,253,251,247,207,226,114,121,126, 92, 30,143,232, 51,232, 43, 58, 55, 55, 91, 75,146, 28,
+ 48, 12,133,247, 34,198, 18, 66,145,152,175, 81,171,117, 40, 31, 58, 52,103,205, 50, 78,225,224,216,189,123,119, 55, 67, 36,224,
+190, 21,227, 28,141,214, 57,181,106,213,202,205, 56,234,208, 74,107, 17, 49,112,224, 64,177,191,191, 63, 1, 0, 87, 99,102, 25,
+172,103, 68,223,190,125, 69,254,254,229,126,248,127,174, 29,103, 53,167,135, 29, 3,148,164, 2, 37,105, 85, 44, 89,125,251,246,
+ 21, 6, 6, 6,218,116, 45,234, 29,224, 45,230,238,178,231,234,128,220,235, 86,113, 13,255, 31,180,190, 14,224,174,120,143,132,
+192,193, 93,213,110,250, 31,151, 89,177,197,130,133, 85, 48,209, 34,175, 20,194,244, 2,177,179,254,187, 66,112,113, 1, 64,111,
+162, 35,140,116, 22,180, 58, 77, 21,145, 69, 81, 20,120,132, 10,171, 86,173,194,196,137, 19, 1,128, 63,121,242,228,253,139, 22,
+ 45,250,144,166,233, 22, 12,195,116, 36, 8,162,186,183,198,211, 18,137, 36,143, 97, 24, 30, 73,146, 29,215,174, 93,235,214,171,
+ 87, 47, 56, 58, 58,130,161,153, 42, 34,139,162,104,104, 52,106,139,211,220,186, 58,137, 23,253,190,119,188,235, 59, 31, 44,239,
+ 74,209,244,113,131,200,162, 41, 10,160,203, 55,122,146,159,133, 99, 71, 15, 98,195,250, 13, 69, 32,152,187, 96, 64,235,197, 32,
+ 44,136,193, 22,231,175, 38,117,236,208,166, 9, 22,109,217, 34,188,157,144,179,255,171, 73, 51, 67, 35, 6, 13,195,222, 93, 49,
+ 32,117,197,215,141, 69, 22,165,165, 81, 82, 84,216,247, 20,235,163,245,178,224,118,236,248,113, 98,216,176, 97,116,105,105, 41,
+248, 2, 1,173,213,106, 57,111,191,253, 54, 53,113,226, 68, 50, 55, 55, 23,210,210, 50, 46, 0, 55,188, 6,102, 45,169, 84, 26,
+ 51,118,236,216,176,179,103,207,242, 73,146,132, 84, 42, 69,151, 46, 93, 10, 11,104, 95,209,232,207,191,242,200,206,206,210, 57,
+137,185, 42, 62,159,135,252,252,124, 58,172,215, 16,197,160,145, 19,235, 76,156,181,100, 99,206,197,245,235,172,169,195, 56, 18,
+208,116,221,230,205,155,213,190,190,190, 74,161, 80, 40, 24, 49, 98,132, 85,227,135,106,181,154, 89,186,116,169,202, 52,186, 80,
+173, 86, 51,171, 86,173, 82,251,249,249,169,196, 98, 49,163,213,214,236,247, 73,146,132,238,179, 69, 59,116, 58,157,174,146, 21,
+203, 32,178,180, 52, 81, 22, 21, 21,165,241,243,243, 83,219,217,217, 49, 66,161,144,111, 77, 59,191,250,234, 43,198,213,213, 85,
+ 99,111,111,207,159, 54,109,218, 51, 69, 29,106, 41,112, 23,173,173, 72,239, 32,116,116,116, 68,105,105,105, 69, 91, 37, 18, 9,
+ 43,182, 88,176, 48,131, 42, 90,228,213,180,194, 89,151, 71,139, 6,202,242,242, 11,189, 60,188,235, 65,167,211,233, 63, 90,232,
+180, 90,140, 31, 51, 8, 43,214, 71, 1,128, 65,108,117,159, 60,121,242,126, 0, 53,222,204,118,239,222,189,112,242,228,201, 78,
+121,121,121,127,252,252,243,207,110, 67,134, 12,193,212,169, 83,177,124,249,114,240, 4, 34,184,121,214,173,168,199, 80,111, 97,
+193, 83, 48, 96,202, 44,216,233, 52,229, 55, 41,112,221, 61, 3,160,165,180,160,181, 90,104,181, 90, 16,156,242,174, 29, 59,122,
+ 16, 67, 62,249, 10, 60,161,147,235,143,171,150, 41, 66, 91, 75, 62,156, 61,106,148,202, 10, 35, 32,121, 59, 33,103,255, 87, 19,
+167,117, 55,136,172, 95, 99,214,223,253, 97,198, 7, 59,133, 2,110, 69, 61, 90,154, 6, 73,114, 88, 31,173,151, 36,178,132, 66,
+ 97,236,145, 35, 71, 30,182,108,217,146,144,201,100,208,106,181, 40, 44, 44,196,254,253,251,239, 48, 12, 3, 87, 87, 87, 28, 57,
+114,132, 30, 50,100, 72,172, 74,165, 10,127,213,197, 86,110,110,238, 61,177, 88,188,123,230,204,153,131,102,204,152,193,163,105,
+ 26,247,239,223, 7, 8,130,225,241, 5, 32, 73, 18, 60, 30, 23, 37, 37, 82,218,206,193, 37, 71,195,112,236,120,124, 1, 72, 14,
+191,186, 48,225, 12,125, 50, 82,144, 92,126,169, 33, 18,144,207,231,227,210,222,239,165,157, 71, 44,116, 2, 0,190, 80, 92,212,
+163, 71,143,244, 38, 77,154,200,174, 93,187, 22,128,170, 81,135,166,215,167,174,223,136,105, 28, 59,177, 72,214,189,123,247, 12,
+ 3,103,218,241, 31,165,195,190,152, 69, 16, 28,129,172, 79,159, 62,233,161,161,161, 50, 14,135,131,164,131,203,164,253, 70, 76,
+ 19, 17,213, 36, 89,253,227, 33,243,217,141,189,231, 26, 47, 94,188, 88,219,171, 87,175,199, 6,127,177,180,180,180, 58,189,123,
+247, 22,174, 92,185, 82,219,187,119,239,204,102,205,154,149,145, 36,137,132,132, 4,191,234, 44, 85, 6,136,197, 98,237,167,159,
+126,154,113,235,214,173,218, 70, 29, 86,139,186,117,235,130,166,105,116,233,210, 5, 74,165,146,181,108,177, 96,241,122,194, 52,
+143,150,229,204,240, 90,157,246,171, 49, 19, 22,252, 8, 16, 14, 70,119,129,191, 13, 75, 12,136, 41, 83,190,182, 7, 32, 54,136,
+173, 73,147, 38,213, 56,205,137,145,200,106, 61,100,200, 16,124,243,205, 55,248,225,135, 31,168,229,203,151,115,238, 61, 72,213,
+140,248, 98, 94,177, 73, 61, 96,192,148,209, 90,250, 43,115,124, 69, 37,178,121, 29,123,127,183, 32, 43, 79,126,126,196,216,217,
+ 21,119, 47, 10,128,148,144, 80, 0,176, 97,253,122, 25, 79,232,100, 31, 49,104, 24, 0,116,255,113,213,178,253,139,176,165,102,
+177,197, 16, 33, 95, 77,154,230,106, 16, 89,107, 87, 46,190,229, 76,228, 69,141,251,250,142,214,184, 30, 0,112,115,196,254,142,
+189,191,123, 55,255,169,108, 53,123,158,189, 56, 8, 4,130,133, 39, 79,158,180,111,222,188, 57,241,228,201, 19, 80, 84,249, 17,
+209,104, 52, 40, 41, 41, 65,105,105, 41, 84, 42, 21, 90,181,106, 69,174, 89,179,198,126,220,184,113, 11,213,106,245, 23,175,122,
+191, 83, 82, 82,214,254,246,219,111, 56,115,230,204,192, 25, 51,102,240,124,124,124, 8,103,231, 60, 66,171, 81, 3, 96,152,130,
+130, 2,218,206,193, 37,199,195,219, 47, 35, 59, 55, 63, 68,171, 81,131,166, 52, 22,189,205,245,233, 29,166,220,190,125,187,222,
+247,223,127,175, 54,142, 4, 28, 52,237,199, 53,173, 90,181,114,139,138,138, 82,247,233,211, 39,221,224,188,110,141, 51,252,177,
+ 71,152,112,251,246,205,166,166,156,157, 71,127,191,213,192,105, 28,141,216,247,235,141, 91,131,131,131,221, 66, 67, 67,211,171,
+227, 13, 12, 12, 84, 72, 36, 18,117,227,198,141,203,120, 60, 94,185, 37, 75,171,149, 7, 6, 6,210,222,222,222,234, 38, 77,154,
+148,217,234,180, 47, 22,139, 25,131, 85,204, 28,108,137, 58,228,113,160, 27, 50,100, 72, 69,102,248, 41,193,193, 57,195,134, 13,
+147, 76,158, 60, 25, 91,183,110,197,133, 11, 23,170,136,253,176,176, 48,156, 61,123,118, 1, 94,163,196,186, 44, 88,252,199, 80,
+125, 30, 45, 83,108,219, 22,243, 39,140,124,154,204, 97,209,162, 69, 66,189, 37,171,251,196,137, 19,161, 80, 40, 92,205, 20,235,
+ 6,125,174, 13,115, 34,107,217,178,101, 59, 25,134,241, 3,208,129,162,232,203,155,183,108,235, 98,169,190,136,136,136, 42,156,
+ 12, 65,114, 72,146, 40, 19,240,152,191,214,111,218,250, 75,165,242,229,206,239,141, 64,224,198,143,171,150, 41, 0,116, 55, 21,
+ 91,248,123,154,145, 10, 78, 3, 62, 31,251,121,133,200,250,113,213,178,227,161,173,253, 63,156, 61,106,161, 89,113,182,112,222,
+ 24,123,146, 36,222, 54,241,209,170,194,249, 28,192,114,254,141, 46, 67,134, 12,105,209,182,109, 91,210, 88,100,169,213,234,138,
+196,157, 6,103,241,172,172, 44,132,133,133,145, 45, 90,180,104,118,229,202,149, 46,248,123, 58,167, 87,181,239, 84, 74, 74,202,
+ 26, 31, 31,159, 19,115,231,206, 29, 86, 88, 88,216,187,168,168,216, 61,110,219, 66,244,140, 24, 75,132,245, 26, 44, 83, 51, 92,
+ 81,102, 78, 94,227,211, 71,118,184, 29,221,189, 22, 26,181,122, 12,128,187,248, 59,189,131, 41,167,220,144,198,161,113,227,198,
+ 50, 99,161,226,239,239,175,172, 83,167,142, 42, 52, 52,180, 98,185,133,104,190, 42,125,183,149, 83,239,255, 37,171,105,127, 26,
+ 68,155,105,218, 8, 59, 59, 59, 24,196,151, 45,237, 52,142,182, 52,123,163,172, 57,234,176,130, 83,159,222,161,146, 78,139,137,
+137,233, 22, 19, 19,211, 26,192, 95, 40,159,235, 80, 11,148, 15, 37, 26, 57,205,207,215,127,216,235,157,229,252,175,114,190,202,
+ 8,195,223,190, 89, 64,185,175,214, 25,139, 66,171, 38, 24, 28,223, 1,144,147, 38, 77, 42, 82, 40, 20,174,195,134, 13,171,118,
+155,220,220,220,173,209,209,209,149, 68,214, 71, 31,125,244, 73,108,108,236,137,252,252,252, 90,245,202,213, 73,188,232,204,161,
+233,174, 97,125,190,155, 8, 96,185, 5, 67, 30, 29,218, 90,242,225,143,171,150,237, 55, 17, 91,219, 1,124,100, 73,149,246,120,
+239, 3,236,216,246,163,193,183, 75,124,235, 90,214,209,129,215, 35,205, 70, 43,186, 56, 8, 35,245,237,152,204,250,104,189, 24,
+240,249,252,206, 51,102,204,224,203,100,178, 42, 34,203, 84,104, 73,165, 82,220,184,113, 3, 35, 70,140, 16, 38, 38, 38,118,214,
+104, 52,167, 94,135,125,144,155,155,123, 79,159,140,116,130, 33,133,131, 80, 36,230, 15, 30, 57,209,175, 34,234,112,247, 90,168,
+148, 10, 0,224, 90,147,222,129,203,229,242, 19, 19, 19, 3, 12, 86, 43,141, 70, 35, 52, 44,191,118,237, 90,128, 33,183,150, 82,
+169,180, 58,234,240,159,226,188,121,243,166,159, 33, 58,210, 16, 93,200,229,114,249, 9, 9, 9,126, 6, 78,149, 74,101, 85,212,
+161, 64, 32,224, 39, 38, 38,250, 81, 20,245,220,162, 14,141,133, 49,202,231, 89,172, 52,215,162,222,183,140, 32, 8,130, 97,135,
+ 13, 89,176,120,229, 97, 26, 41, 89,253,164,210, 53,193,224,248,110,195, 38,220,186,117,235,246, 24, 52,104, 80, 37,145, 21, 30,
+ 30, 78,237,219,183,239,180, 68, 34,201, 35, 73,242,158,173,237,168,240,209, 66,149, 55, 72,144, 36,121,163, 67,155, 38, 32, 73,
+242,198,236, 81,163, 84,139,176,165,146,216, 58,184,127,207,187,153, 69,119,204, 75, 51, 0,238, 94,190, 24,242,201, 87, 24,242,
+201, 87,174, 0,218, 3,150,163, 21,171,107, 7,139,127, 6, 4, 65, 8,234,212,169,115, 75,169, 84,130, 32, 8,168, 84,170, 10,
+129, 85, 90, 90,138,146,146,146,138,255, 26,141, 6, 5, 5, 5,240,247,247, 7, 65, 16,175,181, 31,157, 70,163,209,205, 88,240,
+125, 52,135,203,215,209,180,134,208,104, 52, 35,109,185,206,103,204,152, 65,194,140,239,213,184,113,227,204, 46,127, 89,156, 51,
+103,206, 52, 27, 37, 56,110,220,184,106,163, 7, 45,225,235,175,191,126,110, 81,135,214,223,190, 88,176, 96,241,154,193,108,232,
+ 94,173,132, 22, 73,146, 55,204, 68, 23, 18, 0, 24,146, 36,111,152,201,114,160,203,200,200, 88,224,226,226, 50, 70, 38,147,253,
+254,209, 71, 31, 77, 10, 15, 15,167,128,114, 7,249,218,246,168,168, 68, 54,175,115,223,165,147,139,203, 84, 81,166,235, 76, 45,
+ 79, 6,177,181,118,245,178,117,251, 99,119,133,231,102,103,174,179,212, 55, 75,130,202, 82,180, 98,137, 84,177,160,115,223,165,
+ 19,139,164, 10,214, 71,235, 5,129,162,168, 99, 98,177,152, 48, 76,166,108,108,189,146, 74,165,144,203,229,208, 79, 73, 3, 0,
+ 40, 43, 43,131,179,179, 51, 40,138, 98, 94,179, 93,161, 2, 48, 85,111,173, 2,128,169,169,167,215, 24,159,219, 55,141,215, 85,
+ 99,205,202,177,102,130,104,115,219, 85,183,238, 31,224,204,171,102,130,232,234,144,103, 35, 95, 30, 0,240,121,156,124, 75,147,
+ 71,243,121,156,252,106,252,246,109,124,111, 32, 24, 0, 11,216, 43,155, 5,139, 87,247,253,255,101, 85,220,141,229,100, 57, 89,
+206, 23,194, 41,212,127,172, 93,199,238, 79,150,147,229,100, 57,255,109,156,230, 48,250, 21, 17, 90,140,153, 15,128, 90, 90,180,
+ 88,176, 96,241,175,131,170,150,235, 88,176, 96,193,130,197,179,163,202,100,210,198, 43, 44,169, 82, 91,162, 9,106,163,108, 79,
+176,156, 44, 39,203,201,114,178,156, 44, 39,203,249,159,227,172,137,219,120,251,209, 0, 54,189, 34, 98,235,165, 4,180,176,102,
+ 85,150,147,229,100, 57, 89, 78,150,147,229,100, 57,107, 11,118,232,144, 5, 11, 22, 44, 88,176, 96,193,226, 63, 14,219, 18,150,
+178, 48, 3,255, 15,102,131,198, 76,253,238, 92,134,199, 7,231,191,110, 93, 12, 15, 15,231,216, 82, 62, 53,213,133,188, 14,201,
+ 15, 78,246,252,190,101, 50,237, 15,244,245,121, 81, 53,157,136, 30,129, 45, 63,182, 19,217,125,161, 86,171,235, 59, 56, 58,230,
+ 63,125, 82,176,225,105,198,205,181, 70,101,156, 46, 95,190, 44,105,219,182,109, 54,128, 82,163, 55, 5, 22, 44, 88, 60, 79,184,
+ 52,169, 11,130, 24, 9, 48,127,135, 93,210,204, 29,148,220,221, 86,169,156,115,200, 39, 32,137,166, 70, 75, 20, 96,176, 25,197,
+ 73,143,107,120,224,184, 36, 39, 39, 7, 52,104,208, 32, 29, 64,177,105,237,102,214,177,215, 57,139, 87, 25, 97,168,156,176,180,
+226, 90,120,118,161, 21,252, 81,125,232,200,225, 96, 48, 20, 4, 18,145, 26,219,191, 86, 60, 65, 31,250,130,230,190, 9,160, 37,
+192,180,180, 23,139,254,167, 80,107,242,105,134,249, 24,143,246,252,101, 51, 95,253,240,177,176, 60,157,197, 2,164,198,174,183,
+137,143,102,102, 93, 61,187, 79,232, 98, 71,160, 65,171,143,166,161,114, 6,231,218, 66, 0,160, 35, 73,146, 77,237,236,236, 36,
+114,185,188,128,166,233,199, 40, 31,159, 46,170, 37, 39, 9,224, 83, 7,123,251,158, 1,142,130,150, 25,133, 37, 89,165, 90,234,
+ 28,202, 19,186, 22, 61,175, 51,170, 92,100,249,108,154, 56,184,237,136,101,227,187,193,165,243,210,105,114,160, 58,161, 69,248,
+ 53,122,251,224,192, 65, 17,157,191, 28, 61,194,193,215,211, 1, 57,133, 50,247,245, 91, 99,190,143,137,217,209,103,212,192,238,
+ 61, 1, 96,225,194,133,253,234,214,173, 91,143,195,225,164,206,153, 51,103,251,188,121,243, 24,194,242, 76,229, 18,253, 57,108,
+184,225,219, 3, 8, 5, 16, 8, 32, 5,192,109, 84,206, 50, 94, 27,188, 18,156,190,190,190,117,104,154, 30,229,237,237,221, 59,
+ 47, 47,239, 48, 73,146, 91,178,178,178,178, 95,230, 93,135, 97,152,141, 4, 65,140,102, 24,102,147, 13,223, 99,108,169, 67, 36,
+ 18,229, 41,149, 74, 47,253,239,124,165, 82,233,253, 79,245,231, 69,214,245,130,222,191, 63, 59,118,254,118, 79,227, 69, 61, 58,
+ 52, 53,115, 71, 33,154, 30, 59,127,167, 83,229,114,161,148,133,123, 32,193, 48, 12, 22, 44, 88, 64, 68, 70, 70,126, 18, 20, 20,
+ 20, 76,146,228,253,185,115,231, 86, 74,125, 99,186,206,232, 58,103,197, 22,139, 87, 21,182, 77, 42, 93, 35,154,132,219, 67,201,
+132, 3,196,136,176, 54,255,235, 48,230,227,190, 4,195, 17, 97,240,103,211,117, 54,115, 5,140, 16,130,163, 88,212,188,105,163,
+ 73, 17,125,187,145,173, 67,235, 65,226,233, 12,144, 60,108, 60,146,230, 30,181,108,206, 58, 0,109,107,209,202,121,143,226,119,
+122,229, 20, 83, 32, 8,128, 32, 0,146, 0,202,148, 52,122,244, 27, 62, 15,192,122, 27,239, 74,164,139, 29,129, 73, 59,149, 0,
+192,121, 14, 7,165,158,167,167,231, 39, 19, 38, 76,176, 15, 13, 13,117, 17,137, 68, 2,165, 82,233,157,156,156,236, 57,103,206,
+156, 80,133, 66,113, 8,192, 85, 27, 57,253, 27,248,213,217, 19, 53,233,211, 55, 91, 4, 6,128,167, 46, 3,173,146,213,125,144,
+252,240,173,207,215,237,253,236,206, 83,229, 32,212, 98,202,132,194,194, 66, 2, 0, 60, 60, 60,152,202, 34,171,221,136,149,147,
+123, 96,210,138, 99,144, 43,213,191, 84,199,225, 86,239,141, 97, 31,126,248, 65,231,197,179,198, 57,100, 61,209, 32, 49, 85, 1,
+ 55, 7, 62,230, 77, 29, 43, 80,169,180,111,173,219, 30, 51,250,199,239,166,111,166, 40,234, 29, 0,173, 41,138,186, 6, 96,251,
+130, 5, 11, 44,221,124, 35, 1,204,212,159,208, 59, 56, 28,206,241, 46, 93,186,212, 31, 53,106, 20,209,170, 85, 43, 36, 36, 36,
+ 4,238,220,185,179,219,225,195,135, 83, 41,138,186, 9,224, 62,244,211,158, 88, 1, 30,128, 70, 28, 14,167,249,191,153, 83, 34,
+145,136,213,106,245,112, 63, 63,191,209,111,191,253,118,243,190,125,251, 18,141, 26, 53,194,189,123,247, 90, 29, 61,122,116,222,
+185,115,231,110,102,102,102,110, 18, 8, 4,209, 57, 57, 57,138, 23,254, 28, 39,136,209, 0,234,232,117,242, 2, 43,190,179, 81,
+158, 75, 42,199,218, 58,148, 74,165,151, 97, 10, 27,130, 32,188,254,201,254,216, 88, 87, 18, 65, 16,110,250,178,168,238,155, 36,
+ 73,232,116, 58, 25, 69, 81, 65, 53,112, 54,210,191, 72, 89,173,117, 1, 84,151, 8, 90, 12, 0, 61,218, 55,125, 10, 2,119, 42,
+ 44, 90, 85, 95, 50,239, 84, 8, 48, 6, 77,143, 93,184,227, 86,201, 10,102,250, 22,187, 96, 1, 49,111,222, 60,204,159, 63,191,
+ 47,128,142, 52, 77,159, 11, 9, 9, 89, 83,137,146,166, 43,214,205,155, 55,111,117, 53,215, 57, 11, 22,175, 10, 58,195,150, 73,
+165, 45,190,255, 4,245,239, 4, 10, 35, 2,220,189,194,199,143, 26, 32, 14, 13,105, 0, 37, 28,144, 86, 72,225, 72,220, 81, 0,
+216,109,155,213,105, 64,107, 46, 87, 25,189,108,254,212,198, 29,223, 12,197,173, 44, 45,174,101, 81,144,167,106,193, 33,181,160,
+104, 6, 96,160,172,109,175, 51,139,116, 56,127, 95, 13,146, 0, 56, 36, 64,146, 4, 56,100, 45,201,104,245,131,133,219,174,135,
+ 22,230,209, 0,173,126,240,140, 7,164,105,195,134, 13,135, 69, 70, 70,186,228,230,230,218, 39, 36, 36, 64, 40, 20,194,213,213,
+149, 35,145, 72,234,172, 88,177, 66, 49,126,252,248,222, 26,141, 38, 13, 64,161,149,156, 33,189, 90, 55,191,184,105,217, 66,103,
+237,229,163, 40,222,245, 43, 56, 36, 3,190,189, 3,234,139,197, 56,250, 97, 3,183,240,184,212,125, 87,242,100, 33, 0,178,106,
+ 34,187,123,247, 46, 71,165, 82, 13,114,114,114,106,199,227,241,188, 69,174,245,232,108,110,235, 39, 5, 68, 96, 74,190,151,188,
+211,228,110,222, 61,127,152,216, 5,147, 86, 28,195,170,157,151,126,110,137,220,185,213,229,205,182,179,115, 24, 51,254,139, 81,
+ 14,153,133, 26, 44,218, 87,136,109,103,165, 24,222,209, 17,147,222,115,198,144,193, 3,237,247,254, 26, 59, 6,192,102,163, 77,
+238,133,132,132, 16,119,239,222, 53,119,243,117, 5, 48, 93,173, 86,147,124, 62,159, 16,137, 68,195, 22, 47, 94,172, 25, 60,120,
+112,166,161, 64,199,142, 29,209,177, 99, 71,162,180,180, 52,240,212,169, 83,129, 49, 49, 49,186,248,248,248, 36, 0, 7, 45, 91,
+ 44,196, 25, 74,165,162,174, 72, 44,150,175, 95,183,238,135, 78,157, 58,209, 66,225,223,233,167,106,195, 9, 0,206,206,206,155,
+189,188,188,136,111,190,249, 38,251,121,113,214,171, 87,239,216,155,111,190,217,165, 71,143, 30,220,246,237,219,163, 78,157, 58,
+ 21,235, 60, 60, 60,208,177, 99, 71,226,241,227,199, 45,206,157, 59,183,238,216,177, 99,107,254,250,235,175, 83,105,105,105, 61,
+ 94,176, 69,107,147, 94, 76,228,216, 88,254,149, 7, 65, 16, 14, 27, 55,110,244, 50,204,201,168,213,106, 65, 81, 84,197,183,225,
+ 67,211, 52, 40,138,194,226,197,139, 41,153, 76,102,205, 62,146, 25,189, 53, 27, 62,180,185,111,129, 64,224, 97, 72,216, 91,195,
+157,253,142, 68, 88,220,196,222,222, 62, 0, 64, 47,120, 6, 79,175, 92,160,252,253, 89, 38,147,165,231,168, 92,238, 0,232, 84,
+ 13,155, 75,100,100,228,240,249,243,231,127, 96,100,165,109, 30, 17, 17, 97, 58,237, 85,115,253,183,140, 32,136,211, 36, 73, 30,
+ 2,176, 13,207,209,234,206,226,245, 2,195, 48,109, 0,120, 26, 45, 82,163,124, 84, 8,250,231, 36, 1,192,221,100,185,113, 57,
+195,119,129,126,185,167,126, 59,198,136,183,128, 32,136,171,181,108,226, 25, 88,240,211,226, 2, 64, 92, 92, 28,211,167, 79, 31,
+194,240,109, 94, 20,133, 31,249,116,240,251, 61,123,119,125, 27,164,200, 21, 15,242,129,248, 12, 6, 92, 82, 11, 18, 12, 46, 95,
+ 56,197,128, 75, 71,155,108,101,217,122, 82,175,255,215,205, 67, 67,150,110, 89, 54,129,147,148,207,197,182,115,114,104,148,101,
+ 40,200,205, 64,126,118, 58,114, 50, 83,144,149,145,114, 19, 32,230, 89,205, 89,229,192, 0, 20,173,127, 7,164,129,106, 34, 47,
+107,230,212,200,238, 6, 54, 10, 13, 45, 18, 80,128, 70,118,215,138,234, 45,113, 54, 11, 14, 14, 30, 60,107,214, 44,183,219,183,
+111,139,229,114,185,234,232,209,163,247,210,210,210,156, 36, 18,201,211,177, 99,199, 6,215,169, 83,199,233,163,143, 62, 18,236,
+218,181,171, 31, 42,135,181, 90,226, 12,125,191,221,255,226,183,174, 89,105,255,100,111, 20,212,201, 55,112, 36, 71,134, 11,121,
+114, 38,208, 89, 72,124,213,194, 19, 14, 66, 46, 22,182,175,227,208,107,127,242, 82, 45, 77, 15,169,142,243,226,197,139, 18, 59,
+ 59,187, 21, 67,135, 14,149,140, 27, 55, 78, 72,113, 93,184,177,241, 79,156,167,175,139,175, 35, 87,105, 56,131,187,212,195,228,
+161,205, 49,121,213, 73,131,200, 26, 93,191,126, 49,125,253,186,101, 78,173, 70, 83,223,207,203, 9,137,105, 10,108, 59, 43,197,
+159,179,234,160,235,226,108,124,212,146,139, 16,127, 7,232, 52,218, 70, 17, 17, 17,209,250,183,246,171, 0,250, 69, 68, 68, 52,
+230,112, 56, 39, 1, 28,168,233, 24,137, 68,230,103, 79,113,117,117, 69, 88, 88, 24, 66, 66, 66,184,157, 58,117,106,110, 34, 96,
+ 42,113,106, 52,106, 9, 77, 51,112,116,116, 20,187,187,187,187, 58, 58, 58, 62, 49,247,160,178,133, 19, 0,220,220,220,250,135,
+133,133,113,119,238,220, 89,152,154,154,122,121,240,224,193, 41, 78, 78, 78,149,172,191,246,246,246, 8, 14, 14,198,156, 57,115,
+184, 61,123,246,172,145,211,219,219,187,123, 76, 76, 12, 8,130,168,120,104, 87, 49, 22, 7, 4,192,199,199, 7,189,122,245,226,
+246,239,223,191,123, 90, 90, 90,173,174, 35, 27,112,194,140, 69,107,129,201,113,178, 56,252,102,174,188, 21,199, 61,223, 96, 93,
+210,243,225, 25,174,205,106,135, 59, 69, 34, 81,133, 21,202, 76, 93, 85, 56, 73,146,196,236,217,179, 65, 16, 4,120, 60, 30,248,
+124,190,217,239,206,157, 59,219,218,206,199, 4, 65,144,124, 62,127, 58,151,203, 29,165, 82,169,252, 68, 34, 81, 54, 69, 81, 63,
+171, 84,170,197, 0,180, 12,195,184, 88, 16, 89,102, 57,237,237,237, 3, 30, 60,120,208,208, 82, 67, 84, 42, 21,154, 55,111, 14,
+168,144, 84, 29,103,114,114,114, 64, 80, 80, 80, 35, 0,134, 41,218,206, 50, 12,211,201,232,191, 49,206, 50, 12,243,158,254,247,
+253, 71,143, 30, 5, 52,104,208,160,232, 69,157,159, 44,231,191,143,179, 6, 45,226, 73, 16, 68,156,209,181,218,199,240,127,198,
+140, 25, 51,151, 44, 89,114,155, 32,136, 56,227,229,198,229,140,191,245,247,155, 56,134, 97,250,124,243,205, 55,161,223,125,247,
+221,183,134,178,255,132, 72,180,197,162,229, 84,160,180,199,185, 12, 39,112, 57, 20,184, 36, 1, 46, 7, 0, 67, 32, 61, 45, 25,
+165,210,226,243, 72,221,151,106,157, 37, 43,188,253, 27,111, 52, 91,182, 99,213, 52,242,167,115,114, 20,203,148,184,251,215,105,
+ 92, 61,125, 32,151,210, 81, 7, 64, 48,215, 0, 50, 1, 41,244, 61, 32,182,118,115, 92, 16, 12,183, 92,104,233,197, 85, 37,177,
+245,210,208,162,113,227,198, 3,231,204,153,227,113,253,250,117, 81, 73, 73, 73,233,142, 29, 59,178, 85, 42, 85, 26,128, 63,210,
+211,211, 27,175, 94,189, 90,176,108,217,178,102,205,154, 53,147,236,217,179, 71,109,102, 58,163, 42,156, 83, 71, 12,137, 31, 53,
+126,162, 40,105,207, 90, 8,146, 18, 48,251, 70, 33,245,103,142,124, 22,128, 85,120, 92,214,190, 64,169, 59,190, 50,172, 46, 89,
+207,145,143, 6, 46,130,206,119,159, 42,171,181,100,217,217,217,173,136,137,137, 9,104,211,166, 13, 9, 0,231,238,235,132,211,
+215,197,215,249, 99, 73,123,162,125, 83,119,228, 23,171, 48, 97,109, 34,142,198,231,255,110, 16, 89, 53, 53,210,209,209,177, 32,
+ 51, 95,234,237,238, 32,194,199, 29, 28,208,117,113, 54,194, 91, 11, 33,228, 19,184,151,154,139, 6, 65,245,136,196,243, 7, 91,
+235, 69, 86,155,156,156, 28, 0,104, 13, 32,245,241,227,199,146,182,109,219,150, 24,209, 21, 1, 88, 42, 16, 8,102, 19, 4,193,
+180,105,211, 38,177, 89,179,102,101,174,174,174, 80, 40, 20, 80,169, 84,224,243,249, 80, 40, 20, 72, 79, 79,199,229,203,151,225,
+234,234,106,211,129, 42, 43, 43,131,163,163, 35,104,154,126,102, 78,138,162,136, 13, 27, 54,216,223,190,125,219, 62, 54, 54,214,
+123,210,164, 73, 79,154, 52,105,114,109,224,192,129, 15,189,188,188, 84, 55,110,220,192,197,139, 23, 81, 84, 84,132,118,237,218,
+ 89,197,169, 86,171,193,229,114,161, 80, 40, 32, 20, 10,193,229,114,161,211,233, 64,211,116,133,248, 42, 43, 43,195,211,167, 79,
+193,231,243,161, 86,171, 95,198, 27,104, 21, 11, 85,117,195,111,181,177,104, 25, 11, 53, 43, 69, 86, 77,150, 40,139,195,157,197,
+197,197, 98, 23, 23,151,233, 0,114,106,170,139, 32, 8,112, 56, 28,240,249,124, 16, 4,129, 78,157, 58,225,211, 79, 63, 69,203,
+150, 45,145,156,156,140, 93,187,118,225,234,213,171,224,241,120, 21,229,173, 30,159,232,220,153, 35, 18,137, 46,190,255,254,251,
+161,179,102,205, 18,213,171, 87, 15, 73, 73, 73,254,223,125,247,221,244, 19, 39, 78,124, 32,147,201, 90, 27,238,118,213, 91,233,
+245, 67,130,229,195,133,189, 84, 42, 21,146,146,146,108,217,166, 10, 26, 52,104,144, 78,146,228, 67,154,166,207, 1,104,206, 48,
+ 76, 39,130, 32,142,162,220, 47,209, 24, 50,134, 97,222, 35, 8, 66, 10,224, 38, 73,146,247,105,154, 78,103,237, 54, 44,172,184,
+175,244, 49,253, 79, 16, 68,220,146, 37, 75,250,152, 19, 87,102,174,205, 74,203,191,251,238,187,111,141,254, 63,139, 69, 53, 12,
+149,157,225, 59,235,173, 92,127, 11,173,184,184,184,234, 21, 8,141,143,226,246,237,188,212, 85,131,128,208, 86, 29,141,172, 67,
+ 12, 18, 46, 95, 4,192,252,108, 85, 83, 36,125,196, 36,135,251,243,134,111,199,145, 27, 79,203,241, 56, 59, 31, 23,143,252,140,
+130,156,180,109, 0, 51, 9,169,177,210,103, 62, 18,245, 62,106,230,229,238,225,162,212, 48,160, 25, 0, 85,196,214, 75, 65,203,
+ 70,141, 26,245,143,143,143,247, 80, 42,149,162,243,231,207,203, 99, 98, 98,114, 53, 26,205,105, 0, 23,244,101,174, 23, 20, 20,
+ 68,232,133, 9,135,203,229, 10, 52, 26, 77,117,190, 11, 45,167,142, 26,126,126,233,134,173,162,135,183, 18,177, 58,246, 8,138,
+229,114,234,116,190,162, 31, 0,131,162, 63,121,189, 80,145,197,128,169,203, 35, 9, 72,236,121, 62,119,159, 42, 69,128,249, 33,
+ 89,149, 74, 53,120,232,208,161, 18,131,200, 2,128,194, 82, 45, 87,174,210,114,218, 55,117, 71,171, 46, 17, 72, 56,181, 23,123,
+206,102, 33,200,211,238,108,125,251, 98,171,246,104, 65,126,206,134,149, 81, 27, 87, 46, 93, 48, 85, 48,185,151, 51,194, 91,243,
+ 32,226, 19,112,178,227, 97,241,154,205,218,235,151,207,222,144, 72, 36,113, 0,250,229,228,228, 64, 34,145,148, 1,184,207,225,
+112, 82, 41,138, 50,231,212, 61, 23,128,119,116,116, 52,169,213,106,203,146,147,147,225,227,227, 3,111,111,111, 56, 59, 59,227,
+238,221,187,248,243,207, 63,113,239,222, 61,208, 52,141, 55,222,120,195,166,131,245,228,201, 19,220,184,113, 3,189,122,245,158,
+ 84, 80,144,239,228,234,230, 46, 59,127,238,236,247,181,225,164,105,154, 0,128,208,208, 80,132,134,134,138,178,178,178,252,226,
+226,226,188, 22, 45, 90,148, 17, 16, 16,176, 67,161, 80, 84,178, 28, 88, 43,180, 12,226,194, 32, 2, 69, 34, 17,248,124, 62,164,
+ 82, 41,242,242,242, 80, 90, 90, 30,180,233,226,226,242, 82,132,150, 5, 11,213,115, 43,255, 15,139,195, 42,195,157, 46, 46, 46,
+ 67, 1, 76,183,178, 47,208,233,116,224,243,249,104,219,182, 45,162,162,162,112,245,234, 85, 28, 56,112, 0,254,254,254, 24, 49,
+ 98, 4, 72,146,196,237,219,183,109,109, 34, 29, 31, 31, 63,189, 95,191,126,161,209,209,209,162,244,244,116,220,187,119, 15, 46,
+ 46, 46,136,138,138, 18,142, 30, 61,186,193,169, 83,167,230,162, 60,248,165,122, 24, 69, 23,202,196,146, 1,205,155, 55,175, 82,
+196,199,199,199,249,143, 63,254,240,170, 16, 96,166, 17,137, 85, 81, 60,119,238,220,149, 33, 33, 33,171,244,195,133, 29, 1,216,
+ 51, 12,211, 57, 54, 54,150, 0,128,240,240,112,134, 32, 8,195, 3,233,230,222,189,123,187,220,189,123,151,153, 63,127, 62,235,
+163,197,194,146, 22, 25,109,184, 38, 45, 9, 40, 91,132,154,177, 60,104, 55, 9, 0, 0, 32, 0, 73, 68, 65, 84,197,203,128,111,
+190,249, 38,116,201,146, 37, 87,158, 81,100, 25,191, 49, 49, 6,177, 85,241, 48,181, 56,100, 88, 97,251, 34, 37, 62, 94,238,110,
+ 51, 70,180, 7, 77, 3, 58, 10,208, 81, 12,100,114, 5,146,110, 93,149, 67, 68,196, 90,213, 28,161, 96,217,162, 89, 19, 3, 19,
+ 51, 73,100, 23,105,112,230,224, 70,166, 32, 39,173, 63, 82,247,142,124, 62, 34,107, 64,115, 31,111,175, 51, 59, 55, 46, 36,175,
+166,168, 65,209,229, 58,139,166,153,138,223, 47, 1, 62,158,158,158, 67, 46, 93,186,228, 41, 20, 10, 69, 15, 30, 60,160,247,238,
+221, 91,164,209,104, 78, 24,137, 44, 0,104,223,186,117,107,157,131,131, 3,100, 50,153, 70,163,209, 40,171, 17, 89,126,157, 91,
+182, 56,187,116,195, 86,145, 82,173, 70,137, 66, 5,142,187,151,169,200, 2,128,183,187, 52,244,245, 37, 68,142, 96, 0,164, 73,
+ 53,217,150, 68, 22, 0, 8,133,194,110,227,198,141,171, 52, 47,158,135, 35, 79,103, 39,228, 81, 23,238, 20,210, 9,167,246,226,
+220,237, 66, 90,196,231, 80,158, 76, 74,160,181, 59,160, 56,243,206,134, 3,191,197, 29,255,122,206,178, 50,185,172, 20, 65,117,
+196, 40, 43, 45,193,226, 37, 75,181,241,241,231, 78, 79,159,244,249, 91,123,247,238,253, 14,229,206,224, 0,112,127,239,222,189,
+195,231,204,153,179, 29,127,167,121, 48, 69,246,144, 33, 67, 50,155, 54,109, 90, 18, 18, 18, 82,242,228,201, 19,220,185,115, 7,
+ 69, 69, 69, 88,189,122, 53,146,146,146, 96,176, 8, 90,229,171, 82, 85, 32,161,168,232,169, 3,195, 48, 40,122,250,196,126,214,
+172, 89,206,181,225,164, 40,170,210,181,229,235,235,139,177, 99,199,242,229,114,185, 75, 70, 70,134,147,241, 58,107, 57,213,106,
+ 53, 12,150, 33,134, 97,160, 86,171, 81, 82, 82, 2,181, 90,141,135, 15, 31, 86,136, 44,125,253, 47,205,162,101,248, 45, 18,137,
+242, 12,231,178, 97, 8, 78, 36, 18,229, 91, 42,255, 44, 48,170,139,209,255,182, 85, 28,214,216, 31, 43,143, 59,248,124, 62, 62,
+253,244, 83, 92,185,114, 5,201,201,201,224,112, 56,144,201,100,144,203,229,232,222,189, 59, 4, 2,129,173, 22, 45,134,207,231,
+ 15,157, 57,115,166, 40, 53, 53, 21,133,133,133, 6,103,122, 80, 20,133, 73,147, 38,137,133, 66,225, 80, 91, 77,247, 57, 57, 57,
+239, 62,124,248,176,145,233, 39, 55, 55,183,196,216,167,176,182,136,141,141, 37,194,195,195,153,240,240,112,198, 32,184, 88,176,
+ 48, 7, 11, 90,100,147, 37,139,214,243,176,138, 25, 44, 91,208, 7,136,212, 2, 6,145, 21,102, 36,188, 8,131,133,203,186,161,
+195,160, 1,255,243,118,119, 59, 21,189, 54,210, 33,238, 22,129,204,199,105, 40,200, 73, 71,235,183, 58, 35,233, 86, 34,104, 45,
+181, 15, 15, 99,107,246,228,172, 23,222, 48, 36,164,201, 23, 97,111, 53,195,178,184, 50, 60, 72,248, 3,197, 5, 57, 63, 34,109,
+239,190,231,114,132, 2,194, 91,120,123,185,157,218,190, 54,210,229,232, 29, 18,143, 31,167,225,224,246,149,140, 86,163, 42, 70,
+229, 72, 46,155,223,154,197,180, 90, 80, 86,156, 7,117, 41, 5, 17, 41, 23,217, 56, 72,145, 11,224,220,202,149, 43,187,182,107,
+215, 78, 48,100,200,144,220,162,162,162,131, 0, 46, 25,149,105,218,176, 97,195, 94, 81, 81, 81,222,143, 31, 63,198,137, 19, 39,
+114, 81, 30,250,111, 9,153,103, 19,111,173,251,115,251,230,169,226,192,198, 88, 61,243,107, 93,236,213, 59,239, 3, 56,106, 84,
+ 38,164, 91,243,134,113,139,166,124, 73,210,215,127,199,141,244, 60,164,148,168,254,180, 68, 88, 88, 88, 72,200,229,242, 0, 23,
+ 23, 23,227, 19, 18, 18,123,153,106,218,128,134,217,221,167,159,175,163,212, 80, 16,242, 72,102,194, 7, 1,217, 87, 14,198,186,
+ 23, 42, 11, 9, 67, 52, 98, 77,248,108, 96,183, 15,214,198,236,255, 56, 46,238,240, 23, 26,149,178, 89,227,198,141,152,107,241,
+167,110, 76,159,244,121,207, 90, 30,113,135, 43, 87,174,144, 28, 14,167,146, 64, 55,182, 16,217,106, 41,178, 5,214,114,154, 10,
+ 45, 3,116, 58, 29, 81, 91, 78,149, 74, 85, 33,180, 76, 31,238,230, 4,227, 63,209,127, 91, 44, 84,198, 67,134, 6,127, 58,165,
+ 82,233,165,247,217,242,126,158, 22,173,103,137, 68,172,110,248,210,150,246,145, 36, 9,154,166,193,231,243,241,198, 27,111, 32,
+ 46, 46, 14,110,110,110,112,114,114,130,147,147, 19,196, 98, 49,220,221,221, 43,132, 22, 73, 90, 29,165,195,168, 84, 42,127,127,
+127,127, 60,124,248, 16, 34,145,168,226, 35, 20, 10, 17, 26, 26, 10,153, 76,230,139,151,105,187,103,193,226,159,189,175,196, 25,
+139, 37,130, 32,226,102,204,152, 49,179,182,124, 51,102,204,152,105,206,194,245,140,130,171,146,117,139,107,172, 32,205, 42, 73,
+189,200,218,246,227, 2,167,253,127, 1,153,153,169, 56,190,103, 77,169, 86,163, 46,162,105,109, 64,202,189, 68,128,196,207, 86,
+ 53,129,100,222,252,160, 87, 23,226,248,109, 53,164,197, 5,184,127,237,143, 52, 40, 4,223, 60, 55,145,229,237,113, 42,122,237,
+ 2,151, 67,183, 8, 60,126,156,134,163, 59, 87, 75,181, 26, 77, 55,164,198, 94,123, 22,234,161,124,254, 7,252,186, 25,125, 70,
+117,204, 6, 69, 80, 24,154,116,247,189,252, 92,124,144,115,190,250,200, 48, 99, 20, 20, 20, 28, 92,185,114, 37,177,124,249,242,
+ 48,165, 82,249, 43, 0, 99, 19,101,179,160,160,160, 65,155, 54,109,114,123,252,248, 49,239,252,249,243,178, 83,167, 78, 49, 0,
+ 14,213, 96,113,153,214,125,228, 88, 78,203,122,190,227,174,167,101,189, 15,224,119,163,213,161,125, 90, 53,189,176,117,201, 92,
+ 71,237,133, 88,148,229, 60,198, 55, 23, 50,165, 0,172,222,223, 90,173, 22, 37, 37, 37,208,150, 61,209,181,150,200, 74,230, 71,
+120,169,242,138,148, 92, 30, 45,215,133, 56,229,171, 78, 61, 73,225,216,217,217,217,180, 47,215, 46,153, 26, 3, 32, 38, 34, 34,
+ 34,250,102,252,225,214, 18,137,228,112, 72, 72, 8, 1, 0, 22, 34, 12, 45, 33, 18,192,164,183,223,126,155,104,219,182,237,229,
+ 85,171, 86, 29,171, 78,172,212,198,162, 85, 19,172,229,164,105,154,180,176,127,137,218,114, 26, 91,180,106, 18, 90, 47,211,162,
+101, 78,180, 24,139, 68, 99, 33,244,111,136, 58,172, 78, 76,217,210, 62,131,159, 28,159,207, 71, 98, 98, 34,234,214,173, 11,141,
+ 70, 3, 71, 71, 71, 56, 58, 58,194,193,193, 1,165,165,165,224,241,120,176,177,207,180, 72, 36,202,184,115,231, 78, 35, 79, 79,
+ 79, 80, 20, 85, 73,108, 61,120,240, 0,246,246,246, 89,182, 90,180, 36, 18,201, 31,250,168,195, 74,240,241,241,113,126, 30,251,
+213,216,146, 21, 30, 30,206, 14, 17,178,168,214,154,101,193,170, 85, 96, 98,137, 82, 27,253, 47, 64,121, 14,183, 62,250,223, 48,
+243, 91,109,102,217,147, 37, 75,150,156, 50,242,239, 42,120,198, 46, 24, 82, 60, 84,138,112,225,214,100,201,242,114,115, 61,181,
+101,245,124,167, 61, 9, 64,214,227, 84,156,217, 23, 85,162,163, 52,239,128,102,114,226, 79,236,139, 5, 1, 57, 82, 98,207, 88,
+119,139, 64,203,150, 77, 2,112,224,182, 22, 5,153, 15,192, 48,244, 54,228,199,200,159,249,232, 4,125,244,134,151,155,199,169,
+109, 81,243,157,247, 39, 18,200,124,156,138,227,123,162,164, 58,173,188, 43, 82,247, 37,212,150,246, 83,192,149, 99, 47, 90,215,
+191,115,203, 1, 1, 65,126,160, 25, 45,104, 62,131,143,166,121,112,239, 95,151, 31, 56, 39, 42,217, 67,151,209, 95,100, 93,178,
+206,129,174,172,172,236, 0,128,107,168,156, 94,161, 69,112,112,240,128,117,235,214,121,102,102,102,138,174, 95,191,174,216,184,
+113, 99, 62, 77,211,251, 1, 88, 51,148,250,245,245,180,172, 45,168,156, 47,167,197,212,145, 67,226,135,124, 50, 74,148,122, 34,
+ 6,174,169, 73,152,114, 33,155,186, 95,164, 30,172,183,174,153,133,135,135, 7, 83, 88, 88,152, 94, 92, 92,220,200,222,222, 30,
+ 79,158, 60,193,211,167, 79, 81, 82, 82, 2,149,244,169,206,157, 42,150, 17,186,167,224,241,120,200,127,172, 5, 69, 81,185,214,
+ 90,179, 0,184, 70, 70, 70,126, 70,211,180, 33, 35, 98,165,232, 66,163,114,134,243,161, 81, 68, 68, 68,180, 81,212,161,177, 51,
+188, 33,189, 3,161, 79,239,208,238,247,223,127,191,219,179,103,207, 76,115, 98, 69, 40, 20,218,236, 40,109, 41,138,177, 54,156,
+150, 44, 90,166,203,109,225, 52, 12, 95, 26,156,224, 77,151, 27,192,225,112, 64,211, 52,172, 8,170,248, 71, 69,139,113,116, 96,
+109, 68,142,201,177,169, 54,113,104, 45, 35, 17,159,171, 69,203,112, 44,248,124, 62,126,251,237, 55,124,242,201, 39,160, 40, 10,
+118,118,118,112,112,112,128,189,189, 61,246,237,219, 7, 67,250, 7, 91,244,171, 86,171,253,101,201,146, 37, 51, 55,108,216, 32,
+102, 24, 6, 2,129,160, 66,104,205,159, 63, 95,161,209,104,126,177, 74,104, 25, 50,190,211,204, 29,123,123, 93,181, 81,135,230,
+182,177,224,175,229, 18, 25, 25, 57,156,166,233, 15, 96,146,194,193,164, 92,165,212, 15,108,122, 7, 22, 86,220, 79,174,254,139,
+155,103, 16, 88,132,145, 37,171, 66,112,145,213,137, 23, 79, 87,151, 83,155, 87,207,119,218,113,149, 64,106, 74, 10, 78,255,186,
+166, 92,100, 61,218,243, 23,210, 99,243,144, 26,219, 1, 41,177,239, 90,253,246, 68, 16, 45,235,120,185,224,169,140,134,180, 48,
+ 3, 96,112,253,121,136, 44, 79, 87,207, 83, 63, 69,205,119,222,251, 23,137,212,212, 84, 28,223,179,166, 68,167, 83,190,243, 44,
+ 34,107, 40,159,255, 65,112, 67,191,228,217,159,125, 48,160,109, 3, 31,184,103,220,197,161, 17, 3,176,112,215,135,112,244,228,
+224,205, 94,142,248,116,177,207, 0, 73,168,240,161,164, 3, 62,176,129,218, 88,100,181,172, 95,191,254,128, 75,151, 46,121, 52,
+111,222, 92,116,239,222, 61,229,198,141, 27,243, 21, 10,197, 49, 0,137, 54,112, 26,139,172,150, 51, 70,143,136, 95,186, 57, 90,
+ 68,242, 5, 88,246,203, 33,140, 63,155, 73, 29, 78,151, 70,160,242,176,162, 89,168, 84,170, 19, 81, 81, 81, 42,146, 36,241,244,
+233, 83, 20, 22, 22, 34, 63, 63,191,226,187,184,184, 24, 28, 14, 7, 39, 79,158, 84, 75,165,210, 75,214, 54,240,226,197,139,245,
+179,178,178, 66,114,114,114, 90,235, 63,247, 80, 30, 93,232, 96,180,172,117, 78, 78, 78, 24,128,171,134,229,153,153,153,245, 46,
+ 95,190, 44,169,137,223,209,209, 17,124, 62,191,146, 69, 75, 40, 20,194,219,219, 27, 58,157, 14,187,119,239, 6,128,167,213,113,
+240,249,130, 28,146, 36, 64, 51,180, 74, 36, 18,209, 18,137,196,172,192,178,133, 83,143,204,247,222,123, 79,153,144,144, 96,214,
+162, 85, 27, 78,134, 97,228, 61,122,244, 64,118,118, 54, 68, 34, 81,197,195,218, 32,168, 72,146,132, 80, 40, 68,110,110, 46,198,
+140, 25, 3,134, 97,228, 47,250,206, 99,236,211,164, 23, 67, 4, 0, 66, 47,132,170,248,105, 89,235, 3,101, 24, 26,100, 24, 6,
+ 6,193,101,178,190,162, 46,107,178,183,155,248,116,141, 46, 46, 46, 94, 90,222, 28,102,163,201,247, 38, 27, 30, 10, 21, 66, 43,
+ 41, 41, 9,209,209,209, 40, 46, 46,134, 64, 32, 64, 81, 81, 17,182,110,221,138, 59,119,238, 64, 32, 16,192,176, 47,172,213,111,
+109,219,182, 93,122,238,220,185, 59,131, 7, 15, 86, 36, 38, 38, 66,161, 80, 32, 49, 49, 17,239,190,251,174,242,194,133, 11,201,
+ 10,133, 34, 18,214, 12, 29, 26, 50,190,235,167,215, 81,169, 84,184,126,253,186,217,143,165,109, 76,145,156,156, 28, 64, 81, 84,
+ 35,134, 97, 58, 50, 12,227, 4,125, 10, 7,253,127,227,207,123,250,117, 78, 12,195,116,164, 40, 42, 56, 57, 57, 57,128,149, 19,
+ 44, 94, 81,156, 49, 18, 91,140,145,200, 58, 83,189, 69,139, 38,163,182,172, 89,224,244,203, 21, 18,143,211,147,113,237,200,186,
+ 18,138,214,190, 99,227,116, 56,221, 96,148,107, 67, 36,182,111, 70, 19,229,225,204,210,194,199, 0,195,169,141,208,170,196, 9,
+154,140,218,186,102,190,243,206,107, 4,178, 31, 63,194,133,131,107, 75,116, 58, 85, 87,164,196, 94,175, 13,231, 80, 62,127, 14,
+143, 67,204,238,209,254,127,252, 14,255,107, 8,251,252, 52,228,102,102, 99,119, 82,193,211,228, 34,213,168, 11,132, 6,233,143,
+ 84, 91,122,125,230,230,230,234,195, 67,159,207,221,221, 46, 29,146, 30, 32,120, 50, 13,163, 97,150,228, 92,168,152,150,162,114,
+ 59,171,194,199,209,209,113,240,181,107,215,156, 68, 34,145,248,218,181,107,244,198,141, 27,159, 40, 20,138, 35, 0,226,173,234,
+123, 85,248,181,105, 24,116,230,219,181,155, 69,101, 50, 57,100,106, 13,132,222, 18,106,127,252,173,254,176,156, 0,179, 18,167,
+ 80, 40,220,185,115,231,206, 94,157, 58,117, 10,104,214,172, 25,249,244,233, 83,148,149,149, 85, 56, 87,123,122,122, 34, 41, 41,
+137, 78, 77, 77,205, 22, 10,133,187,172,109,231,219,111,191,157, 74,146,228, 61,253, 48,218, 61,152, 68, 23, 26, 21,109,148,147,
+147,211, 70, 34,145,156, 1, 96,103, 20,117,104,204,105, 72,239, 48, 19, 0, 73, 16,196,213,196,196,196,178,158, 61,123, 66, 44,
+ 22, 67, 38,147,193,223,223, 31, 58,157, 14, 71,142, 28, 65, 66, 66,130,140,166,233, 51,102,196,107,165,118, 42,149, 10,127, 0,
+164, 66, 46,127, 99,248,240,225, 97,147, 39, 79,174, 20,146,238,229,229, 5, 55, 55, 55,155, 56, 1,224,233,211,167, 77,126,255,
+253,247,137,137,137,137, 95,247,234,213,203,121,230,204,153,194,250,245,235,131,162, 40,178,182,156, 69, 69, 69,206,215,175, 95,
+255,190, 67,135, 14, 95,246,236,217,147,251,237,183,223,194,217,217, 25, 20, 69, 65, 44, 22, 67, 42,149, 34, 50, 50, 18,231,207,
+159,215, 49, 12,179,182,164,164,100,138,141,231, 18,158,245,218,180,100, 1,178,148,146,193, 66,249,127,188,157, 38, 62, 93,208,
+167,112,152,110, 33,131, 61,172, 61,231, 13, 66,139,195,225, 32, 45, 45, 13, 27, 55,110,172,146, 71,203,144,254,193, 2,183,185,
+190, 51,167, 79,159,166, 8,130,120,235,218,181,107,211, 63,254,248,227, 81, 50,153,204,207,222,222, 62, 91,171,213,254,172, 80,
+ 40, 22,163,220, 31,149,111,203, 61, 68, 38,147,165,155,139, 58, 52, 45, 3,184, 84,203,105,146,222,161, 82, 10, 7,147,109, 42,
+165,126, 48,147,222,225, 31, 63,238, 44,231,191,146,243, 85, 23, 91,150, 19,150, 86, 65,203,209, 60,158, 66,219,252, 92, 50,241,
+ 44, 34,171,170,181, 68, 41, 79,158,187, 51,227,127,106,149, 18,178,146,188,251, 72,219,157,255, 76,221,210,183,243,108, 50,129,
+180,212, 71,184, 18,183,182,188,157, 41,177,181,110, 39, 1,124,179,254,104, 44,159,112,118,195,141,137,159, 32,187, 88,134,163,
+ 41, 69,123, 24,185,234,139, 95,128, 34,156, 7, 72,157,234,220,214, 89,185,235, 58,126,228, 60,192,195,151,135, 21, 83,127,134,
+104,134, 59,255,205,174,157,108,153, 3, 49, 87, 36, 18,157, 91,189,122,117,183,142, 29, 59, 10, 35, 34, 34,204, 57,200,219,138,
+204,171, 15, 30,173, 63,188,225,135,169,238,205,219,225,199, 57,211,168,157,241,183, 76,163, 16,171, 69, 72, 72, 8,117,241,226,
+197,201, 99,198,140, 89,209,173, 91,183, 58,239,191,255,190,192,223,223, 31, 66,161, 16,143, 30, 61,194,185,115,231,212, 41, 41,
+ 41,217,114,185,124,114,139, 22, 45,108,201,113, 86, 52,119,238,220,165,250, 58, 8,253,112, 97,107,232,163, 11, 13,133,244, 73,
+ 75, 91, 3,176,155, 63,127,254,199, 0, 96, 33,236,123, 46,128, 13, 0,184, 12,195,228,198,196,196,188,117,240,224,193,183, 38,
+ 77,154,196,239,213,171, 23, 46, 93,186,132,227,199,143,107, 52, 26, 77,188, 94,184, 90, 59, 85, 14, 13,224,186, 78,167,187,181,
+108,217,178,183, 56, 28,206, 92,195,138, 59,119,238, 96,219,182,109,181,225,212, 1,248, 62, 47, 47,111,125, 76, 76,204,220, 19,
+ 39, 78,140, 28, 62,124,184,147, 86,171, 69, 82, 82, 18,126,250,233,167, 90,113,150,148,148, 76,244,240,240,152,125,228,200,145,
+159,143, 29, 59,214,111,216,176, 97,228,248,241,227, 17, 21, 21,133, 95,127,253,149,166, 40,234, 32,143,199, 27, 94, 88, 88, 40,
+123, 25,119, 29,253, 48, 92,182,141,115, 29,214,200,251, 44, 67,131, 86, 34,231, 89, 9, 12,253,232,220,185,115,133,149,209, 96,
+133, 51, 46, 67, 16,132,205, 67,135, 0, 92, 24,134,161, 1,172, 69,249,252,162,198, 89,225, 57,248, 59,115,188,181,140, 77,115,
+ 84, 46,119,160, 66, 82,245,147, 74,187, 0, 12,154,214,192, 86, 60,119,238,220,149,243,230,205, 91,105,154,194,193,184,144,105,
+234,135, 5, 11, 22,128, 77,239,192,226,117,133,121,161,117,125,147, 86, 27,216,127,230,234,111,167,205,211,105,213, 37, 12, 52,
+225,120,180, 47,241, 89, 43, 99,104,102,198,201, 29,243,163,192,160,136,161,116,211,159,185,245,255, 80, 59, 9,103, 55,148, 70,
+142,197,175,183,179,153, 92,153,246,195, 95, 52,154, 74,214,160,114,159, 44,122,224, 41,101,209,110,215, 58,188,253, 19,223,113,
+ 39, 14, 63,253,216,230,122,242,243,243,127, 91,185,114, 37,249,195, 15, 63,132,201,229,114, 83, 7,249,218, 98, 90,223,113, 51,
+ 56,111, 6, 7,140,187,242, 48,253, 3, 88, 49, 92,104,138,183,223,126, 59,231,238,221,187, 67,142, 29, 59, 54,248,236,217,179,
+221,100, 50, 89, 0, 65, 16,176,179,179, 75, 87,169, 84, 39,132, 66,225, 78, 27, 69, 22, 0, 96,222,188,121,204,130, 5, 11,136,
+187,119,239, 50, 28, 14,231, 79, 0,169, 28, 14, 39,205,216, 9,222,120,185, 97,155,249,243,231, 91,243, 64, 60, 91, 86, 86,150,
+ 16, 25, 25,217, 41, 50, 50,242, 13,189, 85,232, 44,254,246,249,178, 21, 90, 0,103,249,124, 65, 54, 65, 16,126,124,129, 80,118,
+241,226,197, 19,207,200, 41,215,104, 52,211, 31, 63,126,188, 98,197,138, 21,139,237,237,237,219,220,185,115,231,207,103,225,212,
+139,168,254,110,110,110,117,162,163,163,247,110,221,186,181, 29,151,203,189, 68, 16, 68, 68, 73, 73,201, 75,157, 84, 90, 63, 65,
+244, 2, 27,230, 58,180,138,247,121, 39, 41,253, 39,132, 27, 69, 81,101,179,103,207,206, 55, 21, 94,166,214, 43,195,127,125, 42,
+ 23,107,246,169, 45, 81,148, 53, 8, 23,162, 12, 0,202,231, 46, 44,159, 86,199,218, 73,165, 1, 40,106,186,206, 73,146, 60, 8,
+224, 62, 73,146, 15, 77, 3, 93,140,215, 45, 88,176,160,166,235,156, 5,139, 87, 26, 86,220,217,230,147,192,252,218,122,210,190,
+ 64,115,229,243,105,231, 16, 62,127, 1, 9, 76, 5, 64, 48,192,138, 95, 52,154, 89,213,109,232,243, 54, 22, 51, 4, 38,233,119,
+230,183,185, 23,176,168, 22,125,247,133, 21,243, 15,218,200,217, 24,213, 79, 40, 91,133, 51, 60, 60,156, 99,225, 97, 94,105, 82,
+105, 75,136,141,173,200,226,111,169,157,198,231,155,227,229,203,151,235,180,109,219, 54, 7,149,157,254,205, 45,103,108,236, 59,
+ 7, 0,245,156,247,231, 43,193, 25, 20, 20, 36,120,244,232,145,250,223,117,109,178,156,255, 74, 78,151, 38,117, 65,224, 51, 24,
+231, 14,170,214,162,101, 36,208, 24,230, 39, 20, 39, 61,182,208, 78,195,117,238,146,156,156, 28,208,160, 65,131,116, 0,197, 38,
+237, 48,183,142, 97,143,209,127,158,211, 28, 70,163,242, 84,116, 44,204, 28, 8,150,147,229,100, 57, 89, 78,150,147,229,100, 57,
+ 89,206,218, 10,173, 87, 26, 36, 88,176, 96,193,130, 5, 11, 22, 44, 88,252, 35, 32,170, 81,165,182,152, 4,107,163,108, 79,176,
+156, 44, 39,203,201,114,178,156, 44, 39,203,249,159,227,172,137,219,120,251, 87,117,232,240,133,181,155, 53,171,178,156, 44, 39,
+203,201,114,178,156, 44, 39,203,249, 44,130,229,149, 6, 23, 44, 88,176, 96,193,130, 5,139, 87, 6,221, 26, 66,194,165, 64,254,
+254,200,170, 32,170, 26,209, 51, 8,190, 0,240,188,248,254,163,144, 0,232,109,244,255, 48,244,145,241,172,208,122,117, 17, 12,
+ 96, 38, 0,227,185,200,174, 0, 88, 98, 82,110, 7, 0,227, 9, 9,101, 40,159, 39,240,161, 45,149,145, 36,185,164, 83,167, 78,
+ 95,156, 63,127,254, 7,157, 78, 23, 89,139,246, 6, 72, 36,146,165, 4, 65,180, 2,192, 35, 8,226, 81, 94, 94,222, 18,157, 78,
+247, 44, 81, 43,129, 62, 62, 62,223, 1,248, 31, 73,146, 60,130, 32,146,243,242,242, 22,233,116,186,211,207,192,233,232,237,237,
+221,158, 97, 24, 31, 0, 28, 30,143,247, 36, 43, 43,235, 50,106,153, 91, 41,124,126, 18, 95, 42,211,241, 0,192,201,158,171,141,
+157,223, 68, 99,237, 50,246, 20,103,193,226,191, 13,166, 60, 50,185, 18,222, 13,194, 98, 70,135, 41, 20, 64,244,168,143, 53,127,
+164, 98,138,165,237, 9, 51, 81,205,166,156,239, 6, 97, 49,197,148,115,244, 8,194,247,127, 60, 66,181,145,246,214,112, 26,176,
+ 9, 32, 71, 91, 49, 75, 1, 97, 93,244,245,191, 29,189, 81,121,168,176, 98,232,176, 90,161, 53,176, 33, 36, 20, 23,220,216, 36,
+ 24,194,120, 29, 1,188,161,127,200, 63, 68,121,174,162,210,103,108,220,171,194,249,111,195, 92,134, 97,134, 84, 58, 89,205,228,
+ 33,122,231,157,119,222, 63,118,236,152,157, 97,190, 59,154,166, 33, 22,139,117, 0, 70,216, 80,151,215,192,129, 3,103,108,217,
+178, 5, 3, 6, 12,152, 29, 23, 23,183, 18, 64,153,181, 27,187,186,186,134,187,184,184, 68,109,222,188,217,179, 93,187,183, 8,
+129, 64,128, 71,143,146,253,198,140, 25,211,236,238,221,187, 7,243,243,243, 71,217,218,121, 55, 55,183,161, 46, 46, 46, 43, 54,
+110,220,232,209,161, 67, 7, 16, 4,129,132,132, 4,191,137, 19, 39,190,145,145,145,177, 43, 47, 47,239, 75, 91, 57,221,221,221,
+ 27, 58, 59, 59,119,249,241,199, 31,197,237,219,183,135, 72, 36, 66, 98, 98,162,195,231,159,127,238,147,149,149,149,148,151,151,
+119,198, 86,145,117, 51,225, 80, 63,157, 70,181, 12, 0,184,124,225,180,118, 43,226, 15,221, 60,117,168,111, 77,203,194,231, 39,
+ 29, 96,197, 22, 11, 22, 44,140, 49,180, 14,124, 24, 6, 83,143,253, 52,135, 4,128, 30, 35, 23,142, 31, 90, 7, 63,252,146,109,
+121, 14, 91, 27,249,166, 12,247, 69, 84,116, 22,242,158,165,157,155, 0,114, 34,151, 59,254,205,182,109, 61,190,186,112, 33, 89,
+ 3,252,252, 31, 57, 68,102,135, 57, 45, 10,173,254, 77, 16,169, 43,183,152, 16, 61, 27, 96,215,241, 84,206,185,119,222,121,167,
+193,167,159,126, 74,180,108,217, 18, 9, 9, 9, 13,119,237,218,213,251,240,225,195,201, 20, 69, 37, 0,184, 13,235,179, 90,243,
+ 0,132,114, 56,156, 86,255,114,206,127, 51,236,245,226, 42, 15,127, 39, 58,173,146,240,244,228,201,147,191,113,185, 92,131, 69,
+235, 77,153, 76,230,109, 98, 5,179, 6,245,180, 90, 45,238,221,187, 7,146, 36,121, 0,234,163,234,148, 26,150,224,103,103,103,
+183, 46,254, 74,130, 59,193, 21,163, 72, 9, 64,169,129,192,193, 27, 91,182,197,184, 77,158,240,101,255,211,167, 79,159, 43, 45,
+ 45,221,110, 67,123,234,219,219,219,175,188,113,227,134,187,157,157, 29,104,154, 70,105,105, 41,124,124,124,176,121,243,102,151,
+201,147, 39, 15,145, 74,165,167,149, 74,229,175,182,136,115,103,103,231, 46,183,110,221, 18, 27, 38,148, 86,171,213,240,243,243,
+195,142, 29, 59,132,227,199,143,111, 82, 92, 92,156,169, 86,171, 83,172, 37,148,202,116, 60,157, 70,181, 44,122,237,252,186, 0,
+ 48,252,203,249,203, 4,165, 78, 71,172, 89, 38,149,233, 14, 3, 96,133, 22,139, 23,141, 86, 30, 30, 30,177,133,133,133,103, 0,
+140,194,243,177, 52, 52, 20,137, 68, 45,104,154,246, 33, 73, 18, 28, 14, 39, 87, 38,147,221, 0,240,160,182,132,238, 65,157,251,
+ 66,104,247, 9, 24,250, 13, 18, 0, 65,146,137,148, 70,190,237,201,131,211,135,158,137, 83, 32, 30, 9, 48,111,144, 0, 77,144,
+228, 13, 90, 39,223, 92,120,239,244,209,127,203,193,185, 84,130, 70, 65, 62,214, 79,140,249, 60,248, 6, 5, 66, 66,210, 32,119,
+164, 89, 63,172, 56, 14,232, 53, 97,194, 4,159, 47,191,248,130,248,100,196,136,224, 51,231,207, 19, 97,182,204, 86,240,106,194,
+162,227,187, 89,161, 21,222, 4,174, 12, 48,125, 87,212, 76,146,203,225, 16,131, 39, 44, 25,178,117,237,247,100,247,190, 17, 21,
+195, 39, 29, 59,118, 68,199,142, 29,137,101,203,150, 5,255,249,231,159,193, 59,118,236,208,197,199,199,223, 0,176,219, 82,101,
+239, 6, 65, 65, 3, 34, 62,143, 43, 27, 60,103,251,198,182,109,219,254,159,189,243, 14,139,226,106,219,248, 61,219,251, 46, 11,
+ 11, 75, 71, 84, 58, 54,136, 98, 87, 44,216, 80, 44,137, 93, 99,124,237, 45,209, 68, 99, 98, 52, 38,182,216, 98, 84,140, 26,107,
+236,250, 26,123, 47,177, 87, 80, 64,197, 74,103, 89,154,244,178,253,124,127, 0,126, 72, 40, 11,152,215,148,249, 93,215, 92, 11,
+103,103,238, 61,211,206,220,243,156, 6, 30,143,135,250,104, 2, 64,247,198,140, 24,182,101,195,136, 97,211,230,199,183,110,221,
+150,188, 11,205,191, 17,119,129, 55,147, 90,203,157,156,156,218, 25, 12, 6, 62, 0,176, 88,172,226,196,196,196,105, 40,153, 27,
+ 16, 0,142,154, 76,166,126,181,208,102, 0, 88,208,175, 95,191,121, 83,167, 78,133,179,179, 51,166, 79,159, 14,189, 94, 31,118,
+250,244,233,249, 0,150,161,134,155,199,198,198,102,254,134, 13, 27, 44, 89, 92, 17,252,230,196, 34, 37,219, 0, 0, 16,243,128,
+ 99,147, 8,166, 79,159, 46,189,127,255,254,162,218, 24, 45, 27, 27,155,239,126,249,229, 23, 75,161, 80, 8, 66,200,155,185, 24,
+243,243,243,145,159,159,143, 41, 83,166, 72,159, 60,121,242, 67,109,140,150, 82,169,108,183,126,253,122, 1,159,207, 71,126,126,
+ 62, 71,167,211, 81,121,121,121, 40, 44, 44, 36, 90,173, 86, 55,109,218, 52,222,163, 71,143, 58,167,164,164,196,128,230,175, 2,
+ 19,192, 0, 54,155, 61,176,113,227,198, 31,188,120,241,226,129,193, 96, 56, 12,224,240, 59,120,153,234,106,111,111,191, 88,165,
+ 82,173, 7,176,235,223,114, 64,149, 74,229,225,155, 55,111, 58,109,216,176,225,227, 85,171, 86,157, 2,240,223,122,200,113, 56,
+ 28,206,160, 78,157, 58, 57,141, 30, 61,154,171, 84, 42,161,209,104, 16, 27, 27, 43, 61,112,224,128,203,195,135, 15,147, 74,103,
+196, 48,251,133,194,202,189,173, 24, 44,233,190, 54,109,219,181, 31, 60,104,128, 68,105, 37, 67,145,214,136, 23,241, 41,206,103,
+ 78, 29,235, 20,205, 17,220,212,233,114,134,102, 62,191,153, 95, 91,205,192,192,174,237,187,117,237, 42,145, 89,200,144, 83,160,
+195,171,184,100,151,203,231,143,119, 96,177, 4, 87, 77,148,126,100, 90,212,249,194,247,121,110,166, 3,172, 2,190, 85,179,230,
+109,253,238, 7,141, 93,244, 1, 33, 4, 12,130,181, 21,163, 89,211, 1,214,218,146,105,191,106,165, 7, 66, 8, 69, 97,101,249,
+104, 86,143, 70, 88, 76, 8, 62, 7, 3, 84,143, 26,170, 41,203, 8, 2,120, 22,150,150, 1, 19,199,143,167,242,114,115,241,240,
+225,195,194,138, 38,235, 71, 7,112,174, 50,208,224,104, 98,221,205,246, 95, 52,154, 85,105,213,161,217,227,104, 9,133,194, 74,
+211,101, 50, 25, 2, 3, 3,177,116,233, 82, 22, 0,255, 10, 95,191, 61,201, 42,192, 59,177,113, 46,100, 34, 30,195,217,217, 89,
+ 34,149, 74,235,173, 9, 0, 32, 38,215,182,206,164,215,189, 95,191,250,248,194,158,213,190, 5,121,217,236,138,171,136,197, 98,
+120,120,120, 96,222,188,121,230,105,214,159,255,169,166,173,173,173,103,135, 14, 29,252, 47, 93,185, 98,161, 82,169,120, 42,149,
+138,119,238,210, 37,139, 54,109,218,248,219,218,218,122,190, 57, 84,132,212, 38,159,223,135,134,134,206, 63,122,244, 40,163, 67,
+135, 14,144,203,229, 8, 12, 12,196,169, 83,167, 88,171, 86,173, 90, 2, 96, 94, 77,249,100, 48, 24,237, 59,116,232, 64,129, 16,
+168,115, 12,184,179,212, 19, 15, 87,122, 33,175,152,224,117, 78, 46,138,138,138, 33, 20, 10,249, 40,169,238, 53,119,223,219,182,
+105,211,134, 2,240,198, 92,229,229,149, 44,249,249, 5,208,106,117,224,241,120, 18, 0,124,115, 53, 9, 33,182,237,218,181, 3,
+ 0,232,116,186, 55,111,120,217,217,217, 84, 78, 78, 14,180, 90, 45,216,108, 54, 7, 53,183,107,124,163, 41, 21,177,244, 44, 14,
+111,246,232, 41,223, 38,142,158,242,109, 34,139,195,155,173,149,228, 26,205, 73,147,138, 88,250,247,124,125, 90, 51, 24,140,109,
+141, 26, 53,122,194, 96, 48,118, 2,176,173,167,102, 75, 0, 75, 4, 2,193, 5, 47, 47,175, 68,161, 80,120,169,212,168,183,169,
+163, 38, 87, 40, 20, 94, 90,178,100,201,193, 7, 15, 30, 12,190,120,241,162,107,100,100,228,160,229,203,151,239, 19,139,197,215,
+240,118,187,196, 90,223,155,174,174,174, 91,239,220,185,211,178,109,219,182, 91, 0,240,222,209,253,206, 4,208, 2,102,205,200,
+241, 94,206,187,189,159,159,159, 19,159,207, 71,183,110,221, 0,160,115,125, 52, 57, 28,206,160,121,243,230, 53,250,230,155,111,
+184, 41, 41, 41,184,116,233, 18,238,222,189, 11,131,193,128, 73,147, 38,241, 70,143, 30,221, 80, 34,145, 12,170, 85, 62, 89,210,
+125, 51, 62,253,172,231, 23,211,199, 73, 34, 18,116,216,126, 33, 1, 71,110,165, 32,173,144,139,190,131, 70,203,122,132, 12,233,
+193,229,201,246,213, 86,243,203, 57,115,122,142,255,100,184,228,113,138, 9,199,110,171,113,251,105, 14, 12,108, 11,244, 30,244,
+ 31,121,243,118, 61,251,176,192,222,241,190,207,209, 47, 64,235, 25, 51,102, 88,207, 94,185,251,134,125,203, 1,107,211,179,208,
+161,188,241,113, 7, 44, 44, 69,162, 1, 79, 59,117, 26, 39, 40,153, 47,182, 90,205,183,244,252, 67,214,165,101,161, 99,249,246,
+ 89, 29, 45,225, 86, 90,173,200, 60,183,237, 27, 6,161, 48,125,132,253, 91,229, 64,165,249,252, 29, 24, 60,227,179,207,216, 50,
+185, 28,161,161,161,208, 20, 20,188,213,102,182,171, 19,122, 94, 16,178,146, 26,122, 57, 62, 9,116,161,174,253, 3,223, 87,198,
+ 87, 25,209, 58,113,226, 4, 9, 14, 14,166, 0,224,208, 19,100, 13,242,198, 15, 67,166, 46,153, 71, 49, 40,210,192,183,237, 99,
+135, 70, 62, 5, 86, 86, 86, 40, 44, 44,132, 70,163, 1,135,195, 65,113,113, 49, 18, 18, 18,112,251,246,109,200,229,242, 90,229,
+ 36, 55, 55, 23, 98,177, 24, 98,177,248,157,104,206,253,184, 27,239, 85, 98, 58,239,236,237,223, 59,253, 52,249,191,173, 27,181,
+232, 28,217,117,200,244, 40,169,181,125,113,100,100, 36,110,222,188,137,172,172, 44, 4, 4, 4,252, 83, 78,230,221,210, 54, 89,
+119, 1,200, 27, 55,110,236,120,246,194, 85,121,126,177, 73, 26,151,170,103,155, 76, 38, 8,133,118,134,253,135,142,229, 12, 30,
+212,151, 82,171,213,105, 0,238,150,154,219,154,230, 84,228, 3,240,252,240,195, 15,191,156, 60,121, 50, 94,190,124,137,113,227,
+198, 21,221,189,123, 55,179,109,219,182, 86,191,252,242,139, 96,230,204,153,184,114,229,202,130, 19, 39, 78,252, 6, 32, 22, 64,
+165,115,181, 17, 66, 56, 28, 14, 7,134, 82,219,160, 51,154,222,248,251,220,220, 92,144,162, 44,112, 56, 28, 38, 0,107,152,217,
+142,206,100, 50,113,216,108,246, 27,147,149,144,154,139,132,180, 66,228,230,107, 81, 84,100,128,182,136,128, 41,180, 98, 1,113,
+ 74, 0,113,230, 70, 71,248,124, 62, 12, 6, 3,242,242, 74,178, 81, 22, 41,211,106,181,200,201,201, 1,147,201, 20, 3,144, 2,
+120,109,142, 96,105, 35,247, 35,165,213,128,184,183,187,159,226,197,201,185,111,165, 73, 69, 44,253,161,153,222, 76, 43,199,230,
+215, 91, 12,222,225,245, 38,237,253,182,207,226, 89, 91, 91, 95, 62,120,240,160,183,155,155, 27, 98, 99, 99,189, 62,250,232,163,
+128,148,148,148, 22,168,253,156,140, 66, 6,131,241,195,232,209,163, 39, 15, 27, 54,140,114,119,119, 7,139,197,130,193, 96,112,
+124,249,242,101,224,129, 3, 7,230,108,221,186,245, 23,163,209, 56, 11,230,183,251, 99,112,185,220,253,155, 54,109,234, 24, 16,
+ 16,128,157, 59,119,226,238,221,187,166,150, 45, 91, 50, 70,141, 26, 5, 23, 23,151,128, 81,163, 70, 29,209,104, 52,189,235, 24,
+217,114,105,211,166,141, 19,147,201, 68,219,182,109, 57, 55,111,222,244, 3,112,179,158,199, 84,236,232,232,120,165,115,231,206,
+ 45, 46, 92,184, 16,174, 86,171, 59,215, 98,127, 1, 32,196,222,222,126,185, 76, 38,147,215,162,140, 45, 76, 78, 78,254, 28,192,
+ 33, 51, 55,105,237,239,239,143,248,248,120,120,122,122,130,195,225,180,209,233,116, 19, 0,244, 4,240, 53,128, 39,181,200,175,
+123,215,174, 93,157, 58,119,238, 76, 29, 58,116,232, 77,251, 80, 6,131, 1,131,193, 0, 14,135,131,214,173, 91, 51,194,194,194,
+ 28,238,221,187,231, 14, 51,170, 17,173, 26,117,238,219,182,125,167,246, 29, 3,154, 49, 86, 29,122, 1,163,201, 8, 38,101, 0,
+139, 50,193,164,231,129,199, 97,194,221,247, 3,230,211, 71, 17, 1, 90,141,174,111,230,243, 11,199,205,209,236, 25,212,189,131,
+183,167, 59,227,167, 35,175,144,157,252,196,152, 28,125, 53,131,193,100,192,219,191,139,194,221,167, 5,179, 69, 64,103,182, 42,
+246, 81, 96,113,113,199,110, 89, 47,175, 94,120, 31, 55,228, 66,128,233,232,160, 24, 16,220,189, 51, 39, 69,165, 42, 56,112,232,
+120, 84,161, 30,183, 1,224, 10, 64,245, 6,154, 53,109,213,170,211, 47,203,150, 89,217,217,217,177, 71, 14, 27,102,216, 28, 30,
+ 30,142, 42,170,126, 23, 2, 76,133,173,109,183,137, 19, 39, 50, 83, 84, 42,114,224,240,201,200, 50, 61,148,188,165, 52,109,230,
+232, 21,140,130,167,181,170,166,236, 11,112,149,182,182,222, 19, 38, 76,128, 90,165,194,206, 93,187,242,139,129, 91,101, 81,172,
+ 99, 76,172,247,105,100, 59,102,246,127,250, 81, 78,118, 10, 76, 92,176,185, 77,160, 46,173, 17, 82,254,255,252,151,247, 34,127,
+ 99,147, 53,190, 82,163, 85,145,255, 62,193,124, 9, 7,174, 7, 14,236,101,164,231,233, 10, 94,190,124, 9,133, 66, 1, 59, 59,
+ 59,200,100, 50, 60,126,252, 24,151, 46, 93,194,179,103,207, 96, 50,153,208,188,121,243, 90,229, 38, 35, 35, 3, 17, 17, 17,144,
+203,229,239, 76,179,145,147, 53,166, 58, 89,115, 82, 51,115, 57, 23,238, 62, 11,216, 60,119,144, 15,195,107,208,214,242,147,196,
+106,181, 90,252, 67,120,211,187,208,201,201,169,221,246,237,219, 57, 26, 3, 36,238, 19,110,173, 40, 40, 54,138, 0, 64,196,103,
+ 22,132, 45,247,152,245,253,247,223, 23,124,242,201, 39, 94,137,137,137, 75,205,136,245, 47,238,218,181,235, 23,132, 16,246,140,
+ 25, 51, 0, 0,163, 71,143,206,189,125,251,182, 59,128,180, 75,151, 46,217,143, 29, 59,246,249,229,203,151,133,159,125,246, 25,
+211, 96, 48, 60,102,177, 88,228,196,137, 19,223, 1,248,246, 15, 79, 68, 6,227,126,120,120,120, 3,123, 23, 15,184, 88, 49,208,
+ 97,222,179,146, 2, 78,104, 66, 82,220, 43, 68, 71,222,133,173,173,173,204,206,206,238, 73, 82, 82,146, 46, 57, 57,121, 78, 65,
+ 65,193,134, 26,242,248, 48, 44, 44,204,206,197,197, 5,249,249,249, 72, 74, 47,196,244,195, 66,228, 22,149, 4, 49,216, 40, 66,
+ 11, 39, 15,137,128,161,189,155,150,150,166,211,106,181,223,228,228,228,108,175, 78,147,205,102,103, 70, 70, 70,138,157,157,157,
+ 81, 92, 92, 76, 94,191,126, 77, 21, 20, 20, 32, 47, 47,143, 58,121,242,100,255,148,148,148,150,174,174,174,148,163,163,227,119,
+ 41, 41, 41, 69,201,201,201,227,204,169,154, 44, 53, 76, 70, 22,139,181,106,252,248,241,131,127,251,237,183,251,135,190,245, 14,
+ 41, 87, 93, 34,243,245,245, 61,219,172,153,143,253,174,149, 77,215, 2, 88,241, 23,184,182,198,124,245,213, 87,222,150,150,150,
+152, 56,113, 34, 22, 46, 92,136,249,243,231,187, 77,156, 56,113, 60,128, 31,107,161, 35,176,181,181,189,247,211, 79, 63,121,181,
+107,215, 14,167, 78,157,194,222,189,123, 17, 19, 19, 99,112,117,117,101, 5, 4, 4, 96,193,130, 5,232,209,163,199,184,105,211,
+166,117, 82,169, 84,126,102,154,143, 79, 22, 44, 88, 16,210,190,125,123,124,252,241,199,154,223,127,255,125, 48,128,115,231,207,
+159,239,114,229,202,149, 67,187,119,239, 22, 44, 89,178,164,219,204,153, 51, 39, 2, 88, 87,135,253,239,223,177, 99,201, 28,202,
+237,219,183,199,242,229,203,123,212,211,104,113,173,172,172, 78,238,220,185,179,133,135,135, 7, 70,142, 28,233, 55,120,240,224,
+147, 89, 89, 89,221, 1,152, 85, 32, 57, 56, 56,252,112,244,232,209,198, 85,213, 44, 84,134, 70,163,177, 28, 48, 96,192,178,184,
+184,184, 90, 25,173, 61,123,246,224,243,207, 63, 71,243,230,205,155,181,110,221,122,227,132, 9, 19,240,225,135, 31,118,125,252,
+248,177, 18, 37,189,150,107,132,207,231, 55, 27, 58,116, 40,247,206,157, 59, 0, 0, 95, 95, 95,180,104,209, 2,155,104,178,222,
+ 0, 0, 32, 0, 73, 68, 65, 84,241,241,241,184,127,255, 62, 52, 26, 13,148, 74, 37, 6, 14, 28,200,143,139,139,107,150,145,145,
+ 81,163,209, 98,240,132, 99, 66,130,123, 75,142,221, 78,129,209,100,192, 7,141,165, 8,240,178,193,211,164, 92,132, 61, 73,130,
+ 81,203,129,212,210, 10,109, 58, 5, 89,170,147, 99,198,100, 2, 53,183,215,226, 9,199, 12, 12,233, 35, 62,118, 75,133,108, 85,
+ 52,121,113,247,183, 75,250,226,130,113, 0,112,255,226,190,141,182, 86,130,238,238,254, 31, 48, 59,119,239, 39, 63,188, 87, 61,
+ 38,235,127, 51,183,223, 31,184,226,132, 77, 46,236,140,209,179,135,119, 32,108,185,227, 93,137, 94,191,190,236,187, 30, 64,208,
+156,175,190,106,253,159,241,227,249, 38,147, 9,187,127,253, 53, 55, 34, 60,252,233,120,192, 52,161, 10,189,245,128,203,224,144,
+ 16,158, 68, 42,197,167,211,167, 67,162,215, 95,126,115, 72,128,174,159,126,241, 69,187, 41, 83,166, 8, 54,126, 55,249,126,143,
+177,139,252, 77,132, 80,101,213,148,123,170, 15,197,181, 28, 27, 18, 2,137, 84,138, 25, 51,102,128,210,233,206,190, 49, 80, 44,
+ 92,254,164,127,135,128,225,125,219,131, 2,133,189, 39,174,227, 69,124,122,228,229, 20,188,250,187,186,170, 10, 84,217, 70,171,
+218,170,195, 60, 29, 82,187,246, 25,148,226,238,238,158,231,230,230,150,151,153,153,137,168,168, 40,100,101,101, 97,221,186,117,
+136,142,142,134,201,100,170,179,129, 49,153, 76,120,215,154, 0,160,180,146, 98,100,239, 86, 44, 77,113, 1, 63, 61, 61,253,173,
+234,163,127,144,209,122,131,193, 96,224,187,186,186,130, 1, 80, 57,133,122,177,122, 79, 71, 74,189,167, 35,149, 83,168, 23,107,
+181, 90,134, 88, 44,134, 70,163,225,155, 33,197,238,213,171,215, 23,191,253,246, 27,123,241,226,197,104,210,164, 9,116, 58, 29,
+110,223,190,157, 4, 32,173,116, 29,213,213,171, 87, 85,101, 70,120,233,210,165, 56,124,248, 48,213,173, 91,183, 57,149, 93, 79,
+ 41, 41, 41, 63, 76,152, 48,225,117, 97,222,107,108, 26, 82,132, 67, 35,211,177, 45, 36, 6,195,172, 14,226,117,106, 2, 54,111,
+222,140,243,231, 47, 80,231,206,157,231,252,254,251,239,162, 62,125,250,172,117,112,112, 56, 81, 93, 38, 85, 42,213,226, 41, 83,
+166,100,231,229,229, 33, 47, 47, 15, 69, 69,197,120, 93, 0, 68,174,246, 70,228,106,111, 20,155, 4, 8, 93,191,129, 17, 25, 25,
+169,136,137,137,177,239,219,183,239,106, 59, 59,187,173,213,105, 38, 39, 39,223,153, 58,117,106,113,110,110, 46,180, 90,173,206,
+104, 52,106,139,138,138,244,251,246,237,251,204,202,202,170,205,169, 83,167,216,231,207, 95, 96,253,254,251, 21,206,165, 75,151,
+100,129,129,129,251,149, 74,229, 14,115, 34,101, 76, 38,115,205,174, 93,187,198,132,134,134, 42, 3, 2, 2,124, 42, 84, 69,217,
+117,239,222,189,193,175,191,254,234,176,124,249,242, 57, 40,233,128,242, 94, 81, 40, 20,211, 66, 66, 66, 16, 26, 26,138,227,199,
+143,207, 92,187,118, 45,122,245,234, 5,123,123,251,169, 48,191,218, 11, 0, 86,252,248,227,143, 94, 94, 94, 94, 24, 61,122,180,
+118,220,184,113,179,182,111,223,238,122,237,218, 53,206,142, 29, 59, 26, 76,156, 56,113,198,240,225,195,139, 27, 54,108,136,117,
+235,214, 53,102, 48, 24,107,204,186,191,149,202,207,134, 13, 27,134,149, 43, 87,226,247,223,127, 31,132,146, 7,170, 22,192,233,
+ 27, 55,110,244, 93,178,100, 9, 6, 13, 26, 4, 71, 71,199, 25,117,137, 60,121,123,123,127,211,179,103, 79, 92,187,118, 13,126,
+126,126,104,211,166,205, 76, 0,138, 58, 30, 78,134, 88, 44,222,191,125,251,246, 14, 13, 26, 52,192,162, 69,139,208,168, 81, 35,
+108,221,186,181,131, 72, 36,218, 15, 51,155,111,200,100, 50,177, 80, 40,196,156, 57,115,200,160, 65,131, 94,215,180,204,156, 57,
+147,240,120, 60,200,229,114,115, 59,190, 8,248,124,126,219, 38, 77,154,224,246,237,219, 56,127,254, 60,230,205,155,135,207, 62,
+251, 12,233,233,233, 24, 58,116,168, 16,192,135,181,216,111, 27,107,107,107,228,230,150,204, 11,223,164, 73, 19, 60,120,240, 0,
+233,233,233,112,116,116,132, 90,173,134,149,149, 21, 60, 60, 60, 96, 50,153,108,204,147, 36, 77, 20,150, 50,164,101,105,192,130,
+ 1,254,238, 10, 92,142,202, 68, 66,186, 22, 54, 86, 22, 80,167,165,195,193,138, 15, 39, 39,103, 16, 98,106, 98,150, 3,102, 50,
+252,121,124, 1, 94,231,233,144,252,228,247, 76,157, 81, 51, 33, 59,246, 70, 98,118,236,141, 68,157,166,120,194,253,235,231, 51,
+ 27, 40, 5,112,114,114, 2, 69, 76,173,222,199,253,248,145, 51,156, 68, 2,214,232,243,219,190,161, 78,252, 50,151,210,100, 38,
+180,236,169, 44,137, 44, 91, 3,174, 31, 13, 29,218,118,214,172, 89,252,212,212, 84,211,240, 33, 67, 94, 47,254,246,219, 11,103,
+106,120, 49,200, 7,220,186,119,239, 14, 6,128, 51,231,206, 21,168,129, 36, 0, 80, 2, 78,253, 6, 12,232,248,213,151, 95, 10,
+ 50, 50, 51, 77,183, 95,230, 31,139, 78, 35, 3, 45,141,112, 53,167,125,150, 17,104, 90,166,123,246,236, 89, 82, 4,220, 7,128,
+206, 78,152, 26,212,206, 55, 96, 84, 72, 71,164,164,101, 97,198,226,109,216,120,224,202, 89,153,158,116,249, 7, 61,138,199,215,
+201,104,149, 86,253,252, 33,173,176,240,143,181, 7,245, 53, 48,127,134,102,101,252, 19,141, 86, 25,122,125, 73, 45,137, 86,111,
+130, 86,111, 42,123,171, 69, 81, 81,145,217, 18,103,207,158,221, 57,125,250,116,172, 94,189, 26,207,159, 63, 7,135,195, 65,147,
+ 38, 77,236, 0,136,203,202,124,127,127,127, 27, 6,131,129,167, 79,159, 98,213,170, 85,248,228,147, 79,200,205,155, 55,183,162,
+242,241, 82, 30,188,126,253,122,253,132,113,159,100,103,165, 38, 64, 95,148,133,180,228, 87,208, 20,100, 99,209,210, 31, 80,168,
+103, 65,157,163,131, 58, 71, 7, 6,207, 18, 27,127,217,206,244,246,246,238,201,100, 50,131,171,201,231,237,212,212,212, 95, 38,
+ 77,154,148,173, 86,171,223,236,159, 86, 79,160,213,191,125,189, 10,133, 66,172, 89,179, 70,230,238,238, 30,194, 98,177, 2,171,
+209, 76, 73, 76, 76,140,158, 52,105,146, 54, 53, 53, 21, 57, 57, 57, 56,118,236, 88,223, 6, 13, 26,200,151,173, 88, 77, 21,232,
+ 88, 80,103,235,160,206,214,129, 43,182,193,254, 67,191, 49, 61, 60, 60,134,179, 88,172, 54, 53,153,172,221,187,119,143, 26, 50,
+100,136,100,197,138, 21,175,143, 30, 61, 26, 10,160,252, 9,121,186,102,205,154, 3,251,247,239,207,251,226,139, 47, 44,151, 47,
+ 95, 62,243, 61,155,173,192, 33, 67,134,120,154, 76, 38, 28, 60,120, 48, 18,192,143,191,253,246,219, 61,141, 70,131,161, 67,135,
+186,150, 86, 35,153, 67,203,225,195,135, 79,238,208,161, 3, 62,253,244, 83,221,133, 11, 23,252, 1,172, 70, 73, 85, 46, 1, 16,
+ 15, 96,237,149, 43, 87,154, 79,155, 54, 77,211,170, 85, 43,124,252,241,199,159, 0,232, 80,131,110,219, 97,195,134,121,153, 76,
+ 38,236,219,183, 47, 2,192,169, 10,223, 95, 58,116,232,208,109,173, 86,139, 17, 35, 70, 52, 4, 80,155,130,156,195,227,241, 14,
+126,255,253,247, 22,201,201,201, 24, 53,106,148,230,233,211,167,248,246,219,111, 5, 50,153,236, 84,185,123,192,108,120, 60,222,
+230,159,127,254, 57,164,105,211,166,152, 52,105,146,118,195,134, 13,211, 39, 79,158,172,245,247,247, 71,104,104,104, 8,151,203,
+173,213, 20, 29, 42,149, 42,251,201,147, 39, 86, 53, 45, 73, 73, 73,230,118,207, 23,138,197,226, 91,190,190,190,185, 77,154, 52,
+249,192, 96, 48,224,241,227,199,175,118,238,220,105,106,210,164, 9,214,175, 95,143,229,203,151, 35, 56, 56, 24, 76, 38,211,108,
+163,197,100, 50,161,211,233, 32, 20, 10,193, 98,177,240,234,213,171,178,161,101,192,225,112, 0, 0, 34,145, 8, 2,129, 0, 12,
+ 6,195,172,222,104, 20, 5,146, 91,168, 7,155,205, 0,139, 97, 66,116,124, 14,116,122, 19,248, 28, 38,216, 44, 10, 32, 38, 88,
+136,216,224,115,153, 96, 80,148,201, 76, 77,228, 20,232,192,229, 48,192,230,112, 41,134,193, 40,120,243,112,100, 25, 5, 2, 1,
+151, 82, 72,121,224,115,254, 66,211, 2, 83, 37, 13,203,199, 0,108,145,179,243,224,149,171, 86,113,115,243,243, 49,104,208,160,
+215,113,247,238,237, 42, 2,238,117,170,161,147, 18,131,197,114,239,220,169, 19,194,194,195,145,151,149,245, 2, 40,105, 28,207,
+181,183, 31,178,102,205, 26,110, 81,113, 49, 6, 13, 28,152,253,252,250,245,221,137,249, 56,177, 47,190,196,136,213,120,222, 57,
+ 28,219, 50,221,156,172,172, 44,160,100, 8, 9,165,181,120,217,148,225, 61,144, 87, 88,140,217, 63,236, 50,133, 71,167, 76,189,
+150,132, 62,191,169,144,243, 15,123, 12,143,175,176, 0, 48, 99,192,210,178,232, 82, 77,102, 69,163,209,188,115, 3, 84, 95,205,
+202, 76, 98,125, 53,255,138,176, 88,172,226,103,207,158,113,165, 86,246, 38, 43, 9, 59,171,193, 39,215,101, 0, 96, 41,102,229,
+232,140,122,147, 74,165, 2,143,199, 43, 54,179,186, 97,220,230,205,155, 23, 1,240, 97,177, 88, 39,182,111,223, 78,237,218,181,
+ 75, 62,108,216,176,151, 79,158, 60, 73,246,245,245,117,217,190,125,187, 20, 0,214,174, 93, 75,246,239,223,223, 3, 37, 67,102,
+ 84, 57,142, 75,106,106,234,183,153,153,153, 55,167, 76,153,178,142,203,229,202, 69, 34,145,213,181,107,215,168, 98, 29, 65,203,
+175,226,223,244, 68,148, 10, 24,184, 58, 87,138,241,227,199, 51,159, 60,121,178, 52, 57, 57,249, 68, 53,154,115,178,179,179,175,
+ 61,127,254,124,181,204,177,133,181,200,229, 43, 89,192,220,167, 0, 0, 23, 5, 27,140,210,114, 49, 59, 59, 27,233,233,233,152,
+ 60,121,178,252,229,203,151,115,146,147,147, 47, 87, 19,213,186,146,145,145,145,244,232,209,163,206,108, 54,155, 43, 18,137, 90,
+222,186,117,139, 42,214,154,208,108, 78, 60, 94,231,151,228,211, 82,204,194,253,239,149,152, 58,117, 42,235,197,139, 23, 63,164,
+164,164,180,175,180, 48, 99, 48,150,151, 55, 89,179,103,207,126, 8,160, 33,128,183,170, 70,141, 70, 35, 53, 98,196,136, 40, 0,
+ 77,190,248,226, 11, 75, 66,200,204, 57,115,230,188, 6,176,233,127,125, 45, 73,165,210,101, 19, 38, 76,192,254,253,251,145,149,
+149,181, 6, 0,114,115,115,127,220,179,103,207,190,113,227,198,225,215, 95,127, 93,150,158,158,126, 6, 53,119,213,238, 53,116,
+232, 80,156, 62,125, 26, 23, 47, 94,252, 6,192,227, 42,214,123,126,237,218,181, 57, 71,143, 30,253,105,216,176, 97,216,182,109,
+ 91, 79, 0,213, 53,144,237,222,163, 71, 15,156, 58,117, 10,153,153,153,161,149,173,144,157,157,189,225,216,177, 99,173,123,244,
+232,129,165, 75,151,118, 7,112,201,140, 93,247,146,201,100,219,127,250,233,167,150, 77,155, 54,197,240,225,195,139,117, 58, 93,
+207, 47,190,248,226,248,222,189,123, 37, 59,119,238,252, 96,252,248,241,119, 74,199,124,187,109, 86, 40,139,193, 88,178,106,213,
+170,177,157, 59,119,198,204,153, 51, 13,103,207,158,237, 7,224,220,153, 51,103, 94,206,158, 61,251,228,170, 85,171,152, 43, 87,
+174, 28, 59, 99,198,140,116,147,201,244,190,204,245,247,107,215,174,109, 29, 20, 20,132, 87,175, 94,225,246,237,219,208,233,116,
+191,222,186,117,235,170,155,155,219,247, 90,173,246,184, 72, 36, 26, 45,145, 72,124, 91,180,104,209,229,254,253,251, 66,152,215,
+ 78, 47, 53, 54, 54,214, 66, 38,147,193, 96, 48, 32, 50, 50, 18,206,206,206,208,233,116,136,137,137, 65,211,166, 77,193,225,112,
+144,154,154,138,114,209,242, 26, 76, 17, 35,242,101,156,170,161,165, 68, 4, 24,249,120,240, 52, 9,214, 10, 57,140, 20, 3,106,
+117, 10, 90,120, 58,130,162, 40,100,103,170, 65, 81, 84,148, 57,154, 70, 98, 10, 75, 80,165, 57, 88, 73,120,104,218, 58,200,234,
+214,153,244, 93,210,134,237,198,179,152, 20,147,203, 19,111, 26,251,241,199, 10,147,137, 32, 59, 51, 21, 44, 6,227,238,251, 56,
+ 65, 7, 19,144,216,169, 17,255, 65,208,216, 69, 45, 40, 2, 82,164,195,206,109,169,200, 18, 2, 45,214,126,253,181,133,149, 66,
+129,225,195,135,155, 50,147,147, 47, 20,154, 57,176,114, 67, 55, 55,165, 88, 34,193,141, 27, 55,192, 44,105, 99,139,173,128,215,
+242,217,179,173,108,108,109,241,201,216,177,166,212,132,132, 75, 69,128,170, 54,121,109,216,168, 17,187, 76,151, 81,170,155,194,
+196,244, 47,250,117,224,137, 4, 60, 44,217,248, 27, 18, 51, 10,246,221, 74,193,198,127,104,188, 99,115,181, 17,173,170, 26,159,
+149, 52,170, 22, 86,107, 86,248,124,254,155,104, 74, 45,222,244,222,185,102, 77,252, 25,154,239,145,185, 0,142, 2,152,155,152,
+152, 24, 61,118,236, 88,157, 65,167,201,187,185,168,225,151,225, 75, 27, 76,186,245,173,221,164, 35,211,101, 95, 22,230,188,206,
+ 91,187,118,173, 62, 49, 49, 49,186,252, 54, 53,104, 39, 0, 56,181, 99,199,142, 13, 7, 15, 30, 68,147, 38, 77,240,248,241, 99,
+155,130,130, 2,191,168,168, 40, 75, 47, 47, 47,236,218,181, 11,251,247,239, 95, 13,224,124,117, 38,171, 12,131,193,112, 65,173,
+ 86,123,196,199,199, 55,182,176,176,208, 91, 88, 88,160, 98, 79,196,220, 34, 19, 50,179,115, 96,105,105, 5,169, 84,234,106,134,
+ 57, 63,165, 86,171,221, 77,114,207,142,238, 25,107,114,194,150, 56, 33,108,137, 19, 78,205,177,135,157, 5, 23, 89, 89, 89, 72,
+ 79, 79, 71,122,122, 58, 40,138,130, 94,175,247, 54, 67, 51, 38, 37, 37,101, 75, 66, 66,194, 81,165, 82, 9,137, 68, 2, 2, 64,
+157,173,199,195,149, 94,120,184,210, 11,234,108, 61,114,243,242,208,160, 65, 3, 72, 36,146,170,170, 40, 24, 14, 14, 14,189,135,
+ 12, 25, 34, 1,128, 82, 3,213,149, 16, 50,169,146,101,162,193, 96,104, 87,182,238,231,159,127,110, 9,160,199,255,248,122, 98,
+ 2,152, 50,110,220,184, 15,248,124, 62,214,175, 95, 31, 3, 96,119, 89, 89,191, 97,195,134,167, 0, 48,125,250,116, 95, 0, 51,
+ 81,197, 72,208,111, 66, 67, 28,142,191,183,183, 55,110,221,186, 5, 0,191,213,240,219,135,110,222,188, 9, 55, 55, 55,240,249,
+252,150, 53,172,235,234,228,228,132,167, 79,159, 2,192,131, 42,214,121,240,244,233,211,146,234, 30,138,114, 53, 99,223, 67,130,
+130,130, 34, 47, 95,190,220,178,109,219,182, 24, 59,118,172,246,206,157, 59,189, 1, 92,125,240,224, 65,224,136, 17, 35, 10,220,
+221,221,113,229,202, 21,175, 17, 35, 70,220,100, 48, 24,139,204,208,252,228,187,239,190,155,219,191,127,127,124,247,221,119,228,
+192,129, 3,195, 1,156, 43,253,238,236,190,125,251, 70, 45, 94,188,152, 12, 28, 56, 16, 11, 23, 46,156, 11, 96, 82,117, 98, 5,
+ 5, 5, 57, 70,163, 17, 5, 5, 5,102,133,228,205, 93, 95,161, 80,244, 10, 10, 10,194,188,121,243,224,224,224,128,227,199,143,
+ 19, 0, 39, 0, 92,211,106,181, 29, 1,172, 42, 40, 40, 56,114,235,214, 45,116,239,222,157,131,183,167, 24,169,238,247, 35,247,
+236,217,163,145,201,100,112,113,113, 65,195,134, 13,161, 86,171, 17, 23, 23,135,166, 77,155,194,223,223, 31, 6,131, 1, 91,182,
+108, 41,206,203,203, 51,107, 76, 62,131,182, 96,231,249,147,135,115,172, 36, 60, 56,218,200,208,192,193, 18,249,217, 25, 72, 87,
+171,224,239,237,140, 78,254, 13,144,145,163,197,217, 19,135,179,242,242, 10,119,154, 21,194,215, 20,110,191,112,230,120,142, 92,
+194,129,135,167, 47, 70,140,157,222,162,133, 95,192,249, 86,173,218,157, 93,177,108, 73,179,174,109,188,169,164,140, 98,156, 62,
+241, 91, 86, 78,110,238,246,247, 81,208, 47, 4,152,197, 50,247,171,161, 71,195,182,248,244, 28,183, 37, 58, 9,107, 0, 64,207,
+100,122,245,238,213, 11, 73, 73, 73, 56,124,240, 96, 74, 33, 16, 97,174,158, 64, 32, 96, 0, 64, 78, 78, 14,120,165,237,238, 12,
+128,103,159, 62,125,144,158,145,129, 61,187,119,167,159, 6,194,107,147,207,190, 0, 87, 40, 40, 9, 8,230,228,228,128, 2,114,
+ 1,128, 98,161,119,171, 38,110, 72,127,157,139,203,119,163,243, 27, 20, 97,114,117, 58,127,227,134,240,117,107,163, 5, 32, 99,
+230,204,153,224,241,120,176,179,179,123, 99,142,202,204, 10,151,203,133,157,157, 29, 12, 6, 3,246,237,219, 7, 0, 25,213,190,
+225, 1,154,126,147,150,154, 52,122, 82,200,102,179,223,137,102,233,155,163,102,208,236,109,166, 51, 55, 43,239, 20, 83, 23,205,
+191, 1,173, 74,199,196,106, 5, 32, 43, 46, 46, 46,105,240,160,126, 57,241, 47, 31,169, 11,178, 85, 41,185,153,137, 41,137, 49,
+ 81,234,175,230,204,204, 73, 74, 74, 74, 68,201, 88, 90,173, 84, 42, 85,217, 54,230, 48,115,240,224,193, 63,143, 27, 55,142, 60,
+124,248, 16, 0, 16, 22, 22,134,143, 63,254,152,140, 26, 53,106, 13,128, 47,235,144,239,130,162,162,162,183,162, 33, 58,163,233,
+ 77,149, 95,110,110, 46, 84, 42, 21,180, 90,173,217,142,248,249,217,149,207, 94,199,221,215,251,186,136,224,235, 34,130,151,147,
+ 16,148, 33,255,141,201, 74, 79, 79, 47,123,115, 46,174, 69, 62,115, 53, 26,205, 91,249, 44, 95, 53,153,155,155, 11,181, 90, 13,
+163,209, 88,213,131,204,148,156,156,124,118,255,254,253,121, 0,176, 98,197,138,215, 20, 69, 93,164, 40,234,231, 74,150,141, 44,
+ 22,235, 70,217,186, 43, 87,174,124,141, 63, 86,137,253,153,244,111,218,180,105,214,220,185,115,215,207,152, 49, 3, 27, 55,110,
+ 68, 74, 74,202,151,248,255,177,120, 76, 25, 25, 25,179, 67, 67, 67, 49,102,204, 24,204,159, 63,127,165,159,159, 95, 46,128, 17,
+ 85, 9, 90, 91, 91, 59,178, 88, 44,132,135,135,231, 2,120, 85,195,239,171,195,195,195, 83, 41,138,130,157,157, 93,163,234, 86,
+180,180,180,108, 44,145, 72,144,156,156, 12,148,190, 49, 87, 66,156, 74,165, 34, 92, 46, 23,246,246,246,110, 53,237,188, 92, 46,
+159,189,101,203, 22,214,163, 71,143,208,181,107,215,164, 43, 87,174,116, 7, 80,214, 37, 61, 60, 44, 44,172, 67, 96, 96,224,179,
+243,231,207,227,135, 31,126,160,154, 55,111, 62,169, 38, 77, 23, 23,151,137,159,124,242, 9,214,173, 91,135, 77,155, 54, 77, 2,
+112,176,194, 42,123, 67, 67, 67,167,111,218,180, 9, 99,199,142,133,171,171,235,136,234,244,226,227,227,231,116,238,220, 57,236,
+249,243,231,102,205,120, 96,230,250,129, 1, 1, 1,141,139,138,138,176,125,251,246, 87,141, 27, 55,190,119,240,224,193,153,248,
+227, 3,251,200,225,195,135, 49,114,228, 72, 52,111,222,124, 59,128, 97,230,220,150, 79,158, 60, 73,188,116,233,146,137,195,225,
+192,197,197, 5,193,193,193, 24, 62,124, 56,154, 53,107, 6,157, 78,135,195,135, 15,155,162,162,162,146,180, 90,173, 89, 99, 41,
+101, 62,255,253,120,108,236,179, 27,225,119,174,234, 89, 76, 6,156,237, 44, 49,160, 91, 11,252,231,195,118,240,247,114, 64,124,
+ 90, 17, 46, 93, 58,175,143,141,125,117,203,156, 30,135,101,154,209,143, 35,110, 62, 10,191,110, 96,179, 40,120,121,186, 99,222,
+ 87,179,229,139, 23,204,177,112,111,228,140,136,152, 28,156, 63,119, 90,175, 74, 74,188,252,190,122, 28, 94, 1, 56, 98, 30, 37,
+ 98, 50, 24, 48, 50,120, 5,204,210,142, 52, 77,124,124, 60,148,182,182, 56,121,242, 36, 24,181,232, 17,122, 5,224,136,197, 37,
+181,224,249,249,249, 40,211,107,236,233,233,233,236,226,130, 83, 39, 79,130,105, 50, 61,233, 84,203, 1, 70,159,150, 84, 67,191,
+209,165,128,226,201, 78,144, 52,118,178,241,148,203, 68,184, 19,241, 2, 26, 61,185,187, 59, 11,239,117, 60,178, 63,145,241,168,
+ 99,213,225,138,141, 27, 55,182,218,178,101, 75,247,153, 51,103,138, 71,143, 30, 13, 62,159,143,194,194, 66, 56, 58, 58,194,104,
+ 52,226,204,153, 51,184,127,255,126,190,201,100, 58,143, 63, 14, 27,208, 13,229,122,105,156,125, 5, 65,137,223, 42,108,117,244,
+163,143,222,137, 38, 0,136, 95,152,164,153, 13,180,187,214, 30,188, 62,112,207,217,112,234,211, 97,157, 24,254,158, 78, 0, 0,
+165, 82, 9,169, 84, 90,107,205,119,192,159,174, 89,190, 90, 87,173, 86, 63, 85,171,213,105,227,198,141,243, 42,107,248,206,227,
+241,138, 75, 35, 89, 89,149,109, 99, 70, 62,117, 0, 38,111,217,178,229, 88, 78, 78,206,217, 47,190,248, 2,139, 23, 47,198,241,
+227,199, 59, 0,184, 81,199,125, 55,102,101,101,101,223,189,123, 87,233,230,237,135,134, 54,108,116,252,230, 57, 8, 33,176, 18,
+ 18,228,101,191,198,131, 7,225,200,203,203,187, 83,155,124,234,116,186,236,180,180, 52,133,141,141, 13, 94,191,126,141,140,140,
+140, 55, 38, 43, 43, 43, 11,175, 95,191, 38, 20,245,135, 49, 91,170,211, 44, 72, 75, 75, 43,140,142,142,230, 42,157,220,208,200,
+134,131,128,175,158, 2,132,192,217,146,129,188,220,108,220,186,117, 11, 57, 57, 57,191, 87,165,105, 50,153,102,141, 24, 49,130,
+ 9, 96,212, 23, 95,124, 97, 9,160,249,236,217,179,207,163, 66,207, 66, 22,139,245,227,174, 93,187,154,148, 85, 49,206,153, 51,
+103, 53,128, 45,255,171,107,201,202,202,106,214,201,147, 39, 37, 58,157, 14,107,215,174,197,234,213,171,183,226,143, 3, 85,158,
+ 92,191,126,125, 40,131,193,152, 50,117,234, 84, 76,152, 48, 65,248,193, 7, 31,204, 76, 73, 73,217, 93,153,102,114,114,242, 60,
+127,127,255,249,105,105,105, 75,204, 50,203,207,159,143,247,247,247,159,151,150,150,182,188,186,115, 36, 18,137, 68, 70,163, 17,
+177,177,177, 89, 64,149,237, 59,138, 99, 99, 99,147,141, 70,163,163, 80, 40,180,172,233,250,204,202,202, 90,242,193, 7, 31,124,
+155,154,154,122, 14,192,162, 74, 12,249,195,148,148, 20,223, 25, 51,102, 76, 91,182,108,217, 64,181, 90,189,175, 38,205,248,248,
+248, 37,129,129,129,223, 60,123,246,108, 7,170,174, 2, 94,191,112,225, 66,221,174, 93,187, 38,197,198,198, 46,173, 65,243, 68,
+ 70, 70,198,137, 90,156,223,170,214,127,163,201,100, 50,103, 47, 91,182,140,177,113,227, 70, 16, 66, 86, 26,141,198,170,242, 25,
+113,228,200,145,157,237,218,181, 27,125,240,224, 65,190,175,175,239, 4,141, 70,179,183,166,235,179,176,176,240,240,193,131, 7,
+ 7, 70, 68, 68, 56,142, 30, 61,154,239,225,225, 1,157, 78,135,148,148, 20,108,220,184,177, 56, 42, 42, 42, 41, 59, 59,251,112,
+109,202, 16,131, 54,119,216,205, 75, 71,247,198, 61,143,106,211,185,103,136, 92,171,115, 4, 47,147,137,236, 76, 53,206,156, 56,
+156, 21, 27,251,234, 86, 97, 97,246,176,218,104,234, 52, 57, 67,111, 93, 62,182, 47, 41, 54,186,117,199,192,222,242, 98,173, 11,
+120, 28, 6, 50, 83,147,113,230,228,209,215,177,177, 49,215,138,245,154,143,223, 87, 57,207,116,197, 34,166,250,254,184,137,125,
+ 91, 64, 32,119,124,192, 6,214,182, 3, 4, 10,165,146, 83,122,239, 64, 92,210,230,209, 44,205, 84,128,235, 86, 90, 75, 85, 88,
+ 88, 8, 54,160, 29, 3,176,173,173,173, 5, 0,240,236,217, 51, 8, 75,106, 53,106,149,207,124, 64, 36, 44,167,203, 0, 10, 51,
+ 89,112,104, 44, 21, 81, 0,144,164,206,132, 86, 95,237,115,227,239,206,230,114,134,107,115, 93, 4, 56, 0,186,137,197,226,197,
+243,231,207, 95,121,231,206,157,149,193,193,193, 43,121, 60,222,226,210,131,205,169,230, 68,252,207, 52, 91,218,195, 50,176, 17,
+117, 53,168, 49,101,154,216, 65,110,252, 56, 64,164,237,210,165, 75,104, 61,243, 89,159,155,229,207,212, 60,170,215,235, 9, 74,
+170,237,142,162,234, 42,193,185,229,190, 87, 39, 36, 36,144,210,191,107,147, 79,197,144, 33, 67, 76,121,121,121,100,240,224,193,
+ 4, 53, 79,225, 83,173, 38,143,199, 11,236,216,177,163, 62, 53,253, 53,121, 26,147, 76,110,135, 61, 38,103, 47,221, 36,251, 14,
+159, 36,235, 66, 55,145,102,205,154,105, 1,184,212, 70,147,197, 98,117, 9, 12, 12,204, 76, 77, 77, 37,209,209,209,228,234,213,
+171,228,208,161, 67,100,211,166, 77,228,231,159,127, 38, 78, 78, 78,169, 0,148,181,209, 20, 8, 4, 33,189,122,245,210,103,231,
+ 22,146,216,228, 76, 18, 25, 29, 75,110,220,141, 36,103, 46,221, 32,187,247, 30, 36, 62, 62, 62,197,102,104, 50,153, 76,230,186,
+125,251,246,229, 18, 66, 72, 72, 72, 72, 18,222, 30, 72,181,225,172, 89,179,210, 8, 33,100,249,242,229,153,168,188, 33,252,159,
+125, 45,245,116,112,112,120,202,225,112, 78, 2, 24, 85,195,118, 67, 89, 44,214,113, 91, 91,219,123, 0, 6,188,135,251, 40,216,
+198,198,230, 54,128,154,102, 56, 40, 91,175,255, 63,228,126,255, 51, 52,187,176, 88,172,171, 64,245,147, 8,151, 43,175,191,103,
+ 50,153,167, 0,116,173,101, 62,221, 21, 10,197, 96,185, 92,254,169, 92, 46,255,212,198,198,102, 48,151,203,117,175,207,190, 91,
+185,119,235,235,236,215,239,136, 83,243, 62,241,206, 45,130,227, 93,253, 67,142, 88,185,119,235, 91, 95, 77, 23,255,144,163,206,
+ 45,130, 19,156, 91,244,141,107,216, 50,228,136,194,179, 91,175,247,121,142, 70, 57,192,190,123, 67, 24,200,213,111, 8,185,250,
+ 13,233,214, 16,166, 54, 22,240,105, 5, 72,122,116,235,182,138, 24,141,171, 6,246,239,191,202, 13,176, 34, 0,179,226, 82,153,
+166, 31, 32,125,179,109, 72,200,170, 70,128,162, 59, 32,236,212,161,195, 74, 98, 52,174, 26, 49,116,232, 42,103,192,182, 50,189,
+170, 52, 9,192,116, 0,236,203,235, 42,128,198, 31,186,194,119,110, 95, 87, 66,174,126, 67, 22,126,228, 65,252,149, 24, 85,131,
+102, 85,145,162,191,117, 68,171,182,136, 74, 11,215,165,165,159,162,119,112, 17,190,115,205,214,118,240,232,214,152,138,238,237,
+201,122,141,146, 46,201,162,127, 96, 33,185, 67,171,213,146,226,226, 98, 82, 88, 88, 72,242,243,243, 43, 26,168, 55,134, 76,165,
+ 82,145,164,164, 36,146,144,144, 64,226,226,226, 8,254,191,237,141,217,249,148, 74,165, 91, 62,250,232, 35, 35,155,205, 94,247,
+ 46,246,221,210,210,114,105, 64, 64,128,238,167,159,126, 34, 71,142, 28, 33,191,252,242, 11,153, 58,117, 42,105,210,164,137,198,
+194,194, 98, 88, 93, 52,109,109,109,231,121,122,122,102,110,221,186,149,236,222,189,155,172, 89,179,134,124,253,245,215, 70, 71,
+ 71, 71,181, 68, 34,233, 81, 23, 77, 27, 27,155,205,237,219,183,215,109,222,188,153,156, 63,127,158,236,217,179,135,204,154, 53,
+139,120,121,121,105, 68, 34,209, 32, 51, 53,153, 44, 22,107,213,196,137, 19,213,246,246,246, 39, 43,124, 39,244,241,241,185, 55,
+ 98,196, 8, 21,128, 57,255,160,235,147,214,164, 53,105,205, 63,193,104, 13,183,135, 3, 1,152, 66, 14,103,104,167, 14, 29, 86,
+114,128,161,181, 53, 69,124, 38,243,195,118, 1, 1, 43, 57,192,176,178,117,249, 76,230,135,157, 58,116, 88,201,102, 50, 71, 86,
+165, 87,157, 38, 1,152, 28, 22,107, 78,187, 54,109, 86,177,128,175,202,210,186, 52,164,158,204,234,233, 68, 58,184, 80, 47, 70,
+218, 64,248, 15, 54, 90,239, 28,214,159,112, 17,254, 93, 52,255, 42, 55,181, 91,169, 97, 58, 90,139,136,214, 81,148,204,162,238,
+ 86,199,124, 10,222,241,190, 55, 85, 40, 20,167,221,220,220,210, 27, 52,104,160,146,203,229,123, 1, 56,214, 83,211,215,214,214,
+246, 87,165, 82,249,220,206,206, 46, 66,161, 80,252,136,146, 81,231,235,172,201,102,179, 3,148, 74,229,239,174,174,174,217, 46,
+ 46, 46,169, 10,133, 98, 95, 37,145, 44,115, 52,237, 80,121,161,194, 41,253,142,126,232,208,154,180, 38,173,249,150,129, 9,106,
+132,101,221, 27,194,208,189, 33,140, 65,174,248,177,188, 65, 9, 6, 4,117, 53, 69, 31, 3,188,138,235,215,164, 87,147, 38, 1,
+152,109, 1,113,197,109,122, 59,194,199, 76,205,191,123, 68,171,172,156,175,221,240, 14, 85, 96,248, 19, 50,249,119,209,252,171,
+240, 2,213, 52, 70, 46,199,210,119,248,155, 69,239,120, 31, 34, 51, 50, 50,122,101,100,188,211,190, 9,143,212,106,245,168,119,
+ 41,168,215,235,239,164,166,166,118,126, 7, 82, 85,117,189,214,193,204,110,217, 52, 52, 52,255, 30, 40,192,136, 87,248,178,155,
+ 59,214,178,140, 96,156,137, 65,114,133, 46,121, 69, 84, 93, 52, 75, 48,238,168,164,140,167,234,154,207,255, 39,255, 15, 26, 73,
+120, 76,253,123, 78, 91, 10, 74,218,104,213,219,104,209,208,208,208,208,208,208,252, 15,184,240,156,126, 17,251, 27,112, 18,111,
+ 71,223, 78,150, 51,162, 85,134, 62,107,211,147,162, 46,225,211, 11,180, 38,173, 73,107,210,154,180, 38,173, 73,107,254,235, 52,
+203,168,106,238,212,167, 21,254,175, 83, 47,190,127, 11,116, 61, 59,173, 73,107,210,154,180, 38,173, 73,107,210,154,255,116,234,
+ 60,142, 22, 13, 13, 13, 13, 13, 13, 13, 13, 77,245, 84, 25,117,163,141, 22, 13, 13, 13, 13, 13, 13, 13, 77,253,176, 67,201, 20,
+ 85, 39,241,255, 83, 85,109, 6,106,158,130,231, 45,150, 45, 91,198,112,115,115, 19,115,185,220, 38,175, 94,189, 98, 76,158, 60,
+185,222, 29, 9, 86,254,184,142,225,226,226, 34, 6,208, 36, 51, 43,143,241,201,127,190,160,232,243, 69, 67, 67, 67, 67, 67, 67,
+243, 55,162, 79,169,177, 42,251,124, 19,225,170,149,209, 90,180,104, 17, 18, 18, 18, 68, 0,134,248,250,250,114, 55,108,216, 64,
+ 14, 28, 56, 80, 47, 99,244,213,156, 89,136,143,143, 23, 1, 24, 98,163,176,224,110,219,178,130, 28, 60,126,253,157,155, 45,133,
+ 66, 97,245,191,220,142,134,134,134,134,134,134,230, 95,197,248,114,159,227,235,100,180, 88, 44, 22,147,203,229, 54, 98, 48, 24,
+189,248,124,126, 75, 0, 40,157,146,165,206,176, 88, 44, 38,151,199,107,196,100, 50,123,241,120, 37,154, 31,245,109, 95, 95,205,
+174, 34,145, 40, 81, 40, 20,222, 7, 32,144, 72, 36,225, 58,157,238,177, 68, 34,185, 89, 27, 29,137, 68,114,179,116,187,112, 0,
+ 2,161, 80,120, 95, 36, 18, 37,178, 88,172,174,244,245, 68, 67, 67, 67, 67, 67, 67, 83,202,230, 74,150, 63,114,226,196,137, 42,
+ 13, 14,151,203,101,248,250,250,182,119,113,113,185,225,237,237,173,117,116,116, 60, 36, 20, 10, 69,245,204, 24,195,205,195,171,
+189,189,157,242, 70,139, 70,118, 90, 27, 27,155, 67,108, 54,187, 62,154, 76,137, 68,178, 38, 40, 40, 40,231,198,141, 27, 68, 42,
+149,166, 2,176,176,182,182, 86, 17, 66,136,173,173,173,169, 54, 98,182,182,182, 38, 66, 8,177,182,182, 86, 1,176,144, 74,165,
+169, 55,110,220, 32, 65, 65, 65, 57, 18,137,100, 13,106, 30,209,150,134,134,134,134,134,134,166, 22, 84,231, 69,254,194,148, 69,
+177,236,234,188,115, 92, 46,215, 79,161, 80, 68,125,246,217,103,198,205,155, 55, 19, 23, 23,151,187, 54, 54, 54,109, 20, 10,197,
+ 91, 13,234,199,140, 25, 83,155,106, 63, 63,137, 84, 22,181, 99, 70, 79, 99,209,182, 16,226, 96,103,115,215,194,194,162,141, 84,
+ 42,125, 75,115,196, 39, 19,204,209,180,151,201,100, 17,203,150, 45, 43,206,206,206, 38,132, 16, 34,147,201, 82, 1,200,149, 74,
+165, 42, 38, 38,134, 40, 20, 10, 2,243,163,120, 12,133, 66, 65, 98, 98, 98,136, 82,169, 84, 1,144,203,100,178, 84, 66, 8,201,
+206,206, 38,203,150, 45, 43,150,201,100, 17, 0,236,233,219,130,134,134,134,134,134,230, 95,109,180, 42, 26, 46,243,170, 14, 91,
+182,108,201, 83, 42,149,109, 36, 18, 73,127,177, 88, 28,218,175, 95, 63,223,129, 3, 7, 50, 52, 26,141,209,215,215,215,222,213,
+213,117,154, 92, 46, 31,197,231,243,155,113,185,220,145, 82,169,212,110,239,222,189,110,213,105, 54,109,254, 1,207,194, 66,222,
+134,203,229,245, 23,139, 37,161, 19, 63,236,226, 59,106,230, 32, 6, 71, 27,103,236,210,204,217,190, 73, 35,187,105,182,114,209,
+ 40, 22,147,209,140,162,168,145,124, 62,223,110,247,182, 77,110, 53,236, 88, 35,123,123,251,240,189,123,247, 54, 25, 50,100, 8,
+ 47, 58, 58, 26, 0, 96, 52, 26,185, 0,244, 76, 38, 19, 60, 30, 15, 58,157, 46, 11,128,185, 39,144,232,116,186, 44, 30,143, 7,
+ 38,147, 9, 0,250, 82, 61, 68, 71, 71, 99,200,144, 33,188,189,123,247, 54,177,183,183, 15, 7,208,136,190, 53,104,104,104,104,
+104,104,254,181,148,153,171,147,168, 80,117,200, 42,115,143,193,193,193,111, 69,141,184, 92,238,134,103,207,158,181,179,180,180,
+108,196,102,179,141, 67,135, 14,229,141, 24, 49, 2,233,233,233,166,252,252,124,166,159,159,159,242,222,189,123,189, 12, 6, 67,
+ 7, 11, 11,139,194,236,236,108,133, 70,163,121, 1, 96, 90, 53, 25,217,240,252,105, 84, 59, 43,185,101, 35, 46,155,105,156, 58,
+118, 4,239,171, 57, 61, 65,105,194, 76,198,180, 76,230,247,254, 22,202, 31,111, 22,244,122,166, 51,118, 40,144,241, 11,213, 57,
+154, 26, 53, 21, 10,133, 63,135,195,185,127,250,244,105, 8,133, 66,228,228,228,128,203,229, 2, 0,242,243,243,101, 0, 88, 20,
+ 69,129,203,229, 34, 55, 55, 87, 94,155,163,150,155,155, 43,231,114,185,160, 40, 10, 0, 88,165,122,224,114,185,200,201,201,129,
+155,155, 27,117,250,244,105,155, 94,189,122,189,212,233,116, 31,100,100,100,132,209,215, 26, 13, 13, 13, 13, 13, 77,237,169,204,
+139,252,141,168,113, 28,173,206,165,161,186,242, 19,231,238,180,182,182,182, 21,139,197,222,227,199,143,103, 40, 20, 10,220,191,
+127,223, 84, 80, 80,192, 96,179,217, 96,179,217,204, 46, 93,186,136, 13, 6,131,240,212,169, 83,212,203,151, 47,211,245,122,253,
+247,153,153,153,247,170,201,200,206,198, 22, 60, 91,129, 5,215,251,248, 23, 29, 25,214,110,153,192,217,133, 38,146,159,198, 96,
+153, 8, 20, 34, 19,115, 85, 7, 74,172,150,185, 10,167,238, 75,167,174,189,204, 78,215,235,245,223,231,229,229, 85,167,153, 12,
+ 0,165,121,130, 84, 42,133,209, 88,126,126, 75, 16, 6,131, 1, 30,143, 87,167, 35,199,227,241,192, 96, 48,128,114,145, 48,153,
+ 76, 6, 38,147, 9, 6,131, 1, 54,155,253, 86, 62,104,104,104,104,104,104,104,234, 68,101, 94,228,239, 66,249,113,180,204,155,
+155, 82,169, 84, 82, 82,169,212,174,121,243,230,223, 6, 5, 5,197, 12, 24, 48,160,240,167,159,126, 34,171, 87,175, 38,171, 86,
+173, 34, 91,183,110, 53, 94,190,124, 89,255,159,255,252,167,216,221,221,253, 69,104,104,168, 55, 0,244,238,221,187,202,234, 72,
+ 11,185, 37, 37,230,178,236,124,188,155,126, 59,188,115,147,152,111,250,123, 20,234,118,248, 17,211,124, 39, 98, 92,231, 74,140,
+ 7,187, 26,201,179, 21,250, 37,227,186, 22, 55,112,105,240,226,231,173,251,189, 1,160, 91, 80,239,106,171, 56, 21, 10, 69, 75,
+ 71, 71,199,212,115,231,206,153,178,178,178, 72,102,102,102, 89, 27,173,108, 0, 50, 23, 23, 23,149,193, 96, 32,114,185,252,117,
+109,142,154, 92, 46,127,109, 48, 24,136,139,139,139,170,196, 95,201,178, 9, 33, 36, 51, 51,147,100,101,101,145,115,231,206,153,
+ 28, 29, 29, 83, 21, 10, 69, 75,250,254,160,161,161,161,161,161,249,215, 50,190,194,103,205,180,107,215,142,146, 74,165,140,166,
+ 77,155,138,237,237,237, 91,219,219,219,223,249,241,199, 31,201,234,213,171, 13, 27, 55,110, 36,191,254,250,171,225,227,143, 63,
+206, 21,137, 68, 39,185, 92,174, 28, 0, 92, 93, 93,171, 13,249,181,108,221,134, 18,240,121, 12, 79, 79, 31,177,194,202,170,181,
+181,149,229, 29,221,234, 38,132, 44,116, 48,144, 45, 45, 8, 57,216,211,176, 98,112,171, 92, 54,155,115, 18,128, 28, 0, 28,237,
+237,204, 13, 35,218,219,216,216, 68, 44, 92,184,176, 64,167,211,145,210, 94,134,169, 0, 44, 92, 92, 92, 84,132, 16,226,232,232,
+152, 8, 64, 97,166,158,194,209,209, 49,145, 16, 82,102,180, 44,108,109,109, 83, 9, 33, 68,167,211,145,133, 11, 23, 22,216,216,
+216,208,141,225,105,104,104,104,104,104,104,170,156,235,176,202, 72,209,141, 27, 55, 72,110,110,174, 41, 57, 57,217,152,159,159,
+ 47,245,243,243,147, 51,153, 76, 40,149, 74, 38,147,201, 52, 21, 20, 20, 48, 21, 10,133,138,205,102,239,214,106,181, 89,253,251,
+247,167, 98, 99, 99,171,109,104,126,239,246, 45, 82, 84,172, 49, 37, 37, 37, 26, 11,243,115,165,163,154, 89,202, 89, 6, 29, 76,
+126,237,152,185, 2,119,147,169, 40,139,233,101,199, 83,113, 56,236,221, 0,178, 6, 4,247,161,146, 84, 41,230, 54, 94, 87,165,
+165,165,249,109,216,176, 97, 75,199,142, 29,179, 10, 11, 11,203,218, 86, 85, 28,130,193,194, 76,189,138,235, 49, 41,138, 66, 97,
+ 97, 33, 58,118,236,152,181, 97,195,134, 45,105,105,105,126, 0, 84,244,245, 69, 67, 67, 67, 67, 67,243,175,166,202,113,180,106,
+ 28,234,160,176,176, 80,206,225,112,186,181,106,213,170, 65, 65, 65,129,105,209,162, 69,137, 63,253,244,211,174, 23, 47, 94,232,
+ 45, 44, 44, 26, 9, 4,130, 79, 81, 76,136,102, 0, 0, 32, 0, 73, 68, 65, 84,135, 12, 25,162, 56,114,228, 8,233,208,161, 67,
+197,232, 83,165,179,123, 23, 21,229,203,121, 28,118,183, 79, 3, 36, 13, 18,117,114,147,247,167,119, 19, 59,205,191,185,235,183,
+ 71, 44,125, 83,203,162, 70,150, 92,234,211, 33, 67, 6, 43,126, 59,113,146,180,105,211,218, 44,205, 82,140,105,105,105,159,222,
+191,127,127,112,195,134, 13,147,244,122,125, 18,128,204,162,162,162, 84,123,123,251, 52,157, 78,151, 4, 64, 87,201,118,149,105,
+234,116, 58, 93,146,189,189,125, 90, 81, 81, 81, 42,128, 76,189, 94,159,212,176, 97,195,164,251,247,239, 15, 78, 75, 75,251, 20,
+128,177,154,188,208,179,186,211,154,180, 38,173, 73,107,210,154,180,230,191,135, 63, 68,179, 0, 51, 38,149,230,241,120, 29,157,
+157,157,219, 63,122,244,200,120,235,214,173, 28, 6,131,241,115,239,222,189, 15, 29, 62,124, 56,192,210,210,210,198,201,201, 73,
+121,241,226,197, 64, 0, 7,174, 93,187,102, 86,244, 73,192,227,116,108,225, 40,107,191,249, 33, 49,110,187,255, 60,199,200,228,
+253,220,101,208,160, 67,211,119,237, 9,176, 87, 72,108, 90,216, 73,149,167, 78,157, 9, 4,112,224,214,173,219,181, 30, 79,195,
+ 96, 48, 92, 76, 75, 75,115, 42,251, 63, 61, 61,221, 79,161, 80,120,163, 36,250,148, 99,166, 76,188,201,100,234,109, 50,153,236,
+ 51, 50, 50,158, 0, 64, 70, 70,198, 7,244,117, 68, 67, 67, 67, 67, 67, 67, 83,137,201,218, 92,217,255,213, 70,180,184, 92,174,
+ 3,147,201,244, 73, 74, 74,138, 63,117,234,212,163,150, 45, 91,246,138,143,143, 95, 70, 8,137, 19, 10,133,227, 19, 19, 19,159,
+ 39, 38, 38,106,139,138,138, 38,214, 34, 51, 14, 96,112,124,238,171,138,226,127,184,248,248, 81,211, 54, 61,122,169,213,170,101,
+ 70, 66,226,184, 66,233,248,103, 9,233,207,111,167,105,180,197,197,181,210,172,145,140,140,140, 39, 25, 25, 25, 57,181,220, 38,
+167,204,100,209,208,208,208,208,208,208,208,212,150,154, 34, 90, 58,163,209,184, 66,163,209,200,127,251,237,183,228,160,160, 32,
+ 13, 0,108,216,176,193, 52,118,236,216,235,175, 94,189,234,250,228,201,147, 94,182,182,182,151, 0, 80, 49, 49, 49,230, 68,159,
+116, 38,147,113,133, 86,171,145, 95,188, 28,150,220,177,125, 83, 13, 0,108, 92,191,214, 52,116,252,140,235,175,162, 31,117,125,
+ 22, 21,222,203,214,214,246,146,209,192,162, 82,212,113,132, 62, 77, 52, 52, 52, 52, 52, 52, 52,127, 97, 54,227,237, 42,195,205,
+102, 25, 45,173, 86,155,174,213,106, 1, 32, 43, 40, 40,232,173,239,182,110,221, 74, 0, 20, 0, 56,152,153,153, 89,155,204,164,
+ 23, 21, 21, 1, 64, 86,199,246, 77,223,250, 98,223,230,159,222,104,230,231,229,210,167,141,134,134,134,134,134,134,230,239,100,
+182,254, 0,131, 62, 46, 52, 52, 52, 52, 52, 52, 52, 52,245, 98,124, 85,255, 83,168,186,231,192,133, 90,252, 64, 93,122, 31, 92,
+160, 53,105, 77, 90,147,214,164, 53,105, 77, 90,243, 95,167, 89,147,246, 5,252,253,168,178, 49,252,159, 13,221,245,149,214,164,
+ 53,105, 77, 90,147,214,164, 53,105,205,127, 58,118,120,123,120, 7,187,178, 47, 88,244,177,161,161,249,123, 67, 14,130,137, 44,
+ 79, 87, 16, 98, 15, 38, 55, 5, 41,145,175,168,111, 97,170,183,102,170,143, 11, 4,122, 37, 12,252,116,164, 70,196,212, 87,147,
+134,134,230,159,135,109,219,201, 3, 40, 6,243,103,138,152, 80,148, 26,205,227, 20,197, 9,211, 82,226,255,141,222, 34, 5, 85,
+ 68,176,104,163, 69, 67,243,119, 39,221,203, 3, 44, 44, 5, 3,118, 32,186,151,176,246, 89, 10, 60,142,170,183, 38,199,180, 8,
+ 70,134, 35,136,238, 25,108, 60,151, 1, 79, 31,211, 7,251,159,199,180,169,147,200,147,168, 59, 72, 72, 80,161, 81, 99, 59,120,
+120,181,197, 79,107, 67, 41,250,200,208,152,247, 86, 70,109,238,214,119,132,165, 64, 40, 1, 0,152, 12,122,108,157,217,226,188,
+193, 96,216, 9,224, 8,128,162,127,251, 33,250,159, 55,134,103,179,217,169, 0, 76,124, 62,255, 48,202,133,214,104,104,254, 4,
+236, 74,175, 51, 83,233,117, 87, 27,196, 44, 22,107,190, 80, 40,188,204,227,241,210,120, 60, 94,154, 72, 36,186,204, 98,177,230,
+ 3, 16,255,101,202,184, 95,155, 8,193, 48,246,210,234, 77, 14,103, 34,179,109, 10, 53, 70, 15, 48, 12,189,201, 86,119,113,189,
+ 52, 89, 84, 80,177,206,228,188,251,110,161,178, 64,107,240, 6, 65,189, 52,203, 97,193,225,112,206,192,252, 57, 71,105,254,100,
+226, 99,162,112,234,196, 42, 44,250,110, 52,182,111,158,136,167, 79,110,215, 75,207, 27,248,224, 3, 22,235,115, 47,160, 11, 74,
+218, 1,211,252,147,161,200,248, 11,199,119,167, 31,223,187, 62,125,255,170,137,228,232,210, 96,172, 93,187,182,219,232,209,163,
+119, 59, 59, 59,167, 3,248,136, 54, 90,255, 99,244,122,189, 77, 70, 70, 6,181,115,231,206,126, 50,153,236, 37,139,197,154, 11,
+128,243,111, 57,224, 98,177,248,166, 84, 42, 77,149,201,100,169, 82,169, 52,188,166,244,127, 40, 30,214,214,214,241,150,150,150,
+207,202, 39, 90, 55, 27,208,214,173,221,168, 5, 86, 62, 33,157,234,169,207, 97,177, 88,115,101, 50,217,203,157, 59,119,246, 75,
+ 78, 78,166,244,122,189, 77, 45,182,239, 40,151,203,159,220,185,115,231,155,140,140,140, 78,137,183,183, 90,171,239,108,178,142,
+255,125, 85,231,251,167,214,125, 99, 97, 33,123, 12,160,227, 95,226, 72, 22,155,148, 96, 48, 3, 31,165, 20, 10, 83,114,245,202,
+176,184, 66, 9,192,236, 12,109, 61, 94, 98,114, 76, 74,128,116,121,152, 84, 36,186,249,218, 90,121,237,149, 70, 10, 6, 35, 16,
+197,148,109,189, 11, 28, 6, 99,146,201,100,234,206,225,112, 62,165,159, 80,127, 13,120, 60, 14, 64, 8,196, 34, 62, 0, 2, 70,
+ 61,173, 17,151,193,104,119,179, 95,191, 69,115,154, 53,155,230, 5,244,173,194,108, 81, 0,166,123,121,121,157, 6, 48,244, 29,
+238,206, 15,158,158,158,201, 0,102,188,171,114,201,223,223,191,109, 96, 96,224,130, 22, 45, 90,116,122, 87,154,255, 36,212, 55,
+ 55,252,150,114,125,157,141,234, 70,168, 77,118,204,213,233,118, 74,185, 41, 38, 38, 6,125,250,244,193,250,245,235,133,190,190,
+190,187, 0,216,255, 11,110, 37,191,178, 23,124, 84,104,163,101,182,209,250,208, 21,237,134, 53,196,149,193,174,200, 27,210, 16,
+249, 35, 27,226,250, 32, 87,116,169, 75,110,172,172,172,208,177, 99, 71,102,114,114,178, 96,214,172, 89, 11,248,124,126, 44,128,
+ 30,117,209, 18, 8, 4,247,133, 66, 97, 34,139,197,122, 43, 47, 66,161,240,190, 72, 36, 74,100,177, 88, 93,203,167, 75, 36,146,
+155, 82,169, 52, 85, 34,145,132, 87, 97,132,238, 75,165,210, 84,177, 88,124,191,124, 58,139,197,234, 42, 22,139,147, 36, 18, 73,
+197,244, 46, 18,137, 36,177, 98,122, 85,176,217,108,199,196,196, 68,155,164,164, 36, 27, 46,151,171, 44,159,158,144,144, 96,147,
+152,152,248, 86,122,109, 96,177, 88, 93, 68, 34, 81,162, 80, 40,188, 95, 89,122,197,125,170,138,114,199,174,139, 57,233,181, 45,
+120,130,130,130,174,167,164,164, 56, 91, 88, 88,188, 53,113,183,165,204,162,199,175, 91, 67,103,134,244, 14,154,100,237,221,191,
+105, 29,245,123,240,249,252,216, 89,179,102, 45, 72, 78, 78, 22,180,105,211,134,201, 96,212,234,125,162, 91, 72, 72,200,209,212,
+212, 84,135,230,205,155, 51, 13, 6, 3, 30, 29,155, 15, 97,196,167,224,199,110,132,147, 32,157,245,242,252, 50,199,160,206, 31,
+ 28,197,123,110, 12, 74, 14,122,115, 64,153, 58,154, 8,177,126,146, 92,108,221,167,223, 71,172, 7,137, 69,214,122,163,209, 18,
+ 96,118, 38,219, 93,120,117,210,100,233, 59,152, 8, 81, 94,140, 99, 91, 7, 14,158,198,188, 20,199,178,214, 27,141, 86, 96,160,
+ 83, 93, 52,203, 95,254, 76, 38,115,230,170, 85,171, 24, 0,166, 2,224,254,155, 12, 77, 43,123, 56,116,105,204,188,235,103,135,
+118,239, 80,214,183,244,126,247,168,175,208,150,237,167, 49,118,194,102,184,123,181,174,151,142,214,100,122,186, 47, 38,230,236,
+200,198,141,131,231, 52,107, 54,166, 18,179, 69, 1,152,179,108,217,178, 81,143, 30, 61,178,110,216,176,225,132,119,244,210,191,
+102,217,178,101,179, 31, 61,122,100,239,234,234,186,176,150,154, 85,150, 75,114,185,188,199,150, 45, 91,102,246,233,211,103,146,
+191,191,127,211,119,161,249, 15,102,253,195,135, 15,157, 87,173, 90,245,229,216,177, 99,115, 1,160,107,215,174, 28, 0,109,234,
+ 93,222, 17,194, 37,132, 4, 18, 66,250, 16, 66,186, 18, 66, 90,149,254,221,178,116,233, 67, 8,233, 86,225,179,101,233,182,101,
+223, 7, 84,161,209,167,226,118,229,182,169,248,255, 91,127, 87, 98,180,250,160,164,173, 86,159,183,118,224,196,137, 19,164,252,
+103, 69,134,184,226,219,105,109, 29, 10,159, 28,223, 67,242, 19, 99, 72, 86,244, 3,242, 96,243, 18, 50,173,165,117,225,240,134,
+248,161,246,199,139,144, 27, 55,110,144, 71,143, 30,145,252,252,124,242,252,249,115, 18, 16, 16, 80, 36, 20, 10, 47, 2,112,173,
+141,152, 68, 34, 73,189,120,241, 34, 9, 10, 10,202, 17,139,197, 43,203,110, 46,169, 84,154,122,227,198, 13, 18, 20, 20,148, 35,
+145, 72,214, 0, 96, 2,192,160, 65,131,210, 8, 33,196,218,218, 90, 85,153, 94, 72, 72, 72, 22, 33,132,200,100,178,178,170, 38,
+166, 68, 34, 89, 51,101,202,148,252,123,247,238, 17,185, 92, 94,150,206,144, 74,165, 43,167, 78,157,154, 31, 22, 22, 86, 62,189,
+ 90, 44, 45, 45, 19,141, 70, 35, 57,126,252, 56,177,177,177, 81,149,187,153, 19,141, 70, 35, 57,122,244,104,149,121,171, 46, 80,
+ 32, 22,139, 87,140, 28, 57, 50, 47, 46, 46,142, 88, 89, 89,165,150, 75, 95, 57,122,244,232,188,132,132, 4,162, 80, 40,204,202,
+163,149,149, 85,234,205,155, 55,201,192,129, 3,115,203, 31, 83, 43, 43,171,212, 91,183,110,149,165,175, 48,167, 32,179,183,183,
+159, 96, 99, 99,163,178,177,177, 81, 89, 88, 88, 44,182,179,179, 83,167,167,167, 19, 66, 8,105,212,168, 81, 90,249, 72,150,141,
+111,191,207, 54, 30,188,117,231,106, 84,102,122,179,238,147, 86,200,154,133,200,106,113, 12, 92,133, 66,225,197, 78,157, 58, 21,
+ 37, 38, 38,146,130,130, 2, 18, 17, 17, 65,110,220,184, 65, 94,188,120, 65, 0,152, 51,195,128, 68, 44, 22, 39,107, 52, 26,147,
+ 70,163, 49,165,167,167, 27,211,210,210,140,209, 43,237, 8,217,198,126,179,100, 31,237, 75,212, 87,151,154,164, 98, 97, 18, 0,
+201,123, 51, 90,161, 62,142,100,147,231,190,199,243,157,163,175, 46,235,169, 39,113,151,200,158, 49,214,250, 43,159, 57,188, 36,
+ 63,123,253,151,108,242,118,170,147,230,207,222,123, 34,190,118,126,186,110,225,116,125,124,124, 60,249,124,116, 79,195,185,105,
+ 14,175,200, 70,175,131,117,209, 44,199,176, 1, 3, 6,228, 39, 36, 36, 16, 31, 31,159, 2, 38,147, 57,246,223,100,178,186,121,
+112,147, 35,118,127,110,234,235, 43,204,124, 71,102,203,215,198,198, 38, 99,199,142, 29, 68, 34,145,164,213,213,108,125,216,191,
+ 51, 41,202,185, 72,250, 7,183,170,246, 30, 25, 60,120, 48, 9, 12, 12, 36,211,166, 77,171,233, 94,162,188,128,126, 59,155, 53,
+ 59,106,250,240, 67,227,206,102,205,142,122, 1,253, 74, 13, 22, 5,224,203,229,203,151,135,233,245,250,176,237,219,183,135,245,
+235,215, 47, 12,192,231,245, 60, 22, 63,253,240,195, 15, 68,175,215,147,237,219,183,147,126,253,250, 17, 0,107,235, 83, 46,149,
+ 69,178,252,252,252, 62, 59,114,228,200,157,167, 79,159,166, 7, 7, 7,175,104,214,172,153,172,174,154,127, 69,196, 98,177, 91,
+211,166, 77,119,249,248,248, 36, 52,111,222, 92,235,237,237, 93,236,225,225, 17,231,235,235,187,131,199,227,185,214, 81,182,117,
+187,118,237,140, 87,174, 92, 33, 3, 6, 12, 32,229, 76, 72,181, 84,231, 69, 8, 33,173,190,252,242,203,185, 0,200,151, 95,126,
+ 57,151, 16,210,167,212, 79,244, 41,255,119,197,207, 50,243, 84,246,127,101, 26,101, 75,101,154,149,253, 70,133,223, 65, 21,145,
+172,241,127,216,185, 19, 39, 78,116, 58,113,226,196,149,138, 59,247, 81, 67,180,157,214,214,161,168, 40, 61,133, 68, 45,249,148,
+ 92, 14,116, 36, 55, 58,219,146,103, 51, 7,144,148,221,107,200,228, 22,242,194, 15, 27, 34,176,182, 70, 43, 44, 44,140,132,133,
+133,145,240,240,112, 18, 27, 27, 75,114,114,114,200,254,253,251,141, 86, 86, 86, 69, 60, 30,111, 25, 0,129, 57, 98, 82,169, 52,
+149, 16, 66, 52, 26, 13, 89,188,120,113,113,105,164, 74, 41,147,201, 82, 9, 33, 36, 59, 59,155, 44, 91,182,172, 88, 38,147, 69,
+ 0,176, 87, 40, 20,137, 49, 49, 49, 68,169, 84, 86,106,102,228,114,121,234,211,167, 79,203,140,147,131, 92, 46,143, 58,118,236,
+152,142, 16, 66,146,146,146,136,165,165,101, 42, 0,165,149,149,213,131, 19, 39, 78,232, 8, 33, 68,165, 82,149,165,155,101,180,
+138,138,138,200,185,115,231,222,202, 67, 89,250,233,211,167,223, 50, 96,102,160,148,201,100, 97,251,247,239,215, 26,141, 70, 18,
+ 21, 21, 85,102, 18,149, 22, 22, 22,225, 7, 15, 30,212, 26,141, 70, 18, 29, 29,109,182, 25,108,208,160, 65, 26, 33,132, 24, 12,
+ 6,178,113,227, 70, 77,217, 49, 45, 75,215,106,181,100,195,134, 13, 26,169, 84, 26, 6,160,218,232,155, 66,161, 80,105,181, 90,
+146,157,157, 77, 2, 2, 2,242,111,220,184, 65,114,115,115, 9, 33,132, 52,104,208, 32, 13, 0, 60, 59,141,253,254,206,243,252,
+220, 79,102,135, 30,112,109, 53,124,201,217,187,201, 73, 91,142,220, 15, 83,248,134,244, 52, 39,168,201,227,241,150,217,217,217,
+ 21, 95,187,118,205,168,211,233, 72, 66, 66, 2, 9, 15, 15,127,115,141, 69, 70, 70,154,101,180, 88, 44,214,252, 59,119,238,232,
+140, 70,163, 41, 35, 35,195,152,150,150,102, 76, 75, 75, 51, 84, 52, 90,100, 27,155,100,156, 30, 71, 78,110,158,161,229,112, 56,
+243,223, 79, 52, 11, 76,178,201, 51,132,108,242, 12,219, 49, 82,145,145, 23,190,151,144,243, 51,200,171,239, 27,146,249, 61, 37,
+121,166, 77,158, 97,100,147,215,135,228,219, 78,172, 90,105,110,246,238, 75, 54,121,134,253,240,145, 75,230,131,176,123,228,202,
+149, 43,100,195,154,229,100, 90, 55,135, 2,211, 38,207, 48,242,179,247,192,218,104,150,135,199,227, 61,191,126,253, 58,185,122,
+245, 42, 89,184,112, 33, 17, 10,133, 9,239, 34,170, 71,126,246,112, 33,191,120,116, 34, 91,221,237,200,239,157,254,114, 29,124,
+ 90,217,195,161,187, 7, 55, 41,227,193, 17, 66, 94,191, 32,234,149, 62,164,167, 39,187,190,102,203,215,198,198, 38, 61, 46, 46,
+142,168,213,106,178,122,245,106, 34,149, 74,235,100,182, 62,236,223,153, 20,101, 95,168,214,104,133,132,132,144, 31,127,252,145,
+232,245,122,210,186,117,107,115, 94, 90,254, 96,182, 60,129, 16, 0,115, 87,172, 88,241,198,100,133,134,134,134, 69, 70, 70,134,
+ 57, 59, 59,159,170,199,177, 88,187, 98,197,138, 55, 38, 43, 52, 52,148, 68, 70, 70, 18, 23, 23,151,196,250,148, 75,221,187,119,
+255, 62, 54, 54, 54,119,222,188,121, 7, 58,118,236,184,228,193,131, 7, 73, 39, 79,158, 12,243,243,243,235, 89, 87,205,119, 16,
+213, 97,149, 70,118,184,132, 16, 54, 33,164,204,188,178, 0,176,203, 2, 10,230, 48,114,228, 72, 97,219,182,109,195, 70,140, 24,
+ 81,184, 99,199, 14, 18, 23, 23, 71, 34, 34, 34,200,138, 21, 43,200,130, 5, 11,200,182,109,219,200,192,129, 3, 11, 2, 2, 2,
+238,124,248,225,135,252, 90,100,211,199,213,213, 53,231,232,209,163,100,207,158, 61,132,195,225,156, 52,119,195,234,188, 72, 85,
+102,170, 42,131, 85,241,187,106,140, 88,181,134,205,140,223,251,163,169,170, 24, 9, 41,247,247,239,193,193,193,157,254,240,240,
+ 33,248,110,252,172,239,249,177, 59, 86, 35,117,255,122, 48,179, 83,193,206,203,132,230,250, 73,232,175, 31,195,168, 54,109, 4,
+ 2,138, 90, 84,219, 11,134,203,229,130,203,229,130,195,225,160,176,176, 16, 42,149, 10,237,219,183,103,132,135,135,243, 39, 76,
+152, 48, 67, 32, 16, 36, 0,232, 95,227,221, 76,149, 68,164,111,222,188,137,113,227,198,241,118,237,218,213,220,218,218,250,161,
+209,104,228, 2, 64,116,116, 52,134, 12, 25,194,219,187,119,111, 19,123,123,251,112,157, 78, 39,228,241,120, 96, 50,153, 85,234,
+113,185, 92,232,245,122,158,187,187,123,196,195,135, 15,125,131,131,131,217,241,241,241,136,137,137,129, 94,175,231,122,120,120,
+ 68,134,135,135, 55,239,211,167, 15, 59, 49, 49, 17,241,241,241,111,242, 97, 78,126,181, 90, 45,120, 60, 30,202, 87,105, 81, 20,
+ 5,141, 70, 3, 46,151,107,182, 22,139,197,234,226,229,229, 21,249,240,225, 67,191,144,144, 16,206,189,123,247,144,148,148, 4,
+163,209,200,245,246,246,142,124,248,240, 97,139,126,253,250,113, 34, 34, 34,144,154,154, 10,115,171,208,202,214,123,248,240, 33,
+ 70,140, 24,193, 61,115,230, 76, 11, 59, 59,187, 8,131,193,192, 5,128,200,200, 72, 12, 25, 50,132,123,246,236, 89, 63, 39, 39,
+167,136, 26,170, 18,153, 0,160,215,235, 49, 97,194, 4,145, 84, 42, 69, 98, 98, 34, 76, 38, 19,140, 70, 35, 0, 32, 51, 43, 51,
+242, 97,100, 84,244,168, 97, 31,117, 42,210,105, 52,183,238,222,127,210,168,129,139, 35, 69,145, 6, 53,100,181,191, 72, 36, 74,
+ 88,185,114,229,103,113,113,113, 60, 47, 47, 47,198,171, 87,175,144,151,151, 7, 14,135,243,230, 26, 51,119,191,185, 92,110,103,
+ 31, 31, 31, 86,113,113, 49, 76, 38, 19, 0, 16, 6,163,242, 22, 43,252,236,235,240, 86, 26,216, 2,129,160,243,123,121,122,231,
+250, 88,193,132,238,241,233, 90, 30,207,194, 81, 34,182,243, 0, 18,174,162,161, 53, 15, 76, 6,147,127, 47,166, 80, 4,144,238,
+112,206,176,170,157,166,169,123, 76,154,150,167,183,108, 34,182,119,116, 70,102,102, 38,156, 26,121,161,152,107,205,189,249,162,
+ 64, 12,170,150,154,255, 79, 7,119,119,119, 91, 55, 55, 55,100,100,100,192,207,207, 15,114,185, 92, 14,160,123,157, 31, 58,219,
+ 93,120,200, 69, 59,128,177, 18, 70,106, 33,244,172,165,120,145,238, 71, 54,249,177,255, 74, 38, 75, 42,230,222,222,187,111,191,
+131,149,179, 55,112,242, 19, 40, 45,120,216, 58,201,207,210, 90,198, 59, 90, 71,179,229,171, 84, 42, 47,221,185,115, 71,193,231,
+243, 17, 30, 30, 14, 31, 31, 31,172, 94,189,218, 90, 46,151, 95,173, 91,100,139,128, 80, 85,155,172,142, 29, 59, 98,234,212,169,
+216,181,107, 23, 44, 45, 45, 49, 98,196,136,154,204, 22,137, 6,142,255, 16, 17,177,125,215,203,151, 39, 70, 54,110, 28, 60,194,
+195, 99,241,196,161, 67,199, 78,159, 62, 29,203,151, 47,199,209,163, 71,209,174, 93, 59,140, 31, 63, 94,159,144,144,176,179,174,
+ 85, 85, 43, 87,174,156, 54, 99,198,140,138,154,186,248,248,248, 31,234, 85, 46,101,102, 70, 70, 68, 68, 68, 15, 27, 54,172, 83,
+113,113,177,230,238,221,187, 79, 92, 93, 93, 29, 1, 52,168,171,102, 61, 12, 22, 69, 8,225, 3, 16,150, 46, 34, 0,194,189,123,
+247,202, 66, 66, 66,164,165,105,130,210,165,198,234,125, 31, 31, 31,199,231,207,159, 39,207,156, 57,211,111,215,174, 93, 2,161,
+ 80,136,236,236,108,252,242,203, 47,152, 59,119, 46, 40,138, 2, 33, 4,219,182,109, 19,142, 25, 51,166,213,203,151, 47,147, 93,
+ 92, 92,204,105,210,194, 19,139,197, 7, 23, 47, 94, 44, 53,153, 76,152, 51,103, 78,134, 78,167,155, 90,250,221, 60, 11, 11,139,
+219, 40, 49,220,213, 81,169, 23, 41,247,172, 60, 81,225,216, 4, 87, 76,171,248, 29, 33, 36,184, 58,141, 90,158,139,202,126,239,
+100,117,102,171,252, 19,168,115,165, 46, 18,104,102,235,234,137,156,243, 7, 33, 96, 81, 16, 48, 75, 23, 22, 5,198,171, 72, 56,
+241,217,208, 19,226, 91, 87,163, 85,182,176,217,108, 20, 22, 22,194,104, 52, 98,238,220,185,188,115,231,206, 89, 49, 24,140,255,
+214,164, 83,222, 48, 61,123,246, 12,222,222,222,212,241,227,199,149, 83,167, 78, 21,148,253, 78, 78, 78, 14,220,220,220,168,211,
+167, 79,219,124,253,245,215,226,234,204, 12, 69, 81,224,112, 56,152, 49, 99,134,224,238,221,187,150,246,246,246,120,245,234, 21,
+ 94,191,126, 13,177, 88,140, 25, 51,102, 8,238,220,185, 99,109,111,111,143,184,184, 56,228,228,228, 64, 44, 22,215,218,104,113,
+ 56,156,183,182,161, 40, 10, 58,157,174, 86,198, 64, 38,147,237, 9, 11, 11,179,150,201,100,136,136,136,128,193, 96,128, 76, 38,
+195,180,105,211, 4, 97, 97, 97,214, 22, 22, 22,136,142,142, 6, 33, 4, 82,169,180, 86,121, 4, 0,147,201,132,232,232,104, 52,
+104,208, 0, 87,175, 94,181,153, 56,113, 34,191, 44,253,197,139, 23,112,116,116,196,213,171, 87,109, 68, 34,209,158,170,180, 76,
+ 38, 19, 82, 82, 82,240,232,209, 35,188,122,245, 10,233,233,233,200,200,200, 64, 94, 94, 30, 12, 6, 3, 0, 64,152,151,123,114,
+239,129,227, 15, 5, 2,129,208,199,195,221, 57, 50,234,113,154, 64, 32, 16,186, 56, 59,123, 0,223, 50,170, 49,132,255,141,143,
+143,183, 26, 51,102, 12, 71,173, 86, 35, 43, 43, 11, 44, 22,235, 15,215, 22,151,107, 94, 83, 32,131,193,224,205,231,243, 41,157,
+ 78,247, 38, 2,198,229,114,241,217,158, 66,248,204,199, 91,203,208, 53,105, 32, 70, 61,180, 90,173,247,255, 60,154, 5, 80,160,
+180,238,160, 40,191,219,175, 10, 44, 59, 4, 15,227, 32,230, 12, 96,210, 3, 12, 22, 58, 55,115,100, 29,141, 44, 80,130,160, 25,
+ 52,240, 34,164,230,158, 95, 4,160, 0,157, 27, 64,125,112,238,185,193,170,221,128, 73,156,228,228,100,112, 56, 28,240,120, 60,
+248,117, 25,196,218,251, 80,111, 11, 10,205,161,131,167, 57,154,111,133, 29, 5,130,111, 22, 44, 88, 32, 42,175, 57,118,236, 88,
+145, 76, 38, 91, 80,103,147, 85, 32,108, 3, 3,153,241, 40,185,176,193,226,147,106,239,151,105, 69,158, 32,100, 38,160,111,241,
+ 14,204, 86,103, 30,143, 23, 3,160,125,189, 76,150,132,123,107,223,190,253, 14,150, 78, 37, 38, 11,134, 98,128, 45,128,173,181,
+ 5,182,126, 22,104,105,109, 33,168,173,217,242, 85, 42,149, 23,111,223,190,173,224,243,249, 8, 11, 11, 3,135,195, 1,159,207,
+ 71,211,166, 77,177,105,211, 38,107, 75, 75,203, 90,155, 45, 2, 82,105,204,183,127,255,254,164, 99,199,142,152, 50,101, 10,118,
+238,220, 9,173, 86,139,197,139, 23, 35, 62, 62,222, 44,217,104,224,248,178,136,136, 29, 75, 31, 61,122,246,165,175,175, 87,127,
+145,200,114,202,136, 17,178,175,191,254,250,196,177, 99,199,182,247,233,211, 39,227,238,221,187, 63, 2, 56, 88,203,195, 75, 1,
+ 8, 93,181,106,213,148, 50,227,246,245,215, 95,111, 59,118,236,216,210, 62,125,250,164,220,189,123,119, 38,128,208,250,148, 75,
+ 38,147,233,228,127,255,251,223,135, 2,129, 64,232,233,233,233, 28, 21, 21,149, 38, 16, 8,132,206,206,206, 30,157, 58,117, 98,
+212, 69,179, 46,216,216,216,116,189,125,251,182, 15, 74, 58,141,241,202,140, 86, 84, 84,148, 69,110,110,174,133, 88, 44,182,176,
+179,179,147,148,153,173, 1, 3, 6, 88,176, 88,172,106,175,219,252,252,252, 99,243,230,205,147, 13, 24, 48,160,236,127, 92,191,
+126, 29, 59,119,238,132, 72, 36,122,107,221,126,253,250, 97,220,184,113,114,173, 86,251, 95, 51,178, 59,122,194,132, 9,158, 74,
+165, 18,223,124,243,141, 38, 57, 57,185, 43,128,120, 0,178,110,221,186,125, 31, 21, 21, 21,208,170, 85,171, 3, 0,252,171,187,
+247, 42,243, 34,229,141,142, 57,105,117, 93,223, 92,179, 85, 33,169,202, 49,180,222, 50, 90,193,193,193, 87, 80, 69, 79, 42,221,
+235, 84,240, 96,132,128, 73, 65,200, 44,103,182, 96, 2, 43, 39, 13, 84, 29,122,169, 84,246, 48,228,114,185, 96, 50,153,208,106,
+181, 48,119,162,234, 50, 83, 32,149, 74, 33, 22,139, 81, 84, 84, 4,131,193, 0, 62,159, 95,102, 70, 32,149, 74,193,102,179,193,
+102,179,193,231,243,255, 16, 77,170, 24,205,225,112, 56, 16,137, 68, 72, 73, 73, 65,124,124, 60, 76, 38, 19,196, 98, 49, 68, 34,
+ 17,184, 92, 46, 84, 42, 21, 84, 42, 21, 8, 33, 16,137, 68, 16,137, 68,168, 77,131,107,163,209, 88,233,195, 95,175,215,215, 42,
+162,101, 48, 24,240,228,201, 19, 36, 36, 36,128,207,231,191,217, 87, 30,143,135, 23, 47, 94, 64,173, 86, 67, 40, 20, 66, 42,149,
+ 66, 38,147,153,173, 91,182, 47, 18,137, 4, 2,129, 0, 89, 89, 89, 40, 44, 44,124,115, 76,165, 82, 41, 68, 34, 17,114,114,114,
+144,150,150, 86,237,190, 27,141, 70,168, 84, 42,164,167,167, 35, 49, 49, 17, 25, 25, 25,111, 10,160,210,168, 81,253, 2, 59,185,
+185,200,204,204,124, 19,137,172,106, 49, 7,147,201,132,188,188, 60,220,190,125,155, 50,153, 76,200,206,206, 54,165,171,213,198,
+201, 42, 46,142,126,251, 51,217,127,230, 65,241,222, 83, 97, 69,135, 47, 62, 42, 10, 61, 28, 89,196, 15, 88,104,192,251, 96,131,
+175, 12,122,118, 80, 70,190,158,151,174,227,200,148,190,221,128,152,211, 0,131, 5,240,229,104,221,164, 33,226,179,140,162,167,
+169, 90, 62, 40,244, 64,168,135,220, 44, 77, 35,187,123,122,158,158, 23,167,179,150,122, 55,243, 71,106,106, 42,120, 60, 30,120,
+ 60, 30, 62,104,215, 13, 49,153, 70,225,227,228, 34, 33, 8,130,204,210,252,127, 26,137,197,226, 54,237,219,183,167,202,107,246,
+238,221, 27, 20, 69, 53, 5,224, 85,171, 66,110,109, 35, 46,116,194,214, 96,145, 25,143, 83, 10,237,143, 70, 21,123,244,237, 63,
+200,242,167, 11,105,222, 79,212, 26, 87, 16,253, 44, 16,157,127, 61,204, 86, 39,137, 68,114, 98,221,186,117,174,124, 62,255, 52,
+128, 14,117, 17, 17, 11,152, 27,191,153, 50,204, 65, 94,102,178,244,133, 0, 75, 0,176, 5, 0, 75, 0, 91, 27, 5, 22,141,235,
+110, 41,228,179, 15,215,194,176,238, 13, 13, 13,181,174,104,178,202, 22, 63, 63, 63,204,159, 63,223,218,210,210,114,143, 57,122,
+ 43, 87, 44, 39,217, 57, 57, 0, 1,114,115,243,177,114,197,242,172,178,239, 6, 12, 24, 64, 58,116,232,128, 41, 83,166, 96,233,
+210,165, 56,117,234, 20, 90,183,110,141,241,227,199,163, 85,171, 86, 53, 73, 7,201,100,178, 93,221,186,117,187,173,146, 72,198,
+165,248,251,115, 47,202,100, 57, 93,115,114,100, 46, 81, 81, 58, 79, 32, 18,192,134,164,164,164,158,181, 48, 89, 67,165, 82,105,
+ 88,215,174, 93,117, 18,137, 36, 97,245,234,213,147,167, 78,157,138,229,203,151, 99,222,188,121,191, 0,248, 15,128,175,146,146,
+146,236,171, 51, 89,127, 86,185,244,103,149,117, 70,163, 49,241,224,193,131,173,116, 58,157, 99,105,245, 32, 47, 59, 59, 91,250,
+250,245,107,137, 78,167, 19,153, 76, 38,145,133,133,133, 24,128,112,212,168, 81,172,199,143, 31,123, 27, 12,134,228,234, 52,213,
+106,245,240, 57,115,230,100,100,100,100, 0, 0,154, 54,109,138,236,236,108,124,254,249,231,248,244,211,146, 14,193, 45, 90,180,
+ 0, 33, 4,169,169,169, 88,185,114,101,170, 90,173,254,216,140,236, 54,118,119,119, 71, 84, 84, 20,158, 60,121,114, 1,128, 9,
+ 37,237, 88,115, 30, 60,120,240, 48, 61, 61, 29,123,246,236,225, 56, 56, 56, 28, 67, 21, 67,188, 84,231, 69,234, 2, 69, 81, 39,
+235,178, 93, 89,228,170,178,136, 88, 21, 84, 31,209, 10, 14, 14,166,202,127,190, 21, 49,162, 16,145,112,255, 42, 44,125,253,223,
+138,102, 9,153, 20, 4, 82, 25, 98, 18,227,193, 1,245,232, 93, 25,173,172,172, 44, 76,158, 60,185,104,248,240,225,153, 38,147,
+105,144,185,166, 64, 38,147, 65, 38,147,225,241,227,199,100,224,192,129,169,171, 87,175, 46, 42,111,180,158, 61,123, 70,130,130,
+130,210, 22, 44, 88,144, 95,157,209, 42,139,104, 45, 91,182,172,168,115,231,206,233,143, 30, 61, 34,101,102, 74, 44, 22, 99,229,
+255,177,119,221,225, 81, 84,237,247,204,204,246,150, 94, 73,163, 39, 1, 66, 9, 45, 1, 1,129, 0,161, 55, 5, 65, 68, 65,233,
+136, 40, 42, 42, 74, 21,144, 94, 69, 80, 20,165, 9, 8, 74, 71, 33, 72, 81, 90, 66, 11, 37, 13,210,203,102,211,179,125,119,102,
+238,239,143, 36, 16, 32,101, 19,244,251,233,247,237,121,158,121, 54,123,119,230,228,189,101,238,156,121,239,189,239, 93,181,202,
+208,179,103, 79,245,181,107,215, 72, 69, 90, 93, 60, 90, 52, 77, 63, 18, 90,149,175,161,105, 26, 60,207,215, 73,104,233,116,186,
+177, 3, 7, 14, 84,223,191,127,159, 84,228,211,209,209, 17,107,214,172, 49,244,233,211, 71,125,231,206, 29, 82,145,230,224,224,
+ 96,179, 24,172,248,255, 42,149, 10, 14, 14, 14,184,123,247, 46,233,219,183,175,122,195,134, 13,198,202,233,247,238,221, 35, 67,
+134, 12, 81,151,150,150,142,173, 73,188, 84, 12,231,177, 44, 11,163,209,136,188,188, 60,164,167,167, 63,114,167, 27, 20, 14,145,
+ 99, 70, 13,110,107, 48, 24,244,119,227, 19,210, 90,135,180,244, 48, 24, 12,250,212,180,180,120, 96, 1, 95, 3,247,200, 86,173,
+ 90,229, 79,155, 54,205, 80, 88, 88,248,220, 66, 75, 44, 22,223, 23, 8, 4,164, 91,183,110,196,108, 54,147,244,244,116,107, 94,
+ 97, 33, 27,188,116, 41,185, 51,123, 54, 37,139,142,150, 40,149, 74,170,156,147,126,240,224, 1, 47,147,201,238,255,199,133, 22,
+205,123,129, 34, 47, 92, 72,208, 58,245, 25, 60, 90, 76,229, 92, 5, 44, 90, 64,226, 12, 72,156, 33, 80,184,162,127,183,118,204,
+142,203, 37, 94, 32,124, 23,136, 36,190,181,114, 10,137, 39,192,119,251, 45,222,232,252,194, 75, 51,197, 5, 5, 5, 96, 24,230,
+145, 40,146, 43, 20,232, 61,236, 53,250,219,171, 38, 47,128,116, 5,197,248,214,225, 94,255,224,211, 79, 63, 21, 21, 22, 22,130,
+166,233,199,156,114, 57,166, 76,153, 34,113,112,112,152,103,115,231,183,191,133, 8, 66, 73, 24, 64,222,137,203, 49, 54, 56,124,
+219, 16,244,222,242,237,178, 86,237, 58, 97,242,139, 30,178,229,199,114, 91,221, 76, 55, 52, 6,184,217, 96,205, 29,234, 33,182,
+186,169, 84,170, 99,209,209,209,242, 1, 3, 6, 96,213,170, 85, 10,153, 76,118,162, 62, 29,191, 78,203,205, 88,180,225, 7,245,
+173,181,253, 0,139,174, 76, 96, 85, 58,114,181, 60, 62,219, 30, 85,108,181,146, 49,182,114, 26, 12,134,241,111,190,249,102,254,
+193,131, 7,159, 17, 89, 82,169, 20,201,201,201,248,252,243,207, 11, 10, 10, 10,106,125, 40,174, 89,189, 42, 38,246,230, 89,124,
+251,245, 34, 0, 4, 27,215, 76,197,165, 11,123,157, 94,236,209,157, 52,108,216,144,116,234,212, 9,211,166, 77,195,146, 37, 75,
+ 16, 23, 23, 7, 55, 55, 55, 76,157, 58, 21, 61,122,244,192,234,213,171,107,234,164,250,206,152, 49,227,243,140,140,140,160,223,
+126,251, 77,160,209,104, 60, 86,127,243, 77,241,129,226,226,130,101,177,177,113, 31,135,132, 52,159,219,166,205,235, 53,132,126,
+168, 82,100, 77,159, 62,125, 79, 70, 70, 70,232,233,211,167,133, 26,141,198,119,250,244,233, 88,185,114, 37,230,205,155,183, 21,
+192,100,216,182,224,197,230,126,137, 97,152,200,145, 35, 71,182, 53, 24, 12,250,184,184,184,180,144,144, 16, 15,131,193,160, 79,
+ 75, 75,139, 63,119,238, 28, 95, 31,206,250, 32, 63, 63, 63,105,247,238,221,241, 51,103,206, 12,205,200,200,104, 1,192,181,180,
+180, 84, 81, 90, 90, 42, 49,155,205, 50,103,103,103,231,118,237,218,185, 77,154, 52, 73,121,227,198,141, 22, 25, 25, 25,218,114,
+ 47, 82,181,176, 88, 44,113,133,133,133,131,250,245,235, 87, 84, 88, 88,136, 54,109,218, 96,240,224,193,240,242,242, 66,131, 6,
+ 13, 48,116,232, 80, 4, 6, 6, 34, 63, 63, 31, 99,198,140, 41,208,104, 52,253, 0, 60,176,193,220,164,156,156, 28,116,233,210,
+ 5,139, 22, 45, 26,244,242,203, 47,223,233,214,173, 91, 73, 72, 72,136,222,215,215, 55,120,253,250,245,240,241,241,193,254,253,
+251,189, 37, 18,201,238, 42, 68, 86,181, 90, 4,128,166, 92,240,152,159,250,212,212,242,155,173,215, 86,249,183, 13,231, 61, 45,
+182, 42, 31,207, 12, 29, 86, 93, 33,192,103,223,239,223, 97, 20,251, 55,131, 99, 80, 91,200,165, 82,200,196, 98,200,156, 93, 97,
+226,121,124,147,156,163,215, 17, 50,175,174,141,231,233, 7, 33, 69, 81,216,180,105, 19, 27, 30, 30,110,140,138,138,218,104, 48,
+ 24,252, 81, 22, 85,214,102, 81,176, 97,195, 6,253,172, 89,179,110,230,230,230,182,149, 74,165,230,138,244,141, 27, 55,234, 95,
+123,237,181,216,140,140,140, 80,185, 92,174,175,110,126, 86,101,161, 37,145, 72, 76,185,185,185,157, 38, 78,156,120,255,203, 47,
+191,212,201,229,114, 40, 20, 10, 72, 36, 18,115,110,110,110,219,105,211,166,221, 92,185,114,165, 94, 38,147, 65,161, 80,212,105,
+ 88,142, 16,242,140,160,170,156,110, 43, 88,150,141,202,205,205,109, 59,107,214,172, 27,235,215,175,215, 85, 8,160,202, 54,174,
+ 94,189, 90,175, 84, 42,235,228,209,170, 56, 79,161, 80, 96,221,186,117,250,153, 51,103,222,204,205,205,109, 43,145, 72,204,149,
+210,117, 51,102,204,184,145,155,155,219,150,101,217,168, 26,222,198,184,146,146, 18, 8, 4, 2,196,198,198,154, 68, 34, 17,104,
+154, 70, 98, 98,226,163,206,199,197,197,165,101,219,214, 33,193, 63,236,217,127, 78, 38,146, 72,194, 59,117,104,241, 32, 37, 53,
+131, 16, 42,165, 22, 83,127, 54, 24, 12,254, 81, 81, 81, 27,195,195,195,141,155, 54,109, 98,171,243,108,217, 2,147,201,116,238,
+250,245,235, 86,169, 84, 74,101,103,103,179, 12,195,128,227, 56, 98,234,212,201,212,122,253,122,114,119,238, 92,202, 65,161, 16,
+136, 68, 34,200,229,114,234,228,201,147,102,189, 94,127,238, 63, 47,180, 32, 7, 5, 89, 66,174, 73, 37,165, 89, 10,241, 63,151,
+137, 44,169, 19, 32,117, 6,164,206,240,241,241,197,213,100,189, 10, 52,196,224,108,136, 33, 70,136, 2, 20,228,177,106,168,132,
+ 98, 25,149,147,147,243, 72, 16, 85, 28,141,154,181,192,245, 84,173, 18, 20,145,128, 65, 93, 66,144, 12,114,117,117, 21,100,103,
+103, 63,195,217,178,101, 75,198,106,181,218, 30,218, 37,139,243, 6,248,233,241, 57, 70,239, 67, 55,117, 65,179,151,125, 43,147,
+113, 69, 64,244, 6,180,106,210, 0,179, 95,106, 39,254,228,176,166,213,181, 20,125, 19, 48,100, 50,120,173,123, 29,236,124, 65,
+165, 82,157,184,118,237,154, 92,165, 82,225,193,131, 7,232,212,169, 19,182,109,219, 38,151,203,229,199, 1,212,105, 62,222, 21,
+ 53, 82,181,165, 92,248, 7,251,211,114,110,101,179, 79,136, 44,141,142,224,205, 47, 14, 23, 21,150, 24, 71, 94, 78,175,254,254,
+169, 2, 55,138,138,138,250,206,155, 55, 47, 95,163,209, 60, 33,178, 82, 83, 83, 43, 30,138, 47, 2,168,245,229,247,247,179,167,
+ 66,151, 46,153,133,107,209,119,208,127,208, 59,184,126, 43, 9, 31,127, 56, 12, 78, 14, 50, 68, 69, 69, 97,248,240,225, 88,180,
+104, 17, 18, 19, 19,241,227,143, 63, 82,219,182,109,163, 46, 95,190, 76,125,241,197, 23, 84, 45, 83, 26, 94, 93,182,108, 25,174,
+ 93,187,134, 1, 3, 6,224,252,249,243, 40, 40, 40,192,222, 19, 39, 18,118, 39, 36,124, 92, 49,103,171,154,208, 15, 85,194,193,
+193,225,189,101,203,150, 33, 58, 58,250, 17,103,126,126, 62,150, 45, 91,150, 1, 96,106, 93, 68, 86, 93,250,165, 54,109,218, 4,
+239,217,179,231,156, 84, 42,149,116,234,212,169, 69,114,114,114, 6,128,148,122,112,150, 60,207, 72, 85, 94, 94,222,159,219,182,
+109,187,220,171, 87, 47,249,248,241,227,221,127,249,229, 23, 87,189, 94,223, 64, 34,145,120,152,205,102,241,189,123,247,152, 3,
+ 7, 14,120,221,189,123, 55,217,104, 52, 94,181,165, 60,114,115,115,175,198,197,197,245,107,211,166,205,189,141, 27, 55,102,120,
+123,123,243,147, 38, 77,194,155,111,190, 9,119,119,119,110,221,186,117,105,221,186,117,139, 77, 74, 74,138,208,235,245,183,109,
+180,245,187,165, 75,151,254,177,103,207, 30, 12, 30, 60, 24, 95,124,241, 5,246,238,221,139,179,103,207,202, 46, 92,184, 32,222,
+182,109, 27, 68, 34, 17,194,194,194,208,183,111,223,222,229,195,157,182, 62,151,174, 81, 20,117,140,162,168,211, 79,125, 94,171,
+233,183, 58, 92, 91,221,223, 53,158,247,148,153,219,158, 58,108,199,171, 77,176, 96, 74,136, 74,255,231,184, 48,146, 51,233, 5,
+162, 30,221,130, 92,236,225, 66, 38, 54,165,116,227,235, 25,222,193, 96, 48, 60, 58, 14, 30, 60, 72,188,188,188,116, 42,149,170,
+206,225, 29,188,188,188,212, 37, 37, 37,164, 99,199,142, 5,238,238,238,143, 66, 17,120,123,123,171,117, 58, 29, 9, 11, 11, 43,
+240,240,240,120, 20,222,193,215,215, 55,157, 16, 66, 2, 2, 2,178,170,227, 99,163, 6,249,106, 0, 0, 32, 0, 73, 68, 65, 84,
+ 89,150,120,121,121, 85,172,208, 19,186,184,184,108,233,220,185,115,129, 90,173, 38,222,222,222,143, 66, 39,184,187,187,175,234,
+212,169,211,211,233,181,217,155,158,145,145, 65, 50, 50, 50,136,159,159, 95, 86,229,244,212,212, 84,146,154,154, 74,124,125,125,
+235, 28,222,193,221,221,125,101, 21,182,212,203, 70,127,127,127,181,193, 96, 32, 93,186,116,121,162, 76,253,253,253,213, 70,163,
+177, 34,221,166,240, 14, 50,153,108,178, 84, 42,205,146, 74,165, 89, 18,137,228,243,134, 13, 27,230,238,219,183,143,172, 91,183,
+174, 98, 73, 58,220, 91, 14, 9,111,214,229,245,143,221, 91, 14,125,239,121,194, 59,168, 84,170, 51, 94, 94, 94,186,131, 7, 15,
+ 62,209,190, 12, 6,131,205,225, 29,100, 50, 89,134, 86,171,229,213,106,181,245,143, 63,254,208, 71, 71, 71,235, 99, 99, 99,245,
+201,201,201,134,252,220, 92,139, 90,173, 54, 20, 23, 23,155,110,222,188,105,146,203,255,127,194, 59,144,109,129,205,200,150,224,
+195, 73,139, 26,221,157,213, 93,110,188,189,164, 45, 33, 63, 13, 39,228,248,155,132, 68,125, 64,174,110,157, 68,186, 52,146,112,
+127,204,241,139, 39, 95, 5, 29,178, 37, 36, 3,217,214,186, 25,217, 18,124, 60, 97, 97,163,187,227,187, 53, 48,126,243,229, 58,
+114,229,202, 21, 18, 27, 27, 75, 30, 60,120, 64,142,255,188,143,116,105, 34, 47,227,220, 18,124,184,142, 97, 30,186, 74, 36, 18,
+237,154, 53,107,200,229,203,151, 31,113, 30, 62,124,152,200,229,114, 61, 96,219,170,101, 2, 80,100, 75,203, 97,236,151, 65, 23,
+ 62,233,163, 44,205, 63,250, 1, 33,183,119, 16,178,173, 21, 33,223,117, 38,100,223, 64, 66,142,188, 78, 46,175,123,137,116,109,
+ 36,178,146,175,130,206,147,173, 45,109,158,108, 47, 20, 10, 75, 14, 30, 60, 72,178,178,178,200,249,243,231, 73,116,116, 52,185,
+127,255, 62, 73, 75, 75, 35,199,142, 29, 35, 66,161,208,136,122,108, 91,214,217, 19, 1, 17,205, 69,217, 55,151,119, 37,228,151,
+ 49, 68,179,251, 85, 50, 40, 68, 85, 16,230,247, 92,241,232,218,185,186,186,230, 29, 59,118,140, 36, 39, 39,147,115,231,206, 17,
+ 15, 15,143, 60, 0, 54,207,151, 29,212,191, 27, 33,230,155,164,103,247, 16,210,166, 77, 8,233,209,181, 57,201, 76,218, 64, 58,
+181,111, 72,182,108,217, 66,212,106, 53,105,216,176, 33,169,171, 97, 17, 17, 17, 87, 8, 33, 49, 3, 6, 12,136, 1,112, 50, 34,
+ 34, 34,230,225,195,135, 49,157, 58,117,186,140,154, 67, 63, 84,139,222,189,123, 91, 8, 33,100,192,128, 1, 4, 64, 86, 68, 68,
+ 4,121,248,240, 33,233,212,169,147,185, 62,133,103, 75,191, 20, 26, 26, 26,222,171, 87,175,143, 67, 67, 67,223,179, 37,188, 67,
+ 45,156,127, 85, 16,106, 6,101,193, 63, 91, 2,232, 80,126,180, 40, 79, 99,158,131,243,117,161, 80,248,141,139,139,203, 89,103,
+103,231, 40,134, 97,182, 1, 24,135,250,197, 55,163,203, 61,140,191,186,187,187, 39,182,105,211,198,208,175, 95, 63,210,191,127,
+127, 50,125,250,116,194,243, 60,217,183,111, 31, 89,180,104, 17,105,234,234,202,174, 3,242,190, 2,222,128, 29,101, 1, 75,223,
+104, 66,157, 27,219, 24,165, 99, 26, 67, 59,161, 41,101, 75,192,210,136,234,132, 22,207,243, 36, 62, 62,158,244,236,217, 83,167,
+ 80, 40, 50, 97,123,192,210, 39, 56,221,220,220,162, 61, 60, 60,158, 9,162, 89, 41,253,137,128,165, 30, 30, 30,127,122,123,123,
+171,221,221,221,175, 87,197,233,230,230, 22,237,237,237,173,118,115,115,123, 34,184, 39,195, 48, 3,220,220,220, 50,159, 78, 23,
+ 8, 4,189, 60, 60, 60,210,159, 78,175, 38,239,240,242,242, 74,207,202,202, 34, 26,141,134,248,251,251,103, 61, 45,192,114,114,
+114,158, 16, 96,182,112,214,102, 75, 13, 54, 86,201,105, 67,153,214,167,222, 43, 16,232,227,227,147,187,122,245,106,162, 84, 42,
+159, 88,242, 28,212,125,194,167, 87, 18,180, 37,111,126,184,101, 95, 21, 1, 75,109, 13, 14,218, 79,161, 80,100,246,236,217, 83,
+ 23, 31, 31, 79,120,158, 39, 60,207, 87, 39,180,170,226,140,236,208,161, 67,126, 94, 94, 30, 87, 90, 90,202,166,167,167,155, 30,
+ 62,124,104, 88,178,100,137, 69,163,209, 24,181, 90,173,249,214,173, 91, 38,111,111,111, 13,128,200,186,214, 81, 61, 17,241,244,
+240, 25,217,218,162, 43,249,170,197,177,251,243, 3,238,189,222, 89, 97,138, 89, 61,128,144,168, 15,200,229, 45,111,146,240, 70,
+226, 50, 65,180, 53,248, 4,249, 54,176, 59,217,208, 68,108, 19,231, 55, 77,187,145,173,193, 39,238,126, 22,112,111,120,123,119,
+243,158, 29, 91, 73, 98, 98, 34, 57,124, 96, 55, 9,107, 92, 46,178,190,106,241, 43,217,210,162,167, 45,156, 85,137,173,237,219,
+183,147,196,196, 68,114,232,208, 33, 91, 69, 86, 68, 85, 66,235,163, 8,101,209,155,157,165,166, 49,237,196,230,161,173, 68,150,
+190,205, 68,108,151, 0, 1,215,214,155,230, 91,184,131,244, 13,146,153,200, 87, 65,231,201, 87, 45,250,217,106,167, 88, 44, 78,
+ 67,165,152, 58, 79, 31, 18,137, 68, 83,131,208,138,168, 85,108, 5, 74,178,207, 44,234, 69, 6,183, 81,229,219, 40,178,106,107,
+ 75,237,220,220,220,242,190,251,238, 59,226,233,233,169,177, 81,100, 61,226, 28, 50,168, 47, 73, 77, 58, 78, 14,237, 91, 70,122,
+118,111, 65,118,110,159, 69,174,156,159, 79, 6,246,239, 73, 34, 34, 34, 72, 94, 94, 30,233,213,171, 23,169,171,157,142,142,142,
+ 59,181, 90,109,204,169, 83,167, 98, 34, 34, 34, 98,118,238,220, 25,115,241,226,197, 24,185, 92,190,179,194, 57,241,180,216,106,
+241,108,255, 31,241,148, 71, 43,166,180,180,148,156, 58,117,138, 68, 68, 68,144,157, 59,119,146,139, 23, 47, 18,185, 92, 30, 83,
+223,251,200,214,126,169, 79,159, 62,159, 38, 39, 39,151,124,246,217,103,251,170, 8, 88,106, 43,103,226, 95,100,231, 95,210,135,
+252, 63,112,170,100, 50, 89,204,205,155, 55, 73, 97, 97, 33, 9,241,244, 36, 75, 25,134,100,136, 68, 36, 75, 36, 34, 91,128,130,
+255, 2,153, 52,169,186,161,195,191, 27, 85, 10, 45,163,209, 72,230,204,153, 99,150, 74,165,122,145, 72, 84,215, 45,120,254,213,
+141,208,205,205,237, 79, 79, 79, 79,181,167,167,231, 19, 98,175,114,186,155,155,219,245,255,242, 27, 48, 80, 36, 18,165, 10,133,
+194, 39,183,224,105, 57, 36,188,105,215,241,243, 60, 91, 13,233,255,156,118,138, 68, 34,209, 71, 82,169, 84, 63,103,206, 28,179,
+ 86,171,173,139,208, 2,128, 62,114,185, 60,243,251,239,191, 55, 36, 36, 36, 88, 11, 10, 10,216, 43, 87,174, 88,163,163,163,205,
+ 11, 22, 44, 40,149,203,229,153,168, 62, 44,193,127,164, 60,201,134, 38,226, 10,177,117,123, 94,192,253,193, 33,114,203,182,119,
+251,146,240,134, 79,137,172,234, 35,185, 87,205, 89, 46,182,110,124,226,127,191,103,160,146, 93, 54,111, 54, 9,107, 44,123, 82,
+100,213,129,243,105,177, 37,151,203, 75,231,207,159, 95, 23, 79,214,147,130,240,155, 32,127,178, 53,120,103,153,136,170,229,216,
+ 18,244, 53,217, 20,228,255, 79,185,143, 58,123, 34,160,119,160,228, 78, 29, 60, 89,182,216,217,206,217,217,249, 94, 29, 60, 89,
+143, 56, 55,109,218, 72, 94, 29,221,135, 36,221, 59, 72,180,249,199,201,245, 75,107,200,136, 33,161, 36, 44,172, 19,217,186,117,
+ 43,137,139,139, 35, 29, 59,118, 36,245,176,179,239,148, 41, 83, 98, 30, 62,124, 24,243,224,193,131,152,139, 23, 47,198, 12, 27,
+ 54, 44, 6, 64,223,202, 35, 65, 21, 98,203, 50, 98,132,169, 29, 77,207,174,133,243,149, 41, 83,166,144,135, 15, 31,146, 7, 15,
+ 30,144,139, 23, 47,146, 97,195,134, 17,212,109,251,158,122,245, 75,161,161,161,225, 61,123,246,156,215,190,125,251,254,127, 21,
+231,255,160,208, 82, 12, 31, 62,156,231, 56,142,244,239,223,159, 91, 15, 20,109,163, 40,245, 54,138, 82,111, 5, 52,255,237, 30,
+173,191,123,195,207, 8, 0,167, 43, 39, 72,165, 82,181,209,104,116, 87, 42,149, 63,107,181,218,153, 40, 91, 22,249, 92,156,127,
+135,157,118,206,255, 10, 78,111,165, 82,185, 81,171,213, 14,147, 74,165, 26,163,209,232, 89, 7, 78, 39,137, 68, 50, 91, 42,149,
+246,212,235,245,129, 0,160, 80, 40,226, 77, 38,211, 89,131,193,176, 22, 64,209,255,119,222,201,134, 38, 98,136,197, 29, 64, 48,
+ 55, 38, 77,215,120,217,169,130,128,119,123, 57,167,117,105,170, 72,134,144,255, 2,148,233, 42,245, 70,170,169,206,156, 50,170,
+ 19, 56,225,220,171, 41,250,134, 95,252, 86, 26,240, 94, 79,101, 90,151, 38,202, 52, 16,124, 1,137,254, 82, 93, 57,159, 22, 91,
+ 10,133,226,123,157, 78,247, 22,128,179,117,205, 59,217,223, 66, 4,157,213, 7, 86, 38, 4,164,134, 45,124, 8,209,131,102, 98,
+145, 3, 53,181,224,158,197,126, 31, 85,205,249,229,151,155,201,233,223,142,195,164, 47, 64,118,110, 9, 94, 29, 55, 1,237,218,
+133,194,205,205, 13, 75,151, 46, 69,179,102,205,176,104,209, 34,170, 30,118,246, 85, 42,149,175, 6, 7, 7, 55,185,123,247,238,
+ 3,189, 94,191, 11,192,175, 79, 63,127,130,129,158,114,129,160,173,129,101,207,223, 3,162,107,225,124, 69,169, 84,190, 23, 28,
+ 28,220,234,238,221,187,119,244,122,253,106, 0,123,237,125,221,191,131,147,166,233,181, 1, 1, 1, 35,146,147,147,231, 2,216,
+131,255, 33,252,199,133,150,157,211,206,249, 47,228,172,184, 79,200, 63,205,206,199, 98,139,159, 9, 10,141, 65,168, 12,136,248,
+117,181,136,172,218, 57,101, 84, 39,176,130,119, 64,193, 15, 4, 57, 32,244,218, 90, 68,214,127, 86,100, 2, 20, 22,212,208,127,
+ 45, 0,161,170,175, 47,123,155,175, 2,159,126,250, 41, 57,121,242, 36,228,114, 57, 12, 6, 3,250,245,235,135,197,139, 23, 83,
+246, 62,196,206,249, 31,228,252,175,132,192, 94, 4,118,216, 81, 43,200, 63,213, 48,234,237, 7,102,178,191,197, 53,228, 49,115,
+ 64,163, 49,192,166, 66,199,230, 80,111,167,154,159,147,243, 10,242,168, 89, 96, 16, 8, 49,155, 4,173, 57,135,154, 90,127,206,
+191,225, 13,145, 96,193, 63,183, 94,254,141,120, 90, 84, 69, 71, 71,219, 11,197, 14, 59,108,199, 36, 60,185,210,240,209,119,187,
+208,178,195,142,127, 57,168,151,239, 89, 0,100,148, 31,255, 88, 78, 59,236,176,195,142,255, 65,193, 5, 10,213, 79,104,171,139,
+ 75,176, 62, 19,237, 78,219, 57,235,197,201, 0,112, 4,224,132,178, 24, 36, 21, 75,122,107, 11,179,209, 31,128,213, 94,158,118,
+ 78, 59,167,157,211,206,105,231,252,127,230,172,141,251,223, 56, 36, 89,213, 42,195,109,255,137,127, 28, 97,231,252, 75,209,239,
+191, 38,239, 4,109, 65,176,174,252,104,107,175,119, 59,167,157,211,206,105,231,252,159,231,252,175,132,125,232,240,223, 5,233,
+191,214,114, 66,188, 1, 84, 4,185,140,133,145, 10,134, 20,179, 0, 0,165,184, 78, 8, 18, 0,132,148,255,158, 78, 81,117, 94,
+141,106,135, 29,118,216, 97,135, 29,255, 95, 8, 5,112, 29,128, 55,128,129, 0,142,161, 60,170,194,255,171,208,146,185, 54,247,
+134,128,110, 67,241, 36, 24, 0, 8, 77,221, 7,203,223, 50,228, 39, 60,247, 67, 86,217, 32,208,133, 64,188,159,130,249,101,109,
+ 86,252,115, 7, 67, 11, 9,116, 24,225,233,166,122, 53, 39,191,248,251, 59,113,218, 95,234,114,173,163, 99,128,163,212,197,249,
+ 37,147,197, 26, 34, 22,137,210, 44, 69, 37,219, 10, 11, 31,148,214,195, 12,151,154,126, 92,176,128, 80, 71,179,175, 83, 34,185,
+133,118,117, 16, 81, 90,104,137, 54, 91,201, 55, 42, 74, 38, 7, 14,188, 76,234, 90, 55, 20,141, 23, 21, 42, 85,123,137, 84,222,
+ 73,174,114,110,206, 19,160, 64,157,153, 98,182,178, 23, 57,179, 62,134,240,248,189, 14,117,245, 26,128,101, 0,128, 94,189, 78,
+ 35, 4, 14, 88, 91, 97, 56,166,246,186,141,215,162,162, 80, 17, 92,246, 35, 0,203,235, 96,174, 19,128, 0, 0,197, 33, 33, 33,
+250,216,216, 88,205, 95,213, 70,159,167,222,107,130, 68, 34,149, 89,173, 22, 11,199,113,207,189, 49,181, 68,238, 48,255,153,237,
+149, 40, 26, 70,109,225,194,231,225, 21,185, 6, 14, 42,239, 60, 30,193,146, 31,191,192,222,159,218, 97,135, 29,118, 84, 43,180,
+ 6,162,108,200,176,246,201,240, 1, 45, 95,184, 38,149,202, 26, 1, 0, 79, 8,120, 2,232, 74,138, 98,114, 30, 68,247, 3, 0,
+183,134,161,167,132, 82,135,246, 60, 41,251,157,227, 1,214, 98, 76, 46, 73,189,210,209, 22,139, 20,238,129,195,123, 69,244, 30,
+ 49,104,208,192,160,214, 33,173,155, 2,192,237,216,219, 73, 71,143, 30,139,139, 58, 77, 29,212,105,226, 15, 61,151, 3, 5,210,
+197, 29, 58,180,123, 33, 58,250,250, 34, 0,211,159,183, 4, 93, 93,149, 51,127,253,105, 78,247,222, 35, 86, 41,128,186, 61,112,
+165, 46,206, 47, 13, 29, 28,217,238,253,183,167,208,111,206, 89,218,232,218, 31,191,175, 80,122,183, 42, 34,188,245, 87,157,122,
+244,133,154, 54, 78,126, 90, 63, 86, 39,176,118, 21,156,164,215,125, 23,238,108, 40, 72, 26, 77,120,110, 52, 69, 81, 96,196,242,
+ 3,238, 77, 94,216,231,244,226,187,133, 0,108, 94, 49,230,224,221, 50,194,195,219,247,224,232, 9,179,165,114, 71, 79, 1, 24,
+ 17, 0, 10, 89, 41,247, 16,181,119,153,243, 59, 11,183,135,254,113, 43,149, 61,243,211,102, 35, 37, 18,142,208,103,223,173,125,
+ 60, 61, 53,213, 9, 1, 1,101,127,127,253,245,167,104,212,248, 54,202,230,154, 1,107, 80,252, 67, 22, 66,128, 50,161,149,146,
+ 2,103, 91,109,237, 55, 96, 84,159,180,212,132, 69, 89,153,105,191,208, 2, 1, 95, 88,172,123,215,213,213, 67,155,159,159,219,
+ 19,229, 19,185,221,220,220, 20,121,121,121, 22, 0,150,255,100,189,191,244,198,226,175, 15,124,247,233, 91, 85,253, 54,237,157,
+197,107, 3,124,157, 20,111, 79,159, 88,229,134,220, 61, 34, 39,190,127,238,228,246,149,181, 10, 98,133,106,254,200,183,230, 45,
+120,177, 87,223, 39,210,175, 92,186,136,221,155, 62,133,174,180,126, 98, 75,228, 26, 56,232,149,133,191, 28,153,212,191, 33,180,
+102,130,189, 81,169,176,154,205,248,105,233,168,235,150,252,248,163,246, 62,213, 14, 59,236,176,227, 9, 28, 43, 23, 87,199,158,
+254,161, 90,161, 37,149,202, 26, 93,254,253,168,203,161,139,233, 0,128,136, 80, 47,124,188,100, 99,223,157, 27,162,227, 0, 32,
+188,215,160,192, 69, 31,189,141, 63,239,228,130, 16,130,118,205, 92,209,127,232,203,182, 9, 15,207, 22, 29, 95,122,105,228,216,
+ 57,115,222, 27,146,152,152,152,178,103,207,158, 11, 0,208,173,123,247,102, 75,151, 46, 29,181,202,217, 69,242,227,129,159, 50,
+141,234,123,215,234,147, 91,105,131, 38, 62, 65,205, 27,191,250,227,183, 27,233, 23,251,141, 28,147, 2,221, 50, 99,214,131, 76,
+ 91,174,117,115,115,155, 37, 20, 10, 29,129,178,221,216, 31,189,201, 91,136, 23, 0,176, 28,175,114,110, 16, 84,202,136,164,156,
+ 68, 34,186, 91,170,213,126, 95,146,121,239,155,154, 56, 77, 86,107,171,119,166,190, 65,223,120,144,143, 70,173,186, 49,235,150,
+125, 2,158,179, 58,207,254,104,201, 75,209, 87,126,132, 78,141,115, 54,102, 77,248,116,130,143, 79, 24,179,120,153,178, 15, 69,
+225,245,128,240, 9,195, 22,237, 56, 32,236,208,204, 1, 38, 43,143, 19, 49,249,225, 91,214, 46, 94,249,199,150,129, 71, 0,108,
+ 5,112, 6, 64,173,162,206,197,213,101,215,172,121,107,149, 58,243, 99, 47, 73,185,200,194,215,223,239,199,205,116, 30,193, 65,
+193, 2,175, 89, 43,148, 91,151, 76,218,161, 47,219,103,171, 42,185,219, 4, 64, 87,224,190, 11, 38, 47,236,141, 31,150,127, 14,
+ 15, 15, 29, 84,170, 52, 80,240, 4,208,188,252,196, 4,113, 30,210, 1,124,148,155, 11,197,162, 41,232,119, 3,248,176, 45,144,
+ 11,224, 15,170,166, 93,227, 9,187,236,157,185, 43, 67,220, 27,135,116,138,141,203,196,229, 99,155,161,201, 73,117, 42, 44,204,
+251,222,175, 89, 91,162,112,116, 15, 45,202,121, 8, 7, 39, 60,164, 8, 55,180,184,184, 48, 7,128, 77, 94, 36, 47, 47,175,249,
+ 62,254,157,187, 87,212,187, 75, 64,187,194,138,223,104, 70,176, 43,239,225,181,183,107,186, 62, 32,120,240,196,101,155,187,245,
+188,127,243,212,254,180, 7, 49, 23, 89,171,197,212, 60,168, 77,135, 55, 94, 31, 51,234,126,166, 91, 91, 77,145, 9, 55,111,223,
+105,183,124,249, 23,203,239,196,222,190,173, 82, 57, 57, 55, 14,108,219, 57,184,205,128, 49, 5,102,151, 38,182, 8, 45,150,229,
+224,234,213, 4, 66,169, 10,190,158,142, 40, 42, 53, 65,103, 98,225,230,213, 24, 44,251,124,206,178, 54,173,188,113, 45,195,140,
+ 7,241,233,240,242,116, 65,122,154,198,222,149,218, 97,135, 29,118, 84,141,108, 60, 57,249,125, 91,173, 66, 11, 0,148, 50, 1,
+226, 30,230, 0, 0,156,100,192,204,201,227,145,159,167, 9, 52,179, 60, 38,140, 31,135,235,247,179, 17,151,172, 1, 33, 4,129,
+190, 54,111,194, 13, 6,124,135, 9, 19, 39,244, 56,245,235,175, 87, 63,157,247,233, 15, 20,133, 75, 0,176,117,219,215,225,159,
+205,255,236,173,113,227,199,245, 57,112,224,192, 29, 0,245, 18, 90, 2, 74,181,113,229,242,207,197, 25,121, 70,227,172, 57,115,
+249,247,222,157,181, 14,192, 72,155,148,140, 80,232,152,145,145,161,164,233, 39,247,210,252,226,243,185,231,251,140, 88,149,144,
+146, 86,116,227,212,225,195, 29, 91,182,108,137,140,204,156,174, 43,214,127,213,246,196, 41,217, 27,165, 37,134, 17,250,188,123,
+ 85,110,218, 44, 17, 10,239, 44, 92,177,165, 29,239,212,140,254,248,173, 1,104,213,180, 1, 50,115,139,208,189,223, 16, 65,204,
+181,107,125, 1,155,133,214,211,193, 3, 95, 50,243,185,109,151,126,127,165,247,176, 46, 13, 58,208, 52, 3,173,193, 10, 77,177,
+ 9, 28, 15,116,107,225,136,200,157,235, 5, 5, 58,235,240, 37, 63,165, 15,191,180, 97,144,218, 88,156, 53, 3,192,193, 90,252,
+129, 46,190, 30, 14,136, 75, 47,173, 82,100,233,140,101, 15,112, 17,195,129, 2,113,173,129,168, 43,128,239,128, 96,224,183, 25,
+ 99,225,233,185,199,211,211,243, 37, 15, 79,175,152,192,177,111, 80, 62,141, 90,168,180, 6, 11,238,222,185, 93,218,178,125, 44,
+ 41, 45,200,157,109,212, 21, 30,184, 7,196, 6, 3,251,202, 57,222, 64, 13, 66, 43, 33,225, 94,209, 27,175,244, 20,220, 72, 42,
+197, 3,133, 2,173,186, 12, 67,177, 38, 67, 24,249,198,194,206,134,210, 98,169,171,103, 0,238,253,185, 31,154,180,196,118, 70,
+179,233,144,139,127,120,207, 35,223,125,104,174,205,187,229,229,229, 53,127,242,228,201, 11, 52,217,247, 23,247, 25,177,170, 77,
+ 74, 90,209,141,177, 11,207,118,156, 54,188, 25, 78,220, 42,193,231, 19,123,190, 10,160, 70,161,197, 8, 8, 39, 85,122, 53, 26,
+241,202,140,185, 13,220,165,115,229, 50, 26, 78, 10, 49,126,189,146,139, 31,127, 77,135,149, 37, 8,107,211, 60,112,230,251,107,
+119,120,187,138,145,157,103, 70,166,198, 8,117,158, 17,218,124,189,201,166, 6, 65, 81,200,213,228,227,216,145, 99,160,132, 82,
+ 80, 52, 5,171,197, 2, 1, 77,131,162,159, 63, 30,241,119,223,158,197,165,173,131, 17, 62,249, 8, 90,134, 52,180,119,165,118,
+216, 97,135, 29, 85,163,218, 85,135, 2, 0, 56,122,244, 40, 25, 52,104,208, 51,189, 50,199, 17,196, 37,151, 77,193, 97, 24, 6,
+ 3, 95,104,134,117, 43, 22,194, 96,102,113,243, 97, 49, 14,253,153, 14,179,174, 8,132, 16,228,181,242,168,234, 31, 63, 49,164,
+180,106,153, 44,148,145, 8, 71,255,113, 69,209,208,197,217,217, 57,225,206, 15,186,207,222, 85,183, 16, 16, 75,204,146, 47,154,
+ 61, 20,185, 8,186,236,223,191,175,229,224, 65,131,196, 74,165,234, 3, 34,104,235, 43,212,145,247,138,139,111, 21, 87,199,249,
+ 52,100, 30,193, 67,134, 12,140,236,229,229,229,201,143, 93,122,229,254,198, 25,161,254,205,155, 53,239, 26,103, 53, 12, 49,228,
+ 38, 28,174,230,178, 71,156, 60,207,131,166,105,168,213,106,112, 28, 7,147,201, 4,171,213,138,244,244, 20, 53, 79,136, 47, 7,
+158,246,246,246,133, 64, 32, 70,163,134, 1,216,178,110,153,124,231,143,135, 59,125,248,233,226, 95,244,121, 8,195,227,224,150,
+143, 56,141, 5,133, 7,142,159,252,213,157, 32,170,193,199,111, 13, 96,114, 11,181,136,186,150,136,235,119,211,235, 90,145, 79,
+135,112,104,152,153,154, 88,178,106,213, 42,102,209,137,196,244, 94,253, 71,114, 1, 77,219, 52, 52,113, 4, 0, 5,137, 72, 0,
+145,128, 70,128,187, 20, 63,207, 13,193,149,161,183, 60,251,134,186,175, 37,132, 28,172,169, 60, 77, 38, 43,247, 66,176,130,105,
+219,196, 17,183,146, 10,113,245,196, 37,204,154,183, 22,209, 15, 77, 40,213,234, 65,113, 38, 48,196,132,188,212, 7, 96, 57,142,
+212, 86,239,101, 8, 45, 4, 0,137, 68,242,209,161, 35, 39, 27,152,120, 41,114,138, 76, 80, 23,154,208, 44,108,132, 34, 53, 83,
+131,239, 22,142,250, 8,192,129, 96,160,212, 6, 78, 9,128,158, 41, 15,227,173,102, 51,199, 27, 45, 28,221,202,223, 17,223,252,
+118, 13, 33, 61, 95, 49,138, 25, 70,166,114,116, 3, 8,208,170,251, 43,184,250,203, 38, 40,105,166,189,204, 65,210, 22,192,213,
+154,218, 82,133,200,154, 63,127, 62,166, 79, 30, 5,158, 16, 33, 7,158, 6,128, 47, 15, 37, 34,160,145, 71, 77,117,244,120,187,
+ 24,142,166, 44, 22,130, 82,173, 21,154, 34, 51, 84, 82, 1,226,211,116, 72, 76,213, 98, 84, 63, 31,140,232,237, 13,142, 39, 24,
+247,193,117,140,236,235,141,177,131,124, 1,138, 66, 94,161, 25, 38, 51, 87,109,222,105,154,110,204, 48, 76, 40,199,113,215,203,
+190, 51,224, 0,148, 20,230,193,100, 50,129, 97, 24, 56,187,184, 3,160,158, 56,151,231,249,135,182,222, 71, 21,240,112, 87, 34,
+124,242, 17,120,184, 43,109, 57,253,239, 88,146,109,231,180,115,218, 57,255, 71, 56,171,211, 34,255, 18, 84, 27,202,129,174,233,
+170,164,244, 2,196, 61,204, 65,251, 96, 31, 52,109,232,141,171,241,133,216, 21,149,142,237,167, 82, 17,117, 83, 3, 94,160, 66,
+ 78, 9,144,144,162, 70, 66,106, 94,173,241,179, 25,137,112,244, 59,239, 20,207,105,221,178, 36,236,247, 19, 51,225,227,158,208,
+242,195, 15,139,102, 50, 18,225,104,103, 63,213,158,185,115,102,191,170,146,203,197,102,147, 25, 77, 26, 7, 72,223,158, 49,243,
+ 13,202, 89, 98,243,158, 72, 42,159, 22,206, 18,153,236,155, 37, 11, 62,144,172, 61,148,144,166, 51, 67,119,240,146,250,193,123,
+115, 63, 43, 16, 8,165, 91, 84, 62, 45,108,158,251, 99,181, 90, 97, 50,153, 96, 54,155, 97,177, 88,144,153,126,111,200,153, 67,
+239,247,107,236,231,210, 79, 34,149,130, 0, 40, 49,176,120,152,173, 71,207,222,125,152,246,161,161,173,148,222, 45, 38, 86,197,
+ 85, 92,156, 90,204, 19, 70,117,244,231,221,204,190,223,110,224,135,163,215,240,203,217, 27,184,122,238, 4, 75,120,235,163,253,
+191,148,222,205, 2,149,222,173, 83,149, 13,218,168, 31, 29, 62, 33, 53,134,103,102, 24,154,244,236, 29,113,122,242,244,183,127,
+215,151,230,231,126,179,113, 97,166, 38, 43,229,158, 68, 68,177,114, 9, 3,173,145,197,142, 51, 89,120,105,217, 77,220, 77,211,
+130, 16, 82,235, 6,222, 60,240,238,232,137,239,115, 86,139, 5, 65,254, 74,236,222,182, 28, 67,122,182, 69,175,214,206,232,216,
+ 84, 1,185,192,132, 59,247,227,176,119,247, 14,150,231,233,247,106,185, 17, 35,203,143, 24, 0,208,106,181,239,127,248,193,123,
+ 26, 51,203,195, 98,229, 97, 41,255, 60,179,247, 11, 13,103,212,191, 95,126, 93, 76,165,235,170,187,153, 55,188, 57,237,195,158,
+223,236, 58,221,231,224,249,108, 90,157,111, 65,212,201, 3,240,246,107, 2, 17, 67,203, 64, 1,160, 40,128,162, 64, 8,129,123,
+ 64, 11, 24,121, 30, 63,125,245,137, 15,106,152,175, 86, 33,178, 38, 77,154,132,123,247,238, 61, 81,239, 73,137,201, 72, 74, 76,
+198,233, 83,151, 1, 0, 46, 1,237, 10, 93, 2,218, 21,186, 53,238,184,181, 42, 46, 51,103,229, 13, 44,135,156, 34, 35,228, 82,
+ 26,254, 62,114, 12,239,229,141,141, 31,183,193,216, 1, 62,200, 80,235, 49,105,241, 77,120,122, 10,241,243,249,108,108,216,147,
+132,230, 1, 10, 12,235,213, 0,175, 15,246,173,218, 91, 43, 16,244, 23, 10,133, 99,134, 13, 27,190, 80, 34, 85, 44,155,177,120,
+215, 2,153, 68, 80,225,141, 5,195, 48,176, 90,173,160,105, 10,163,103,109, 92, 32,145,171,150, 13, 27, 54,124,161, 80, 40, 28,
+ 35, 16, 8,250,215,181,231,232, 63,176, 3,104, 99, 46,250, 15,236, 96,127, 95,181,195, 14, 59,236,168,217,163, 85,113,120, 63,
+209,111, 87,119,133,209,104, 72, 30, 57,122, 28,188, 61,188,148, 67, 95,124, 93, 20,147, 84, 4, 77,118, 42, 18,227, 99,161, 55,
+ 90, 33,114,110, 12, 72,189,208,176, 81, 0,110,197,253, 98,217,176,242,152,150,103, 77,201,213,241, 13, 25,226,237,155,120,159,
+162, 87,174,240,191, 28, 31, 87,216,126,247,188,239, 48,118,172,210,109,229, 10,255,203, 41, 15, 20,180, 92, 74,186,188, 49,126,
+ 12, 69, 83, 4, 31,126, 56, 7, 67, 7, 69, 98,194, 27,175, 81,223,127,191, 35,172,200,198, 92,242, 16,110,250,232,147,133, 98,
+117, 17,107,190, 26,175, 53,201, 21, 50,217, 31, 9, 90, 93,171, 70,254,178, 1, 35, 94,207, 58,182,255,155,181, 0,198,219,194,
+ 85, 33,176,172, 86, 43, 44, 22, 11, 0,112,101,222,131,178,207,252, 82, 51,114,139, 76, 80, 23,153,192,114, 60, 70,140, 30, 47,
+187, 22,125,115, 60,128,106,230,107,241,188,149,181,226,224,111,215,145,121,237, 0, 79,209, 76,113,165,201,240, 80,122, 55, 11,
+244,242,242, 63, 63,104,196,107,238, 98,105,217, 48,108,169,206,132,239,191, 90, 81,163,157, 52, 69, 17,158, 99,139, 88,171, 85,
+215,164,113,147,204,224,150,109,165, 23,127, 63, 53,228,143,211, 7,181,108,147,215,156,146, 82,178,193, 8, 37, 96, 68, 82,152,
+ 44,182, 45, 60, 84, 39, 94,222, 12,128,154, 56,109,206,186,217,239,127,204,188,187,225, 2,204, 70, 61, 76, 6, 29, 74,138, 11,
+ 33, 19, 88,113,231,207,195, 44,225,172,179,117,217, 55, 54, 87,207, 68,101, 1,200,170,156, 82, 80, 80, 16,245,231,133,243, 71,
+174,252,121, 97,130, 87,147,246,180,217,202, 35, 49,246, 10,159,153, 16,125,196,100, 42,137, 2, 0, 10,200, 7,112,170, 38,199,
+165,202,193,201,113,194,244,247, 39, 58,201, 20,116,108, 70, 17, 82,179, 75,192,201,124,224,229,219,244,241,248, 42, 95,150,223,
+ 78, 65,238,232,219,118, 20, 46,222, 78,227, 78,237,219,220, 7,192, 97, 0,250,154, 68, 86, 76, 76, 12, 68, 34,209, 19,245,222,
+180, 89, 35, 84, 12, 29, 22, 21,204,116,218,177,242,117, 0, 64,175, 23,186, 79, 2, 48,249,153, 23,149,156, 18,184,154, 89,116,
+110,225,130,160,198, 74,100,230,155, 65, 40, 1,246,159,201, 67, 66,134, 14,191, 93,213,192,219, 69, 12,222, 76,131,145, 0, 7,
+ 47,102,226,226,157, 60,140,235,239,135,251, 15, 11,170, 17,214, 76,232,187,239,205, 89,180,126,253,134,179, 35,167,173,124,169,
+ 91,104, 19,148,148,106,145, 89, 96,133, 86, 87, 10,157, 86, 7,153, 92, 14,137, 88, 12, 70, 32, 64,255, 55, 62,127,233,248,119,
+159,252,254,238,123,115, 22,173, 89,189,234, 51,150,101, 79,216,251, 67, 59,236,176,195,142,191,213,163, 53,169,114, 90,181, 66,
+ 43,245,238,197,142, 0, 16,216,161,111,190, 82, 42,112, 17,208, 20,212, 25, 73,248,126,213, 44,240, 60,193,128,183, 86, 66,213,
+200, 11, 50, 17, 3,147, 54, 95, 91,144,116,174,166,185, 58,160, 40,107,159,205, 91, 51, 27, 77,155,218,196, 97,247,110,173, 16,
+ 0,118,239,214, 10,167, 78,241,115,248,114,107,114,163,206, 47,180, 7,225, 56, 12, 26, 58, 18,163, 95, 25,141,148, 28, 61,126,
+ 58,159, 6,157,193,108,211,106, 57,153, 91,112, 91, 55, 87,247,200,119, 94,143, 84, 8, 24,138,106, 30,224,200,164,107,172, 44,
+195, 8,185, 35,215,138,179, 70,140,120,197, 45,234,248,190, 94,156, 91,112, 91, 67,222,253,155,181,241,153, 76,166, 39,134, 14,
+ 93,220, 26, 31,239, 51,114, 85, 70,118, 78,233,177,156, 66, 99,103,157,149,133,186,200,132,220, 34, 19,138,116, 22,120,169,156,
+193, 90,205,173,171,227, 35,132,252, 48,108,228,184,215, 0,208, 20,205,126,167,205,190, 31, 95,246,203, 99,145, 21, 57,116,172,
+251,249,152, 36, 36, 70,159, 40, 36, 60, 91, 22,197,157,226, 51,106, 46, 87, 16,134, 2, 47, 18, 80, 86,134,166,121,139, 69,107,
+245,240,112,143, 58, 23,117,114,176,145,125, 0, 70, 36,121,116,174,225,201,225,168,218,196,214, 38, 0, 88,191, 97,221,234, 46,
+125,198,138,206, 93, 79,134,193, 10,132,135, 6,226,231, 31,191, 54, 17, 98,125, 95,151,125, 99, 83, 29, 26,161,147,159,159,223,
+ 44,161, 88,220, 75, 38, 87,249,185,123,251,211, 22,150,131,197,202, 65,225,234, 67, 75,148, 46,125,120, 90,116,145,181,152,163,
+ 44, 58,205,122, 0,213,234,235,223, 46,223,237,245,213,250,213, 47,121,187, 42,224,231, 38,194,145,115,133,156, 85,192,211, 30,
+ 1, 65, 20, 0,248,123, 56,224,238,245,223,113,235,214,109,180, 14,143,132,171,202, 23, 74, 17, 71,242, 18,255, 40,240,244,242,
+105,167,206,201, 20, 61, 45,180,188,188,188,230,143, 27, 55,110,129,183,183, 55,214,173, 91,247, 40,189,114,189,135, 0,157, 43,
+ 15, 29,126,121, 40,177,198, 12,191, 49,168, 33, 94,104,235, 1,158, 7,222, 94,123, 11,177, 73, 37,216,246, 81, 40, 70,244,244,
+193,214, 95,146,209,166,185, 2, 90, 3, 15,139,153,131, 72, 76,163, 69, 99, 37, 36, 34, 6,103,175,231,161, 84,167,171,145,155,
+ 98, 36,232,211, 51, 28,121, 69,122,184, 59,138,209,216,207, 29, 74,121, 99,148, 26, 88,164,230, 20,163, 88,103, 69, 94,161, 14,
+ 93,195, 59,225,215,157,226, 58,245, 22, 21, 43, 14, 1, 32, 61,187, 4,188,212, 3,185,121,122,120,120, 59, 3,101, 75,152,237,
+171, 14,237,176,195, 14, 59,170,246,106, 1,149, 98,104, 61, 33,180,142, 30, 61, 74, 0,160,170,241,209, 76,117, 1, 92,149, 2,
+184, 55,104,132, 87,103,173,198, 15,107,223, 5,199, 89, 65, 8,192,114,182, 69, 38, 32, 68,248,219,244,169,141,130, 27, 54, 98,
+220, 95, 29, 43, 55,236,218,173,151,189, 58, 86,110, 8,105,237, 90, 60,125,106,163,228, 82,163,127, 87,150,227,240,199,157, 92,
+196, 38, 23, 35, 54,165, 4, 74,153,237, 97,190, 24,177,104,234,138,229,203, 68, 2,134,162,238,164,106,181, 25,249,172,150, 17,
+ 10, 45,114,153,152,152,137,192,148,146, 71,242,123, 15,123,195,112,100,231,250,137, 0,102, 84,235, 21, 43, 95,105, 88,225,201,
+170,248, 36,132, 16, 10,224,121,138,227, 50,242,140,208, 90,172, 80, 23, 62, 22, 90, 20, 91,253,200,169,210,187, 89,160,131, 74,
+121,146, 97, 24, 9, 33,128,213,194,142,130,119,179,126,218,236,196,248,202, 34,235,242,157, 44, 36,221, 56,173,230, 44,250,113,
+250,220,184, 51,182,230,157,162, 64, 24, 6, 60, 67, 83, 60, 69,129, 23,210,196, 12, 66,248,167, 45,210,215, 65,104, 85,136, 45,
+177,144,153,247,235,222,181, 30, 19, 6,182,192,143,231,203, 52,159,177, 84, 83,162,203,172,147,200,130,171,171,235,248, 15, 62,
+248, 96,254,144,145, 99, 81,108,164,160, 46, 44,243, 6,154,173, 60, 68, 10, 55,244,153,254,173, 95,182,166,196, 47,241,234,145,
+174,121, 55,118, 23, 91,141,197,235,170,181, 43, 41,235,170, 65,175, 67,137,161, 44, 63,115,198, 7, 49,159,110,254, 13, 44, 17,
+192,197,221, 7,238, 14, 34,188, 62,170, 63,206, 7, 52,196,189,251,247, 49,111,225, 49,120, 58, 57,196, 94,250,253,112,211,208,
+176,110,107,142, 31,218,243,140,136,203,201,201, 89,184,115,231, 78,180,109,219,118, 65,251,246,237,145,147,147, 83, 33,144, 31,
+213,123, 82, 98,153,195,182, 66,104, 93,191,126, 11,161,161,109,170,205,115,235,166, 14, 56,112, 54, 11,223, 30, 77,129, 76,194,
+160,145,143, 20, 83, 87,220, 64,207,118,110,152,249,114, 99, 40,101, 1, 40, 42,181,194,108,229, 97, 48,177,200, 47,177, 32, 51,
+223,136,116,181, 1, 22,107,205,115,225, 9, 8, 98,227, 51, 96, 50, 25,225,236,236, 12,165,220, 8,169,147, 63, 0, 6,133,234,
+226,178,213,135,122, 35,228, 50, 73,189, 68,214,230, 55,155,225,118,182, 21,223,125,123,253,209,100,248, 94,253, 66, 49,125,211,
+233,249,155,103, 68,216,227,105,217, 97,135, 29,127, 11,106,210, 34,255, 34,175,214,179, 30,173,154, 50, 68, 8,144,144,154,135,
+134,190,238,240,109,216, 20,241,247,110, 85,234,236, 1,150,179,109, 56,234,240,225,236,140,213,171, 29,248,119,223, 45, 14, 95,
+177,194,255,210,212, 41,126,142, 33,173, 93,139, 63,248, 32, 45,124,205, 26,199, 75,191, 93, 22,114,164, 60, 94, 87, 69,108, 46,
+ 66,234, 18, 99,147,238,212,182,101, 99,102,225,238,132,180, 51,183, 75,115, 69, 34,145,213,203, 89, 74,169,148, 98,134,161,133,
+ 98,147,149, 54, 5,182, 10,101,142,208, 84,104, 77, 44, 21, 66,235,233,161,195,124, 77,210,144, 95,127,154, 19,242,226,176,149,
+ 46,153, 26, 3,138,205,204,163,161, 67,134,166,112,251, 94, 42,192,136, 98,171,226,116, 80,185,156,218,179,235, 7,255, 53, 43,
+ 62,135,133,229, 48,253,221, 79,241,198,248,113,167,224,221,172,159,127,163,160,152, 11, 71,190,147,247,155,178, 5,169,113,209,
+ 57,172,169,100,111, 93, 68,214, 35,177, 5, 16,142,240,116, 65, 97,137,210,196, 66,138, 42,116,159,201,194,215,171,229,104, 13,
+ 44,142, 92,201,193,209, 67,123,225,168, 82,212,139,195,209,209,177, 69,247,238, 61, 64, 9,196, 48, 91, 77, 48,179, 60,204,149,
+230,104, 89,172, 60,172, 68, 8,185,119, 27, 20,220,253,185, 5,140,197,213,114,189,246, 90,223,130,150,173,219,239,255,228,221,
+183, 94,126,249,213, 9,232, 28,246, 2,226,110,253, 9, 79,191, 96, 40,157,220,200,165,228, 66, 54, 60,216, 95, 48,126,104, 71,
+ 42,202,183, 9, 26,181,232,130,132,187,215, 90,139, 68,162,219,105,137,247,171, 29,146,204,201,201,169,136, 57,181,160,125,251,
+246, 72, 75, 75, 67, 65,165,122,111,218,172, 17, 0, 32,254,126,217, 34,134, 10,145,197,243, 85,183,211, 73,203,110,160,196,192,
+193,205, 89, 12,134,162, 1, 66,208,208, 91,134,232,132, 2,140, 91, 88,136,176,150, 46,240,247,150, 3,132, 64,107,180,194,108,
+230, 97,225, 1,179,145, 5, 67, 87,187,100,144,227, 56,142,163,137,149,185, 30, 27, 15,177, 72, 8,199, 34, 29,100, 50, 25, 68,
+162, 60, 80, 52, 13,150,229, 97,177, 90, 97,208, 27,176, 63,250, 50, 8,103, 97, 56,142,227, 80, 62, 12,106,171,200,218,118, 34,
+229,137,201,240,126,222, 14, 72,207, 46,177,139, 45, 59,236,176,227,111,193,191,120, 34,124,101,113, 85,189, 71,171, 38, 4,248,
+122,226, 74,108, 50, 90, 7, 55,134,163,131, 10,247,147, 50,192,208, 66,208, 20, 96,101,109, 23, 67,196, 98,253,113,205, 26, 71,
+164, 38, 43,232, 47,183, 36, 55,154, 62,181, 81,242,154, 53,142,151,136,197,250, 35,128,113,132, 0,101, 98,171, 76,112,113,117,
+208, 5,132,183,250,121,186,200,153,232, 7,186,124,154,102, 76,174,142, 82,222,213, 81, 66,187,170,196, 66,145,144,225, 89, 66,
+ 91,124, 61, 26, 25, 9,207,219,178,175,222, 19, 67,135, 28,199,129,162,104,174, 92,136, 41,210,243, 13, 40, 54, 50, 80, 23,153,
+ 80, 88,106, 65,115, 31, 5, 78, 71, 29,208,115, 86,195,238, 42,189,109, 66,145, 99,211, 70,190,248,120,241, 26, 24, 76, 28, 18,
+ 50,181, 16, 73, 36, 94,158, 94,173,110,142,155, 54, 87,242,246,182, 36, 76,236,229,138,119, 47, 36,101,234,213,210,185,117,169,
+ 89,142,227, 96, 48,154, 69,234,188, 66,231,146, 82,157,131, 76, 42, 49,184,187, 56,230, 85,117,174,177,142, 30,173, 10,200,165,
+ 2, 12, 14,243,130,209, 50, 6, 6, 19,139, 63,207, 28,172, 15, 77, 99,207, 6,190,208,154, 43,137,171,114,177, 85, 89,116, 9,
+149,238, 0,168,198,181,101,251,238,237,152, 81,119,111,199, 44,186,118,233,220,158, 21,223,156, 9,217,185,233, 51,108,252, 37,
+ 9, 12,195, 80,196,202, 10,215,255,146, 12, 95, 39,134,104,173, 66,202,200, 81,208, 21,104, 16,212,169,127,171, 61,155, 63,153,
+139,178,144, 17, 38, 91,196, 86,161, 58,250, 81,189,159, 60,241,104,221, 2, 10,111,238, 40, 74, 58,187,177, 76,226, 51,130, 3,
+ 85,171,118,139,217,195, 81, 76, 56,214,194, 87,142,104,229, 40,163, 64,120,224,218, 29, 53,174,199,211,112,117, 16, 65, 41, 19,
+194,202,242,208,155, 89, 24,140, 28,205,179, 22, 83, 53,245,125,125,253,186,181,159,141, 25, 51,102,234,222,125, 11, 14,183,141,
+190,165, 46,106, 0, 0, 32, 0, 73, 68, 65, 84,124,103, 72, 73, 81, 62,132, 98, 25, 68, 2, 17,104,134, 6,203,113, 48, 27,117,
+ 40, 44, 42, 64,242, 31,223, 31, 30,253,242,240,208,245,235,214,126, 86,177, 74,209, 22,145, 53,125,238, 14, 44, 95, 56, 30,101,
+ 1,247,203, 48,119,254,247, 24, 63,253, 21,187,216,178,195, 14, 59,236,168,222,155,245, 12,108, 18, 90, 74,185, 20,132,145,226,
+ 66, 76, 18,130, 90,182,193,142,195, 87,209,172,117, 24,178, 75, 89, 16,208,181,174, 54,172,192,156,143, 12,215, 1, 92, 31, 50,
+ 68,238, 59,124,184, 79, 31, 66,132,191,109,217, 90,146, 1, 0,141, 67,202,104,120,158,128, 16,128,240,101,130,203,118,151,142,
+ 32, 53, 57,187,164, 97, 35, 47, 5,238,102, 88, 76, 10,137,136,118, 86,136, 25,119, 71,177, 72, 36, 16,128, 35,148, 41, 59, 59,
+201, 68, 1, 41,182,208, 61, 61,116, 40, 87,122, 31,239, 61,108,165, 38, 37,173, 56,186,121,129,190,109,177, 69, 12, 66,128,230,
+ 62, 10,196, 94, 62,198,169, 51, 19, 19, 12,234,184,175,170,246,146,129,177,176, 60,110, 62, 40, 70,145,206,138, 34,173, 5, 93,
+123, 14, 22,117,141, 24,130, 11,177,121,224, 89, 43, 86,124,125,172,148, 35,214,209,192, 61,107, 29, 50, 77, 95,185,126,199, 87,
+ 83,168,147, 8, 5,130,162,224,102, 1, 15,197, 34, 33, 91, 82, 82, 34,126,242, 44, 6, 10,153, 24, 5, 90, 43, 0, 88,235,218,
+122,138,117, 86, 28,190,156,131, 35, 7,247, 64, 38,147,129,212,163, 5,138, 68, 34, 39,161, 72, 10,139,174,108,184,176,226,176,
+ 60,117,208, 2, 9, 64, 11,156,108,164,189,103, 54, 27,254, 76,142,187,220,130,235,217,140, 25, 31,209, 8,175, 77,154, 13,159,
+166,173, 49,120,240,112,180,105,164,162, 14, 94, 74,131,213,202,150,122, 53,105,165, 34,101,171,108, 19, 0,180, 5,112,217, 22,
+207,150,170, 82,189,183,232,218,164,237, 99,161, 5, 20,164,222,168,113, 21, 43,103,206,207,212,155,105,154, 16,190,202, 87, 6,
+ 33, 0, 98, 6,212,217, 4, 57, 0, 4, 52, 32, 96,104,128,162, 24,142,227,170,172, 39,150,101,127,229,121, 94,189,107,215, 46,
+ 53,199,113,215, 99,142,173,190,217,244,197, 41, 11,192, 22,192,106, 45,155,206, 40,150,200,193, 83, 52,146,206,127,187,128,179,
+ 24,126,217,181,107, 87, 69,120,135,219, 53,137, 44,103, 23, 57,194, 39, 31, 65,167,176, 32, 44, 95, 56, 30,191,222,122, 82,175,
+ 47, 95, 56, 30,171,191,253, 19,185, 26, 45, 60,220,149,232, 49,121,251,252,115, 91, 39,218,197,150, 29,118,216, 97,199,147,123,
+ 28, 14,172, 44,190,108, 18, 90, 28, 79,224,230,234, 2, 43, 17, 32, 89, 93, 12, 29,229, 1,163,158,128,227, 40,112,132,212, 20,
+106, 60, 2, 85, 44,207, 63,124, 56, 59, 3,192,246,167,124, 82,143, 60, 89,143, 62,171, 30,146,169,146,147, 34,220,233,195, 39,
+126,127,121, 72,183, 94,206,247,179,115, 50, 68, 66, 90, 32, 16, 49, 66,145,128,166, 68, 2,218,236, 32, 19, 48, 7,182,238, 21,
+ 19, 10,191,215,198,105, 52, 26, 17, 17,241,228,198,228,113,119, 46,121, 20,228, 38,152, 9,197,243,238,226, 82,184, 57,186,227,
+ 97, 74, 26,206,156, 56,168, 87,103, 38,198,113, 38,227, 80, 60, 41, 57, 31,115, 18,194, 23, 20,155, 96,180,112, 40,212, 90, 80,
+164,179,128,117, 15,199,207,127,102, 65, 42, 98,160,190,121,192,160,201,201,152,101,202, 77, 76,174,165, 42, 62,196, 19,177,180,
+ 72,198,155, 19,198, 11,215,174, 90, 97, 10, 13,109, 79, 10, 10, 10,160,213,106, 31,151, 9, 69, 65,234,224, 1,149, 76,128,196,
+107,199,145,120,102,141, 1,192, 39,182,148,103,101, 56,200, 5, 24,210,217, 11, 38,203, 24,228, 21,155,112,237,247,159,107,107,
+ 50,207,112,202,229,114, 89,133,247,170,114, 88, 7,115, 37,175, 22, 87, 94,223,180, 64, 34,171,130,179, 15,128,223,158, 78, 44,
+ 41, 46, 62,118,253,210,233,169,198, 73,175, 65, 93,100,130, 33, 63, 9,223,255,252,213, 25, 75,105, 66,207,190,107, 87,209,179,
+135, 54,197,153,235, 5,170,219, 2, 6,224,129,200, 49,115, 94, 58,185,103,213,206,218,242, 94, 33,182,122,116,235,184,128,102,
+168, 35,132,122, 44,150,178,178,178,108,202,123,177, 58,177,220,131, 84,167, 49,112, 80, 20,205, 16,254,137, 61, 16,159,176,147,
+231,249,219, 21,162, 73, 64, 81, 67, 85,114, 57,242, 52,197,168, 8,178,107, 52,148,194,197,173, 1,104,138,130,181,210,185, 53,
+213,145,179,139, 28, 81,167, 30,207,199, 82, 56,200, 80, 88,160,199,222,249, 67, 23, 2,192,240,143, 15,204,255, 21, 64,174, 70,
+ 91,105,206, 86,179,167, 35,237,214,218,150,234, 1, 59,167,157,211,206,249,191,195,249,111,198, 51,123, 28,214,193,163, 69,208,
+196, 91,129,102, 62, 10, 24, 45, 30, 48,154, 57,232,140, 28, 74,244, 22,148,232,173, 72,206,209, 35,246,240,243, 91, 88,230,197,
+ 42, 11,125, 78,202,226,109,130,227,137,205,222, 19,177,197,188,120,245,138,165,163,246,134,182, 51,191, 61,208,219,239, 86,178,
+ 57,139,162,104, 3,205, 8,172, 46, 42,129,240,254,253, 91,154, 75,231,143,119,151,178,220,107,250, 26,120, 88,150, 45,246,241,
+241,169,120,160, 61, 74,111,209, 84, 54,244,143, 99, 31, 54,238, 49,100,133,251,218,207,231,232,105, 70,196, 83, 2, 81, 44,103,
+ 53,236, 49,168,227,182,160, 6,191, 30, 45,146,222,187,114,227,110,152,147,139, 31, 18, 51,117,208, 25, 89, 88, 88, 30,206, 74,
+ 17, 50,110,159,178, 36,223,143,222,167,205,186,181,163, 30,197,182, 59,254, 94,172,111,100,100,191,145, 97, 97,225,204,103,159,
+125,138,160,160, 32, 24, 12, 6,208, 52, 13,191,134, 77,145, 28,127, 3,151,143, 45,230,244,249, 41, 95, 1, 88, 4,160,206,251,
+168,228,149,152,113, 34, 58, 23,199, 14,253, 8, 70, 40,174, 79,245,210, 50,153, 76, 90,149,184,170, 44,186, 30,157, 44, 20, 75,
+ 81,230,125,226,159,104,136, 85,227,100, 82,252,221,123,175,191,250, 74, 11,149,163, 19, 6, 12, 31,157,123,233,194,153, 65,135,
+190,223,186, 46, 63, 37,125,212,167,203, 54, 56,244,233,224, 77,185, 40,197, 40,210,241,216,157,122,175, 9,108,244,193,230,228,
+228, 44, 76, 79,142, 30,247,199,177, 15, 7,247, 24,178,194, 61,250,167,121,143, 38,209,211,140, 96, 87,109,215, 23,164,199,156,
+169,171,200,170,144, 90,132, 16,155, 6,206, 9, 0,161, 72, 12, 15, 15,111, 80, 20, 96,101,121,152,173, 44, 4,117,172,167,156,
+236,226,103,130,147,238,157, 63,116, 97,133,183,234,208,210,151, 48,252,227, 3,243, 43,159,115,239, 78,186,189,107,181,195, 14,
+ 59,236,120,140, 73, 79,125,218,230,209, 50, 26,141,201, 47, 68, 12, 6,207, 19,112, 4,224,185,114,207, 19,255,216,251,196, 89,
+141,201,207,107, 29,207,115, 87, 55,109,219, 62, 32,180, 83, 15,166,165,191, 18, 37,249, 57,184,252,199, 89, 22, 60,185,100,203,
+245,249,249, 9, 90,153,103,179,145,163, 94, 26,190,127,252,132, 41, 69,221,123,246, 84,120,120,120,153, 50, 50, 51,244,223,238,
+220,101, 61,117,252,151,238, 60,216, 87,242,243, 19,181, 53,241, 20, 23, 23,175,175, 42, 93, 34, 86,118, 5,208,152, 17, 80,102,
+131, 38,161, 78, 51,194,243, 50,211, 71, 44, 93,188, 32,101,236, 91,179,197, 77,124,154, 34,183,152, 65,114, 70, 14,238,159,255,
+197,148, 25,127,237, 80, 73,198,245,137, 54, 82,101, 87,145,150, 1, 96,237,229,203,151, 90, 69, 70, 70,246,235,213,171, 23,153,
+ 52,105, 18, 8, 1,206,108,155, 74, 10,146, 47, 31, 40,247, 98, 61,168,103,189,164,158,191,116,195,229,229,238, 29, 4,174,170,
+137,216,254,227,113, 43, 8,159, 90, 71, 26, 79, 95,255,134,130,178,225,194,178,144, 14, 79, 31,102,235,227,249, 99, 34,165,167,
+ 64,143, 88,207,106,242,251,140,214, 72,140,191,219, 58, 49,254,238, 4, 0,185,251,119,125,125, 4, 0, 76, 6,195,148,168, 51,
+135, 83,239,222,137,126,109,200,171,239, 53,109,213,182,163,224,192,142,181,176, 24,117, 7, 1,216,220, 94, 37, 98, 38,165,162,
+222,107, 27, 42,124,166,222, 83, 46, 31,167,104, 70, 96,171,104,170,228,137,164, 9,207,219, 52,161,142,240, 28, 50, 31,220,134,
+139,151, 63, 84, 42, 71,240,196, 2,152, 77,208,164,199,129,227,108,223,235,176,176,160, 20, 46,158,238,104,217,174, 25, 10, 11,
+244,216, 60, 35, 98, 97,229, 33, 65, 75,126,252,130, 10,177,213,178, 93, 51,220,187,147, 14,205,131,187,246,110,213, 14, 59,236,
+176,163,146,168,170, 10,181, 10,173,244,123,101,241,180,254,110,148,230,228,142,219,177,227,135, 37, 63,236,220,219,213,104, 54,
+251, 16,136,210, 57,214,124, 78,203,225, 51, 91, 57, 12,234,196,104, 87,215,230, 33,223,126,189,233,147,111,183,127,217, 3, 60,
+ 23, 76, 1, 41,132,194,239, 82, 43, 55,190, 54,145, 85,227, 67, 51,175,116,107,159,145,171, 12,249,249,218, 31,234,122,173, 33,
+ 63, 46,135,102, 44,126, 91,215, 45, 94, 73,211, 76, 95,142,227,133, 60,103, 77,228, 44,198, 47, 12,154,184,195,176,121,150, 27,
+ 10,106,248,237, 14,128, 59, 81, 81, 81,221,162,162,162, 58, 1, 88,143,178, 61, 20,163,159,167, 94, 76,249,165,189,223,159,243,
+254,153,247, 64, 5,240, 60, 1,203,241,169, 34,131,190,119, 29,105,252,154, 52,105, 42,183, 88,185,103, 38,192, 87,158, 8,255,
+ 72,104, 57,250,202, 1,248,217, 40,180,128,178,213,116, 95, 63,147,200,178,203,179,179,210,127,220,242,197,172,201, 0, 26, 1,
+184, 8, 96,211,127,170,222, 45,198,146,188,191,251,190, 97, 45,166,133, 25,183, 14, 35,235,142,200,155, 18,148,133,114, 32,156,
+ 25, 60,107,206,102,173,150,133, 54,217,153, 31,127,244,220,214,137, 11,159, 74, 91, 80,197,121, 11, 14, 45,125, 9,181,157,103,
+135, 29,118,216,241, 63,234,205,218, 86,213,119,193, 63,197,194,194,194, 7,165, 40,172,121,147, 94, 91, 61, 91, 0,158, 89,185,
+167,127, 78,222,216,132,146,159,144, 80,242, 83,125,175,215,229, 62,212, 0, 15,199, 63,167, 25,182, 76,100,191, 80,126,252, 37,
+200,203,187,167, 67, 30, 58, 63,111,181,236,222,181,243,254,222,189, 63, 10, 9,205, 8,121,194,136, 88, 66, 9, 89,158, 18, 90,
+173, 60, 76, 22,171,213,194,178, 86,112,172, 5, 60,103, 37,188,197,138,178,232,240,127, 5, 82, 1,124,244,255, 85,239,255, 9,
+176, 86,203, 66, 88, 45, 0,116,245,230,176, 85, 48,217,133,149, 29,118,216, 97, 71,157, 4,215, 63, 71,104,217,241, 95,141, 7,
+ 73,137,241, 97,246, 98,176,195, 14, 59,236,176,227,191, 92,100, 85,254, 4, 80, 54,247, 60,162,154, 11,234,178,154, 32,162, 30,
+ 6,157,182,115, 62, 55,167, 16,128, 24,128, 18, 64,109, 67, 91,253, 80, 75,192,202,127, 72,222, 63, 4,112,195, 94,239,118, 78,
+ 59,167,157,211,206,249, 95,203, 89, 27,183,125, 53,227,223, 44,192,236,156,118, 78, 59,167,157,211,206,105,231,180,115,254,239,
+113,254,155, 49,169,138, 3,128,125,232,208, 14, 59,236,176,195,142,255, 65,184,186, 54, 87, 2,143,230,245,214, 10,185, 91, 11,
+ 79, 0,208,231,221, 83,219, 75,207,142, 42, 80,121,159,195, 39,230,104,209,245, 36, 20,210, 2,241,251,114,149,235, 61,133,163,
+107,230,255,120,225, 82,129, 13, 21, 51,251,116,111,244,115, 80, 99,217,208,186, 92, 40,119, 15,252,206,171,105,231, 52,133, 71,
+224, 76,120,135,202,158,199, 8,133, 71, 99,119,165, 95,135, 63, 84, 62,173,250,255, 13,121,148,180,108,217, 50,188,101,203,150,
+225, 0, 36,127, 5,161,220, 35,112,140,111,179,176,243, 30, 77,218,157, 85,120, 54,127,233,175, 54, 88,233,221,204, 85,233,215,
+254, 39,101,131, 54,133, 74,239, 54, 37, 74,223,246,231, 84,110, 45,154,212,118,157,223,144,165,193, 11,247,196,238,241, 27,178,
+ 52,184,170,223,157, 35, 55,168,230,239, 77,248,220,117,240, 23, 74,123,191, 82, 63,248,117, 29,227,228,221,227, 61,215,186, 94,
+231, 19, 24,118,167, 97,171,110,185, 13,154,119,142,181,245, 26,223,160,240,235, 1, 45,187,170,125, 3,195,163,237, 37,111, 27,
+164,238,141,195,165,206,254,199, 36,206,254,199, 37, 46,141,123, 62, 47,159,183,183,183, 44, 56, 56, 56, 50, 44, 44,108,114,239,
+222,189,223,105,215,174,221,164,128,128,128,190,255,159, 47,250,114,143,192,143, 76, 66, 42,207, 36,164,242,228, 30,129,181, 46,
+150, 81,120, 4, 45,161,104, 46,139,162,185, 44,133, 71,208,146,127, 74, 93, 73, 60, 3, 3,228, 30,129,107, 84, 94, 45,175,202,
+ 60,154, 15,174,235,245,206,206,206,125,221,221,221,135, 85, 28,206,206,206,125,237,119, 64,189, 81,217,139,245,220, 30, 45, 70,
+ 40,145, 95, 28, 59, 97,122,200,242, 5,115,165,235,182,255,140,117,159,207,185,107,210, 21,181,252, 39,230,220,173,113,167,104,
+134,102,124, 43,167,113, 60,151,145,247,240,106,135,191,130, 63,168,161,108,226, 39, 31,140,123,119,204,168,136,128,136, 65,179,
+168,184,135,134, 95,108,151,104,104,187,239,167, 67,126,231,127, 63,187, 97,251,246,109,139, 52,108,208, 26,161, 68,176,169, 36,
+253, 78, 81, 93,108,112,112,111,210, 88,160,112, 59,255,194,208,233, 94, 49,167,119,237,224,204,124, 31,125, 94,165,221,191,235,
+ 15,247,166, 77,155,118,100, 24,198,117,230,204,153, 34, 0, 88,187,118,109, 51,142,227,242,147,146,146,174,161, 30,193, 79,203,
+ 4,102,208,184,245, 43, 23,254,208,191,255, 0,100,229,233,176, 98,205,230, 23, 79, 30,221,247,178, 78,157,112,224,175,168, 19,
+ 39,167, 70, 14, 16,169,110,207,250, 96,145, 71,228,139, 29, 25,173,145,197,201,243, 55,186,237,218,188,232, 42,208,162, 83,105,
+222,189,106, 99,138,241,250,226,121,158, 74, 18,201,235,139, 1, 96,204, 51, 15,123,165, 53,194, 93,198, 69,122, 75, 4, 55,242,
+129, 90, 55,125,116,106,216,245,148, 80, 34, 9,160,105, 26, 52, 5,208, 52, 5,134,162,202,246, 9,181, 24, 82, 51,239, 95,232,
+247, 79,184, 79, 84,254,157,114,192, 8, 92,105,234,177,125, 20, 93,254, 73, 72, 73, 78,194, 69,215,191,224,223, 56,134, 52,115,
+106,213,181,153,238,219,115, 15, 11, 20,130,238,239, 28,163, 8,253,101,218,133, 53, 55,109, 18, 0, 82,169,243,145, 35, 71,220,
+ 35, 35, 35, 29, 61, 90, 13, 61,103,203, 53, 98, 70,219,242,232,209,195,162,200,200,126,117,104,159,129,125, 64,211, 59, 41, 64,
+200,243,100, 45,195,147,125,218,252,248, 36,160,110,187, 79,201, 60,130, 38,210, 32, 54,247, 51, 60,168,104, 67,110,220,246,250,
+ 22,174, 64,226,208, 91, 40, 18,189,211, 56,176,117,104,102, 74, 98,180, 78, 91,186,134, 53, 21,159,171, 51,145,149,125,255,244,
+133,152,254, 2,161,144,138,236,221,153, 49, 1,103,159,167,210, 61, 61, 61,135,109,220,184,177, 73,120,120, 56, 0,128,101, 89,
+135,253,251,247,123, 45, 94,188, 88, 17, 31, 31,127,176,158,180, 62,238,238,238,254, 98,177,216, 7, 0,204,102,115,166, 70,163,
+ 73, 3, 80,235,139,191,194,179,137, 27, 8, 22, 93, 56,127, 94, 0, 0,221,186,117, 95,226,255,194, 12,103, 70,164, 52, 84, 89,
+ 28,230, 82, 69, 81,210,217,217,151,175, 92,162, 0, 32,172,115,248, 92,185, 91,139, 77,255,159,158, 45,169, 71, 80,103, 26,120,
+ 55,172, 91,196,136,209,175,140,163, 91, 53,247, 71,223, 62,189, 62, 52, 0, 71,234,212,102, 4, 2,217,213,171, 87,155,210, 52,
+205,176, 44,107, 12, 11, 11, 75,123, 30,187, 26, 4,134,255, 73,129,246,179,176,230,175, 53, 15,162,151, 0,207,108, 28,195, 56,
+250,133,126, 2, 70,240, 22,207,243,233,165,105,209, 93,254, 11, 61, 90,207,150,115, 93,153,104,129,248,157, 49,111, 76, 11,153,
+253,222,199,210, 89,235,162,112,108,243,220,188,127,170,200, 2, 0,134,102,124, 79,253,122,202, 67, 46,102, 0, 0, 90, 35,139,
+254,145,145,181, 63, 17, 26,118,250,157,166,168,160,138,173,196, 57,214, 34, 21, 8,197, 70,170, 76, 32,129, 2,224,214,160, 97,
+148, 39,123, 81, 62,102, 84, 68,192,206,189,191,101,164,101,228,215,185, 83,163, 24, 17,194,186,247, 69, 68,159,126,142, 87,175,
+252,185,104,219, 87, 91, 62, 98, 45,214, 45,188,149, 95, 99, 44, 72,204,170,181, 51,247,106,222, 94,172,116, 59, 57, 98,242, 98,
+ 87, 35,237,130,207, 62, 95,239,118,254,196,238,115,153,233,109,249,212,212,116, 35,161,168,187,133, 5,217,239,232,114,146,226,
+108, 45, 50,165, 82,217, 68,169, 84,182,109,211,166,141,116,206,156, 57,194, 23, 95,124,241,177,100,159, 52, 73,244,251,239,191,
+123,175, 90,181,106,192,173, 91,183,140, 90,173,246,166, 86,171,125,128, 58, 76,180,247,242,114,159, 49,114,248, 96,244, 26, 49,
+ 29, 28, 79, 97,210,180,217, 56,117,226,224, 20, 0,127,137,208,178,202, 29, 22,191, 53,121,142,123, 88,199,118,204,162,221,113,
+144,137, 5,232,215, 33,136,122, 99,230, 60,167,237, 27, 22,125,131, 60,244,168,202,147,197,235,139,231,133,184,153, 95, 25, 18,
+222, 24,135,247,152, 95, 65,239, 15, 64,203, 29,151,164, 31,254,248, 62, 0, 52,137,156,169,146,112,154,141, 13,156, 24, 15, 9,
+167,217,216, 36,114,230,233, 7, 39, 55,150,214,100,139, 80, 34, 9,216,179,123,119,115,103,149, 8, 2,154, 2,195, 80, 16, 48,
+ 52,140,102, 14, 47,143,122,229, 47,107,230, 50,143,230, 3,232,178,205,178,193, 3,223, 25,114, 19,142,215,165, 78, 40, 70,228,
+122,244,240, 33,129,135,163, 4, 12, 67,129,161, 1,134,166,144,162, 54, 96,226,196, 55, 28,159, 87,176,247,239,234,209,241,253,
+209, 65,253,194, 66, 92,218,252,120,137,114, 12,235, 63,218, 53,207, 40,127,125,239, 47,103, 95, 33,221,102, 95, 33,132, 95,153,
+113,113,253,175, 53,145,152, 76, 38,117,191,200,254, 14,148, 64, 33, 63,253,243,142,238, 2,154,130,149, 35, 96, 57, 2,174,124,
+111, 84,170,252, 13,134,166, 41, 16,158,224,173,183, 38,162, 95,100,127, 61,207,242, 25,182,119,114,244,206,147,167,255,112, 55,
+ 89,121,172,218,184,125,145,174, 88,179,232,225,125,215, 20,109,113,222,108, 67,110,130,205,251, 96,208, 32, 29,210, 31,196, 78,
+222,125,244, 50, 66, 90,182, 0,199,151,217, 25,228,171,192,238, 99,151, 17, 28, 20, 92,102, 55, 79, 16,232,167, 68,199, 14, 29,
+129,103,182, 38,179, 85,100,169, 62,235, 49,112,220,194, 65, 47, 79,128,135,187, 59,104, 98, 29,116,250,216,238, 65,223,125,185,
+242,125,214, 88,178,170, 78,100,132,123,244, 92, 32, 60,255,220, 94,167, 6, 13, 26,184,119,236,248, 56, 28, 35,203,178,104,212,
+168, 17, 50, 51, 51,131,234,243,158,230,237,237, 61,112,254,252,249, 30, 3, 6, 12, 16,122,121,121, 1, 0,114,114,114,124, 78,
+158, 60, 25, 58,127,254,252,220,236,236,236, 99,168, 33,162, 15,103,165, 69,180, 0,140, 84, 42, 47,203, 35, 40,122,206,140,215,
+218,120,122, 55,168,114, 35,119,141, 38, 71,252,193,244,179,148, 64, 32, 42, 63, 31, 52, 33, 60, 85,131,151, 40, 66, 40, 20, 86,
+ 57, 66, 97, 97, 28,194,136,208,241, 77,154,161,203, 26, 43,107,213, 20,166, 93,111, 81, 7, 79, 92, 43,161, 88,180,101,228,232,
+ 9, 93, 94, 26, 49, 20,222,238,142, 56,125,241, 22,166,204,120,215,202, 90,172,107,234,213,121, 48,140, 32, 55, 55, 55,197,217,
+217,217,235,249,159,183, 84,227,223, 78,157,240, 56,125, 38,106,238,234,117, 27,166, 90,204,172,149, 39,228,209, 62,198, 50,153,
+ 68,216,103,208, 40, 7,143,166, 97,210, 13,243,223, 20,254, 23,122,180,182,253, 37, 66, 75, 44, 83,141,250,244,131,153,210,197,
+187, 46,227,216,230, 41,121,250,146, 60,247, 71,111, 10, 14, 78,215,117, 37, 69,161,245,177, 80,233, 30, 24, 78, 49,130,201, 20,
+195, 40, 40,154, 18,243, 28,159,206,154,205, 75, 12,249, 9,217,207,155,123,158, 39,248,233,207,220,186, 9, 32,130,102, 59,127,
+ 60,228,225,233, 36,129,209,194, 97,244,152,113,248,225,135, 31, 84,238,142, 98, 24,205, 44, 86,174, 94, 93,170, 77, 57,230,145,
+146, 94,152, 25, 49,248,221, 95, 31, 36,231,198,166,101, 27,247,213,213, 54,147,133, 67,137,158,133,222, 68,163,121,171,142, 88,
+185, 38, 88,154,150,250,240,221, 29,223,125,243,246,221,187,204, 15, 60, 67, 47, 52,102,223,171,114,175, 19,185, 87, 72, 63, 7,
+103,215, 61,195, 39,127,238,148,144, 43, 0,129, 5, 73, 14, 82,140,122,253,109,135, 38, 94, 50, 40,164,140,211,195,212, 76,239,
+ 57,239,191,127,241, 1, 71, 58,149,104, 30, 60,172,205,158,134, 13, 27,142, 24, 52,104,144,252,189,247,222, 19,250,249,249,225,
+187,221,251, 3,186,245,123,121,112, 86,182,218,143, 16, 2, 79, 15,143,244,183,222,120,249,200,241,227,199, 83,211,211,211,133,
+ 43, 86,172,232,124,232,208,161,150, 57, 57, 57, 54,191,153,114,132,192,104,226,192,149, 63, 32, 53,197,166, 58,235, 83, 31, 31,
+ 31, 73,102,102,166,169,146,151,129,122,236, 40,164,250,245,238,209, 89,176,245, 68, 50,180, 70, 14, 10,169, 16,201,106, 61, 58,
+180,107, 77,125,205,177,109,171, 34,156, 56,106,224, 60, 79, 37,137, 28, 18,222, 24, 30,206,114,124,187,233,115, 28,190,244, 48,
+ 82,173,165,176,145, 48,147,189, 37,130, 62, 10, 62,123,227,139, 29,154,122,245,106, 31,128,107, 29,154,122,157,143,137,139,151,
+189,188,122,102,166, 86,120,186,240,228,219,165, 85,119, 60, 52, 92, 84, 34,108, 63,149, 10,185, 84, 0,133, 84, 0,133,164,236,
+147,166,169,231,123,171,245,110,225,199,240,220, 68,134, 17, 76,124,101,212,203, 13,198,190,242, 50, 1, 67, 99,255, 79, 71,134,
+238,218,181, 51,219,106, 49,127,195,209,204,246,234,218,207, 19, 5, 74, 3, 30,142, 98,188,255, 77, 44, 28,100, 66,168,228, 66,
+ 56,200,133,232,213,198, 29, 12, 93,111, 19,157,167, 12,109, 50, 96,202,240,134, 61,131,252,149,205,111, 38, 21,223,157,184, 36,
+122,221,239, 69, 61,223,217,180,182,165,171,182,200, 44,248,108,206, 91,130,140,172,172,158,251,143,156,235,197,153, 39,196,177,
+ 22,221,199,154, 91,251,171,244, 10,103,196, 93, 10,245, 9,123, 73,106,209, 90,111,223,140,203,104, 90,104,146,224, 78, 74, 9,
+ 20, 82, 1,148, 21,101, 43, 21, 64, 33, 21, 66, 41, 21, 32, 43, 35, 25, 5, 58,230, 98,166, 43,221, 19,231, 46,177,117, 49,220,
+104,225,112,227,161, 22, 13,131,218,193,219,187, 1,204, 3, 94,109,120, 37,234,167, 95,174,158,251,121,153, 62,231,254,199,182,
+242,236, 62,122, 25,115,103, 79,142,161,128,235,229, 15,233,208,207,150,111,110,191,104,238,244, 39,210,230, 44,220,208,190,254,
+158, 44,213,188, 94,195,167, 45,236,214,103, 56, 74, 11,212,248,243,215,125,232, 55,104, 36, 94,157, 48, 11, 78, 78,110, 43,215,
+ 44,249,224, 38,107, 42,137,122,166,207,245, 10,126,161,117, 72,139, 93, 62, 13, 26,248,241,124,217, 46, 31,132, 0,218,210, 98,
+124,240,206, 91,224, 9, 65,219,208, 78,189,164,221,250, 16, 82,190, 27, 72, 94,126,158, 46,238,254,221, 8, 99,110,220, 21,155,
+203,210,104,180,106, 52, 26,220,184,113, 3,241,241,241,184,115,231, 14,242,243,243,225,232,232,168,213,233,234, 20,251,205,161,
+ 77,155, 54, 99,163,162,162,164,206,206,143, 55,105, 48,155,205, 80,169, 84, 24, 59,118,172,176,111,223,190, 62, 3, 7, 14, 28,
+ 31, 27, 27,187, 27, 64, 73,149,246, 20, 36,102,169, 60,131,190,234,241, 98,143,169, 0, 32,115,240,126,184,241,187, 35,119,106,
+124,161,117,108, 16,208,165, 75,215,166, 32, 4, 20,200,122,125,126,124, 78, 13, 94, 34,197,229,203,151,155, 48, 12, 35,120,252,
+ 12,226,241,229,183, 63, 6,255,118,225,246,136,229, 43, 87, 73, 29, 20, 18,104,138,205,120,243,213,225, 54, 63,131,101,158, 65,
+ 3,186,116,233,254,203,162,133,159, 10,148, 10, 5,126,189,242, 0, 51,223,121,223,152,157, 18,187,138,240,194,205,122, 77,124,
+238,115, 62, 42, 9,254, 2, 52,247, 85, 66, 53,164,159,116,202,107, 67,164,102, 43,135, 34,157, 21, 38, 11, 7,142, 39, 40,214,
+ 89,113, 55,173, 20,110, 14,117,223,202,141, 16,210, 17,128, 59, 0, 13, 69, 81,215, 42,127,175,120,161,171,208,198, 79,125,207,
+ 43,127, 62,184, 2, 48,163,108,165,254,163,230, 83,254,189,186,244,138,235,239, 2,104, 81,206,201, 1,184, 74, 81, 84, 97, 53,
+ 98,235, 25, 47,151,224,232,209,163,100,208,160, 65,143,122,252,167,191, 63, 13,137, 72,216, 64,225,232, 14, 66,238,129,162, 30,
+159,230,225,229,147,191,106,205, 58,151, 25,211, 38,167,150, 20, 21, 4,148, 39,159,182,229, 97, 33,160,152, 53, 61,186,134,245,
+157, 58,109, 26,130,154,248,138, 56,142, 35,177,241, 15,173, 59,182,127,251,250,249, 75,226,117, 37, 25,177,243, 42,185, 32,235,
+180,236,147,227,185,140,167, 61, 88, 28,207, 61,253,118,251,236, 38,213, 20,224,164, 20,227,171, 19,201, 32, 4,160, 64,224,168,
+ 16, 98,239,239, 25,120, 24,115,176,100, 80,219, 18,221,216,229, 11,122,245, 28,240,118,212,221, 36,227,190,220, 92,227, 41, 0,
+ 57, 53,113, 86,221,161,243, 48, 89, 56, 88, 89, 22, 7,142, 28, 65,100,175,206,232,210,165, 51,186,119,235, 34,136,142,185, 53,
+ 97,218,212,183,252,240,120,117,199, 35, 78,169,103,179,142, 74, 71,183,125, 35,166,174, 80,221,206, 96, 33, 96,128,198, 94, 50,
+184,168, 68, 48,179, 20, 82, 52,150,242, 59,199, 9, 51,231, 44,116,153,251,238,212,227, 37, 26,113, 8,112,207, 82, 83,222,245,
+122,189,120,220,184,113, 66,171,213,106, 25,251,230,172,190, 57, 57,154,161, 95,174,255, 66,226,225,225, 9,189,145, 69,204,157,
+196, 22,139, 22, 45,108,124,228,228,239, 63, 47,120,127,202, 47,145,145,145,142, 63,254,248, 35, 95, 91,121, 62,241,134,168,206,
+219,244,237,174, 3, 63,172, 93,181, 20,113,169,133,216,190,117, 51, 8,199,126, 85, 75, 81, 85,230, 36,227,198,141,147,253,252,
+243,207,190, 25, 25, 25, 37,122,189, 94,243,132, 63,130,166, 4,234, 2, 61,220, 84, 98,136, 4, 52, 60,157,165,240,112,148, 64,
+200, 0, 52, 69,113, 85,113,110,223,119,108, 9,175, 47,198,225, 61,230, 87,190,221,244, 57, 38,204,248, 4,177,121,226,147,180,
+220,113,201,244, 87, 70,204,117,151,113,145, 13,156,104,143, 94,237, 27, 66, 33, 21,225,163,183,199,161, 83, 76,138, 71,102, 17,
+255,137,198,192,180, 91,120,242,209,102,221,167,159,116,142,148,121,176, 84,114, 33, 78,238, 90,153,171, 43,214, 20, 87, 12,201,
+153, 77,198, 84, 27,155,241,233, 42,222,108,231,182,107,221,234,243,169,147, 38,210, 93,195, 59, 17,154, 22, 34,175,212, 76, 17,
+ 2,188, 51,115, 10,166, 79,121,203, 43, 61, 43,247,179,205,155,191,154, 23,245, 27, 89,172,211,220, 95, 80, 19, 39, 77,149,121,
+129,148, 82, 1,148,178, 50,225,162,148, 10, 96, 52,115,160, 40, 48, 78,254,161,197, 84,153, 39, 55,171, 32,181,218, 55,240, 39,
+ 56, 93,252, 91,157,249,237,161, 42,184,112, 95,225,165,228,172, 59, 75, 98,110,169,175, 2, 40,240,235,238, 52,222,194, 18,104,
+141, 44,146,213,122,176, 22, 66, 77,232, 31,128, 70, 47, 81, 65, 75,191,189,254,195,137, 91,112,168,212,233, 63,193,153,121,249,
+128,209, 53,100,248,232,181, 27,182, 94, 91,245,249, 39, 76, 94,177, 25, 60, 33,144,138, 25,200,196,130,242,131,129, 65, 87,140,
+205, 91,190,206, 97, 65,141,192,185,115,108, 93,218, 39,120,242,234,240, 1,221,247, 82,128,152,162, 69, 25, 13, 2, 26, 6,244,
+ 30,252,186,180,247,144,113,224, 88,243,220,152, 11,228,172, 62, 55,238,140, 45,156, 33, 45, 91,128, 2,174,235,114,227,167, 0,
+128,194, 35,240,171,224,160,224,246, 79,167, 53,107, 22,212,222,150,122,127,228, 41,149,170,102, 56,187,184,127, 18,212,170,157,
+135,186,208, 68,169, 92,125,145,156,112, 3,123,182,124,182,147, 55,154, 23,158, 57,182,239,243,117,219, 15,141,234, 29, 57, 28,
+223,126,249,197, 71,249,217,143,132,214,233, 74,222,170, 87,119,124,179,205, 79, 40,150,192,202,242,176,114,164,236,147,229, 80,
+ 80, 80, 8, 43,203, 67, 42, 87,129,229, 41, 88, 57, 30, 86,150,135,201,204, 42,166,140, 27, 56,205, 8, 92,169,202, 78,159,224,
+ 30,167, 68, 18, 73, 0, 65,217,222,181,132, 16, 36,231, 24,104,111,111,239,221, 0, 32,145, 72, 32,145, 72,192,243, 60, 98,226,
+ 52, 51,220,130, 2,167,162, 92,224,113, 22,115,106, 81,202, 31,253,170,203,187,151,151,215,224,167, 69,150,209,104,132, 86,171,
+197,133, 75,215, 28,191,249,225, 64,100,114,106, 70, 19,158, 56,154, 84, 30, 77,250,149,230, 62, 24, 92, 93,121,150,170,227,166,
+ 57,132,189, 69,191, 55,125,124,179, 13, 59,142, 94, 77, 60,181,164,198,121, 90,141,122,127,104,126,111,242,200, 14,203,215,111,
+ 79, 40,252,227,171,217,181,213,145, 64, 32, 16,106, 52,154, 71,247,247,198,175,247,116,184, 30,151, 57,108,221,218,117,210,152,
+ 7,165,184,157,156,133,241, 17,254,101,111, 56, 54,212,187,194,179,137, 91,227,166, 77,119,111, 94,191, 92,144,144,101,196,166,
+131, 87, 17,245,203, 87, 23,114,114,175, 68, 66,157,109,168, 79, 31,242, 23, 8,173,106, 57,207,222,202,131,214,200,194,100,102,
+ 97,229, 9, 74,244, 86,228, 22,153, 81,162,183, 64,107, 96, 49,190,143,127,149,215,213,162, 71,220, 41,138, 58, 74, 8, 25, 68,
+ 8,137, 0, 32,174,248, 94,246,204,166,142,150, 11,178, 39,190,207,157, 59,247,227,101,203,150,221,169, 56,183, 34,189,226,220,
+154,210, 43, 93,239,250,209, 71, 31,133, 44, 95,190,124,105,120,120,248,222, 63,255,252,243, 33,128, 66, 91,135, 15, 5,149, 51,
+115,244,232,209,218, 10,186,137,197,106,145, 56,200,132,104,220,200, 31,111,124,252,173,219,247,203, 39,230, 74,197, 2,230,196,
+137, 19, 46,249,102, 37,104,154,177,249, 21, 69,233,222,188,139, 72, 36, 62,182,122,245,106,188, 50,184,155, 44, 45,207,170,189,
+149,102, 80,235,204, 96, 61,220, 3,197, 75,150, 46, 87, 46, 95,177,114,250,209,195,124,145, 86,125,119,101,213, 67,124, 29,162,
+ 25,170,210, 28, 44,138, 2,225,185,140,194,148,107, 29, 0,224,121,230, 98,105,141, 86, 48,229,115,107, 40, 10,208, 27, 89, 48,
+ 12,149, 91, 20,183,239,238,216,197, 75,122,237,220,251, 91, 22,161,157, 74,117,186,100, 57,202,246, 28,172, 51,140,102, 14, 38,
+ 43,135, 59, 55, 99,208, 61,172, 37,186,116, 8,134,222,200, 65,111, 98,209,168,105, 16, 0,184, 85, 89,113, 12,253,144,112, 86,
+ 35, 33,156,106, 80, 71,119,120, 56,137,225,237, 44,129, 68, 44,128,149, 5, 12,102, 30, 70, 51,135,148, 92, 3, 74, 13, 50,180,
+238,241,114, 99, 87,239,104, 83, 78,138,236,231,130,180,232, 17, 53,138, 83,142,195,142,221, 7,154,101,101,169,135, 30,255,121,
+151, 68, 83, 98,197,173, 20, 29,114,139, 76, 0,227,142,249, 75, 55, 73, 62,156, 61,105,216,142, 61, 63,165,246,238,214, 57,181,
+174,121,214,107,226,118,238,219,127,224,171, 65,131,134,201,238, 92, 57,142,132, 27,103, 62,215,229,214,105,126, 22,221,182,109,
+ 91,118,210,164, 73,165, 75,151, 46,245, 59,124,248,112, 35,141, 70,115, 3,128,213,201,201, 41, 56,176, 89,192,205, 95, 79,158,
+240, 25, 56,236,101, 97, 70,158, 1,142,114, 17, 2, 60,228,184,116,225,148, 85, 44, 22, 86, 57,223,164,124,120,112, 12,122,127,
+128,195,151, 30, 70,222,201,255, 63,246,206, 59, 60,170,162,109,227,247,217,222,210,123, 2, 9, 53, 33,180, 4, 66,239, 69, 4,
+164, 11,104, 40, 26,148,174,136,138, 40, 32, 40, 32, 32,136,130,116, 20, 1,105,210,123, 15, 45, 52,145,146, 64, 32, 4, 18,210,
+123,207,246,190,123,230,251, 99, 19,164,164,108, 0,191,215, 50,191,235,218, 43, 57,155,205,189,115,218,156,123,158,121,102, 70,
+ 28, 53,126,108, 68,122,228,165,135,197,171,183, 69,126, 87,203,193,124, 91,204, 22,174,190,213,186,161,207,204,143,222,193,226,
+ 85,219,113, 49,250, 97,129,134,227,187, 40,215, 96, 57, 83,121, 40, 29,224,113, 25, 56, 74,248,208, 40, 11, 21, 73, 49,167, 26,
+189,162, 48,117, 68,228,161,237,156, 18,149, 25,153, 69,122, 38,167, 68, 5, 43, 75,224, 34, 21,192,194, 18,200, 75,138,152, 29,
+219,183,225,230,205,107, 28,112, 57,227, 0,204,171,242,128, 50,182,174, 66, 7, 49,223, 22, 17,146,216,126,154,173, 44,130, 3,
+ 27, 98,195,234,229, 78, 30, 94,222,232,220,213,254,220,104, 71,247, 58, 45,118,253,186, 26, 81,191,199,116,191,184, 98, 77, 27,
+ 7, 63,207, 85, 12, 99,253, 1, 4,122,131,201, 10,133,188, 20, 66, 99, 38,218,214, 42,132,155,212,138, 52,165, 47,238,229, 37,
+ 58, 84, 87,225, 23,223, 59,120,155, 33, 67,230,236, 59,122,126,113,159,215,187,227, 94,154, 18, 18, 33, 15, 98, 33, 23, 98, 33,
+ 23,124,198,138,229,235,127, 50,151, 42, 84, 3,138,227, 14, 23,189,192,245,121,182,172,245,107, 51,119, 86,181,231,246, 85,115,
+182,142,255, 98,105,159,190,111,142, 97,238,221,188,240,165, 22, 56,103, 95, 67,143,216,245, 30,203,218,255,140, 19, 59,122,172,
+156, 58, 99,225,212,222, 3,222, 2,151,203,131,217,108,198,254,221,219,241,235,154,185, 15,140,234,226, 49, 0, 88, 99, 1,119,
+194,158,237,235,223,250,226,235,229, 76,243, 22,109,219, 93,200,125,126,121, 79,150,203,252,252,238,216,137,225,222,222,222,142,
+127, 70,180, 8, 26, 5, 55, 69,191, 65,195,112,250,240, 65,220,143,139, 5, 75,108,134,137,101, 9,228,165,197,121, 22,179,113,
+ 75,165, 61, 30, 98,113,157,205,191,110, 11,226,112,152,199, 11,200,127,250,193,123,198, 73,159,124,217,185, 95,239,110,113, 66,
+ 46,148,105, 25,185, 46,215, 98,226, 67, 88,190,131,255,216,233,203, 5,122,131, 21, 10,173, 25, 39, 54, 85,238,117,196,174, 1,
+ 29,234,182,234, 55,118,210, 87, 27, 68, 34, 46,199,212,172,145,127, 74,183,246,205, 50, 3,252, 60, 84,223, 44, 89,211,246,202,
+245,152,126,111,143, 26, 43,142,104,220,138,241,115,151, 56,190, 55,234,205, 80,171,197,244,174,182, 36,179,210,249, 5,249, 82,
+ 87,121, 64,189, 64,237,159, 17,163, 70, 7, 24,130,250, 79, 57, 15, 6, 41,186,252,132,161, 0,224,235, 23,160,231,139,156, 84,
+ 53,136,192, 16, 0, 88,245,203,206,214,119, 18,114,198,255,248,227, 10,105,116,178, 10,183,147, 21, 16, 9, 56, 48,153, 89, 48,
+118, 6,181, 89,194,157, 56,123,214, 76,167, 82,141, 21, 81,177,133,136,187,117,129, 24,213,250, 81, 82,139,211, 80,120, 57,190,
+ 11,160, 33,128, 36,134, 33, 63,107,242,125, 14, 3, 23, 45, 53,189,238, 89,214,214, 94,118,242,108, 80,223,202, 19,245,227, 11,
+101, 29, 24,134, 52, 99, 8, 92, 1,146, 93, 82,246, 76,181,215,169,105,242, 19,176,244,219,175,177,114,227, 65,228, 20,235,225,
+108,205,196,225, 77, 11,241,217,226,223,160, 51, 84,158,213, 80,157, 31,169,200, 24, 61,107,184,202,127, 47,255,220,226,197,139,
+ 7, 60,115,110, 6, 84,114,206,158,251, 92,249,255, 47, 89,178,228,219, 39,254,174,181,215,100, 61, 54, 90,229, 59, 85,141,217,
+106,228,233, 91,231,247,195,135, 14,184,150,170, 77, 16, 11,184, 8,168, 23,136,121,171, 15,123,190,209,218, 3, 69, 38,103,236,
+220,240, 67,137, 94,171,218,109, 87,101,225, 21,220, 78,226, 32, 59,113, 96,255, 65, 52, 8,240, 18,236,184, 92,146, 26,147,162,
+123, 28,234, 85, 22,166, 11,235, 57,105,121, 67,223,124, 83,122,238,252,133, 79,212, 64,133, 70,139,203,112,107,255,178,109,191,
+151,163,132, 15,134, 1, 84, 58, 11,198,191, 59,236,229, 31, 99,132,229,142, 29, 19, 1,166,204,100, 41,139,243,240,229,140, 15,
+244, 50,115,226,253,140,180,140,236, 94, 3, 63, 59,167, 84, 51,250,240,119, 62,184,121, 63, 97,113,169, 86,251, 98,139,252, 24,
+140, 86, 24, 76, 44,146,147,147,240,105,196,235,224,115, 57,224,114, 89, 91,178,180,165,242,139, 81,157,147, 80, 2, 31,193,240,
+237,203,166,252,226,231,237,229,238, 32,147, 16, 7,169,136,105,214, 56, 72,208,190,125, 71, 97,189,224, 80,193,229,120, 29, 50,
+ 10,117, 72,201, 81, 64,228,221,146, 55,162,231, 27,216,190, 98,122,247,146,140, 91, 28, 60,159,164,248, 20,103,162,254, 24,184,
+113,253,143,162,124,185, 9, 15, 50,212,200, 43,213, 35,183,212,128,188, 18, 61, 28, 36,124,116, 29, 52, 65,116,252,240,207, 3,
+ 95,235,210,110,213,139,236,119, 74, 74,234,241,180,236,220,183, 66,195,218, 98,251,214, 95,187,184,184,212,115,146,203, 83,149,
+246,158,157,133, 11, 23, 10,151, 44, 89,194, 91,189,122,181,178,125,251,246, 62,179,102,205,234, 83, 80, 80,112,163,110,221,186,
+193,167, 15,108, 57,223,178,235,224, 54, 96, 77,158, 93,186,245, 16,136, 88, 30, 34,143, 29, 51,237,217,189,163, 88,167, 83, 77,
+170,210,112, 72,157, 23,230,171, 25,120,214,170, 19,144,162, 6, 0, 0, 32, 0, 73, 68, 65, 84, 21,231, 32,180,190,206,227,200,
+ 19, 74, 79, 77,221, 86, 10, 28,104,208,247,163,179, 23,110, 61, 76,104, 29,157,230,117, 62,250, 81, 65,137,214,212, 40,249,212,
+103, 85, 86,188, 92,134, 1,159,203,129,163,132, 7, 78, 89,173,234,224, 23,250, 8, 12,227, 89, 30, 57,101,192,148,253, 4, 24,
+ 6, 57,165, 25,183,237,200,217, 96, 8, 75,128,135, 89, 26,168,245,182,208,124,109, 15, 41, 10,243,179,176,110,213, 22,196,220,
+186,137,222,111, 12,194,218, 95,118, 96,252,187,111,233,171,107,253,112, 56,101, 17,173, 39,162, 89, 14, 18, 30, 0, 6,114,141,
+ 25,251,175,100,162, 97,125,142,221, 15, 6, 0,112,116,144, 66,161,210,129, 35,112, 68, 82,244, 9,233,201, 11,215,103,205, 89,
+240,227,231,165,185,177, 25,143,238, 94, 70,176,135, 2,245,107,153, 16,151,231,132, 91,197,245, 16, 28,216, 0, 28,193, 77,187,
+180,139,226, 66,150, 30,230,236, 31,208,186,101,211, 14,117,188, 92,160, 51, 90,203,162, 90, 92,252,186,121, 27,210, 82,179,198,
+ 22,223, 63, 28,243, 42, 28,173,166, 32,165, 80,228, 21,248,225,221,235,231, 82,222, 28,245, 33,124,107, 5,180,144,103,220,182,
+243,225,101,159,169,178,218,105,180, 4, 82,151, 89,159,206,254,110,106,239,254,195,241,199,229,115,184, 29,151,132,118,237,218,
+224,141, 33, 35,160, 82,150, 52,222,187,109,197,235, 22,173,234, 52, 79,100,153,218,182, 99, 79,134,181, 90,145,248,224, 94, 82,
+ 69, 90,186,220,135,183,175,229, 62,116,122,170,123,202,163,113, 11, 7,103,183,219, 6,147, 21,217,217, 89,184,250,123, 84,152,
+ 46,247, 97,141, 38, 16, 22, 9,184,136,140, 41,128,169,108, 13,211,174,221, 94, 55, 10, 56,134, 46,139,126,220,220, 62, 55, 39,
+151, 35,115,242, 96,221,106, 53, 17,248,138, 76,134, 59,201, 10,129,201,204,162,129,159,172, 74, 77, 79,191,192,111,167, 79,255,
+180, 9, 87, 32,129, 74, 99, 48,230,230,100,251,108,216,121, 65, 29,255,224,110,173,218, 94,206, 78,223,173,248, 89,160,212, 51,
+ 40, 80, 24, 80,162, 82, 50,163, 38,126,225,183,113,205,226,209, 85, 25,173, 10,210, 69,234, 31,143,188,220,216,213, 81,192,168,
+245, 22,182, 88,105,178,142, 26,242,114,131, 46,203, 76,214,132, 31,151,175,144,198, 36,171,112, 39, 89, 1,177,128, 11,161,128,
+ 3,163,153,133,157,183, 19,199,199,203,103, 82,199,214, 33, 56,125,187, 8, 92, 46, 7, 58, 85,169,150,135,226,132,214,221,123,
+ 75, 91,181,109,143, 30,221,187,225, 81,194,195,128, 99, 71,246,191,118,237,234,197, 60,139,169,209, 20, 77, 97,194,193, 26, 5,
+ 22,180, 90,174, 89,232,243,158,111,173,186,157,134,142,120,207,185, 78, 64, 45,198,203,195, 29, 22,194,195,132,119,135,217,125,
+231,219,140, 57,176,100,193, 44, 24, 12, 70,120,186, 8, 65, 8,176,121,213, 60, 24,141, 70,248,185,139,160,208, 84,190,154, 92,
+117,126,164,178, 40, 84,141,114, 79,158, 48, 99, 85,189,207, 48,204,177,153, 51,103,126, 9,128,204,156, 57,243,203,242,237,197,
+139, 23,235, 0,228, 84,211,117,184,225, 41,163, 85,190,115,149,223,221,130, 96, 15,119,223,107,145,167, 79, 57, 31,186,195,226,
+143,131,183,208,191,157, 47, 4, 60, 14,164,206,126,184,147,170,192,241, 3,235,229,135,119,253,156,109, 48, 24,190,175,190,175,
+ 57,176,181,131, 84,118,122,235,246,221,172,135,187, 59,103, 93,100, 97,114,177,202,242,184, 75, 43,225,250, 17,246,214,233, 13,
+190, 4,204, 41,177, 88, 28,104, 52, 26, 93,171, 59,177,155, 35,211,203,146,120,153, 87, 81,183,130,225,114,173,219,119,108,135,
+135,147, 16, 6, 51,139,153,159,127,172,139,232,237, 32, 31,245,246,136,158, 61,250, 77, 61,207,151, 5,157,235, 24, 22, 68, 90,
+182,108, 41,231,114,185,118,165, 82,120,121,121,205,227,112, 56, 35,133, 66,161,163,209,104, 84, 25, 89,189, 84,163, 55, 66,111,
+ 2,180, 90, 61,248, 2,155, 89,228,115, 25,232,244, 70,104,117,198,170,111,140,188,123, 87, 0, 52, 82, 62, 17, 83, 58, 23,223,
+ 64,248,219,222,195, 31, 15,127, 59,124, 78,173, 22, 67, 28, 82,115, 21, 16, 48, 38,180,105,226,139, 11,167, 14,146,172,180,132,
+ 79,171, 51, 89, 0, 80, 80, 88,226,239,233,233,141,152, 20, 53,178,139,117,200, 43, 51, 89,185,165, 6,168,116, 42,132,214,241,
+131, 92,161,240,127,225,227, 11, 28, 60,125,250,244, 91,253, 6,135, 99,234,231,243, 59,111, 90,255, 67,172, 76,200,127, 95,147,
+159, 24,101,143,209,186,119,239, 94,201,140, 25, 51, 26,254,242,203, 47,156,209,163, 71,235, 66, 66, 66,196,239,188,243, 78,231,
+109,219,182,137,165, 82,177,238,206,229, 35,115,198,125, 52,115,240,134,149, 11, 91,148,150,150, 50, 22,179,249,164,169,180,116,
+166,186, 26, 51,151,121,228,203, 7,115,147, 77, 99, 94,239,226,121,196, 77,202,105, 38, 34,198, 17,104, 50,111, 55,226,231,153,
+146, 79,173, 86, 73,222, 90,246, 81,142,156,157,173,231,120, 45,170,206,100, 1, 0,135,203,192,104,177,194, 81,194, 7,135,195,
+ 41, 55,241,190,191,238, 62, 41,245,116, 22,130,207,229,128,199,101,160,212,154, 81,164, 52,225,195,247,236,157, 33,132,176, 22,
+ 43,129,206,104,129,182,172,117,168, 82, 22, 97,214,231,211,240,198,192, 55, 49,110,210, 52,148,234,128, 91, 41, 42,152,204,230,
+106,111, 10, 14,195,129,214, 96,193,251,189,235,160, 68,109,130, 70,103,129,209,194, 66, 42,228,129,207,227, 64, 38,230,193, 73,
+202, 7, 8, 17,148, 87, 38,124, 62, 95,111, 54,155,183, 87,209,162, 71, 61,127,111,232,204, 28,180, 13,255, 1,189, 58, 52, 66,
+220,149,253,188,139,127,220,173,255,201,231,179,241,241,248,129,216,247,160, 33,220,188,234,192, 65, 38,129,153,112, 0, 16, 59,
+ 19,246,230,177, 28,211,155, 35,127,250,101,243,195,111,190,158, 41,150,107, 24,136, 4, 92,156, 63,119, 22,215,174,223, 90, 89,
+116,255,240,118,188, 66,248,132,227,237,228,228, 4,177,144, 11,163,201, 96,180, 63,117,129,128, 0, 97, 50,175, 70, 63,149,181,
+248,195,172, 44, 42,120,175,122,163,197, 19, 59,205,156,242,249, 55,223,246,238, 63, 28,145,199,246, 97,239,190,221,214, 14,125,
+199,114,119,252,186, 30,157,123, 13, 66,231,222,225, 56,121,112,219, 52, 13,203, 52,157, 48,117,206,130,174, 61,251, 33,242,248,
+ 62,228,231,101, 45,179,183,188, 92, 62, 51,181,231,235, 3,161, 55, 90,209,229,181, 1, 56,117,244,224, 71, 40, 27,100, 97,255,
+ 67,236,153,250, 25, 28,203,180, 79,167,242, 11,228, 70,126,161,210,136,172, 66, 45, 82,243,181, 56,188,107, 19,177,191,190, 48,
+182,233, 26, 90,155, 63, 97,233,249, 76,255,218,190, 6,190, 65, 39, 73, 72, 74,110, 60,238,189, 8,126,253,192,198,156, 2,133,
+ 1,133, 10, 3,138, 20, 6,168,245, 22, 4,214, 14,226,152, 45, 76,135,154,158,103, 15,103, 33,127,237,209, 20, 56,201,248,232,
+216,248,197, 7,218,178, 44,251,167,201,250,209,102,178, 98, 83, 20, 16, 9,184, 16, 9, 56, 16, 9,184,176, 88,137, 93, 13, 23,
+137, 87,163,126, 31, 78,249,192,207,104, 1,138, 21, 70,240,184, 12,188, 60, 92,101,109, 90,140,196,230, 31, 62, 2, 0,140,159,
+177, 14,227,222,127, 7, 77,154,133, 64, 94, 90,234, 51,114,120,191, 31, 1, 28,180,183,172, 39, 34,163, 2, 34, 47,197,204,248,
+112,250, 92,135,183, 7,246,224,222, 78, 86, 32,183,196,128,164, 4, 85,141, 34,111, 0, 96,177,178, 32, 32,216,178,251, 24, 36,
+ 66, 30, 10, 21, 38, 16, 66,176,112,245, 30, 56, 74,248,200, 45,181,117,247, 87, 69,149,126,164,138,136, 84, 13,162,141, 3, 96,
+203,229,242,180, 55,162,181,120,241,226,184,197,139, 23, 87, 24, 33,123,194,100,189,216,162,210, 2,129,172,177,147,187,199, 31,
+145,167, 78, 56, 30,188, 99,197,133, 59,197, 24,222,165, 54,212, 37, 25,248,254,243,183, 75, 24, 16, 35,135,203,149, 27,116,218,
+ 3, 58,157,102, 17, 0, 83,149, 23,141, 79,163, 48,153,216,225,236,218, 13, 91, 45, 30, 94, 94,216,126,185, 36,171, 84, 99, 49,
+255,217,109,101,102,110,157,222, 80,223,194,154,251,234,243, 31,221,172,174, 37,206, 18, 8, 22,175, 63, 12,128,128,101, 89, 16,
+150, 5, 95,236, 32,243,104,208, 62,191,172,162, 19,243, 56,140,254,201, 26,128,176,150,172,162,148,170,195,160, 12, 0,103, 41,
+ 31,187, 47,102, 3, 64, 62, 87, 21, 29, 63,234,109, 91,119,161,222, 40, 86, 54,107,216,144,180,105,211, 70, 46,145,216, 53,253,
+ 21,215,219,219,251,198,156, 57,115, 26,143, 27, 55, 78, 36, 20, 10, 97,177, 88,220,126,222,176,129,221,176,104, 60,134,126,180,
+ 22, 2,161, 8, 58,189, 9,124, 62, 15,165, 10, 53,228, 74, 45, 84, 90,115,205,175,160,228,100, 99, 33,176,244,208, 65,225,155,
+125, 28, 66,219, 10, 57, 2,180, 10,246,197,133,211,135,200, 31,167, 54,143,215, 21, 36,108,181,243, 66,132, 90,111, 70, 78,177,
+ 30,217,197,122,228,149,234,145, 87, 98, 64, 94,169, 30, 12,195, 64,111,180,188,212,131, 75, 83,240,112,239,246,173, 27, 7, 25,
+ 76, 24,209,181,247,155,152, 54,119,109,157,237, 63, 45, 57,155, 66, 56,157,236, 76,180,181,198,197,197,165,189,247,222,123, 45,
+118,238,220,201,109,222,188,185, 46, 62, 62, 94, 90,102, 34, 77, 14, 14, 82,201,166, 53,139, 79,183,109,219,118,119,118,194,131,
+115,101,253,233,213, 86,236,117,186,141, 17, 73, 76, 49, 19, 2,100, 29,251, 52,240,145, 34, 64,166,234,211,216,225,206,247,197,
+ 61, 63,254,182,240,252,202,130, 92,131,229, 76,161,142,219, 50, 91,205,183, 43, 7,207,108,208,167, 15, 29, 62, 2, 92,134, 3,
+147, 94,155, 94,126,113,121, 57, 11, 49,111,199, 3, 56,136,249,112,148,240,224, 32,225,163,115, 83, 55,212,160, 62, 35,102, 43,
+ 11,173,193, 10,157,193, 2,189,209, 2, 15,127, 87,252,178,125, 47, 50, 10,116, 56,124,179, 8, 15,211, 85, 8,170, 45, 3, 33,
+213, 87,147,172,213,172, 25, 56,108,180, 35,151,195,128,203, 97, 56, 77, 27, 55, 66,137,218, 4, 1,143, 3,129, 88, 2,153,136,
+ 7, 39, 9, 31, 2, 1, 31, 5, 5, 5, 48, 24, 12, 8, 8, 8, 16, 87,109, 5, 9, 28, 29, 36, 8,170,239, 7,147,217,130, 19,
+151,238, 99,209,167, 67,241,122,215,214, 96,248, 14,120, 96, 8,131,163,155, 35, 88, 14, 7, 38, 11, 11,163,201, 10,128,163,175,
+ 76,207,223,223,191,167, 76, 38,147,105,181, 90, 85, 70, 70, 70, 84,222,195,131, 25, 86,238,224, 9,167, 34,207,111, 31,240,198,
+235,136,137,141,195,190,131, 71, 46, 23,185, 43,166,151,255, 79,179,102,205,218,123,120,120, 56, 20, 23, 23, 43,239,221,187,119,
+227, 69,219, 5,132,195,249,164, 67,231,238, 80,203, 11,144,159,153,106,119, 43,186, 73, 29, 71,124,181,120,109,171,224, 70,193,
+173,172,196,102,188,154, 6, 56,226,179,185,171, 90, 53, 12,106,212,170,124, 64, 72,147,128,170,167,101,227, 73, 29,123,191, 59,
+110,218,226, 65,195,199,224,124,228, 17, 44, 95,244,249,118,153,179,103, 19, 55, 87,231,150,205,219,247,198,229,179, 71, 32,118,
+244,129,171,187, 79,231,209,239, 79,233, 53,124,244, 68, 92,187,124, 22, 43,151,124,185,205,106, 80,253,102, 79, 89,101, 94,245,
+ 61, 91,132,181, 29,229,232,230, 13,185, 66, 5, 71, 87, 47, 52, 9,109, 51,234,254, 29,195, 12, 77, 65, 74,225, 11,155, 14, 66,
+ 96, 48, 17,148,170, 77,200, 44,212, 33, 45,207,102,180, 88,182, 6, 57, 65, 86,150,113, 16,243,120,110,230, 71, 1,119,207,158,
+ 39,117,252,189,153,165, 11, 62,231,154, 32, 70,161,220,102,178, 10,149, 70, 20, 42,140, 80,235,205,112,147,241,192, 90,217, 26,
+183,186, 75,213, 38, 56, 74,249,112,150, 10,236,142, 50, 86,196,250, 95,119, 7,223, 73,200, 25,178,124,249, 10,233,237,148, 39,
+ 76, 22,223, 22,205, 18, 9,184,176,178, 44, 96,199, 29,207,231,241,167, 14,238,215, 11,153, 69, 58,219,168,101, 14,131,160,144,
+182,240,144,176,120, 45,124, 38, 0, 96, 96, 63, 91,106, 91, 74,174, 6, 71,255, 40, 4,158, 78,236,174,186, 46,214,233,184, 27,
+118, 28,255,100,239,158, 93,206,122, 43, 15, 63,159, 76,131,214, 96,129, 88,192,133, 72,192,133, 68,192,125, 42, 31,187,122,163,
+101,203,185,203, 40, 50, 67,171,215, 67,169, 51,131, 0,184,241, 72, 13,157,209, 2,133,198,140,246,141, 93, 95, 46, 16,194, 48,
+199, 9, 33,253,159, 53, 68,207,154,165, 39, 34, 82, 21,105,220,124, 82,163,252,243,149, 25,185, 39,115,182, 0,212,104, 4, 23,
+239, 89,231,248,228,182, 64,230,218,196,217,209,249,143, 83, 39,143, 57, 28,188,195, 34, 42,214,102,178,204,186, 34, 44,155, 49,
+ 50, 75, 41, 47,234, 1, 32,217,222, 47,147,122, 52, 9, 21, 11, 69,231,191, 91,241,179,201,203,187, 22,123,224, 15,121,129, 66,
+107,125,202, 77, 88, 13, 6, 14, 97,137, 64,159,255,200,174, 62, 4, 14,135, 49,205,253,232, 77,176,132, 96,222,138,189,248,118,
+122, 56, 28, 36,163,165, 12,195, 72, 53,122, 11, 62,157,191, 17,203,190, 26,235, 40, 21,241,192, 48,182,156,168,119, 71,188,105,
+223, 5,168,183, 32,233,250, 78,181, 42,229, 88,252,147,221,133,237, 58,191,113,171, 93,187,118,114, 87, 87, 87, 72, 36,146, 63,
+ 35, 21,149,224,237,237,253,213,220,185,115,131, 39, 77,154,244,120,178, 79, 30,143,135, 15, 63,248,128, 99,181, 18,156, 60,185,
+ 25,158,117,195,112,228,204, 31,232,219,179, 13,212, 90, 61, 74,228, 42,176,224,190,240,133,168,146, 23,157,207, 75,187,219,182,
+ 83,143,129,136, 58,125,136,252,113,114,211,248,154,204,209,227,234,230,154, 25,125, 55,169, 9,195,184,217, 34, 90,101, 38,203,
+104,102, 81,199, 91,138,204,180, 36,184, 56, 59,103,218,171, 39,241, 12, 30,204,112,200, 36, 6,100,179, 38, 63,113, 47, 0,162,
+201,141, 31,185,247,183, 13,177,113,247,110, 47, 26, 48,106, 42,175,247,240, 15,184, 63, 45,158,242, 37, 0,123, 39,222, 51, 61,
+124,248,240,254,216,177, 99, 59, 94,187,118,205, 10, 64,203, 48,140,153,203,229, 74,141, 70,163,160, 71,143, 30,138, 7, 15, 30,
+ 68,161,226,164,197,167,232,252,222, 94, 15, 70,164,122, 67,200,154, 70,214,113, 84,189,222,163, 75, 7,116,104,230,143,204, 46,
+ 29, 0, 96,106,186,218, 33, 88,223,112,227,110,179, 69,114,226,167, 95,143,126, 59, 62,188,215,167,219,121,243,150,231, 30,155,
+ 87,101, 34,106,102,252,197, 62, 21,217,120, 30,151, 3, 71, 9, 31, 14, 18, 30, 28, 37,124, 56,138,249, 48, 91, 72, 77, 90,142,
+196,108, 97,109, 17, 45,163, 5,106,157, 5,231,111,231, 35, 79, 97,132, 92,101,130,206,100, 5, 1,177,181, 70,237,168,205, 11,
+ 31, 93,117, 41,127,146,186, 4,132, 41, 54,172,254,193,105,255,149,172,199, 35,250,156,165, 66, 56, 74,109,163,177, 47, 93,186,
+ 4,119,247,234, 91,251, 44,203, 98,223,169, 27, 88,190,229, 60, 78,109,254, 2, 98, 1, 23,161,131,231, 99,204,144,118, 96, 9,
+139,164,135,113,249, 65, 77, 91,120,115, 56, 18,112, 24, 6, 6, 51, 11,128, 84,122, 60,141, 70,163,123, 70, 70,134, 50, 48, 48,
+208,199,207,207,111, 56,151,203, 37, 80,221, 54, 28,218, 85,162, 61,119,236, 55,169, 70,103,176, 74, 45,138,205,129,185,186,254,
+ 8, 12, 4,195, 48,196,201,201, 73,112,254,252,121,117, 72, 72,136,231, 11,222, 74, 28,137, 87,163,149,227, 38,127, 50,188, 97,
+131, 6,216,251,219,102, 16,194,236,183,247,159,119, 28,189,134, 5,179,158, 30, 97,248,217,220, 85,173,150,205,159,250,212,123,
+147,103, 45,175,114,212,161, 68,228, 48,125,232,200, 9,184,117,227,119,124, 63,255,179, 93, 6,117,201, 24,179,197,252, 86, 73,
+110,202,174,250, 77,219,129,152, 84,136,220,243, 3,194,223, 25, 47,234, 61, 96, 56,174, 93, 62,139,111,191,156,188, 67, 43, 47,
+120, 15,118, 38, 57,179,132, 63,169, 71,159, 33,124,157,193,132, 85, 75,191,198,196,233,139,208,190,231, 64,254,189,219,127, 76,
+ 2,240,141,221,233, 16, 38, 43,122,132,120,216,204,179,153,197,145, 20, 46,175,162, 43,144,199,101, 56, 45, 27,184, 64,103,180,
+ 64, 89, 77,163,146, 39,224,231,201, 21,202,186,107,190,253,132,171,209, 91, 80,168, 48,162, 64, 97, 64,145,252, 79,131, 85,164,
+ 48,160, 80, 97, 4,159,199, 32, 33, 57, 29, 28, 62,175,198,249,121,165,106, 51,218, 54,114,181,221,163, 47,216, 59, 98,230, 57,
+181, 59,117,241,206,208,229,203,127, 20,223, 73, 85, 33, 54, 69, 89, 22,201,226, 66,196,231, 64, 88,246,187,149,181,229, 70, 86,
+133,147,103,131,250, 17,239,142,126,205,201, 65,130,156,196, 2,240,184,182, 41, 98,156,189,252,225, 44,210, 99,202,228, 9,240,
+112,119, 65, 70,145, 1, 43, 15, 38, 32,246,254, 35,176,186,154,237,246,170,159,119,245, 29,247,225,103, 46, 28,190, 16,219, 78,
+167,218,202,201,181,226,193, 31, 71,245, 57, 73,119, 53,106,101, 49, 1,177,218,153,131,204, 16,139,213,118,185,125, 59,111, 38,
+118,109, 89,135,211,209, 5,143,175,192, 43,251,151,225,147, 89, 11, 81,164, 52,162,162,235,178, 42, 63, 2,160,240,137, 72,212,
+115,219, 79,152,163,138,182,153,178,109, 99, 37, 26,198,103,204,149,241,153,247,141,207,232, 85, 52,247,223,134,106,187, 14,159,
+ 51, 69, 46,158,205,165, 98,217,239, 39, 79, 30,149, 29,138, 37,143, 77,150, 73, 91, 68, 22, 77, 29,152,165,148, 23,246,174,145,
+201,242, 12,106, 46,146,138, 46,206, 89,184,210,224, 93,171,174,229,196,109,101,177, 74,111,181, 60,159,131, 32,179,202,156, 61,
+245, 60,161,104, 57, 95,103,252,186,168, 40, 94, 83, 93,228,137, 37, 4,199,174,231,129, 16, 91, 19,105,207,165,108,148,181,204,
+ 97,101,109,221, 42,103,110, 23,128, 87,150,135, 98,111,248,123,253,207,235,148,253, 67, 20,154, 81,223,206,123,220, 93,216,190,
+133, 45,146,229,228,228, 4, 23, 23, 23, 56, 56, 56,160,186,174, 67,134, 97,222, 29, 55,110,220,115,173,255,130,130, 2,244,122,
+173, 7, 86,175,251, 5, 45, 94,139,192,153,171,167, 97, 50,179, 8,109,218, 0,117,253, 92,145,153,175,122,161, 27, 93,230, 29,
+252, 97,219, 30, 67,190,236,220,115, 32,206,159, 58, 64,254, 56,245,235,132,154, 78,132,216,191, 87,199,163, 11, 22,204,171, 63,
+103,209, 26,145,163,152,135,120,181, 17, 28,134, 65, 29,111, 41,220,101, 28, 68, 29,218,166, 15, 31,216,209,238,201,241,252,253,
+107,109, 95,182,122,131,108,217,146,249, 61,110, 69, 51,231,213, 57, 9, 37, 0,160,205,127,184,244, 1,112,191,246,239,145, 39,
+ 90,116,123, 19,222,126, 13, 94, 79,201,127, 96,183,217, 0,160, 77, 78, 78, 78,153, 51,103, 78,240,146, 37, 75, 8,151,203,101,
+ 1,136, 86,172, 88,161, 77, 76, 76,188, 13,219,208, 92, 84,247,176,121,237,245,102,159, 58, 8,173,237,221,164,156,102, 13,124,
+164,232,208,204,214, 43, 26,222,191, 51,252, 3, 2,144,156,167,109, 89,162,101,249,106, 35,183,193,218,159, 99,111,214,243,224,
+142,183,232,140,247, 1, 28,174,233,249, 97,240,103,130,124,121, 52,203, 81,194, 7,107,187, 86,106,100,180, 12, 38, 43,116, 6,
+ 43,116, 70, 11, 52, 70, 43,180, 70, 43, 88, 98,187, 39, 24,134,129,201,194,194,174,102,243, 51,215,190,147,155, 7, 26,212, 99,
+224, 36,181,149,205,169,108,186, 7, 6,128,187,187, 59,188,188,188,236,138,138, 26, 77,182, 91,220,104,102, 31,119,235, 27, 77,
+ 22, 16, 66,144,144,240,240,139,180,148,148,193,129, 65,129, 93,155,134,182,112,147,138, 56, 0, 80,169,209,210,106,181, 86, 71,
+ 71, 71, 47, 55, 55, 55, 78,118,118,246, 99,243, 28,216,178,135,229,224,129,253, 24, 58,244, 77,117,252,141, 59,143,135,184,235,
+116, 58,166, 83,167, 78, 78,254,254,254, 28,131,193,160,172,233,105,146,121, 54, 26,226,234,238,182,232,221,247, 38, 54,234,209,
+171, 47, 46,156,139,196,225, 3, 59,183,106, 11, 19, 34,237, 21, 9, 14,110,252,220,168,195,134, 65,141,158, 27,117, 88,183,126,
+ 80,149, 70,171,105,104,155,118,132,225,225,244,177, 61, 68,207, 49, 77, 6,192, 90,245,170, 61,187,215,127,245,205,200, 73,179,
+ 26,246, 27, 52, 18,239,190, 51, 6, 60, 30, 23, 81,103,142, 98,217,252,105,199,213,138,130, 8,123,210, 4,108,161,183, 38,130,
+ 90, 18,255,143, 3, 26, 54, 71,244, 31,151,145,148,112, 47,238,206,205,107,205, 2, 67,218,195,211,175,206,199,233, 30,220, 37,
+136,143, 55, 85, 39, 99,212,235,211,199, 68,188,131, 39, 71, 29,118, 8, 11,118,103,158,189, 1, 0,104, 85, 5,166, 77, 63,124,
+154, 88, 62,234,144, 53, 25,211, 43,211, 85,148, 22,238,139,186,122,125,250,224,254,125, 57, 69, 74,163, 45,130,165, 48,150,189,
+ 12, 40, 42,255, 93,105, 64,144,159, 3, 30,198, 69,179,122, 69,209,254, 26,222,151,250, 49,111,245,185, 95,126,237,178, 44, 1,
+ 3,232,107,220, 45,197,119,154,176,244,251,229,226, 59, 41,106,196,166, 42,109, 93,133,124,174,205, 96,241, 57,143, 77,151,109,
+ 52,123, 53,209, 33,134,251,237,251, 17, 35, 80,164, 52,129,101, 1, 30,151, 83,246, 18, 32, 67,197, 32, 83,165, 69, 81,105, 33,
+ 82,210,210, 33,207, 75, 2,135,195,129,135, 95, 35,187,103,146,182, 18,161,175,214, 72, 66,134,247,239,202, 59,240,123, 46,164,
+ 34, 30, 12,170,124,156,220,253, 67,161, 65,173, 92,164,211,170, 15,216, 51,159,227,159, 41, 8, 76,161, 82,173,247, 22,241,185,
+216,187,101, 13,222, 26, 51,249,169,218,247,139,217, 11, 0, 14,131,146, 82, 21, 24,134, 41,172, 89,189,196,220,172,106,251, 5,
+ 35, 99, 47,173, 81,129,217,122,190,161, 80,121,107,148,156,140, 60,117, 84,118, 37, 77,132, 27, 15,115,203, 76, 86, 33,187,240,
+163,254, 89, 42, 69, 73, 31, 0, 9, 53,107, 23,114,250,132,191, 63, 61,174, 65,163,166,134, 11,247,212,169,114,141,185,210, 60,
+135, 14,195,231,196,221, 58,190,186,159,194,156,252,129,204,183,169,149,181, 88,150,234, 10, 19,230, 87,210,117, 40,156,191,114,
+239,227,110,195, 25, 75,182,217,126,183, 90, 97, 37, 44, 8, 11, 76,249,106, 61, 44,172, 21,172,213, 10,214, 74, 96,182, 18,105,
+117,197,245,242,171,123,160,244,193,158,198,163,190,121,190,187,208,197,197, 5,238,238,238,112,119,119,135,147,147, 83,181, 70,
+139,207,231, 59,240,120, 79, 31,234,244,244,116,164,165,165,193,201,201, 9,132, 53,195,104, 6,154,183,239,141,187, 73,247,112,
+246,202,109, 16,214, 10,153, 67,205, 87,121,145,121, 7,127,208,166,251,224, 53, 61, 7,141,197,153, 3, 63,147,155,151,142, 78,
+212, 21, 36,108,180, 59, 66,111,181, 50,102,179, 25,253,123,119, 79,143,137,123,116,106,246,244, 73,125, 59, 14,152, 40,234, 16,
+ 92, 11,122,163, 21, 89,105, 73,136, 58,244,171,190, 81,125,223,211,175,117,105,151,110, 54,155, 97,181, 90,171,125,144,235,141,
+166, 34, 46, 95, 34, 27, 49, 98, 20,255,230,141, 27,251,101,158, 65,123,173, 12,231, 14, 67,216, 80,134,144,161,161,161, 77, 96,
+ 50,179,208,106,149,165, 53,221,103,149, 74,149,178,121,243,230,250, 17, 17, 17,210,166, 77,155,242,147,146,146,176,108,217,178,
+ 98,149, 74,149, 98,175, 70,228,165,135, 43,120, 76,105, 98,121, 68, 43,163,115, 7,140, 24,208, 25,187,142, 95, 65,212,229,107,
+ 72, 87, 59,220, 86, 91,120,135, 50,211,115, 12,205,220,148,251, 7,117,168,203,221,187,165,116,127, 92,247,153,111, 19, 34,138,
+ 44,186, 56, 79, 99,255,205, 13,168,116,102, 56, 73,109,243, 61,149, 71,182,184, 12, 99,183, 35, 98,128,148,203,215,162,155,183,
+ 14,106,138,152, 20, 5, 10,228, 6,232, 12, 22,176, 44, 1, 11, 2,119, 71, 33,196, 2, 14, 50,210, 82,192, 18, 83,106, 13, 31,
+ 21,133,221,186,118,227, 1, 12, 24,134,240,248, 60, 30, 8,108,243, 43, 74, 36, 18,181,151,151,151, 93, 17, 45,147,197,130,161,
+125,219,161,125,155, 80, 12,158,104,155, 51,243,220,214,153,112,117,224, 99,215,246,141,200,188,180, 98,123,253, 14,147, 34,239,
+221,141, 27, 22, 23,243,251,168, 55, 90, 73, 90,250,240,114, 4,149,133, 73, 53, 26,205,126, 0, 66,129, 64,208,183,107,215,174,
+110,251,247,239,151,123,120,120,176, 66,129,160,112,208,192, 1, 44, 95, 32, 40, 41,255,236,213,171, 87,249, 19, 39, 78,116, 44,
+ 45, 45,205,200,207,207,191, 6,192, 92,117, 67, 48,184, 23, 56,216, 9,134, 17, 59, 72,164,233,245,234, 53,240,107,211,190,157,
+243,144,161,111, 65, 36, 20,225, 76,228, 41,172,250,113,201, 30,117,110,252,251, 53, 57,146,175,106,212, 97, 86, 70,106,138, 86,
+103, 8,105,222,186, 59,115, 57,242,208, 84, 19, 60,126,228,138, 76, 63,244, 26, 58,185, 97, 74,142, 26,171, 22,127, 1, 87,103,
+ 25, 82,147, 30,232, 18,227,239,174, 55,235,149, 95,216,109,178, 0, 72,139,173,195, 58,188,211,215,213, 96,178,226,210,249,227,
+122,214,194,246,189,118,241, 68, 82,237, 70,109,196,205,219,188,230, 90,116,120,227, 80, 45,176,171, 58,157,236, 7,207, 71,112,
+137, 81,158,122,238,252, 89,103,239, 58,205,184, 12, 24,152, 12,122, 20, 38,223,180,104,243, 31, 40,149,217,247,236, 26,133, 91,
+156,137,175,102,205,253,238,131, 54,173, 91,203, 8,196, 79, 69,176,202, 13, 86,145,210, 8, 15, 71, 33,116,202, 66, 36,222, 60,
+165,215, 22,114,171,156,239,204, 98,212, 72,139, 10,242,133,127,166, 51, 36,180,175,234,243, 69, 5,249, 66,139, 81, 35,173,254,
+ 81,199,133,147, 76,136,187,169,217,143, 19,223, 69,124, 91,110,150,144,207,125,156,167, 85, 94, 23, 84, 67,119,129,216, 5,217,
+197,122, 48, 32, 96,173, 22, 88,204, 70,168,148, 74,100,231,228, 33, 63, 47, 31, 42,149, 28, 82, 7, 87, 52,111,217, 22,142, 50,
+ 49,238, 68,237, 1, 33,196,174,121, 13,205, 12, 63,184, 77,251, 46,162,123,105,182, 92, 44, 49,159,224,232,206, 37,197,106,101,
+ 65, 23,117,110, 98, 98, 77,235, 98,139,213,122, 54,246,126, 98,179,218,190,245,152,219, 73, 10,108,255,101, 53,140,101,145, 77,
+179,217,138,123, 25, 26,228,150,104,145,145, 28, 79, 88,171,245, 44,254, 35,240, 42, 15, 0,130, 23,218,188, 9,122,143, 30,130,
+117,235,214, 35, 57, 37,141, 93, 52,181, 95,134, 90, 37,127,163, 6, 38,171, 23,202,230,218,208,230, 63, 92,170,115,109,147,117,
+ 36,166,132,163, 51,146, 42, 19,124,196,158,117,208,229,253,101,167,117,170, 18,161,213,160,229, 29,221,254,254,206,138, 52,109,
+ 14, 26,198, 69,159,133,195, 65,194, 3,195, 48, 40,239, 46, 92,187, 96, 2,164, 34, 91,223,178,206, 96,193,232, 79,151, 99,251,
+242,105, 32, 0, 70,190,117, 69, 91, 89, 57, 97, 91,187,112,138, 47,110,212, 78, 79, 43,200,238, 53,240,179,115,122,147,200, 48,
+224,205,136, 91,173, 91,183,150, 75, 36, 18, 72, 36, 18, 56, 57, 57,193,213,213, 21, 46, 46, 46,213,238,187,217,108, 86, 27,141,
+ 70,119,161, 80, 8,150,101,145,154,154,138,212,212, 84, 40, 20, 10, 20, 22, 22, 66,163, 86, 90,110,156,219,203,107,222,161, 31,
+252, 26,132,160, 78, 80, 11,240,185, 12,120, 60, 14,162,142,252, 82, 89, 57, 43, 54, 89,221, 6,173,125,109,240, 56,156, 57,176,
+129,220,188,116,116,146,174, 32,225, 23,123,207, 81, 89,119,207,157,161, 67,135,134, 76,156, 56, 81, 48,119,250,196,211,199, 35,
+163, 18,246, 30,219, 48,176,180, 84,238, 79, 8,129,139,179,115,102,248,192,142, 71,123,116,106,147,126,238,220, 57,118,231,206,
+157, 6,134, 97,238, 86,165,105,171,164, 10,182,158, 59,123,126, 94,151,110,221,177,113,203,206,110,113,247,227,187, 37, 37, 37,
+194,191, 78, 3,212,171, 31, 4, 45,227,138,243, 23, 47, 67, 45, 47,216,106, 79, 57,159,137,106, 49,165,165,165,191,135,135,135,
+247,190,114,229, 10, 39, 60, 60, 92, 91, 84, 84,116,245,137, 40, 22,169, 78,243,218, 79,111, 22, 2,216, 90,167,219,152, 61,217,
+ 38,249,199, 0,150, 4,212, 9, 64,212,229,107,184,118,229,250,250, 34,105,192,252,247, 71,191, 55,161,238, 32,238,184, 65, 29,
+234,114,189, 92,165,248,109,195, 50,238,145,107,105,203,211,138,173, 27,151, 92,156,183,192,158,115,244,248,193,161, 50,161, 83,
+ 19, 55,152,173, 4, 44,177, 85,184,142, 98,126,101, 21,239,115,154, 60,163,232,253, 73, 19, 39, 38, 53, 15,109,249,201,232,247,
+ 38, 9, 90, 54,240,199,141, 71,114,128, 97,224,230, 35, 67,110,110, 46, 46,237,219, 96, 41,205,126,176,158,203,101,191,169,193,
+241, 68,105,250,237,192, 39, 54, 39, 20, 21, 21, 33, 42, 42, 10,229, 6,203,211,211,179, 50,163,245,148,102,113,126,206,213, 5,
+223,255,220,105,252,187,111, 98, 64,247,102,184,120, 51, 9,198,178,249,154,202,135,146,167, 92,251, 73,248,113,120, 3,227, 7,
+ 67, 27, 41,117,102, 97,218, 87,169,138, 75,176,173,193,202, 86, 82, 78, 99, 73, 73,201,145,135, 15, 31,118,110,209,162, 69,221,
+ 19, 39, 78,148,196, 93, 63, 61,245,201, 66,124,246,217,103, 14,235,214,173,147, 18, 66,174, 26,141,198,100,187,246,157,131,223,
+162,111,221,114, 55,153, 89, 92,190,126,167,201,107,157, 90,130, 37,192,205,155, 55,177,113,211, 70,253,221,216,219, 63,104,242,
+125,190,169,194,188, 84,120, 60,173, 47, 55,234,240,177,102,110,118,218, 15,103,142,239,219,222,166,219, 64,140,154,242,205, 55,
+ 81,199,119,206,107,213,101, 0,167, 73,155,222,136,190,118, 30,103, 79,156,250,206,164, 46,153,135,234,115, 71, 42, 44,167, 72,
+ 34,253,168,105,171,110,200, 72, 79, 67,106,226,189,173,250,146, 71, 57,233, 73,220,173, 57, 89,233,147,234, 55,235,132, 43,167,
+119, 77,173,194,104, 85,121,205,251,123, 74, 54,156, 56,118,100, 68, 86,214, 79, 62, 26,157, 94, 68, 8,209,139,132,188, 60, 7,
+142,106,183,210,238,114,198,155, 10,115,234, 14,125,107,244,164,227,171, 86,253,200,247,118,145, 34,175, 84, 15,165,206, 4,149,
+214, 4, 14,195, 32,208, 79, 6,173,170, 4, 23,247,125,111, 54,170, 75,195,129, 36, 83,101,154, 50,175,224,133,165,143,206, 79,
+249,108,242, 5, 8,157,253,253,234,245,156, 85,101,180, 78,149,125,123,224,103,147,143, 6, 19, 66, 94,147,121, 5,171, 52, 5,
+ 15,231, 84,182,239, 12, 99,187,191, 71,245,240,135,201, 98,155,127,204,194, 2, 86,150, 45,139,242, 1,228,113,127, 62, 83,205,
+190, 51,236,238,227, 87,145,147, 47,135,206,104,134,193,104,129,201,108, 5,135,203,133,139,171, 11,130,234,133,193,217,197, 9,
+249,121, 57,184,118,238, 8, 18, 98, 47, 94,101, 8,230,235, 10, 19,207,217,115,142, 4, 18,151, 96, 95, 63, 31, 78,174,210, 8,
+137,144,139,219, 23, 79,152,204, 70,195, 15,118,154,172,231, 52,229,197, 37,203, 63,153,254,249,200, 95, 55,111,241, 9,169,239,
+132,172, 34, 29,178, 10,245, 80,233,205,101, 70,140,133, 65, 93,132,216,243, 91,242,172,122,213,114,252, 71,168,212,104, 89, 76,
+122,213,254, 83, 55,220,103,206,251,158,251, 40, 41,217,188,240,227,254, 89, 58,181,178, 95,141, 35, 89, 79,240,235,135,245,119,
+253, 21, 59,241, 92,119, 33, 97,193, 18,130,163,215,243, 30,119, 23,178,101,153,151, 49, 73, 85, 47, 35,248,228,218,133,221,251,
+ 77, 61, 19,251, 80,181, 67,167,203,119,126,240,232,135, 82, 0,224,114,185,143, 95,229,185, 89,122,189,222, 88, 77, 23,202,182,
+ 95,126,249,101,198,164, 73,147, 68,153,153,153, 72, 74, 74,130, 92, 46,135, 88, 44,198,169, 83,167,204, 96, 45, 63,196, 94, 57,
+152,250, 48, 58,242,235,224,214,189,107,135,116,232, 7,169, 84, 6, 30,177, 63, 25, 83,234,213,104, 68,235,110,131,214,188, 54,
+100, 60,206, 30,252,133,220,188,120,100,178,174, 48, 97, 67, 77,143,165, 92, 46,143, 3,144,248,195, 15, 63,180,220,184,113, 99,
+253,233,211,167, 39,111, 91, 51,111, 21, 0, 20, 23, 23, 3, 0, 98, 98, 98,200,228,201,147, 13,122,189, 62,165,180,180, 52, 26,
+213, 12,128, 0, 0, 93,161,244,219,141,107,151, 52,207,204,206,125,179, 65,243,182,240,172,223, 22, 62,129,237, 80,170, 50,225,
+198,163, 28, 36,199,159, 67,252,229,125, 39,180, 14,150,121,168,225,252,198, 45, 90,180,240,231,112, 56,245,212,106,181, 79,211,
+166, 77, 91,200,100,178,152, 22, 45, 90,132,241,120,188,172, 91,183,110,165,213, 68, 43,253,226, 22, 67,157,110, 99, 86,166,171,
+ 28,123, 36,231,105,195,210, 85,142, 49, 90,145,243,180,194,243, 43, 13,191,114,107, 45, 39,166,162,184,189, 91,148,251,127,219,
+176,140, 59,122,194,103,214,123, 10,215,143,121, 18,225,153,154,133,171, 57,185, 31, 68, 12,254,115,122,135,178, 72, 86,217,239,
+118,133,233, 21,138, 88, 5,128, 25,177,247,249,107,238,125, 60,113, 65,104,155, 78,239,116,125, 35,156, 99, 17, 56,224,244,193,
+159, 72, 74,236,249,189, 60, 98,157,173,179, 99, 53,128,106,187,131,140, 70,123, 76,214,243,101,204,148,117,223,187,115,211,152,
+253, 7, 15, 44, 30, 50,104,176,251,218,175,222,198,247, 63, 31,130, 76, 34, 2, 97, 89,188,221,195,127,248,215,227, 26, 15,244,
+247, 22,215,218,127, 33,235,210,148, 31,239,205,208,106, 77, 9,118, 68, 98, 72, 81, 81,209,101, 7, 7,135,194,206,157, 59,183,
+ 23,137, 68, 76, 81, 81, 17,207,203,203,203,226,236,236,108,204,202,202,210, 26, 12,134,253, 0,106, 52,237,184,201,204, 34, 53,
+ 95,143,195, 7,246,227,206,245,115,136,143,127,168,138,191, 31,191,154,225,145, 31, 53,249,137, 37, 64,141, 27,248, 96, 43, 28,
+117, 72,106, 60,234,208,106, 80,253,182,109,253,194,158, 90,189, 97, 76,139,142,253, 81,183, 73, 39,142,201,108,197,221,155, 23,
+112, 97,223,143,223,155,212, 37, 51, 95,230, 28,251,213,174, 31, 68,184, 66,252, 30,117, 28,132,101,215, 3, 0, 97,217,245, 49,
+ 87, 78, 76,106,215,111, 28,220,188,234,182,144,103,196, 48,120,129,217,195, 5, 60,142,230,228,254, 95, 15,166,166,166,226,193,
+131, 7,120,244,232, 17, 74, 74, 74,240,219,111,169, 53, 58, 63,218,210,180, 51, 9,247, 57,125,134,189, 61,234,232,240, 17,239,
+138,235, 7,133,112,130,107,187,194,221,129,135,135,143,210,144,112, 43,150,125,120,227,132,222,164, 44, 24,162, 43, 77,171,212,
+248, 73, 61,154,120, 3,214,153,229,107, 23,118,232,208, 41,248,243, 69,139,219,187,123,122, 85, 88,143, 23, 23, 22, 8,191,152,
+114, 36,248,218, 31,191,219,181,214, 33,107,181, 22, 79, 24, 19,206,114,109, 11,133,226,113,156,186,236,232,217, 26, 83,182,247,
+ 9,107,169, 54,130,255,222,155, 93, 96, 97, 89,104,116, 38, 40, 53, 6, 40, 84,122,228, 22, 20,227, 78,108, 44, 46, 30, 61,130,
+164,135,119, 82,204, 70, 99, 36,135,195,236,211,229, 39, 92,172, 89, 79, 19,175,190,187,155, 27, 82, 74,212, 16, 11,121, 72, 75,
+184,101,208, 40, 21, 59, 94,244, 58,210, 21, 39,230, 22,112,153,222,225,225, 35, 78,245,236, 51,200,185, 77,199, 94, 82, 15, 39,
+ 23, 8,120, 4,137,169, 57,136,190,122, 74,147,124,231,146,210,108, 84,247,125, 21,171,190,252,205,169,126,212,161,201,160, 25,
+ 56,114,112,183, 3, 92, 46, 79,200,178, 22,131,201,104, 24,246, 50, 38,235,175,130, 16,107,214,152,145,111, 62,213, 54,176,176,
+ 68, 50,242,173,211,186, 39,219, 10,102, 43,145,142,124,235,170,214, 86,129, 84,158,216,231,235,235,214,191,124,237,194,244,244,
+226,155, 37, 37,134, 11, 0,178,244,122,253, 11,151, 49, 63, 63,127,193,162, 69,139, 6,104,181,218,198,221,187,119, 23, 57, 57,
+ 57,161,184,184, 24,145,145,145,230, 99,199,142,221, 47, 40, 40,248, 26, 40,176,232, 16,182, 53, 86,127, 48,226,225,173,200,175,
+ 27,183,238, 83, 59,164, 99, 63,251, 43, 51,145,100,124,207, 65, 99,153,179,135,126, 33, 55,162, 14,125,160, 43, 76,252,249, 37,
+ 14,171, 73,175,215, 95,215,235,245,247,102,207,158,221,198,219,219,219,251,235,175,191, 22, 43,149, 74,254,218,181,107,245, 69,
+ 69, 69,121, 74,165,242, 26,170,200,167,121,158, 24,179, 34, 27, 67, 79,238,255,165, 7,217,255,203,235, 46, 30,181,122, 59,123,
+214,110, 40, 47,204, 78, 81, 20,230, 68, 2, 56, 91, 54, 81,100,141,104,217,178,101, 3,134, 97,194, 1, 52,151,201,100,129, 14,
+ 14, 14, 34, 66, 72, 99,134, 97,226, 88,150,141,109,218,180,233,177,251,247,239,215,104, 50,217,244,139, 91, 12,254,193,157,118,
+150,104, 89,129,145, 35,216,153,126,113,139, 1, 0, 10,206,124,174, 5,112,248,126,247, 25, 67,143, 92, 75, 91, 21, 87,234, 60,
+181, 48,106,241,145,154,150, 89,145,117, 39,240, 85, 93,255,250,220,251, 89, 0,198,196,222,194,178,187, 49,215,230, 50, 4,124,
+ 43, 44, 11,117, 5,143,110,189, 10,125, 62,159,175,175, 85,171, 86,133,163, 11, 69, 34,145,222,108, 39,159,116, 0, 0, 32, 0,
+ 73, 68, 65, 84, 96,168, 42,128,114,209,162,206,197, 70,160,219,150, 3,123,182,140, 57,116,228,240,226,174,175, 13,113, 23,215,
+174,141,122, 94, 12,182,204,108, 53,245, 92, 76,225,141, 65,159, 95, 90,151,156,163,143, 69, 13,243, 97,212,106,117, 2,128, 82,
+181, 90, 61,152, 16,146,201, 48,140,127,105,105,233,109,179,217,124,183,198,134,128,197,168, 14, 29,218,254,198, 48, 12,143, 88,
+216,165,215,248,220,157,250,220,248, 44,188,228,178, 36, 33,245,156,240,233,215, 43, 91, 53, 12,108,212,170,124,173,195,102,117,
+ 29, 49,113,198,178, 86,117,235, 7,181,250,115,253,195,106,211, 4,136, 89, 91,250,254,129, 77, 75, 47,197,252,113,225, 75, 15,
+223,186,117,243,178,146,227, 51, 31,221, 94, 96,213, 43, 15,188,236,121, 78,125, 20,247,227,198, 31,102, 76,207,205, 78,217,168,
+ 45, 76,188, 7, 0,218,194,196,123,241,209,248,170, 40, 47,107,122,113, 65,242, 15, 47,122, 44, 52, 26, 77,206,142, 29, 59, 92,
+ 58,117,234,196,241,246,246, 70, 97, 97, 33, 46, 92,184,192,178, 44,155, 93, 99,173,146,148, 11,154, 18,198,109,235,207,107,150,
+ 10,100,142,253, 44, 22,139, 31, 33, 0,143,199,203, 53,106,149,167, 84, 28,217,231, 40, 77,211, 87,253,204, 96, 25, 0,156,242,
+181, 11, 89,150,101,150,174,218,146,198, 23, 59, 86, 56, 25,162, 89,175,146,178, 44,107,247, 90,135,242,140,232,134,175,234,254,
+102, 8,153,223,162,117,251, 47,205,102,147,190,236,254,208, 3,208, 19,130, 98, 14,135,185,200,101,205,167,149, 47,209,152, 98,
+ 24, 56, 17,134, 7, 71, 9, 15, 12, 24,168, 21, 37,164, 38, 57, 89, 21, 26,226,130,132, 56,109, 65,183, 58, 39,141,123, 34,206,
+159, 57,241,150,213,106,173, 87, 22, 51, 72, 53,232, 52,123,213,185,174, 91,129, 91, 22,252,251, 57, 94,110,182,152,191,248,139,
+236,234, 70,249, 59,105, 6,215,151, 12,174, 93,203, 59, 34, 53,173,224, 70,114,166,118, 43,158, 94, 86,231,101,202,201,245,246,
+246,254,138, 97,152,119,132, 66,161,131,209,104,212, 16, 66,182,229,231,231, 47,192,115,139,255,134,241, 37, 94,186, 8,161, 88,
+ 58,199,164,215,252,174, 45, 72, 24, 85,221,190, 75, 61, 27,245, 22,203,100, 51,244, 58,205, 54,109,126,194,150, 87,124, 60,157,
+ 69, 34, 81,152,131,131, 3,191,168,168,232, 58, 0,197,223,233,188,183,104,209, 34,128,195,225,212, 99, 89,214, 27,128, 51,108,
+163, 66,138,120, 60, 94,118, 89, 68,139,212, 84,179,243,123,123, 61, 94,123,189,217,167,145,151, 30,174, 40,235, 86,124, 76,173,
+225,203,197,239,244,235,241,217,214, 3,135, 43, 26,117,248,143,187,230,255,255, 52,187,241, 28,124,139,198,112,132,206, 11, 95,
+ 11,214,107,139,114,178, 39, 95,190, 91,120, 29,128,234,101,202, 41, 16, 8, 70,155, 76, 38,137, 64, 32,208,153, 76,166, 29,127,
+151,125,151,120, 5,143,229,128,216,189, 50, 5, 11,230,214, 51,131, 86,254, 45,215, 18, 55, 36, 36,164,139, 64, 32, 8,176, 90,
+173, 82,163,209,168,213,233,116,169,105,105,105,191,163,242,133,207,255,210,114,202,188,130,126, 20, 8, 68, 31, 3,128,201,100,
+ 88,169, 41, 72,252,180,170,127,172,226,243,255,232,115,228, 81,175,117, 34,143,203,247, 68,217,196,220,172,197, 82,152,159,114,
+ 51,232,127, 88, 78,202, 11,158, 92,170, 73, 53,169, 38,213,124, 22, 14, 61,158, 84,243,127,169, 41,246,109,226, 47,246,109, 98,
+247,164,203,149,124,158, 30, 79, 74, 57, 19, 42,120, 1,176, 99,194, 82, 10,133, 66,249, 11, 96,233, 33,160,252, 47,209,231,198,
+103,254,149,159,167,252,231,168, 52, 39,154,169,194,149,214, 36, 36,248, 34,206,246, 44,213,164,154, 84,147,106, 82, 77,170, 73,
+ 53,255,115,154,213,105,255, 19,187, 36, 39, 60,179,125, 28,192,255, 75,194, 63, 13,171, 82, 77,170, 73, 53,169, 38,213,164,154,
+ 84,243,191,198, 99,227,197,161,199,130, 66,161, 80, 40, 20, 10,229,175,129,230,104, 81, 40, 20, 10,133, 66,161,188, 28, 21,117,
+ 29, 82,163, 69,161, 80, 40, 20, 10,133,242, 10,168, 52, 25,158,118, 29, 82, 40, 20, 10,133, 66,161,188, 28,229, 17, 45, 95, 60,
+ 51,189, 3, 53, 90, 20, 10,133, 66,161, 80, 40,175,134, 92, 84, 20,221, 58,118,236, 24,169,232,119, 10,133, 66,161, 80, 40,148,
+255, 15,254,225, 94,228,201, 72,214,132,178,109, 0, 79, 68,180,168,193,162, 80, 40, 20, 10,133,242,119, 49, 91,255, 48,202, 35,
+ 89,229,175,220,231,140,214,128, 1, 3, 24,106,182, 40, 20, 10,133, 66,161,252,175,248, 55,122, 17,206,179, 59, 72, 79, 51,133,
+ 66,161, 80, 40,148,255,165,217,250, 55,237, 15,157,222,129, 66,161, 80, 40, 20, 10,229,229,240, 5,208,255,137,237,255,183, 37,
+120, 40, 20, 10,133, 66,161, 80,254,237, 76,168,108,155, 70,180, 40, 20, 10,133, 66,161, 80, 94,189,217,162, 80, 40, 20, 10,133,
+ 66,161,252,147,161, 43,155, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243,223, 78,249, 60, 90, 64,101,243,104, 81, 40, 20, 10,
+133, 66,161, 80, 94,136,254,176,205,159, 53,161,236,103,127,106,180, 40, 20, 10,133, 66,161, 80, 94, 45,207, 45,191, 67,141, 22,
+133, 66,161, 80, 40, 20,202,171, 53, 88, 27,168,209,162, 80, 40, 20, 10,133, 66,249,139,161, 70,139, 66,161, 80, 40, 20, 10,229,
+ 47,130, 65,229, 35, 7,206,214, 64,231, 69, 70, 31,156,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 58,237,179,
+248,231, 81, 62, 51,252,113,252,153, 8,191,225,255,227,139,233,208, 87,170, 73, 53,169, 38,213,164,154, 84,147,106,254,219,153,
+240,204,207,199,208,174, 67, 10,133, 66,161, 80, 40,148, 87,107,182,232, 18, 60, 20, 10,133, 66,161, 80, 40,175,136, 74,187, 9,
+105, 68,139, 66,161, 80, 40, 20, 10,229,229,168,116, 81,105,106,180, 40, 20, 10,133, 66,161, 80,254, 26,195, 69,141, 22,133, 66,
+161, 80, 40, 20,202, 43, 52, 89, 19, 42,252,235,177, 99,199, 8, 61, 70, 20, 10,133, 66,161, 80,254, 87,252,107,189, 72,249,142,
+ 81,179, 69,161, 80, 40, 20, 10,133,122,145, 26,227,139, 63, 71, 27, 78, 40,219, 6, 64, 71, 29, 82, 40, 20, 10,133, 66,161,188,
+ 44,253,241,244,200,195, 9,229,219,212,104, 81, 40, 20, 10,133, 66,161,188, 60, 19,170,252, 43,237, 54,164, 80, 40, 20, 10,133,
+242,191,228,223,232, 69, 24,122, 90, 41, 20, 10,133, 66,161, 80, 94,138,138,162, 89, 27,232, 97,161, 80, 40, 20, 10,133, 66,249,
+107, 13, 23,133, 66,161, 80, 40, 20, 10,229,175, 48, 89,127,245,132,165,116,101,115,170, 73, 53,169, 38,213,164,154, 84,147,106,
+254, 87, 76,214,147, 83, 60, 0,160,163, 14, 41, 20, 10,133, 66,161, 80, 94, 22,186,168, 52,133, 66,161, 80, 40, 20,202, 95, 4,
+ 93, 84,154, 66,161, 80, 40, 20, 10,229,255,217,112, 81,163, 69,161, 80, 40, 20, 10,133,242, 10, 77,214, 83,102,139,230,104, 81,
+ 40, 20, 10,133, 66,161,188, 28,149,230,104, 49,168,124,228,192,217, 26,124,193,139,140, 62, 56, 75, 53,169, 38,213,164,154, 84,
+147,106, 82,205,255,156,102,117,218,103,241,207,103, 2,254,159, 38, 44,165, 67, 95,169, 38,213,164,154, 84,147,106, 82, 77,170,
+249, 95,131, 78,239, 64,161, 80, 40, 20, 10,133,242,170,141,213,179, 80,163, 69,161, 80, 40, 20, 10,133,242,114,208,121,180, 40,
+ 20, 10,133, 66,161, 80,254, 34,124, 97,139,106,149,255, 12,163, 70,139, 66,161, 80, 40, 20, 10,229,213,208, 31,182,168, 86,249,
+ 79,106,180, 40, 20, 10,133, 66,161, 80, 94, 33, 21,206,163,197, 0,192,177, 99,199, 72,217,118,247, 1, 3, 6, 92,164,199,138,
+ 66,161, 80, 40, 20,202,255, 39,255, 86, 47,242, 56,162, 53, 96,192, 0, 6, 64, 20, 61,213, 20, 10,133, 66,161, 80,254, 23,252,
+ 27,189, 8,231, 25, 39,217,157,158,102, 10,133, 66,161, 80, 40,255, 11,254,141, 94,132,247,140,139,164, 80, 40, 20, 10,133, 66,
+249,159,240, 15,246, 34,190,176, 37,194, 31, 47,251, 9,148, 77,249, 64,231,209,162, 80, 40, 20, 10,133, 66,121, 57,202, 71, 27,
+ 62,183,244, 14,141, 98, 81, 40, 20, 10,133, 66,161,188, 28, 21,205, 12,191,129, 30, 22, 10,133, 66,161, 80, 40,148,191, 16, 26,
+209,162, 80, 40, 20, 10,133, 66,121,121,158,140,106,253,191, 69,179,232,202,230, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,
+ 47,153,172,167,182,233,204,240, 20, 10,133, 66,161, 80, 40,127, 17,116,212, 33,133, 66,161, 80, 40, 20,202,203, 81, 62,226,240,
+201,109,106,180, 40, 20, 10,133, 66,161, 80, 94,161,217,122, 14,218,117, 72,161, 80, 40, 20, 10,133,242,114, 76,168,236, 15,212,
+104, 81, 40, 20, 10,133, 66,161,252, 69,134,139, 65,229, 35, 7,206,214, 64,248, 69, 70, 31,156,165,154, 84,147,106, 82, 77,170,
+ 73, 53,169,230,127, 78,179, 58,237,179,248,231,241, 63,155,176,148, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127,
+ 22,218,117, 72,161, 80, 40, 20, 10,133,242, 55, 48, 90,158, 60, 30,239, 75,137, 68,178, 78, 34,145,252,204,227,241,126, 0,224,
+ 90,211, 47,148,201,100, 83,125,124,124, 30,248,248,248,100, 5, 4, 4,156,112,116,148,126,210, 64,132,174, 0,248,175,104,127,
+130, 1,124, 34,145, 72,226,197, 98,113, 26,128,237, 0, 62, 1,224,241, 50,194, 11,252, 48,236,222,199,131, 15, 45,240,195,176,
+103,254,212,223,219,219,251, 50,128,222,175,234,164,140,144,162,215,112, 25, 50,134,203,144, 49, 66,250,226,173, 6, 71, 71,199,
+119,124,125,125,175,185,187,187,103,251,250,250, 94, 21,139,197,195,107, 40,225,229,237,237,253,189,191,191,127,130,159,159,223,
+ 10,216, 86, 39,255,219,210, 69,132, 46,237, 69, 40,236, 32,132,170,147, 16,235, 58, 8,241,250,235,128,244, 5,229, 58, 3,216,
+231,228,228,116,155,199,227, 29, 3, 48,180,236,250, 26,202,227,241,142, 57, 57, 57,221, 6,176,175,236,115, 47,114,157,126, 15,
+ 32, 27,192,183,101,219, 31,249,251,251,171, 66, 67, 67,211, 66, 67, 67,127, 13, 12, 12,124,215, 94, 49,169, 84,250,186,191,191,
+255,254,128,128,128,180, 14, 29, 58,148,212,170, 85,235, 97,237,218,181,183,136, 68,162,238,180,138,163, 80, 40,148,191, 63, 3,
+ 1, 44, 6,176, 58, 54, 54, 54,154, 16, 18, 77, 8,137,142,141,141,141, 6,176, 14,192, 18, 84, 30, 66,124,234,125,119,119,247,
+249, 11, 23, 46,212,231,230,230,146,194,194, 66,146,144,144, 64,126,156, 51,131,237,227,198, 35, 13, 60, 93,181,190,190,190, 73,
+117,106,215,222,213,204,129, 51, 3, 64, 67,123, 52,159,192, 85, 34,145, 92,159, 51,103,142,250,242,229,203,106,163,209,168,102,
+ 89, 86,157,147,147,163, 62,123,246,172,186, 83,167, 78,106, 0,159, 2,224,214, 64,243, 49,223,248,225, 34,217,244, 21,249,198,
+ 15, 23,159,124,191,113,227,198,247, 89,150, 37,195,134, 13, 51, 0,168, 85, 19,205,103,169, 5,136,155, 57,193,101,184, 3,242,
+ 45, 91, 22, 16,178,118, 58, 25, 46, 67,198,139,104,122,121,121, 29,158, 58,117,170, 50, 59, 59,155, 24, 12, 6,146,145,145, 65,
+ 38, 78,156,168,240,242,242,218, 97,231,190,187,135,132,132,228, 95,187,118,141,149,203,229, 36, 42, 42,138,109,222,188,121,190,
+157,102,171,215, 51,101,217,224,231,231,119,162, 38, 47, 47, 47,175,141, 53, 61, 71,237, 68,200, 48, 69, 95, 32,228,102, 36, 57,
+ 50,172, 3,249,177,117,109, 50,212, 77, 40,239, 44,196, 71,221, 42,158,202,164, 50,205,183,186,117,235,166,185,123,247,174,181,
+184,184,152,220,191,127,159, 29, 63,126,188, 30, 64,220,248,241,227,245,247,239,223,103,139,139,139,201,221,187,119,173,221,186,
+117,211, 0, 24, 87,131,114,114, 0,108,158, 55,111, 30, 33,132,144,133, 11, 23,146,208,208, 80,210,179,103, 79,162, 86,171, 9,
+ 33, 36,141, 16,242,171,197, 98, 25, 99,143,166,179,179,243, 59, 83,167, 78, 85,107,181, 90, 82, 14,203,178, 68, 46,151,147,213,
+171, 87,107,124,124,124, 78, 84,210,200,160, 93, 30, 84,147,106, 82,205,191,155,230, 63, 25, 95,216,242,180,202, 95,118, 7, 38,
+ 70,206,152, 49,163,220, 84,157,236,220,185,243,141, 49, 99,198, 68,143, 25, 51, 38,186,115,231,206, 81, 0, 78,223,186,117, 43,
+250,139, 47,190,136, 6, 48,178,154, 19,225,218,177, 99, 71,121, 94, 94, 30, 9, 10, 10, 34,117,235,214, 37,121,121,121,132, 16,
+ 66,110,190,213,138,156,107, 2,146,121,233, 36,137, 60,184,143,140,247,229,145, 46,190,206,102, 95, 31,159, 98, 15, 15,143, 69,
+120,122, 77,198,138, 78,238,155, 77,154, 52, 81,197,197,197,169, 19, 19, 19,213,243,231,207, 87,247,236,217, 83, 29, 18, 18,162,
+ 30, 58,116,168,122,213,170, 85,106,147,201,164,222,184,113,163,218,201,201, 41,174, 2,179,245,194, 70,139,199,227,173,140,141,
+141, 37, 73, 73, 73,164, 44, 74, 81,153,166,179,139,139, 75, 95, 87, 87,215, 79, 93, 92, 92,250, 2,112, 6,128, 32,192,161,133,
+ 51, 2, 62,106,209,160,241,177,145,189, 26,174,238,213,166,213,112, 71,142,220,188,102, 58, 33,195, 2, 94,200,104, 57, 59, 59,
+191,243,201, 39,159,168, 12, 6, 3,209,106,181, 68,173, 86, 19,173, 86, 75, 84, 42, 21, 25, 57,114,164, 82, 44, 22,191, 89,157,
+166,135,135,199,130, 75,151, 46, 89,242,242,242,200,165, 75,151,200,137, 19, 39,200,218,181,107, 89, 47, 47,175,229, 53,189, 1,
+125,124,124,206, 68, 70, 70, 70,199,196,196, 68, 95,191,126, 61,218,108, 54, 71,155, 76,166,104,147,201, 20,125,236,216,177,232,
+ 3, 7, 14, 68,239,222,189, 59,218,104, 52, 70, 27,141,198,104,131,193, 16, 93,191,126,253, 83, 53, 61, 71,109, 69,200, 52, 94,
+ 62, 66,200,242, 15,137,226,187,201, 68, 62,173, 31, 41,152,216,149,172,107, 83,155,116,149,224, 40,158, 95,219,179, 66, 77, 62,
+159,127, 49, 45, 45,141,157, 53,107,150,177,105,211,166,138,247,223,127, 95,111, 48, 24, 8, 33,132, 24, 12, 6,242,254,251,239,
+235,155, 54,109,170,152, 53,107,150, 49, 53, 53,149,229,241,120,103,107, 80,206, 37,229, 38,235,226,197,139,228, 73,212,106, 53,
+233,217,179,103, 90,104,104,232,175,245,234,213, 27, 85,157,166,131,131,195,224,153, 51,103,170, 73, 5,152,205,102,162, 82,169,
+ 72,106,106, 42, 91,183,110,221, 28, 0,238,180, 50,167,154, 84,147,106, 82,163,245,151, 49,161,154,237,138, 15,226, 23, 95,124,
+ 17, 77, 8,137,158, 61,123,118,116, 89,100, 75, 0,192,161,236,197, 3, 48, 98,230,204,153,209,132,144,232, 25, 51,102,148,127,
+166,178, 19, 49,112,239,222,189,166, 21, 43, 86, 16,111,111,111,226,227,227, 67, 86,174, 92, 73, 88,150, 37,121,199,118,144,115,
+ 77, 64,226,191,140, 32,132, 16,146,176,104, 10, 57,215, 4, 36,121,253, 55,100,244,232,209, 90,169, 84, 58,178,138,147,235,214,
+170, 85, 43,149, 78,167, 83,111,217,178, 69, 45,149, 74,111, 2,104, 10, 91, 87, 36, 83, 86,214,119,155, 54,109,170,188,119,239,
+158,122,231,206,157,106, 0,243,237,188, 96, 26, 2,232, 33,147,201,134,206,172,197, 79, 36,155,190, 34, 51,189,113, 23, 64,115,
+ 0,158,101,159,241,155, 49, 99, 6, 33,132, 16,127,127,255, 75,149,104, 58,135,132,132,204, 72, 76, 76,156,107, 54,155,231,198,
+196,196,204,109,212,168,209,172, 65,245,125, 59, 28, 26,249,122,152,226,155,201, 97,100,217,180,144, 31,222,104,219,107, 87,120,
+247,145,239,213,243,184,252,190,151, 88,251,182, 51, 87,245, 76,215,161, 93, 23,118,173, 90,181,174,103,100,100, 60, 54, 87, 42,
+149,138,100,103,103,147,148,148, 20,114,249,242,101,226,235,235,123,174, 58, 77, 31, 31,159,251, 25, 25, 25,100,253,143, 63,146,
+ 97,205, 27,147,174, 46,142,164,155,171, 35,105,237, 32,214, 52, 1, 90,215,212,104,221,190,125, 59, 26, 64, 52,128,232,226,226,
+226,232,226,226,226,232,210,210,210,199,239, 1,136, 86, 40, 20,209, 10,133, 34,218,104, 52, 70, 55,104,208,160,198, 70,171,147,
+ 24,157,218,137, 81,210, 65, 4,221,192, 90, 30, 57,147,235,123, 88,255, 24,217,129,148,126,216,147,172, 8,171, 69, 58, 11,241,
+145,157,154, 3,133, 66, 97, 20,128,233,101,166, 60,162,111,223,190, 90, 66, 8,233,219,183,175, 22, 64, 68,217,251,159,148,153,
+172,190,118,150,147, 19, 24, 24,168, 41,143,100, 1,248, 61, 48, 48, 80, 19, 26, 26, 74, 66, 67, 67,137,191,191,191,170, 76,219,
+174, 10,173, 97,195,134, 9, 58,157,238,177, 1,148,203,229, 36, 39, 39,135, 36, 39, 39,147,184,184, 56,114,243,230, 77,146,150,
+150, 70,246,236,217, 99,117,113,113, 57, 78, 43,115,170, 73, 53,169, 38, 53, 90,127,169,209,122,246,245, 52,199,142, 29, 35,207,
+188,245,221,173, 91,183,162,103,206,156, 25, 93,141, 51,155, 48,123,246,236,242,168,215,226, 42, 30,254, 27, 19, 18, 18, 72, 68,
+ 68, 4, 9, 14, 14, 38,193,193,193,100,204,152, 49, 68,161, 80, 16,245,163,123,228, 92, 19,144,155,111,183, 38,132, 16,162,138,
+143, 33,231,154,128, 68,143,238, 72,238,220,185, 67,106,215,174, 29, 89,197,247, 31,189,122,245,106,225,142, 29, 59,242, 96,203,
+199,226, 3,104, 15, 96,165, 68, 34,217, 12, 91,119, 97, 93, 0,174, 65, 65, 65, 37, 90,173, 86, 61,108,216, 48, 53,128,128, 42,
+ 52,187, 5, 7, 7, 39,109,220,184,145, 20, 20, 20,144,146,146, 18,178,180, 83, 35, 66, 54,125, 69, 22,182,174,203,174, 95,191,
+222, 48,125,250,116,141,155,155,219, 49, 0,126,195,134, 13,179, 16, 66, 72,215,174, 93,243, 43, 18,115,113,113,233,155,152,152,
+ 56, 87,175,215,207,149,203,229,115, 75, 74, 74,230, 30, 57,116,104,110,159,230,141, 34, 20,223, 76, 14, 59, 52,242,245,176, 55,
+106,185, 14, 93,222,187,205,164,236, 89,227,134,205,238,216, 52, 94,191,228,227, 11,111,213,247,254,254, 69,206,182,167,167,103,
+174,193, 96, 32, 0,158,123, 37, 37, 37, 17,119,119,247,140,234, 52,220,220,220,102,127, 50, 34,220,250,102,221, 90, 36,105,197,
+ 28, 98, 62,179,147,152, 79,108, 33,143,190,155, 70, 6,249,120, 40,219, 11, 56, 51,237, 45,143,143,143,207,153,235,215,175, 63,
+101,180, 74, 75, 75, 43, 52, 90, 74,165, 50,218,104, 52, 70, 7, 6, 6,158,122,217,171,190,189, 16, 13,186, 73,184, 55, 99, 34,
+186,144,194,201, 61, 73, 95,103,126,218, 75,200,141, 0, 16, 5, 96,116, 13,255,143, 3, 96, 73,185,161,250,238,187,239, 8, 33,
+132, 4, 6, 6,106,240,114,131, 81,156, 27, 55,110,156, 50,110,220, 56, 75,147, 38, 77, 10, 58,117,234, 36,191,113,227, 6,185,
+120,241, 34, 57,113,226, 4,217,183,111, 31,185,119,239, 30,201,206,206, 38, 9, 9, 9,164,127,255,254,114, 0,221,104, 93, 72,
+161, 80,254,206, 84,224, 69,254,241,112,202,119,108,192,128, 1,204, 19, 59,232, 12, 64,220,186,117,235,194, 37, 75,150, 44,131,
+109, 46, 8, 38,132,139,183,122, 74,120,119,122, 74,120,119, 66,184,120,171, 44, 98,180, 97,209,162, 69, 11, 66, 67, 67,115, 1,
+ 72, 0,248, 84,244, 69,132,144, 46,238,238,238,200,200,200,128,179,179, 51,156,157,157,145,145,145, 1, 66, 8, 44, 4, 48, 19,
+192, 96, 50, 65,167,211, 65,207, 18,232, 88, 64,169, 86,195,199,199, 7, 38,147,169, 65, 37,229,111,241,246,219,111, 55, 8, 9,
+ 9, 41,252,226,139, 47,114, 96,203,149,217, 60,118,236,216, 51,191,255,254,123,136, 90,173, 46,137,139,139,211, 55,111,222,188,
+ 47, 0,159,196,196,196,119, 86,175, 94,141,136,136, 8, 84,241,208,105,222,191,127,255, 19,247,238,221,107, 48,122,244,104, 68,
+ 69, 69, 97,233,210,165, 40, 42, 42, 34, 0, 96, 48, 24,136,213,106, 53,117,236,216,209,180, 98,197,138,182, 93,187,118,189, 94,
+191,126,125, 46, 0,164,164,164, 60,170, 72,144, 97,152, 70,117,234,212,129,193, 96, 64, 97, 97, 33,238,221,187, 7, 71,103,103,
+196,230, 20,121,119, 95,190,190,248,203, 67,103,248, 35,218,134,184,125,250,122, 39,195,183,145, 81, 65, 77,253,188,189,141, 38,
+179, 79, 66,110,126,206,139,156, 84,129, 64,144, 81, 84, 84, 4,163,209, 8,157, 78, 7,165, 82,137,226,226, 98, 20, 21, 21, 33,
+ 39, 39, 7, 2,129, 32,169, 58, 13,167,146,146, 75, 41, 87, 47, 50,123,126,250, 14, 13, 44, 37,224,237, 95, 9,222,225,117,104,
+104, 44,196,207,115, 38, 58, 26,221, 61,231, 57, 57, 58,150,186,184,184,108, 0, 16, 88,157, 94, 88, 88, 24,138,139,139, 81, 92,
+ 92, 12,119,119,119,184,186,186,194,213,213, 21,114,185, 28, 10,133, 2, 74,165, 18, 65, 65, 65,104,209,162, 5,182,109,219,246,
+ 74, 46,238, 63,140, 72,182,192, 58,249,204,195, 28, 8,100, 50,212,119,117,168,211,198, 1,110, 85,252, 75, 79, 62,159,191,215,
+205,205, 45, 18,192,135, 0,100, 0, 62,116,115,115,139,228,243,249, 67, 0, 44, 4,176,163,134,197,248,118,222,188,121, 51, 18,
+ 19, 19,165,119,238,220,193, 23, 95,124,129,249,243,231,227,209,163, 71,107, 0,176,101,159,249,192,221,221,253, 24,135,195,249,
+ 5, 64, 63, 0,125,125,125,125, 95,171, 70,119,200,244,233,211,245,173, 90,181, 74,136,143,143, 31,114,245,234,213,214,211,166,
+ 77, 83,164,167,167, 35, 33, 33, 1,190,190,190,240,247,247,135, 90,173, 70,105,105, 41,134, 12, 25,226,236,228,228, 52,146, 86,
+227, 20, 10,229,239,108,178,158,241, 34,255,180,136, 86,133,219, 21,182,168,165, 82,233,188,232,232,232, 14,161,161,161, 60, 0,
+123, 0, 32,132,139,225, 67, 58,182,220,124,104,195,119,161, 7, 86,204, 9,237, 19, 26,180, 57,132,139,242, 81,108,199, 90,183,
+110,237, 26, 29, 29,221, 81, 36, 18,125, 84, 73, 33, 8, 0,184,186,186,194,217,217, 25, 46, 46, 46,112,117,117, 5,203,178, 80,
+107,245,208, 88, 1,149,222, 8,133, 66, 1, 85,217,182,218, 96,130, 70,163,121,252,191, 21,208,125,220,184,113,133,171, 87,175,
+ 46,200,205,205,253, 14, 64,243,136,136,136,193,171, 86,173,194,249,243,231,245,253,130, 27,186, 47,234,210,114, 65,211,220, 71,
+115,131,249, 24, 15,224,210,165, 75,151,208,177, 99, 71, 48, 12, 19, 94,145,160, 68, 34, 89,183,107,215, 46, 73, 92, 92, 28, 26,
+ 54,108, 24, 23, 30, 30,254,214,119,223,125,215, 64,166, 46,185, 2, 0,150,226,188,184, 41, 83,166,124,181,104,209,162,194,194,
+194, 66,147, 86,171,245, 26, 52,104, 16, 50, 50, 50,144,157,157,253,123, 37, 38, 51, 33, 38, 38,134, 40, 20, 10, 36, 39, 39, 35,
+ 38, 38, 70,242,213, 87, 95,181,181,114, 56,131,179,224,248, 94, 68,167,214,109, 71,183,111,137, 29,215,238, 8, 46, 63, 76,113,
+105, 93,183,150,235,237,204,220,122,102, 6, 73, 47,114,182, 85, 42,213,202, 5, 11, 22,168,213,106, 53,178,178,178,112,247,238,
+ 93,196,199,199, 35, 45, 45, 13, 75,151, 46, 85,151,148,148,172,170, 78,195, 79,204,251,236,251,105, 99, 25,222,253,223,129, 59,
+ 23, 1,173, 10,208,169, 97,120, 16,141, 95, 31,228, 97,237,254,131,194,244,140, 12,151,221,187,119,143, 11, 8, 8,136, 6, 16,
+ 84,149, 30, 33,182, 83,200,225,112,158, 53,161,224,112, 56, 42, 0,121, 50,153, 44,211,209,209, 49,147,195,225,228, 17, 66, 52,
+175,164, 37, 97,129, 9, 92, 46, 32,148,128,195,175,114,105,207,183,194,195,195,119,101,102,102,246, 73, 78, 78,238,176,106,213,
+170, 5, 98,177, 56,118,213,170, 85, 11,146,147,147, 59,100,102,102,246, 9, 15, 15,223, 5,224,221,154,124,127, 96, 96,224,148,
+185,115,231, 98,233,210,165,104,209,162, 5,130,130,130,180,243,230,205, 91, 9, 96, 14,128,143, 2, 3, 3,175, 76,153, 50,229,
+253,130,130, 2,159,172,172,172, 22,107,214,172,153,184,114,229,202, 54, 57, 57, 57,226,106,164, 59,247,238,221, 27, 39, 79,158,
+ 4,128, 92, 0,201,197,197,197,150,156,156, 28, 52,110,220, 24,109,219,182,133, 90,173,134, 90,173,134, 92, 46, 71,157, 58,117,
+192,178,108, 7, 90,149, 83, 40, 20,202,255,171,225,170,216,104,137,197, 98,215,176,176, 48,212,175, 95,223, 21,101,163,181,220,
+133,188, 89,159,142, 27, 33,117,136, 62, 5, 38,230, 28,194,187, 52,147,186, 11,121,179,202,254,133, 87,167, 78, 29, 81, 88, 88,
+ 24,100, 50, 89,173, 74,190, 60, 42, 47, 47, 15, 97, 97, 97,112,113,113,129,179,179, 51,194,194,194, 96, 50,153,160, 80,169,160,
+177, 2, 90, 51, 11,133, 66,129,146,194,124,104,173,128,197,209, 29,105,105,105,224,114,185, 41,149,104,250, 54,108,216,176, 48,
+ 54, 54,182, 16,192, 37, 0,147,230,207,159,143,153, 51,103,226,235,175,191,222, 37,205, 77,237,189,235,228, 97,247,223,230,125,
+224, 25, 36,100, 70, 0, 48,101,102,102,194,197,197, 5, 50,153,172, 66, 99,208,181,107,215, 86, 50,153, 12, 91,182,108, 33, 89,
+ 89, 89,157, 96, 27,194,159,194, 48, 54,179, 39,225, 64, 1, 96,101,116,116,116,187,175,190,250,234, 97,175, 94,189,248,237,219,
+183,199,194,133, 11, 1,224, 88, 69,154,114,185,252,143,119,223,125,215,120,225,194, 5, 60,120,240, 64,118,232,208,161,225, 11,
+ 23, 46,108,150,158,158, 46, 58,122,226,212, 27,219, 51,149,195,191,139,188, 44, 94,116, 58,234, 15, 15, 39, 89,211,122, 30,110,
+136, 73,207, 22, 88,185,184, 81,221, 25,109,199,231,142,235, 46,230,197,116, 17,113,114,187,139,121,209,109,248,220,177, 42,149,
+106,247,145, 35, 71, 78, 79,155, 54, 77, 93, 80, 80, 0, 71, 71, 71, 20, 23, 23,227,219,111,191, 85,199,196,196,236, 55, 26,141,
+ 71,171,211,181,178,164,149,127,221, 0, 32, 41,246,241,123, 38,150,224,134, 81,128, 1,147, 62, 70,112,227,198, 48, 26,141,104,
+222,188, 57, 51,127,254,124,153,179,179,243,231,213,154, 30,206,115,151,155,133, 97,152, 60, 66, 72,182, 90,173,206,146, 72, 36,
+233, 2,129, 32,189,164,164, 36,139, 16,146,255, 42,124, 22,225,224,179,142,205, 3, 1,145, 4,233,197,234,156,155,106,148, 84,
+244, 65, 71, 71,199,177,107,215,174, 21,111,218,180,201, 60,101,202, 20,195,196,137, 19,249, 58,157,206,107,226,196,137,252, 41,
+ 83,166, 24, 54,109,218,100, 94,187,118,173,216,193,193, 97,232,139, 20,196,108, 54, 35, 54, 54,246,187, 71,143, 30,201, 96,155,
+110,228,227,121,243,230, 69, 36, 38, 38,138, 87,175, 94,141,125,251,246, 97,223,190,125, 24, 60,120, 48,166, 78,157,138,185,115,
+231, 86, 37, 39, 13, 13, 13, 13,115,119,119,199,197,139, 23,115, 0,164, 3,104,229,224,224,224, 56,120,240, 96,244,233,211, 7,
+122,189, 30, 38,147,233,177,209,226,114,185,112,113,113,113,167,117, 32,133, 66,161,252,229, 38,235, 41,179,197, 3,128,242, 80,
+221,128, 1, 3,152,170, 30,140,214,210, 2,200, 53, 90,164, 41,180,200, 40,101,159,250, 27,203,178, 85,126,123, 78, 78,206,209,
+107,215,174,141, 13, 11, 11,227,229,228,216,122,196,194,194,194,160,213,106,145,115,231, 58, 52, 44, 32,107, 24, 2,141, 70,131,
+210,248,219,112, 8,237, 0,247,254,163,177,124,245,106, 67,113,113,241, 79, 21,105, 10,133, 66,126,237,218,181, 11, 83, 82, 82,
+ 44, 0, 74,156,157,157,123, 7, 4, 4, 32, 42, 42, 10, 0,118, 16,224,123,196, 92, 0, 46, 30, 0,177,133, 84, 28,234,212,169,
+131,130,130, 2,168,213,234,168,138, 52,175, 93,187,150,104, 54,155,155, 15, 26, 52,136,217,186,117,235, 30,165, 82,249, 53,128,
+187, 6, 22,220, 59,153,249,208, 88, 33, 6,240,186,171,171,235, 39,115,231,206,125,109,202,148, 41, 56,114,228, 8, 34, 35, 35,
+ 77,176,229,130, 93,171, 64, 86,145,156,156,252,243,244,233,211,219,115, 56,156, 73,103,206,156,177, 4, 5, 5, 41, 77, 38,147,
+181, 81,112, 48,231,235,249,223, 8, 62,156, 52,193,165, 88,139,251,125, 26,249,118,100, 24,224,126,118, 65,250, 35, 53,138,171,
+ 58,166, 93,133,220, 99, 67, 58,133,118, 29, 27, 62,208, 65,214,176, 41, 52,247,174,251,252,188,247,196,114, 73, 76,226,128,139,
+ 5, 5,131,143, 28, 57, 50, 60, 42, 42,234, 67,163,209, 88, 95, 36, 18, 37,201,229,242, 21,106,181,186, 90,147,197,229,114,251,
+ 27,124,107,187,202, 75, 74, 32, 46,139, 68, 41,205, 44,138, 12, 22, 60,112, 9,194,200,218,254,143,187, 65,243,242,242,224,227,
+227,195, 88,173,214,129, 85,105, 70, 70, 70, 98,192,128, 1,229,198, 19, 12,195,128, 97,152,162,224,224,224,124,145, 72, 84, 44,
+ 16, 8,148,223,127,255,189, 94,175,215,131,199,227,137,173, 86, 43,247,101,174,246,182, 82,120,137, 8,179,110,226,160, 30,189,
+ 90, 52,109, 76, 46,221,188,195,148,106,245,191, 86, 17, 5, 92, 19, 24, 24,200, 43, 41, 41, 57, 10,224,129,217,108,254,109,207,
+158, 61,226,119,222,121, 71,191,119,239,222, 81, 0, 26, 44, 91,182,108,184, 90,173,174,209,146, 10,143, 30, 61, 90,179,104,209,
+162, 25,179,103,207,198,182,109,219,166, 60,122,244,104,102, 89,164,107,240,220,185,115,241,253,247,223, 99,219,182,109,236,131,
+ 7, 15, 78,176, 44,251,104,218,180,105,161,222,222,222, 69,185,185,185,143,170,144,109,221,183,111, 95,195,149, 43, 87,132, 42,
+149,234, 50,128, 79, 38, 79,158, 60,174, 93,187,118,202,240,240,112,135,146,146, 18,185, 84, 42, 21,110,220,184,209,149,199,227,
+ 65,163,209,128, 97, 24,168, 84, 42, 35,173, 7, 41, 20,202,223,149,202,188,200, 63,132, 74,159, 13,188,138,118, 80,171,213,230,
+103,100,100, 52,206,206,206,182, 0,176, 0, 64,177,209,178,120,209,198, 3,155,134,182, 15,148,229,154,205, 56,116, 51, 78, 91,
+108,180,148, 39,191, 91,178,179,179, 85,233,233,233,142, 58,157, 78, 93,201,119,253,190,110,221, 58,221,133, 11, 23, 28,147,147,
+147, 97,181, 90,209,170, 85, 43, 36, 36, 36,160,244, 65, 44,100,141, 91, 65,214,109, 0,226,162,111, 34, 38,242, 44, 82,213, 70,
+203,195, 57,139, 20,106,141,102,174,201,100, 58, 84,145, 32,159,207, 47, 1, 64, 8, 33, 86, 0, 80, 42,149,119,213,106,117, 23,
+111,111,111,220,191,127, 95,166,177, 98,234,240, 89,203, 87, 17, 66,172, 2,219,104,174, 79,195,195,195,113,235,214, 45, 0,184,
+ 85,145,166, 82,169,156, 50,126,252,248, 11, 91,182,108,225, 37, 39, 39,247,217,180,105, 83,159,135, 15, 31, 18,166, 36,195,122,
+ 69,203, 71,131,136,169,109,214,215, 9,142, 28, 48, 96, 0,124,125,125,177,113,227, 70,172, 88,177,194,252,193, 7, 31, 36,174,
+ 88,177,162, 77, 65, 65,193,111,149,236,191, 66, 46,151,159,114,119,119,255,176, 89,179,102, 42,141, 70,131,226,226, 98,228,228,
+228,192,205,221,157, 99, 1,167,163,167,139,203,111, 71,243, 84, 50,222,169, 63,112, 61, 43,183,202,104, 86,123, 62,247,221,161,
+ 93, 91,118,253,104,246, 44, 7, 92, 57, 4,102,252, 92,144, 77, 11,240,241,152,225,142,122,195,111,221, 52,119,210,222,137, 86,
+ 42,183, 43,149,202,125, 53,188, 88,250,118,236,216,113,215,162, 69,139, 36, 95, 46, 93,132,101,141,107,193, 82, 92,140, 66,131,
+ 21, 69, 6, 11,148,165, 15,112,255,126, 28,220,221, 61,144,154,154, 10,189, 94,143,248,248,120,194,229,114,143, 86, 23,209, 41,
+231,137,238, 66,185, 72, 36, 42,230,243,249,249, 60, 30,175, 36, 57, 57, 89,163,215,235,193,225,112,100, 86,171, 85, 98, 71, 89,
+107,123,120,120, 76,131,109, 50,209, 35,170,162,162,149, 97,124,184,128,135,238,117, 60,220,223,152, 51,241, 29,143, 0, 63, 47,
+121,114, 98,146,249,167,211, 87,139,244,134,202, 7,107, 0, 56, 86, 82, 82,242, 56, 34,185,119,239,222,143,247,238,221, 59, 14,
+192,102,216,214,221, 58, 43,151,203,215,191,192,205, 55,103,255,254,253, 51,102,207,158, 13,137, 68,242,120,242, 84,137, 68, 34,
+ 6,128,157, 59,119,226,254,253,251,237, 80,150,175,197,178,236,174,220,220,220,234, 52, 27,132,132,132, 36, 31, 56,112, 64, 8,
+192,111,242,228,201, 29, 86,173, 90,133, 49, 99,198, 20,198,197,197,181, 7,144, 2,160,193,164, 73,147,110,108,219,182,205,149,
+101, 89,148,150,150,194,104, 52,166,208,170,156, 66,161, 80,179,245,151, 16, 6, 32, 6,182,249,179,250, 3, 56, 14, 91, 90, 71,
+165,248,151,185,179,211, 0, 6,149, 63, 31, 43, 73,134, 7,108, 35,178, 78, 1,248, 5,128,119,101,162,238,238,238,159, 71, 68,
+ 68,152,179,178,178, 72, 94, 94, 30,217,183,111, 31,249,116,108,132,245,245,134,126,108, 67, 63,111,141,167,167,103,130,175,135,
+219,175, 45,165,248, 20, 64,109, 59,118, 44,226,225,195,135, 19, 34, 34, 34,198,150,125,239,216, 93,187,118,169,207,156, 57,163,
+230,114,185,199, 96,155,218,161,220, 80,190, 59,112,224, 64,181,193, 96, 80, 7, 7, 7,151,192,150,184, 95, 25,195,187,119,239,
+ 94,122,242,228, 73, 98,181, 90,159,155,163,168,176,176,144, 68, 70, 70,146, 78,157, 58,201, 1,188,243,218,107,175, 69, 93,189,
+122, 53,170,115,231,206,251,171, 43,176,135,135,199,172, 59,119,238,220, 74, 75, 75,139, 62,126,252,120,244,111,191,253, 22, 61,
+105,210,164,187,161,161,161,186,196,196, 68,214, 98,177,144, 59,183,111,147,224, 70,141, 52, 0,234, 84,166,211, 83,194,187,161,
+220,184,128,232, 23,142, 33,250, 33,254, 4, 0, 81, 45,255,156,228, 79,233, 69, 18, 62,124,131,244, 16,115,175,189,200,149,226,
+230,230,118,250,214,173, 91, 68,165, 82,145,123,247,238,145,119, 7,244, 33,215,198,245, 34,167,250, 4,146,109,221,234,145,229,
+189, 67, 73,159,110, 93,200,186,117,235,200,129, 3, 7,200,172, 89,179, 88, 15, 15, 15, 21,170,200,209,242,241,241, 57,179,103,
+207,158,104, 0,209, 92, 46, 55, 90,169, 84, 70,171, 84,170,163,153,153,153,107,131,131,131,103, 52,107,214,108, 84,227,198,141,
+123,246,168, 87,103,198,107,142,162,132, 94, 78,226,164, 70, 14,210,229,120,126,222,171,199, 56, 3,117, 26, 54,104,160,186,120,
+241, 34,107, 48, 24,200,229,203,151,217, 38,141,130,244,203,222,238,187, 63,117,227,146,253,250,147, 91, 79,107, 15,111,184,186,
+247,189, 1,177,221,165,156,173, 29,100,143,167,227,120, 81, 70, 0, 56,132, 63, 71, 29, 70, 0, 56,140,170, 71, 33,114, 0,108,
+ 94,184,112,225,147, 35, 13, 1,128, 19, 26, 26, 26, 77, 8,137, 14, 13, 13,141,174,105, 65,164, 82,233,180, 35, 71,142,204, 11,
+ 8, 8, 88, 26, 30, 30,190, 81, 46,151, 31, 31, 53,106, 84, 44,108,131, 65, 24,216, 86, 71, 24, 88,187,118,237,194,152,152, 24,
+ 18, 21, 21, 69,134, 13, 27,166, 18, 8, 4,163,105, 53, 78,161, 80, 40,127, 9, 19, 42,249, 89, 37,139, 98, 99, 99,203,231,208,
+154, 92,149,248,204,153, 51,163,111,221,186, 21, 13,219, 44,241, 85,194,227,241, 14,126,240,193, 7,196,219,219, 91,237,229,229,
+117,144,207,229,142,243,151, 32, 12, 47, 54,212,189,203,246,237,219, 7,175, 89,179,166, 63,128,118, 0,248,181,106,213,202,201,
+203,203, 83, 95,189,122, 85,221,169, 83, 39,181,135,135, 71, 65, 72, 72,136,122,217,178,101,106,179,217,172,158, 54,109,154, 26,
+207,207,247, 85, 17, 98, 0, 31, 10,133,194,131, 77,154, 52,137,157, 51,168,167,121,233,212,113, 36, 34,208, 83, 13, 96, 13,128,
+ 15, 0,184, 0,224, 15, 31, 62,252, 92,124,124,252,233,144,144,144,255, 99,239,186,195,162, 58,214,247,123,206,158,237,187,176,
+212,101,233, 42, 69, 69, 65,197, 26, 11,246,142,189,196, 30,141,229, 26,189, 26, 19, 53,182, 32, 24, 53,106, 98,140, 73, 76,212,
+ 24, 81,209,136, 5, 75,176,163, 70, 52, 86, 44, 8,138,130, 32, 77,202,210,150,133,101,217, 62,191, 63, 20, 46, 49,148,197, 36,
+191,155,228,238,251, 60,251,176,236,206,121,119,102,206,204, 57,239,249,230,155,239,219, 97, 6,175, 75,235,214,173, 47, 29, 60,
+120, 48, 46, 42, 42,234,238,146, 37, 75,226,236,237,237,179,147,147,147, 77,149,149,149,164,164,164,132, 40, 20, 10,114,234,212,
+ 41,163,157,157,221,215,117, 54,156,199,202, 37,231,247,215, 26,194, 33,107,229,100,210,141, 75,191,120,147,145, 34, 18,137,138,
+139,138,138, 72, 94, 94, 30, 73, 77, 77, 37, 71,143, 30, 37,131,186,118, 34,145,255, 26, 77,246,191, 59,130,124, 54,168, 19,233,
+108,197, 87,201,172,196,113, 86, 86, 86,114,115,118, 29,202,100,178, 11, 26,141,166, 58,124,131,155,155,219,221, 22, 45, 90, 68,
+ 5, 4, 4,124,113,242,228,201,133, 91,182,108, 25,209,187,169,231, 71,235, 7,118, 85, 87,196, 28, 38,101,135,190, 33,203,218,
+251, 86,190, 18,243,181,194,213,222, 46,226,202,207, 63,155,170,196,175,193, 96, 32,199,143, 29, 35,227, 7,247,143, 47, 61,251,
+227,247, 87, 87,207, 63,248, 65,123,223,227,221,248,152, 80,159, 96,171,126, 20, 17,195, 62,200,154,222, 54,196,195, 46,183,135,
+132,254,166,139,213,175,210, 75,141,247,245,245, 77, 37,132,228,182,108,217, 50, 21,192,254,150, 45, 91,214,252,127,122, 29,180,
+213,193, 73, 67,137,255,220,133, 0, 0, 32, 0, 73, 68, 65, 84, 67, 67,201,171,249, 65, 3, 8, 89,183,110,221, 93, 66,200, 93,
+ 31, 31,159,107, 0,208, 86, 4,135,158, 18,250,251,225, 94, 78, 69, 61, 37,244,247,109, 69,181,167,140,242,228,160,121, 15, 71,
+225,213, 17, 62,206,101,189, 92, 37,177,251,195,127,216, 52,100,200,144, 93, 0,190, 6,240,137,189,189,253,213, 9, 19, 38, 60,
+218,183,111,223,163,205,155, 55,235,146,147,147,201,140, 25, 51, 84, 60, 30,239, 19,203,117,208, 2, 11, 44,176,224, 79, 67, 85,
+100,120,231,198, 8,173, 97, 31,125,244,209, 93, 66, 72, 85, 44,173, 41,181,148, 25,190,114,229,202,187,132,144,170,232,240,175,
+ 7, 48,171, 45,160, 89,232,182,109,219, 8,143,199,251,254, 13, 27, 83,147, 83, 54,114,228,200, 46, 74,165,178,163,147,147, 83,
+199, 87,150, 43,119, 7, 7,135,212, 3, 7, 14,148,171,213,234,114, 66, 72,185,193, 96, 40,143,139,139, 43,239,213,171, 87,121,
+141,167,254,134,234,249, 43,172,144,225,218,157, 85,239,146, 21, 50, 92,123,237,171,201,187,119,239, 62,147,150,150,246,147,181,
+181,245, 82, 51, 57,221, 29, 29, 29, 67,236,236,236,206, 57, 56, 56,172,176,179,179,203,213,233,116,164,164,164,132, 60,125,250,
+148,252,252,243,207,228,198,141, 27,196,206,206, 46,187,174,122,246, 21, 48, 55, 75, 54,205, 35,166,221,235,136,246,171,229, 4,
+ 0, 81,108, 89, 70, 10,191, 13, 35,119,102, 13, 36,189,248,172,235,111,208,159,176,177,177,217,121,236,216, 49, 83, 74, 74, 10,
+137,142,142, 38,167, 78,157, 34, 11, 22, 44, 32,205, 93,156, 53, 93,184,116,126, 15, 30,115,238, 77, 2,150,106, 52,154,187, 74,
+165,242,110,121,121,249, 93, 63, 63,191,187,157, 58,117,138,234,210,165,203, 23,135, 15, 31, 94,184,126,253,250, 17,125,173,120,
+ 79, 43, 98, 14, 19,178,100, 48, 33,243,186,147,103, 51,123,145, 62, 2,230, 65,157,156, 78, 78,217, 85,209,218, 85, 42, 21,137,
+141,141, 37,151, 46, 93, 34, 50, 7, 7,101,144,128, 53,187, 27, 15, 61,187, 89,195,198,220,122,246,150,208,225, 55,191,253,212,
+168, 62,179,143,252, 56,109,176,161,151, 13,189,173, 70,185, 72, 66, 72,238,152, 49, 99,158, 19, 66,114,143, 30, 61,154, 69, 8,
+201, 29, 61,122,244,115, 66, 72, 46,128,131,181,113,190, 22,156,116,247, 43,145, 53, 47, 52, 52,244, 46, 33,228,110,104,104,232,
+ 93,224,101, 16,213,158, 18,122,207,173, 29,159,153, 52,167,246,144,195, 51,134, 26,123, 74,232, 61,181,214,211,134,249,233,222,
+238, 45, 68,123,110, 63, 57,182, 96,146,177,187,204,250,138,175,175,239,103, 11, 23, 46,140,186,113,227,198, 67,163,209,248, 40,
+ 53, 53,245,209,215, 95,127,253,232,173,183,222,186,102,111,111, 31,207,229,114,223,107,232, 28,253, 65,176,112, 90, 56, 45,156,
+ 22, 78, 11, 94, 55, 48,213,243,221, 79, 27, 55,110, 20, 17, 66, 62, 24, 59,118, 44, 54,108,216, 48,190,117,235,214, 19, 92, 93,
+ 93, 29, 1, 32, 39, 39,167, 34, 33, 33, 65, 57,118,236, 88,132,132,132, 96,211,166, 77, 95,224,165, 47,203,255, 39,242,142, 31,
+ 63,238, 54,127,254,124,249,250,245,235, 77, 51,102,204,104, 9, 32,161,176,176,176,249,164, 73,147,230, 49, 12, 51,214,211,211,
+ 51, 32, 55, 55,183, 64,173, 86,239, 7,176, 3, 13,172,153,214, 5, 30, 13, 99,135, 38,206, 56, 71,195, 88,227,227,193, 33, 33,
+ 33,111,143, 30, 61, 90,183,101,203, 22,131, 82,169, 60,105, 38, 93, 86, 65, 65,193,154,170,127,236,236,236,100, 15, 30, 60,120,
+ 79, 42,149,210,169,169,169,208,104, 52, 72, 73, 73, 49,225,229,210, 84,173, 40, 55,144,173,223, 29,189,208,226,131,201,193,214,
+ 21, 73,247,193, 97,177,160,103,115,145,119,243, 28,118,199, 38, 41, 85, 58,124,245, 38,237, 84, 40, 20,159, 47, 88,176, 96,210,
+210,165, 75,249,158,158,158,212,245,235,215,113,232,208, 33,141, 92, 46, 31, 4,224,202,127, 66, 63, 53, 14, 38,147, 9, 92, 46,
+ 23, 0,176,108,217, 50,208, 52,205,150,203,229, 92,138,162,120, 20, 69, 9, 41,138, 98,233,211, 30,193,164, 44, 65,126,137, 2,
+ 89,249,138,122,249,140, 38,211,161, 91,183,110, 45,106,215,174, 29,125,231,206, 29, 20, 20, 20, 32, 37, 37,133, 24, 9, 57, 24,
+171, 54,190,116, 74,212,152, 95, 63,161,157,253,200,182,182, 60,154, 27, 30,130, 32, 45,205,218,110,194, 24,188,140,165, 5, 0,
+187, 41,138,226, 0, 40,242,243,243,235,253,248,241, 99,129,159,159,159, 58, 41, 41,233, 12, 69, 81,174, 0,246,212,198, 41, 16,
+ 8, 10, 1, 20, 30, 61,122, 20, 0,102,225,101,231,181, 95,189,122,117,110,108,108, 44, 66, 67, 67,243, 1,108, 3, 0,177,173,
+253,240, 0, 9,135,226,238, 13,197, 91, 26,208, 95,153, 72,173, 86, 87,177,212,169, 79,107, 17, 13,246, 15, 31,163,163,172, 5,
+205, 53,232,252,195,194,194, 98,203,203,203, 53,145,145,145,218,233,211,167,179,146,147,147,111, 3,184, 10,224, 40, 94,249, 88,
+ 90, 96,129, 5, 22, 88,240,167,226,117, 11, 86,131, 62, 90,175,171,214, 13, 0,190,123,242,228, 73,117, 82,233, 39, 79,158,220,
+ 5,176, 29, 47,163,193, 15,107,132,226, 93,245,202,162,181,227, 13, 27,243, 58, 39, 63, 48, 48, 80,240,248,241, 99, 14,106, 79,
+226, 72,189, 1,231,111, 80, 91,174, 67, 95, 95,223, 47,245,122,125,212,246,237,219, 15,179, 88,172, 73,191, 67,237,123,250,248,
+248,148, 28, 56,112,192, 20, 29, 29, 77, 86,173, 90,101,116,118,118, 46,193,111,125,180,126,197, 25,196,101, 29, 89,220,210, 85,
+ 25, 55,165, 59,121,182,112, 56,185, 58,185, 23,153,237, 42, 86, 6,241, 89,135,126,231, 83,137,143, 68, 34,217, 45, 16, 8,148,
+214,214,214, 23, 0,116,253, 61,231,200,222,222,126,159, 76, 38,187, 80,243,229,228,228, 20,229,232,232,248,141,131,131,195, 42,
+ 27, 27,155, 57, 94,124,238,150,133,205, 93, 42,227, 71,250,145,152,110,142,100,178, 3,247,245,165,195,215,235,233,236,229,229,
+ 85, 20, 17, 17, 97,250,233,167,159,200,242,229,203, 77, 77,154, 52, 81,162, 30,191,182,122, 45, 90, 54,172, 67, 71, 70,119, 49,
+229, 15,117, 37, 27, 90, 90,153,122,219,178,234,218,161, 56,249,149, 0,158,214, 16,167,183,183,247,118, 66, 72,248,218,181,107,
+195,241,159, 92,160,253,195,194,194, 86, 19, 66, 86,135,133,133,173, 6, 48, 16, 0,130, 36,116,196,254, 17, 29,140, 57, 67, 92,
+200,167, 45,197,198, 32, 9, 29, 81,171, 37,211,142, 57,126, 98,230, 80, 83,238,204,110, 36,196, 71,100,236, 98,199,187,200,229,
+114, 23,226,165,197,185, 19, 0,174,229,169,217,194,105,225,180,112, 90, 44, 90,127, 57,225,101, 22,100,118,118,118,187,155, 53,
+107,118,216,211,211,243,176, 88, 44,254, 2, 47,157,230, 27,123, 34,188,214,173, 91,167,148, 72, 36,109,255,192,147, 43, 5,224,
+138,223, 38,206,253,195, 6,204, 26,103,204, 79, 94, 58,254,193, 26,103,204,175,241,113,167,150, 45, 91,126,138,151,209,188,127,
+239, 32,244,180,179,179,251,218,206,206, 46,251,149,111,150,167, 57,156, 29, 88,172, 73,189,249,172,235, 93,185,116, 94,111, 62,
+243, 75, 71, 22,107,226,223,116, 2,214,183,217,162, 46, 78, 55, 7, 7,135, 45,118,118,118, 57, 14, 14, 14, 95, 55, 82,100,253,
+138,179,173, 0,206,125,108, 88,199,187, 90, 81,170, 62, 18,214,209, 14,194,186, 55,117, 52,162,237,129,161,161,161,239, 16, 66,
+222,113,113,113, 25, 91, 67,248, 7,132,132,132, 4, 19, 66,130,171, 34,192,119, 18, 66,218,203,134,117,160,155, 53,165,232,101,
+195, 58,208, 73, 8,105, 93,245,236,109,195, 58,212,205,154, 82, 4, 89,211, 7, 60,120,104, 98,185,152, 91, 56, 45,156, 22, 78,
+139,208,250,103, 8, 45,203,128,177,112, 90, 56, 45,156, 22, 78, 11,167,133,211,194,105, 17, 90,181, 11,171,154,175,234, 21, 54,
+198,210, 55, 22, 88, 96,129, 5, 22, 88, 96,129, 5,191, 11,117, 6, 44,165,234, 81,165,141,113,108,127, 19,101, 27, 99,225,180,
+112, 90, 56, 45,156, 22, 78, 11,167,133,243,127,142,179, 33,238,255,239,141,117,127,107, 88,204,170, 22, 78, 11,167,133,211,194,
+105,225,180,112, 90, 56,255,103, 65, 91,186,192, 2, 11, 44,176,192, 2, 11, 44,176,224,119, 33,240,213,223,215, 3,151,214,238,
+163,197,116, 90,155,111, 48, 24,164, 0,192, 48,140, 92,127,123,149,115,125,236,108,160,175,225,101,250, 29, 48,192, 44, 3,112,
+161, 22,206, 11, 6,131,193,246, 21,103,137,254,246,170,129,245,114,118, 90,123,174,102,121,195,237, 85,253, 95, 47, 67, 0, 22,
+187,211,218,156,215,234,234, 98,110,175, 80,248, 85, 76,172, 63,173,158,127, 23,206,255,101,176, 59,175,205,215,235, 95,142, 35,
+ 54,155,145,235,110,213, 63,142, 56,157,215,230,212, 44,175,191,181,202,169, 62, 78,161,128, 87,228,237,234,248, 69,125,156,169,
+ 57,133, 31,168, 42, 42,237,235,227,108,236,220,116,119,118,238,107,124, 53, 55, 89,192,172,236,220,220, 11,127,177,177,212, 1,
+192, 42, 0,214, 53, 62,139, 7,240,190,101, 84, 90, 96,129, 5,127, 51,161,117, 15, 47,243, 28,238,124, 37,182,118,214, 41,180,
+ 12, 6,131,244,238,177,213, 80,105,128,190, 83,215, 74,189, 70,238,248, 77,162,100, 67,101, 9, 87,145, 24, 25,192,210, 43,109,
+ 29, 25,157,117, 78, 78, 14, 5, 0, 20, 69,125, 15,192,163, 22, 78,219,187,199, 86,163, 66, 11, 4, 77, 8,179,245, 0,172, 11,
+ 56,156, 15, 5, 34, 81,111,181, 90,221, 26, 0, 4, 2, 65,162, 90,165,186,236,168,211,109,126,189,124, 93, 45,171, 89,215, 62,
+ 83,214, 74, 91,142,220,177,192,104, 50,113, 95,220,217, 30, 84, 89,152,204,176, 13,154,109, 43,128, 51,171,107, 17, 85,117,240,
+253,231,119,199, 45,183,103, 3,125,184,124,126, 91, 27, 91,219, 30, 38, 66,252, 76, 38, 19,101, 52, 24, 30, 41, 75, 75,175,154,
+ 12,134, 7, 6,173,202,254,238,201, 79, 77,245,213,243,245,182,140, 3,152, 99,192, 88,145, 88,220,155,197,102,119, 5, 0,163,
+ 94,127, 93, 85, 94,126,121, 20,112,196,156,182,155,219, 63,111, 90,254,127, 13,122,189, 65,154,118,110, 53, 52,122, 32,112,204,
+167,210, 54,147,246, 30, 0, 0,173,252,129, 83,121,242,201,206, 0, 32,242, 14,190,197,147, 5,230, 3, 0,147,145, 43,125, 26,
+189, 18, 26, 61,224, 23, 28, 38,109,136,115,122,200, 33,251,165,179, 71,243, 0,224,252,209,111,154, 95,138,250,110, 48, 0,244,
+ 25, 61,247,204,128, 49,243,159, 2,192,166,157, 81,246, 7, 63, 29, 95, 47,167,121,115,179,148, 83,154, 28,237,163, 85,230,218,
+184,139, 24, 89,114,114, 50, 13, 0, 46, 46, 46,102,205, 77, 55, 64,146, 11,204,163, 89,172, 30,222, 62, 62,129, 0, 72,234,179,
+103,247,140, 6,195, 53,103, 96,219, 31, 60,150, 22, 16,242,235,224,172, 20, 69, 89, 6,164, 5, 22, 88,240,119,195,169, 87,226,
+234,212,111, 30,102,235, 58, 66,165, 1,174,164, 0, 61,187,180,193,236, 73, 67,196, 53,191, 59,178, 35,204, 35,249,206,137,150,
+ 63,236,221, 76,183,105,211, 6,105,105,105,102,213,162, 66, 11,252,156, 12, 64,241,216,170, 68, 36,122,182,229,179,207,172,251,
+247,239,207,184,184,184,128,162, 40,228,229,229,117,137,137,137,233,176,104,209,162,127, 65,241,184,164, 66,139,178,159,147, 27,
+230,173,170,107,235,230, 77,176,106,254,120, 9, 0,172,152,186,173,195,157, 39,249,118,207,158, 61,235,251,209, 71, 31, 21,177,
+ 46, 95,254,206, 1, 8,207, 7,178,204,169,231,190,159,110,241, 37,185, 63,122, 77,158, 63,255,168,143,143,143,216,211,211,147,
+178,178,178, 2,139,197, 66, 73, 73,137, 71, 66, 66,194,224,219,183,111,171, 98,174,124,207,141,187, 61, 60, 85,206,239, 92,105,
+ 86,219,213, 57,252,243, 86, 86,137, 83, 70,141,114, 27, 63,126, 60,223,219,219, 27, 0,240,236,217, 51,223, 35, 71,142, 76, 56,
+122,244,104, 8,212, 57,134, 10, 45, 42, 27,106,123, 53, 39, 0, 62,208,213, 70, 42,157,204, 98,179, 91, 27, 12, 6,215, 87,214,
+134, 23, 70,189, 62, 81, 33,151,239,127,189,188, 5,191,133, 70, 15, 60,206, 5,250,245, 8,196,148,209,253, 68, 0,240,209,219,
+235,186,100, 60, 79,225,104,181, 90, 52,111,225,215,237,147, 79,191, 56, 7,154, 70, 68, 84, 76,117,121,115, 56,227, 31,167, 97,
+245, 39, 91,144,243,240, 72, 23, 99,105, 74,239, 50,101, 41, 11, 0,172, 37,146,209, 71, 34,127,188,236, 18, 48,246,102, 74,161,
+206, 44,206,250,230,230,217,200,175,157,179, 19, 46,183,250,246,252,110,182,135,135, 7, 30, 62,124,216,184,185, 89,250,196,202,
+228,236,252,104,243,146, 37,178,160,160, 32,136,197, 98, 48, 12, 3,131,193,208,239,218,181,107,253, 86,175, 94, 61, 23,165, 79,
+ 84,230,206, 77, 51,176,153,162,168,222,211,103, 47,112, 30, 50, 98, 44, 70, 15,234, 86,111, 97,157, 86,203,226,112,185, 70,203,
+104,181,192, 2, 11,254, 66,168,178, 94,213,220,121,184,179, 94,161,197, 48,140,188,255,180,245,210, 30,157,253,113,231,193,211,
+210,244,204,220,242,170,239,138, 19,143, 52, 31,209,205,181, 85,108,236, 21,104, 52, 26, 92,191,126, 29, 15, 30, 60,192,243,231,
+207, 49,103,206, 28,205,171,165,195,218, 56, 75,130, 38,132,217,162, 52, 89,236,203,125,210, 52, 38, 41,137, 85, 89, 89,137,216,
+216, 88,148,148,148,128,203,229,194,205,205, 13, 3, 6, 12, 96,146,146,146,236,250,246, 31, 36, 9, 26, 52, 49, 13, 18,223,114,
+134, 97, 74,234,202, 35,194, 48,140,188,239,212,181,210, 86,190, 77,240, 44, 61,167,116,213,167, 63,148,155, 76,132, 73,125,158,
+161,187,114,229, 10, 2, 3, 3,113,225,194, 5,251,226,226,226,143,183,109,219,182,138,189,241,219,173,122,109,209, 98,212,205,
+ 87, 18, 52, 33,204,214, 94,126,216,243,210,217,227,156,196,196, 68,206,246,237,219, 81, 84, 84, 4, 46,151, 11, 27, 27, 27,200,
+100, 50, 52,111,222,156, 90,177, 98,133, 56, 56, 56, 17,255,158, 53,214, 83,231, 53,243, 73, 93,245,172,110,123,121,134,208, 65,
+121,222, 59,234,212, 41,186,123,247,238,191,122,108,111,214,172, 25, 6, 14, 28,200,159, 60,121,178,247,248, 9,147, 76, 65, 67,
+167, 63,131,216,179,162, 65, 78, 85,150,192,190,226,134, 75,191, 9, 19, 78,134,133,133,217,200,100, 50,136, 68, 34, 0, 64,105,
+105,169, 91,122,122,122,151,144,144,144, 49,183,226, 35,153,160,224,172, 28,136,220,213,245,245,231,255, 42,216,108, 70, 94,101,
+ 69,178, 18, 9, 74,178,178,243, 85, 0,160,213,106,161,213,106,161,209,104,240,222,220, 57,172, 89, 99, 58,249,120,246, 88,112,
+255,249,139,252, 98,191,152,155,118, 85,199,234, 27,224,100, 42,158, 43, 20,153, 23,103,173, 94,178, 68,230,228,244,159, 21,193,
+136,125,251, 88,197,197,197,253, 86,175, 94,221,138, 8,123, 41,252,130,195,108,234,227,172,111,110, 42,158,158,106,250,201,252,
+129,109,119,124, 26, 13,163,209,136, 27, 55,110, 32, 54, 54, 22, 95,124,241, 5, 57,115,230, 76,169,181, 72, 52, 11,245,206,205,
+ 39, 86,221,157,243,188, 54,110, 60, 74,241,120, 60,156, 56,113, 2, 73, 73, 73,160,105, 26,109,218,180,193,148, 41, 83,208,175,
+ 95, 63,217,236,217,115, 72,208,160,183, 83, 33,105, 81,246, 59,199, 18, 13, 96,193,242,213, 27,157,167,206,156,135, 77,159,172,
+104, 80,104, 89, 68,150, 5, 22, 88,240, 23,182,102,213, 25,226, 1,209,209,209,228,213,171, 39, 0, 16,128,110, 54,114,199,193,
+195,113,166, 83,205, 70,238, 56, 72, 0,154, 0,180, 53,208,164, 93,187,118,122,133, 66, 65,110,223,190, 77,222,123,239, 61,213,
+214,173, 91, 47,159, 58,117,234,136, 65,167,219,229,226,236,252, 57,169,195,193,158, 0,180, 39, 32, 17, 10,133, 5,153,153,153,
+228,244,233,211, 36, 52, 52,148,236,223,191,159,156, 57,115,134,196,196,196,144, 51,103,206,144,131, 7, 15,146,248,248,120,242,
+244,233, 83, 34, 18,137, 10, 60, 1, 73, 61,156, 44, 2,176,154,143,220,190,248,232, 29,125, 88,139,145, 59, 22, 17,128,101, 11,
+180,108,215,174,157,241,200,145, 35, 36, 34, 34,130,236,221,187,151,196,199,199,147,194,194, 66,194,240, 68, 5, 85,199,213, 85,
+ 79, 2,208,174,174,174, 5, 10,133,130,184,187,187, 19, 46,151, 75,156,156,156, 72,243,230,205, 73,151, 46, 93,200,224,193,131,
+201,164, 73,147,200,199, 31,127, 76, 20, 10, 5,225,243,249,249, 85,199,213,197, 25, 8, 8, 68, 34, 81,230,221,187,119, 73, 93,
+ 80,171,213,164,176,176,144,156, 59,119,142,136, 68,162,204, 64, 64, 80, 31,167, 0,104, 31, 16, 16, 80, 80, 88, 88, 72,116, 58,
+ 29,201,204,204, 36, 9, 9, 9, 36, 41, 41,137,100,102,102, 18,181, 90, 93,205,253,244,233, 83,226,229,229, 85, 32, 0,218, 19,
+203, 38,136, 58,199,210,235, 47, 15, 39,167,193, 50,153, 76,125,244,232, 81,242,226,197, 11,178,103,207, 30, 66, 3,235, 94, 47,
+ 87, 31, 39, 23, 24,208,189,123,119,227,141, 27, 55,200,253,251,247,201,178,101,203,200,192,129, 3,201,160, 65,131,200,234,213,
+171, 73,118,118, 54,201,206,206, 38,131, 7, 15, 54,114,129, 1, 13,141,207,218,230,166, 4,240, 8, 14, 14, 86,235,116, 58,146,
+154,154, 74, 90,183,110,157,205, 2, 38,139,128, 86, 61, 1, 94, 67,227,211, 21,176,117,118,118,206,189,113,227, 6,137,138,138,
+ 34,158,158,158, 5, 44, 96,186, 53,208,204, 26,104,198, 2,166, 55,107,214,172,224,198,141, 27,164,168,168,136,120,120,120,228,
+186, 2,182,191, 99, 44,209, 0,118, 47, 95,189,145, 60,201, 86,145,229,171, 55, 18, 0,153,132, 16,130, 90,124, 60, 45,176,192,
+130,127, 62, 94,215, 34,255, 20, 84, 95, 36,131,131,131, 41, 0, 63,215, 87, 88,205, 98,173,223,180,105, 19, 83, 89, 89,137, 31,
+126,248,161,108,220,152, 49,135,123,246,232,145,218,212,211, 83, 65,209,116,131,217,134, 11,120,188,133,155, 54,109,178,209,106,
+181,136,139,139, 67,135, 14, 29, 32,147,201, 32, 22,139, 33, 22,139, 33,149, 74,209,162, 69, 11,200,229,114, 88, 89, 89, 97,233,
+210,165,146, 2, 30,111, 97, 67,188, 38, 19, 97, 0,192,104, 50,113, 57,192,108,175,142, 29,227, 66, 66, 66,104,123,123,123,216,
+217,217, 65, 44, 22, 35, 41, 41, 9, 90,173, 22, 66,129,208,172, 32,173, 52, 77,211, 98,177, 24,151, 46, 93,194,130, 5, 11,208,
+181,107, 87,216,216,216,192,202,202, 10,173, 91,183,198,128, 1, 3, 48,107,214, 44,164,166,166,130, 50,195,169,228, 17,195,204,
+155, 53,107,150, 52, 48, 48,176,214,239, 43, 43, 43,161, 80, 40, 80, 80, 80, 0, 55, 55, 55,140, 29, 59, 86,250,136, 97,230,213,
+197,103, 15,200,220,124,125, 79,222,190,125,219, 65, 36, 18, 33, 34, 34, 2,199,143, 31,199,217,179,103,113,250,244,105, 68, 71,
+ 71,227,196,137, 19, 40, 40, 40, 0, 0,248,250,250,226,208,161, 67, 14, 98,169, 52,218, 30,144, 89,166,180,121,200,200,207, 63,
+223, 58, 47,207, 97,242,164, 73, 87,203,203,203, 49,121,242,100,172,223,176, 97, 5, 27, 88,100,206,241, 45, 0,137,157,179,115,
+248,198,141, 27,233,188,188, 60,140, 26, 53,170,112,243,134, 13,239,222, 59,119,206,251,238,217,179,222,235,195,194,222,237,217,
+179,103, 97,118,118, 54,246,237,219, 71, 59,121,120,132,183, 0, 36,141,173,103, 25,176,224,203, 47,191,228, 87, 86, 86,162,127,
+255,254,169,166,196,196, 22, 6,224,199,114, 32,233,103, 64,215,208,241,185,192,188,165, 75,151,202,120, 60, 30, 62,252,240,195,
+194,138,140, 12,127, 3,176,183, 20, 72, 47, 5,210, 13,192,222,178,180, 52,255,169, 83,167, 22,242,120, 60,108,217,178, 69,150,
+251,159,164,219,230,162, 3,128,147, 0,174, 0,200,153, 62,123,193,244,192, 78,111, 97,223,174,109,248, 52,236,163,112, 0,227,
+ 40,138,218, 15, 96,177,101,228, 89, 96,193,255, 38,204,209, 34,127, 81,212,153,114,135,169,169, 36, 1,244,170,143,197,214,222,
+190,131,191,191, 63, 98, 99, 99, 17, 16, 16,112,219,198,198,198,192,225,241,192,102,179, 65, 76, 13,234, 44, 8, 68,162,190,253,
+250,245, 99,110,222,188, 9, 47, 47, 47, 8, 4, 2,176,217,236, 95,189, 56, 28, 14,156,157,157,161, 84, 42,209,183,111, 95,246,
+ 87, 95,125,213, 23, 26,205, 39, 13,222, 16,147, 19,196, 5, 55, 55, 78,250,126, 79,120,179,160,160, 32,148,150, 42, 97, 50,153,
+ 32, 20, 10,161,213,106,193, 48,204,203, 37, 32, 61, 81,154,211, 99, 70,163,209,200, 98,177,224,229,229,133,245,235,215,163,178,
+178, 18, 28, 14, 7, 0,160, 84, 42,161, 80, 40,144,144,144,128,244,244,116,188,122, 10,175, 23, 86, 18,201,144,241,227,199,215,
+154,240, 87,163,209,160,180,180, 20,165,165,165, 80, 40, 20,168,172,172,196, 91,111,189,197, 61, 21, 29, 61, 4, 69, 69,155,107,
+ 61,134,207, 31,179,111,223, 62, 41,151,203,133, 90,173, 70, 89, 89, 25,178,178,178,144,145,145, 81, 41,151,203, 13, 86, 86, 86,
+180,167,167, 39,205,227,241,120, 35, 71,142,164,148, 74, 37, 40,138, 66,112,112,176,253,129,136,136,241,208,106,191,176, 76,105,
+243,112, 30,208,180,215,106,135,117,238,212,233,210,237, 59,119, 2, 23, 46, 92,136,248,248,248,141,194,200,200, 43, 21,192,131,
+250,142, 77, 5,230,125, 94, 67,192,144,140,140, 0, 29, 80, 80,163, 72,186,103, 90,218,217,169, 83,167, 62,140,143,143,119,216,
+178,101,139,108,220,168, 81,243, 0,172,107, 76, 29,173, 36,146,142,206,206,206, 56,115,230, 12, 50,159, 63,255,200, 0,168, 27,
+245,196,197, 98,117, 15, 10, 10,194,137, 19, 39,144,157,145,241,145,225,215,117,124,249,160, 4, 20, 48,169,169, 31,133,135,135,
+239,158, 49, 99, 6, 88, 12,211, 29,134, 70, 45, 28,254,198,241,125,198,156,133, 8,223,249, 85, 56,128,153, 0, 76, 0,110, 91,
+ 70,156, 5, 22,252,111, 91,181, 26,210, 34,127, 35,177,181,179,209, 22, 45,169, 84,234, 42, 22,139,145,147,147, 3,191,150, 45,
+229, 60, 30, 15, 92, 54, 27,124, 46,215,172, 26, 84, 84, 84, 4,184,184,184,160,180,180, 20, 14, 14, 14,224,112, 56,213, 47, 46,
+151, 91,253,222,202,202, 10, 52, 77,195,195,195, 3, 21, 21, 21, 1, 13,242,230, 39, 72, 35,191,154,251,222,141, 43,103,154,141,
+ 26, 53, 26,182,182,118,112,119,119,131, 84, 42,133, 64, 32,128,187,187, 59,188,189,189,201,230,205,155, 33,148,182, 49,235, 66,
+ 94, 83, 60, 49, 12, 3,163,209,136,252,252,124, 60,121,242, 4,241,241,241,184,113,227, 6,238,223,191,143,178,178, 50,152,161,
+179, 80,161, 86,183,101, 24,166, 86,145,165, 80, 40,160, 80, 40,170,133, 86, 65, 65, 1,210,211,211, 81,174, 82,181,171, 71,244,
+142,246,247,247,103, 1,128, 64, 32, 64,187,118,237,176, 99,199, 14,195, 79,199,143,191,221,234,198, 13, 59,247,115,231,108,190,
+223,190,253,237,177, 99,199, 26,111,222,188, 9,165, 82,137,199,143, 31,195,209,209,145,225,242,249,227, 45,211,185,113,184, 11,
+168, 28,202,202, 6,117,237,218, 53,173,180,180, 20,159,125,246, 25,205,182,178,218, 25, 86,199, 18, 95, 53, 88,172,110, 65, 65,
+ 65, 56,121,242, 36,114, 50, 50,150,101,212, 34, 96, 50,128,130,204,212,212,101,225,225,225, 24, 48, 96, 0, 40,134,233,214,216,
+250,117,233,210,197,223,100, 50,225,225,195,135,176, 1,110, 53,246,120,111, 31,159,192, 42,203,175, 8,184, 90, 87, 57, 17,112,
+245,222,189,123, 16, 8, 4,240,107,213,170,125, 35,127,102, 51, 69, 81,185, 51,230, 44, 68,212,217, 95, 0, 0,225, 59,191,202,
+175, 33,178, 44,176,192, 2,139, 69,235,239,106,209,170, 18, 86, 53, 95,248,149,208, 50, 83,124, 0, 0,216,108, 54,184, 60, 30,
+184, 92,238, 75,129,196,227,153,205, 65, 81, 20,248,124,126,181,176,170, 41,176,106,190, 23, 10,133,102, 9, 24, 0, 40, 73, 57,
+219, 99,230,187, 51,184, 60, 30, 15, 90,173, 6,132, 16,240,120,124,216,216,216,192,203,203, 11, 74,165, 18, 93,187,245,212,100,
+ 41, 56,209,246,126, 35,227,223,164,247, 12, 6, 3, 84, 42, 21, 74, 74, 74, 80, 92, 92, 12,165, 82, 9,181, 90,109,246, 86,116,
+147,201,196,202,202,202,194,143, 63,254,136,162,162, 34, 0, 47, 29,173,171,196, 85,213,223,180,180, 52, 68, 68, 68,224,249,243,
+231,141, 58, 63, 61,122,244, 64,116,116, 52,171, 87,223,190,187, 46,120,122,230, 92,240,244,204,233,213,183,239,174,147, 39, 79,
+178, 92, 93, 93,145,158,158,142,184,184, 56,148,148,148,128, 16, 98,217, 63,255, 6,120, 6,148, 84, 20, 23,207, 88,177, 98, 5,
+ 17,139,197,248,236,243,207,219,174, 3, 38,154, 43, 96, 36,245, 8, 24,201,239, 19, 48, 32,132,192,100, 50,193,104,124, 51, 95,
+113,138,162, 40, 54,155,221,216,208, 10,141, 41, 92,237,248,190,244,227,245, 56,125,226, 72,213,231,201, 22,145,101,129, 5, 22,
+252, 3, 80,167, 35, 60, 83, 67, 65, 86,255,173, 11,249,249,249, 47, 84, 42, 85, 51, 79, 79, 79,100,103,103, 75, 61, 60, 60, 50,
+184,108, 54, 56, 92, 46, 40,186, 97, 77, 32, 20, 10, 31,230,228,228,116,115,117,117,133,193, 96,168, 22, 85,175, 47, 29, 86, 89,
+105,238,223,191, 15,161, 80,248, 16,149,245, 70, 78,128, 81, 91,210,164,125,251,246,213,150, 33, 27, 27, 27,216,216, 72,192,227,
+241,177,114,229, 74,211,150,205,155,183,121,244, 9, 43,125,103,209, 10,178, 98,221,174, 63,180,103,205,189, 49, 9,133,194,135,
+238,238,238,111, 73, 36, 18, 68, 69, 69, 33, 61, 61, 29, 37, 37, 37,168,168,168,128, 70,163, 65, 69, 69, 5,180, 90, 45,248,124,
+ 62, 90,181,106, 5,107,107,107,196,196,196, 60,132, 70, 83,187,184, 44, 42,138,122,248,240,225, 91,157, 58,117,170,182,168,244,
+238,221,155,234,221,187,183, 67,181, 21,173,162, 2,133,133,133,184,125,251, 54, 98, 98, 98, 64, 81, 20,146,147,147,141, 26,181,
+250,160,101, 78,188, 25, 42,129,235,172,240,240,221,255,250,215,191,222,237,214,173, 27,140,192, 96, 0, 17,255, 69, 1, 3, 0,
+184,113,227, 70,130,209,104,236,214,188,121,115, 40,128,206, 0, 78, 52, 74, 68,166,164,220, 51, 24, 12,125,219,182,109,139,168,
+195,135,123, 0, 72,175,173,156, 10,232, 17, 24, 24, 8,181, 90,141,199,143, 30,221,109,132,200,218,181,124,245,198,233, 83,103,
+206,195,190, 93,219, 16,190,243,171,172,221, 59,182,186,195, 12,255, 49, 11, 44,176,224,127,202,154,213,160, 22,249,139, 98,118,
+ 93,226,139,105, 12, 75,105, 73,201,221,123,247,238, 53,107,223,190, 61,118,237,218,213,169,235, 91,111,189,224,112,185, 6, 46,
+135, 3,218,140, 27,137, 90,165,186,120,241,226,197,206, 35, 71,142,100,110,222,188, 9,153, 76, 86, 45,180,170,254, 50, 12, 3,
+ 66, 8,132, 66, 33,142, 29, 59,166, 83,171, 84, 23, 27,180, 22, 25, 77, 70,250,149,208, 35,132, 64,161, 80,128,195,225,224,139,
+ 47,182,224,235,205,155, 39, 25,129, 35,190, 34,199, 37, 0,248,255,181, 27,116, 69,197,165,211,167, 79,119, 8, 9, 9, 97,187,
+185,185, 65,161, 80,160,164,164, 4, 69, 69, 69, 80, 42,149, 80, 42,149, 40, 41, 41,129, 66,161, 0,159,207, 71,124,124,188,190,
+178,162,226, 82, 93,124,188,202,202,163,211,166, 77, 91,122,239,222, 61,103,134, 97,160,215,235, 97, 50,153, 96, 50,153,160,211,
+233,144,146,146,130,196,196, 68, 36, 37, 37,161,184,184, 24,108, 54, 27, 44, 22, 11,247,239,223, 47, 17,233,245,135,181,150, 57,
+253,198, 96, 3, 81,215,174, 93,123,119,202,148, 41,112,113,115,235,137,236,108,179, 4,204,241,122, 4, 76,233,155, 9,152,255,
+ 8,160,178,178, 59,105,105,105,221,122,245,234, 5,103, 55,183,141,173,178,179, 47, 60,106,132,159,150,209, 96,184,122,237,218,
+181,190, 83,167, 78,197,174, 93,187, 54, 58,166,165,157, 45,120,109,153,211, 17,112,108,234,237,189,113,250,244,233, 56,127,254,
+ 60,140, 6,195,213,122, 40,107, 70,124,111, 50,125,246, 2,247,215, 28,223,119, 80, 20, 53, 31,192,103,150, 17,101,129, 5, 22,
+252,147, 45, 90,141, 90, 58, 20, 24,141,203, 23, 47, 94,172,167,105, 26,163, 71,143,182, 58,113,242,228,216,251, 15, 30,120,201,
+229,114, 27,163,209,216, 32,151,163, 70,179,117,241,226,197, 10,173, 86,139, 22, 45, 90,160,184,184, 24, 70,163, 17, 12,195,128,
+ 97, 24, 80, 20, 5,154,166, 33, 22,139,113,239,222, 61,236,222,189, 91,233,168,209,108,109,240, 38, 97, 52, 62,140,136,136, 0,
+139,197, 34,124, 62, 31, 20, 69,129, 97, 24,108,217,178, 69,254, 53, 16, 5, 0, 44,154,214, 2, 0, 77, 83,230,122,239, 54,184,
+110,201,229,114, 97,122,185, 9,160,193,178,182, 26,205,151,155, 54,109, 42,123,252,248, 49, 84, 42, 85,181,245,173,188,188,188,
+218,185, 94,161, 80,128,162, 40,168, 84, 42,156, 60,121,178,204, 86,163,249,178, 46,190, 34, 32, 47, 59, 57,121,120,167, 78,157,
+138,210,210,210, 80, 90, 90,138,135, 15, 31, 34, 38, 38, 6,135, 14, 29,194,249,243,231,145,146,146, 2,131,193, 0, 87, 87, 87,
+ 16, 66,112,252,248,241, 82, 67, 89,217,224, 34, 32,207, 50, 39,234, 70, 19,153,172,175,147, 84,154,233,232,224,144,221, 68, 38,
+235,251,250,247, 18,224,233,211,167, 79, 97, 48, 24,224,229,229,101, 87,159,159, 22, 49, 24,174, 93,187,118, 13, 83,167, 78,133,
+123,179,102, 27, 60, 1,199,215,203,120, 2,142,158,222,222, 27,170, 4, 12, 49, 24,174, 53,182,206, 86,192, 87, 75,150, 44, 81,
+115, 56, 28, 68, 70, 70,122,233,125,124,146, 24, 96,162, 24,104,217, 11,224, 52,116,188, 51,176,237,227,143, 63,206,163, 40, 10,
+251,247,239,119,144,120,123, 39, 48,192, 52, 9,208, 68, 2, 52, 97,128,105, 18,111,239,132,200,200, 72, 7,131,193,128, 69,139,
+ 22,229, 57, 3,219,234,161, 92, 64, 8, 25, 70, 8, 9, 34,132,184,239,222,177, 21,167, 79, 28,169, 18, 89, 51,241,210,233,125,
+ 10,128, 4,203,136,179,192, 2, 11,254,201,168,213, 12,197,116, 90,155, 15, 16,105,207, 46,109,112,231,193,147, 82, 7, 91,235,
+115, 85,223, 21, 39, 30,105,222, 39,192,186,205,183,223,126, 11, 54,155,141,172,172, 44, 60,122,244, 8,214,214,214,152, 52,105,
+146, 70, 93, 86, 54,188, 70,174,195,126, 0, 98, 94,113,190,204,167, 86,154, 44,246,102,226,155,157, 61, 29,205,146, 72, 36, 40,
+ 47, 47, 7, 77,211,224,243,249, 16, 10,133, 16, 8, 4,136,139,139,195,208, 97, 35,140, 5,194,160,255, 4, 44,253, 79, 62,181,
+106,206,170, 88, 67,157, 1,225, 61,224, 67,169,139,203,226, 85,171, 86, 9, 6, 14, 28, 8, 14,135, 3,183, 38,190,121, 94,131,
+ 62,251,138,166, 41, 67,118,145,114,165,119, 19, 23,201,163,228,116, 0,148, 92,127,123,149, 75,141, 92,135,191,169,167,135,246,
+138,215,177,189,155,173,219,181,123,233,143,174, 80, 40,144,159,159, 15,185, 92, 14,133, 66, 1,149, 74, 5, 0,136,142,142,198,
+233,216, 36,165,218,109,108,106, 93,245,252, 79,219,159, 88,185,232,110, 53, 61, 16,177,151,229,232,232,136,252,252,124, 20, 20,
+ 20, 64,161, 80, 64,173, 86,195,104, 52,162,184,184, 24, 63,132,239, 53, 22,137,131,158, 87, 7,132,172,143, 83,149, 37,176, 43,
+255,197, 53,176,149, 39,121,247,221,119,173,172,173,173, 97, 50,153, 80, 82, 82,130,204,204, 76,164,165,165, 33, 54, 54, 86, 37,
+ 87,104,161,114,232,159, 93, 29,176,180, 22,206, 63, 16,127, 59,206,154,113,171, 92,156,157,115, 50, 50, 50,164, 70,163, 17,174,
+174,174, 6, 69,113,241, 6, 46,112,222, 10,200, 5, 64, 10,129, 85, 95,126,245,213,140, 17, 35, 70,160, 99,199,142, 89,121,249,
+249, 77,107, 27, 75, 4, 96,181, 0, 36, 21,110,110,137,183,111,223,150,101,102,102, 98,234,212,169,133, 25,207,158, 45,171,242,
+215, 42, 5,122,120,122,123,111,136,140,140,116,104,214,172, 25, 2, 2, 2,242,248,153,153,173,159, 0,165,117,140,207, 58,231,
+166,226,233,169,166,115, 71,249,119,124,239,189,247, 96, 48, 24, 16, 27, 27,139, 91,183,110, 33, 35, 35, 3,191,252,242,139,194,
+ 90, 36,122,187, 70,174,195, 90,199,231, 96, 95,149,215,254,253, 17, 20,135,195, 65,120,120, 56,238,221,187, 7, 0, 8, 12, 12,
+196,244,233,211, 97, 48, 24, 48,121,242, 20,114,234,137, 32,181,190,241, 9,192, 31,192,231,120, 41,242, 58, 18, 66,248, 20, 69,
+229, 0,112, 71,227,124,178, 44,227,211,194,105,225,252,223,225,252, 71,162,193, 92,135,107,191,131,228,215,105, 62,102,229, 28,
+217, 17,198,116,239, 17,212, 50, 44,116, 53,221,169, 83, 39,184,187,187, 35, 48, 48, 16,153,153,153, 60, 27, 27,155,134,242,169,
+149, 7, 13,154,152,214,166, 77, 27,155,101,203,150, 73, 6, 12, 24,192,118,119,119, 7, 33, 4,247,238,221, 67, 84, 84,148,110,
+215,174, 93,202, 10,167, 97,138,187,151,127, 44, 55, 39,159,218, 45,160, 2,192, 26,183,156,156,157,243,230,206, 93,221,174,125,
+251,119, 67, 67, 67,105,177, 80,192, 94,191,114, 38, 31, 0,214,126,115, 72, 50, 98,236, 36,124,233, 3,244,156, 88,123, 30,185,
+154,245,204,204,158,149, 49,100, 84, 95,159, 15,231,207, 48,142, 31, 63, 94,100,109,109, 13,119,119,119,216,218,218, 34, 53, 53,
+ 21,217,217,217,228,167,159,126, 42,191,113,255, 41,251,248,249, 59, 25,124,137,179, 57,121, 9,203,130, 6,142,123, 62,100,200,
+ 16,219,105,211,166, 89,117,232,208,129,205,227,241,192,227,241,144,159,159,143,148,148, 20,221, 79, 63,253, 84, 94, 33, 29, 92,
+114,247,114,100,153,153,185, 14,213, 65, 19,194, 82,174, 94, 8, 93,148,248,240,225, 20, 19,208, 86,167,211,185, 26,141, 70,138,
+166,233, 92,147,201,244, 80, 87, 86,182, 91, 19, 24,186,197,146,235,208, 60, 24,141, 70,142,209,104,132, 66,161,192,133, 11, 23,
+152,103,207,158,173,122,240,224,193,170,156,156, 28,232,245,122,140, 25, 51, 6,129,129,129,184,124,249, 50, 10,242,243,127,170,
+143,235, 9, 80,202,203,206,158, 62,107,214,172, 51, 17, 17, 17,244,131, 7, 15, 28,194,195,195,127,168, 77,192, 76,153, 50,197,
+148,159,153, 57, 93, 3,148,214, 51, 62,235,155,155,133,103, 35,191,126, 48,114,244,216, 86,161, 33,171,216, 93,187,118,133,131,
+131, 3,122,244,232, 1,157, 78,103,227,231,231,215,208,220, 44, 11, 26,244,118,106,219,182,109, 69, 91,182,108,145,205,152, 49,
+ 3,243,231,207, 7, 0,168,213,106,156, 63,127, 30,139, 22, 45,202,203,100, 58,171, 26, 26,159,175, 44, 85, 85, 2,236, 10,128,
+ 32, 0,169,176, 56,190, 91, 96,129, 5,255, 76, 84, 37,149,118,198,203,196,210,167,240,242,225,188,225, 92,135, 87,111, 37,160,
+102,154,143,151,112,126,100,240,152,246,108,206,226, 13, 1, 44,189,210,150, 77, 85, 90, 39, 63,125, 74, 53,148,243,176, 58,159,
+154,196,183,220, 62,237, 96,167,245,107,215, 46,252,242,203, 47,251, 86,133,112, 16, 10,133, 15,213, 42,213, 69, 71,141,102,107,
+133,196,247, 98, 99,115,243,101, 3,249, 0,230,218,222,189,251, 85,240,136, 49,155,248,118, 94,236, 21,235,118, 85,178,104, 90,
+155,146, 83,128, 47,125, 0,145, 25, 27, 36, 43,180, 64,162,194,217,144,111, 63,246,201,199, 75,150,124,184,118,205,154, 78, 98,
+177,184,167,206, 96,240, 53,153, 76,128,201,148, 92,161, 82, 93, 33, 58,221,109, 77, 96,200,102,190,196,153,152,157,151,208,198,
+175,204,238,249,145, 78,123,118,239, 94,112,248,240,225,223,180,221, 94,163,249,170,194,198, 47,198,156,182,215, 44, 83, 9, 92,
+135, 92,126,189, 62,211,165, 37,215,161,153, 79, 31, 38,211,108, 91, 91,219,125,125,251,246,229,247,235,215, 15, 67,135, 14, 69,
+215,174, 93, 97, 50,153, 64, 8, 65, 89, 89, 25, 14, 29, 58,132, 77,155, 54, 37, 55, 5,214, 52,196,167, 1, 46,242, 78,159, 30,
+220,182,109,219,240,250, 4,204, 43,145,213,160, 79, 98,253,115,147,151,108,144, 12, 79,159, 48,111,189,143, 86,153,107, 99, 47,
+ 52,200, 18, 19, 30,210,230,207,205, 22,101,198,123,135, 58,143, 25, 53,106, 30,139, 97,122,188,218, 1, 73, 30, 63,122,116,183,
+ 42,169, 52, 2,167, 95,104,228, 88,170,138, 93,103,113,124,183,192, 2, 11,254,233, 66,107, 40, 94,250,107, 85,167,228,169, 51,
+215, 97,149,213,135, 97, 24,121,234,241, 57,147,234, 99,103, 3,125, 95, 89,178,208, 96,174,195, 87,239,211,129, 50,104, 52,159,
+252, 42, 24,105,141,221,133,236,215,202, 55, 38, 44, 98, 9,240, 4, 6, 77, 48,228,143,128,147,115, 95,242,117, 90,251, 81,205,
+ 54,213,121,147,253,213,239,114,138, 43,129,171, 40, 47,191,138,242,242, 90,157,118,217, 12,167,184,161,122,190,222,246, 76, 64,
+249,123,219,254, 58,103,131,226,225,119,244,231,255, 26, 94, 20, 22, 30, 7, 32,118,139,142,118, 58, 27, 29, 61,254,195, 15, 62,
+ 24,227,236,226,226,237,224,224, 96,107,101,101, 69,223,188,121, 61,198,135, 44, 0, 0, 32, 0, 73, 68, 65, 84, 51,205, 80, 89,
+249, 85, 59, 96,207, 43,107,106,131,208, 0, 23, 91,100,102,182, 30, 55,106,212, 60,138, 97,186,215, 20, 48,196, 96,248,197, 11,
+216, 86,159, 37,235, 77,231,166, 59,207,185,239, 43, 75, 22, 88,192, 44,115,198, 70,246,203,122,172,131,193,176, 14,241,241,181,
+140,249, 70,143,165,181, 20, 69,149,193,226,248,110,129, 5, 22,252,115, 81,149,239,240,212,255,247, 15,247,179,112, 90, 56,255,
+ 65,156, 44,188,220, 69,103,233, 79, 11,167,133,211,194,105,225,180,192, 44, 48,150, 46,176,192, 2,179, 97,196,127,150,193, 44,
+176,192, 2, 11, 44,176,160, 10, 85,190, 89, 53,177, 19,120,233,186, 83,151, 42,109,204,110,130, 55, 81,182, 49, 22, 78, 11,167,
+133,211,194,105,225,252,175,112, 10,241,219,101,111, 75,127, 90, 56,255,191, 56, 27,226,254, 59,238,102,172,242,201,170,246,205,
+250,255,130,197,172,106,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,159, 14,231, 87, 34,171,230, 11, 64, 35, 3,150, 90,
+ 96,129, 5, 22,252, 83, 17, 26, 10,154, 16, 80,132,132,210,132, 28,102, 17, 50,150, 69, 8,126, 87, 42,144,177, 99,107, 15,102,
+251,239, 73,182, 86,150, 30,183,192,130,127, 20,114, 81, 71, 82,105,139,143,214,127, 23, 30, 50,153,108, 7, 0, 42, 47, 47,111,
+ 54,128, 76, 75,151,252,245, 96,103,103,215,215, 96, 48, 64,169, 84, 94,252,163, 56, 89, 44, 22,101, 52, 26,201, 95,161,125,173,
+188, 49,138,208,240,171,254,128, 32,243,113, 10,246,213, 86,214,207, 7, 83, 65,253, 39, 22, 23,101,194,227, 71,207,112,172, 17,
+ 63, 71, 15,238,231,190, 13, 0,206,196,100,205,195,159, 19, 87,171,185,163,163,227, 57,134, 97, 24,163,209, 56, 87, 46,151, 71,
+215, 45,132,198,178, 0,128, 77, 46, 47, 87,228, 73,151,189,255, 47,138, 93,161,217,173,208,168, 85,165, 44, 54,235, 57,143, 45,
+187, 54,103, 6,125,166,164,252,173, 71,181, 29,127,228,200,145, 58,179,120,183,246,193, 96,218,216,106, 88,160,127, 90,234,231,
+ 91, 59,125,217,211,203,129,157,150,117, 95,188,113,123,233, 14,174,141,231,176,169,227,169,104, 70, 72, 77,217,189,187,168,252,
+159, 58,119,214, 3,180,158,205,110, 65,153, 76, 94,160, 40, 33, 5,128,152, 76, 38,138,166,211,248, 6,195,211,197, 64,249, 27,
+112,218,233,128, 0, 54,143,231,110, 52, 24,156, 40,128,176, 24, 38, 95,175,209,100,113,128,248,229,128,226,159,206,201,225,241,
+220,140, 6,131, 19, 0,252, 21,235,105,193,175, 81,167,208, 18,139,197,113, 52, 77,187,213, 76,134, 91,149, 79,176,234,179,154,
+223, 81, 20, 5,163,209,152, 93, 82, 82,210,161, 17,191,111, 13, 96, 60,128,170, 45,234, 7, 0, 28,194,155, 59, 28, 91,115, 56,
+156,197, 34,145,168,143, 90,173,110, 13, 0, 2,129, 32, 81,165, 82, 93,210,233,116,159,191, 33, 47, 3, 96,156, 88, 44,238, 77,
+211,116,111, 66, 8, 69, 8,185, 92, 94, 94,126, 9,192, 97, 0,111, 18, 41, 65, 32,149, 74,215,217,217,217, 77, 92,190,124,121,
+145,189,189,125,139, 69,139, 22,221, 41, 46, 46,254,177,176,176,112, 37, 26,145,163,238, 79,134,183, 76, 38, 59,192,102,179, 89,
+ 89, 89, 89,189, 1,192,221,221,253,178, 86,171, 53,202,229,242, 73, 0,158, 53,146, 79, 4,160,139, 88, 44,238, 32, 22,139,131,
+140, 70,163,223,171,252,140,143,203,203,203, 99,117, 58, 93, 28,128,155, 0, 84,127,161, 57, 98,197, 48, 76,196,171,177,238, 11,
+160,236,143, 32,253,171,136, 44, 0, 32, 52,252, 30, 37, 38,181,168, 22, 94,173, 91,214, 93,152,130, 71, 45,101,205, 22, 90,125,
+122, 58, 15, 27, 62,188, 63, 13, 0, 90,253,153, 97,151,174,228,158,248,131,155,211,124,244,232,209,215, 35, 34, 34,108, 53, 26,
+ 13,102,207,158,125, 32, 38, 38,102,155, 82,169, 92, 94,239,133, 67,108,187,232,179, 45,231,133, 20, 69, 3,128,212,100, 50, 74,
+ 95,188,120,230,251, 40,225,250,160,196,196, 27,235,213, 73,151,110,154, 40,246, 28, 29,122, 36,153, 83, 9, 63, 47, 4, 15, 27,
+ 51,106,232,154, 53,161,152,248,246,196, 38,137,137,149, 2, 87,235, 84,110,177, 90,228, 99,239, 40, 29,190,102,237, 17,234,218,
+213,227,195, 35,194,195, 46,205,152, 97,223,231, 31, 40,182,168,213, 92,174,135,222,104, 28, 68, 3,185,140,149, 85, 42, 56,156,
+ 10, 0,160,141, 70,150, 86,169,244,174, 96,152,201,159, 0,183, 63, 54, 24,238,155,203,185,150, 97,186, 72,124,124,130,222, 62,
+126, 28, 98,119,119,134,225,241,104, 0, 48,104, 52,238,229, 89, 89,206,145,195,135,119, 14,125,250,244,231, 80,224,150,133,243,
+191,194,105, 65, 99,132, 22, 77,211,110, 47, 94,188,144,138, 68,162,151, 23, 99, 66, 96, 52, 26, 97, 52, 26,171,147, 23, 19, 66,
+170,255, 26, 12, 6,180,108,217,210,172, 39, 90, 0,125, 0,188,211,171, 87,175,177,159,127,254, 57, 59, 32, 32,160, 42,101, 72,
+143, 21, 43, 86,124,115,239,222,189,163, 0,246,224,101,240, 70,115,159,120, 7,138, 68,162,253,159,125,246,153,117,255,254,253,
+ 25, 23, 23, 23, 80, 20,133,188,188,188, 46, 49, 49, 49, 29, 22, 45, 90, 52, 87,165, 82, 77, 6,112,174, 17,253,227,111,101,101,
+117,100,212,168, 81,110, 61,123,246,228,183,106,213, 10, 70,163, 17,247,239,223,159, 17, 23, 23, 55,225,232,209,163,171,203,202,
+202,198,194,252,124,109,148, 88, 44,158,102,109,109,189, 46, 36, 36,196,110,242,228,201,220,132,132,132, 18, 47, 47, 47,234,218,
+181,107,142,135, 14, 29,154,187, 97,195,134,113, 74,165,114,101,121,121,249, 94,152,145, 67,209,202,202, 42,142,166,105, 55,115,
+132,240,171, 27,188,185, 98,184, 93,211,166, 77, 15, 93,189,122,181,105,122,122,186,113,228,200,145,251, 0,224,210,165, 75, 1,
+122,189,158, 26, 48, 96,192,153,236,236,236,241, 0,204,189, 72,182,177,179,179, 59, 49,113,226, 68, 59,111,111,111, 97,211,166,
+ 77, 41,145, 72, 4, 22,139,133,210,210, 82,151,132,132,132,126,183,110,221, 82,199,196,196, 20,107, 52,154,225, 0,226, 27,113,
+158,186, 74,165,210, 41,108, 54,219,223, 96, 48,184, 2, 0,195, 48, 47,244,122,125,130, 92, 46,143, 0,112,253, 77, 39,136,147,
+147,211,215,235,214,173,115,144,203,229,100,195,134, 13, 95,151,149,149, 77, 51,231,184,240,240,112,122,250,244,233,127, 74, 20,
+244, 53,107,194,216, 33, 33,171,245,127, 52,239,129, 31, 15, 35,238,206, 45,224,101,218, 28,170,150,241, 71, 1,224,188,255,254,
+ 7,232,208,177, 51, 38, 77, 28,215, 32,231,144,190,110,159,177,185, 28,251,202,202,202,235,165, 21,154,195, 34, 33,127,252,196,
+ 9,193,201, 0,112,230,236,207,227, 59,117,178,189, 44, 17,242,198,241,249,252,174,122,173,174,232,244,197,236, 37,141, 17, 85,
+174,174,174,231,108,109,109,133,197,197,197,121, 5, 5, 5,223, 13, 27, 54,108,237,158, 61,123,108,211,210,210,144,149,149,133,
+133, 11, 23,138,179,179,179,231,197,199,199,223,208,106,181,117, 90,182,202,202,138,183,174, 88, 54, 34, 68, 34,113, 96,137,132,
+214,176,146,216,193,203,187, 45,186,116, 29,134,193, 67,223, 69, 74,242,189, 46,123,194,215,220,123,241, 34,230, 83,177, 93,179,
+181, 10, 69,211, 58,207,109,171,230,232, 57,124,212, 75,145, 21, 18, 18,138,167, 73, 73,101,233,207,233,127,159, 58,206, 8, 7,
+247,109,201, 51,104,243,210,175, 93, 61,222,180,123,143,145, 0,208, 33, 34, 60,236,210,191, 39,217,246,253,250, 64, 73,217, 63,
+228,190, 66,173, 97,179,253, 97, 48, 52,183,119,118,142,172, 52,153,136,190,180,212,221, 84, 81,225, 12, 0, 6, 54, 91, 43, 18,
+139, 31,186,248,248,196, 62,189,123, 55,232, 19,134,233,241,113,253, 9,202,171, 56,167, 13,220,178, 69, 26, 56,119, 46,167,252,
+249,115, 93,234,246,237, 21,249,177,177, 70,134,199, 35,238,131, 6, 81,142,189,123,243,231, 62,126,204,249,101,195,134, 32,118,
+ 88,152,215, 74,157,110,191,133,243,255,149,243,127, 29, 85, 78,240, 53,119, 31,238,172, 87,104, 81, 20, 5,145, 72,132,200,200,
+ 72,176,217,108, 48, 12, 3, 54,155, 93,231,123, 15, 15, 15,115, 42, 50, 90, 38,147,125,179,109,219, 54,167,129, 3, 7,130,207,
+231, 87,127,193, 98,177,208,191,127,127,244,235,215,143,157,147,147, 51, 33, 50, 50,114,194,250,245,235,243, 21, 10,197,124,188,
+ 74, 12, 93, 15,122,183,104,209, 34,234,252,249,243,130,202,202, 74,196,198,198,162,164,164, 4, 92, 46, 23,110,110,110, 24, 48,
+ 96, 0,147,148,148,100,215,191,127,255,168,167, 79,159, 6, 3,184,108, 70, 93, 59, 72,165,210, 43,135, 15, 31,230,183,109,219,
+150, 74, 73, 73, 65, 96, 96, 32, 0,160,180,180, 20, 35, 71,142,228, 79,158, 60,217,123,194,132, 9, 55,229,114,121, 79, 0,113,
+ 13,240,181,151,201,100,123, 71,141, 26,229,178,126,253,122,107, 43, 43, 43,164,167,167,231,202,100, 50,223,170,254,158, 48, 97,
+ 2,119,216,176, 97,206,155, 54,109,218,122,228,200,145, 37,114,185,124, 26,128,187,245,170,214, 87,130, 88, 40, 20, 34, 63, 63,
+ 31, 7, 14, 28,192,188,121,243,192, 98,177, 32,151,203,113,232,208, 33,252,251,223,255,174, 18, 52,102,137, 97,161, 80,216,207,
+199,199,231,135, 75,151, 46,185,217,216,216,192,197,197,133,254,248,227,143,253,189,188,188, 4, 77,154, 52, 97,229,230,230, 34,
+ 42, 42,202,107,202,148, 41, 39, 50, 51, 51,103,104, 52,154, 6,151,212,156,156,156,118,159, 58,117,202, 35, 49, 49, 17,219,183,
+111, 71,113,113, 49,184, 92, 46,108,108,108, 32,147,201,224,235,235, 75, 45, 91,182, 76, 56,108,216, 48,225,252,249,243,119,107,
+181,218,118,102,156,163,182, 82,169,116, 71,239,222,189,189,194,194,194,108,100, 50, 25,170, 30, 12, 74, 75, 75,221,210,211,211,
+187,132,132,132,140,141,139,139, 75,147,203,229,115, 0, 60,104,228,196,105,215,170, 85,171,224,145, 35, 71,178,114,115,115, 17,
+ 17, 17, 17, 92, 86, 86,214,206, 28,113,201, 48,204,159,102,177, 50, 17,194, 3,240,135, 11,173,184, 59,183, 48,251,189,133,229,
+ 46,238,238,156,243,231,126, 24,125,228, 88,243, 59, 54,130,151, 9,169, 21,106,232,198,142,122,218,113,192,192,119, 57, 67,134,
+142, 44,223,249,237, 86,177, 57, 66,139,205,229,216, 31,216,255, 69,230,213,107,113,254, 23, 98,110, 13, 26, 61,124, 56,225,112,
+108,188, 0, 96,201,162,247,217, 81, 39, 79,134,247,239,215, 57,167, 71,247, 14,153,147, 38,127,224,209,136,234, 54,111,222,188,
+249,207,247,238,221,115,226,241,120, 40, 46, 46,182,223,185,115,231, 23,221,187,119,167, 83, 83, 83,145,148,148,132,231,207,159,
+163,180,180, 20,253,251,247, 23,223,189,123,247, 59, 0,117, 10, 45, 29,221,103,157, 75, 19,253, 87,246, 2, 81, 83,157, 81, 41,
+ 37,250,220, 86, 23, 78, 93,104,115, 48, 66, 29,232,228,220,210,247,157,233,171,177,102,237, 81,246,143, 7, 54,134, 92,140, 57,
+ 8,208, 77,235,206, 8, 64,208,117,197,202,229, 80,150,105, 48,121,226, 44, 76,153, 56,203,158, 64,235, 76,140,149, 34,173,186,
+196,198,138,243, 56,122,219,174, 47, 70, 1,112,171, 33,182, 46,254, 83,196,214, 26, 14,167, 41, 76, 38, 47,223,145, 35,143,167,
+158, 61,219,140,232,116, 14, 44, 46, 55,219,202,206, 46,223,160,209, 16,189, 78,199, 81,171,213,174,169,137,137,206,221,151, 45,
+187,120,109,195,134,158,159,176, 88, 29, 63, 54, 26,239,212,201,201, 48,157,131,191,249,198,209,127,230, 76,222,131,176, 48, 85,
+ 97,108,172,218,103,200,144,146,192,127,253, 75, 3, 0,101,207,159,115,158,174, 94, 45,116, 12, 10, 18,188,181,120,177,173, 81,
+171,149,173, 89,179,166, 83,200,203,228,229,141,226,244, 24, 63,222, 24, 18, 30,222, 49,246,131, 15,122, 81,122, 61,107,208, 91,
+111,221,223, 16, 17,241,226,247,112,254,145,245,204,185,114, 69, 83,236,229,133,192,145, 35,139, 60,164, 82,205, 31,217,246,223,
+ 83, 79, 11,170, 81,229,171, 53,187,230, 19, 42,162,163,163,123, 2,248, 25, 64, 88,112,112,112, 40, 0, 72, 36,146,124,133, 66,
+ 33,141,138,138,106, 80,100,177,217,108, 56, 59, 59,195,215,215, 87, 46,151,203,157,234,169, 64,150,201,100,114, 35,132, 84, 91,
+ 95,234,130, 70,163, 65,114,114, 50,218,180,105,147,141,151,137,104,235, 52,234, 8,133,194,212,164,164, 36,135, 71,143, 30, 33,
+ 46, 46, 14, 94, 94, 94,176,181,181, 5,155,205,134, 94,175,135, 82,169, 68,139, 22, 45,192,227,241,208,190,125,251, 66,149, 74,
+229,213,192, 18, 16, 79, 36, 18, 37, 95,185,114,197, 61, 48, 48, 16,183,111,223,134,187,187, 59,100, 50, 25, 0,224,249,243,231,
+184,118,237, 26,134, 12, 25,130,123,247,238, 97,204,152, 49, 89, 42,149,202, 23,128,166, 46, 66, 59, 59,187,220, 75,151, 46,101,
+ 7, 4, 4, 84,170, 84, 42, 58, 63, 63,159, 29, 27, 27,107, 40, 43, 43, 19,151,150,150,178, 21, 10, 5, 91,169, 84, 50, 42,149,
+138, 77,211, 52, 71,173, 86,179, 47, 94,188,200,210,233,116,245, 6,200,172, 58, 79, 39, 79,158, 68, 64, 64, 0,162,162,162,240,
+225,135, 31,226,151, 95,126,129,187,187, 59, 14, 31, 62,140,197,139, 23,227,201,147, 39,112,112,112, 64,171, 86,173, 26, 58, 71,
+240,246,246, 78,121,248,240,161, 55,135,195,169,202,235, 88,149, 47, 15, 5, 5, 5,120,246,236, 25, 94,188,120, 1, 31, 31, 31,
+ 76,156, 56,241,217,139, 23, 47,124, 26, 26,121,174,174,174, 5,137,137,137, 14,109,218,180, 65,126,126, 62,108,108,108, 32,145,
+ 72, 96, 99, 99, 83,253,222,203,203, 11, 31,124,240, 1,100, 50,153,188,178,178,210,169, 33, 17, 20, 16, 16,112,238,226,197,139,
+ 14,214,214,214,200,203,203,131, 82,169, 4,195, 48, 16, 10,133,112,112,112,168, 22,242,201,201,201, 24, 58,116,104, 97,106,106,
+234,192, 70, 88,224,104, 39, 39,167,164,248,248,120, 95, 66, 8, 50, 51, 51,241,228,201, 19,188,247,222,123,201,149,149,149, 45,
+241, 95,204,217,183,119,207, 94,222,180,119,166,105,254, 40,190, 26,126, 87,156,105,211,103,115, 70,141,232,170,125,156, 24, 77,
+241, 76, 79,208,206,223,186, 20, 0,238, 39, 40, 37, 26,186, 5,252, 90, 7,147, 99, 39,174,115,247,238,217,201,134, 9, 78,160,
+240,228,113, 50, 62,169,139,123, 64,111,231,153,239,191, 63,195,191, 87,247,158,116,153, 74, 37,253,238,187, 45,237, 83, 83, 31,
+ 75, 1,192,203,203, 79, 62,119,238,162,187, 86, 34,145,252,231,107, 87, 76, 95,126,185, 59,225,252,229,220, 93,102, 84,217,203,
+215,215,247,198,201,147, 39, 29,164, 82, 41, 36, 18, 9, 84, 42, 21,116, 58, 29, 30, 61,122, 84, 25, 25, 25,169,183,182,182,182,
+202,203,203,131, 66,161, 0, 69, 81, 56,121,242,100, 38, 0,207,215,137,170,124,180, 0,224,189,193,126,236, 86,125,124,109, 57,
+ 60,131, 64,192,126,234, 12,202,200,163,136,216,233,204,185,251,109,206, 92,184, 61,105,212,232, 15, 29,123,244, 28,133,144, 85,
+ 99,245, 57, 57,153,129, 58,244, 72,170,205, 71,171,165, 15,250,140, 28, 51,106,220,154, 53,161, 8, 13, 9, 67,244,201,227,165,
+ 98, 17,173,177,182, 97, 75,130,186,116,171,252, 96,222,136,172,242,242, 28,247, 53,155, 34, 39, 14, 29,241,129, 91,247, 30, 35,
+113,237,234,113, 68,132,135,197, 81, 2,242,183, 94, 70, 92, 13,112,104,134,121,215,165,105,211,253,242,156, 28, 87,161, 88,204,
+ 94, 24, 19, 35, 53, 26,141,119,198, 45, 94, 92,118,236,226,197,234, 7,144,143,105,218,133,197, 98,185,248, 14, 29, 26,159, 18,
+ 29,253, 46,207, 96,136,250, 8, 40,120,157, 51, 20,176,181,241,242,154,179, 32, 57,153,243, 32, 52,180,220,144,147, 83,210, 97,
+209,162,194,218,126, 63,251,194, 5, 17,215,197,197,218,118,248,112,187,173,158,158, 68, 47,151,239,168,205,199,168, 54,206, 24,
+177,216,230,224,153, 51,125, 9,155,221,115,233, 71, 31, 9,130,131,131,161, 84, 42,113,244,232, 81,236,216,190, 93,227,236,236,
+252,208, 37, 33,225,158,191, 82,185,202, 92,206, 14,139, 22, 21, 26,141, 70,106,220,226,197,253, 19,159, 63,239,147, 39,151, 55,
+ 1, 0,103, 59,187,172, 14, 94, 94,113,187,163,163,159,124,221,180,169,201,220,122,126,127,246,172,211,145,244,244,153,118,118,
+118,130,124,185,156,225,113,185, 69, 93, 90,181, 58,252,237,202,149, 63, 27,226,227, 57,124, 55, 55,107, 73,112,112,163,219,222,
+ 97,209,162,194,226,178, 50,102,193,218,181,221, 50,242,243,155,148,107, 52, 62,138,178, 50,153, 81,175,167,173,133,194,162,102,
+ 45, 90,200,213,177,177,185,205, 42, 42, 22,238, 2,228,127,214,248,169, 77,139,252,141,240,122, 28,173,223,228, 58,252, 57, 56,
+ 56,248, 55,187,107, 8, 33,102, 89,179,216,108,246,175,150,169,234, 1,135,162, 40,220,189,123, 23,246,246,246,144,201,100,224,
+241,126,157,124,176,160,160, 0,191,252,242, 11, 30, 63,126,140,182,109,219, 86, 45, 99,212,173,136,120,188,247, 55,109,218,100,
+163,213,106, 17, 23, 23,135, 14, 29, 58,128,199,227,129,195,225,252, 74, 4,202,229,114,180,110,221, 26, 75,151, 46,149,172, 95,
+191,254,125,141, 70,179,166, 30,107,196,252, 89,179,102, 73,171, 44, 88, 89, 89, 89,104,223,190,125,245,247,142,142,142,184,127,
+255, 62, 58,116,232, 0, 55, 55, 55,140, 29, 59, 86, 26, 17, 17, 49,223, 96, 48,124, 94, 23, 39,151,203,165, 3, 2, 2, 58, 2,
+128, 72, 36, 2, 77,211, 79,173,173,173, 29,157,156,156, 68,214,214,214,156, 90,150,158, 20, 52, 77, 55,104,181,160,105, 26,121,
+121,121,240,247,247, 71,105,233,203, 12, 46, 42,149, 10, 62, 62, 62, 80, 42,149,213,162,213,197,197, 5,106,117,253,174, 95,109,
+218,180, 9,109,217,178,229, 0,145, 72,196, 99,179,217,120,240,224, 1, 2, 3, 3, 17, 25, 25, 9, 15, 15, 15, 8,133, 66, 36,
+ 39, 39, 35, 32, 32, 0, 87,174, 92,129,163,163, 35, 90,183,110,205,147, 74,165, 87,139,139,139, 47,103,100,100,132,214, 83, 79,
+ 90, 44, 22,227,202,149, 43,216,189,123, 55,158, 63,127,142,156,156, 28, 88, 89, 89,161, 93,187,118,104,213,170, 21,186,118,237,
+138,228,228,100, 80, 13, 15, 38,153,175,175,111,244,237,219,183, 29, 8, 33,136,136,136, 64,121,121, 57,180, 90, 45,104,154, 6,
+159,207,135,173,173, 45,250,244,233, 3, 71, 71, 71,248,250,250,226,208,161, 67, 14,131, 7, 15, 62, 45,151,203,219, 1,200,107,
+168, 95,109,109,109, 23,174, 94,189,218, 93, 42,149, 34, 61, 61, 29,165,165,165,112,114,114, 66,175, 94,189, 92, 99, 98, 98, 22,
+234,245,250, 45,255,173,217,252, 71,138, 44, 0,168,225,248, 78,157, 63,247,195,104,223,102, 37, 1,109, 91, 8,221,163,162,157,
+220, 35,163,229,173, 1,192,223,207, 41,113,116,176, 48,235, 65, 98,116,214,249,115,199,227, 30, 63, 69,148, 57, 75,219,165, 21,
+154,195, 23, 98,110, 13, 10,108,219,222,180,105,227,226,161,243,222,155,201,147, 58,189,139,252,204,227,136,185,116,215, 99,241,
+135,179, 28, 63,223,252,253,153, 11, 49,183,232,210, 10,205, 42,243, 76, 89, 30, 95,239,249,182,171, 67, 89,225, 17,164, 36,113,
+ 33,176,242,135,151, 87,115, 40,149, 74,240,249,124,254,196,137, 19,141,203,151, 47,175,176,182,182, 22, 82, 20,133,203,151, 47,
+203, 1, 12,108,136,183, 82,106, 75,140, 58,189,129,112, 89, 38, 66, 89,169, 41, 99, 49, 55,225, 81, 26, 6,244,235,157,223,189,
+179,255,250,229,107, 54,175,240,109, 30,232, 56, 99,102, 24,123,109,232,164,237,160,208,163, 54,158,164, 20, 92,162, 14, 31, 19,
+ 0, 24,186,230,147, 80,164,166, 38,219,206,126, 71, 17,198,240, 4, 46, 45, 61,187, 89,109,223,125,121,144,143, 79,211, 38, 31,
+204, 31,123,234,139,111,190, 24, 90,211,178,181, 39,124,245, 9, 0,125,205,233,219,191, 34,104,134,105, 65, 83, 84,150,178,162,
+130, 69,116, 58,135,133, 49, 49,234,243, 55,111, 94,140,159, 61,219,170, 13,135,211,188, 13,135, 3,150, 78, 87,180, 18, 40,252,
+196,100,202, 89,205, 48,214,105, 39, 78,184, 48, 92,238,189, 74,147, 41, 0, 38, 83,109,241,147,218, 76,137,142, 70,121,102,166,
+190,248,234,213,202,190,223,124, 83,232, 62,112,224, 22,173, 78,231, 80,117,169,160, 41, 10, 84,149,235,132,201, 68, 49, 75,151,
+210,132, 97,160,183,181,125, 7, 37, 37,205, 27,226,252, 48, 55,119,244,164,153, 51,135,158, 56,123, 22, 77,155, 54,173,190,159,
+217,216,216, 96,241,226,197, 88,180,104, 17,239,254,253,251,157,142, 28, 57,210,233,243,207, 62,115, 2, 48,218,156,122,158,191,
+121,211,246, 95,107,214,172,108,219,161,131,199,190, 3, 7,120,222,222,222, 0,128,103,207,158,249,110,220,176,193,211, 63, 32,
+ 32,127,253,251,239,239, 73, 92,190,188, 53,128,171,245,113,230,197,198,106,143,164,167,207,188,116,249,178,141,191,191, 63, 0,
+224,201,147, 39,210,173, 91,183,206,106, 61,118,236,228, 53,115,231,174, 10,174,172, 84, 88, 23, 20,240,130,191,254,154, 57, 56,
+110, 92,131,156, 85,245, 4,128, 94, 51,102,188,223,163,119,239, 86,163,103,206,180,243,240,240,160,196, 98, 49,116, 58, 29,114,
+114,114,108, 19, 19, 19,189,163,203,202,148,199,110,222,140,128,209,216,255, 79, 28, 66,181,106,145,191,153, 37,235,183,243,226,
+213,223, 94,209,209,209,228,149,154,172,190,129, 27,141, 70,179, 68, 22,195, 48,160, 40,202, 92,177, 5, 66, 8, 10, 11, 11,145,
+144,144,128,103,207,158, 65,165, 82, 33, 45, 45, 13, 59,119,238,196,198,141, 27,113,231,206, 29,232,245,122,232,116, 13,231,160,
+ 21,137, 68,253,250,245,235,199,220,188,121, 19, 94, 94, 94, 16, 8, 4,224,114,185,224,112, 56,213, 47, 62,159, 15,103,103,103,
+ 40,149, 74,244,237,219,151, 45, 18,137,250, 53, 96, 37, 26, 50,126,252,120,110,213,255,229,229,229, 96,177, 88,213,162,165,188,
+188, 28,197,197,197, 80, 40, 20,200,205,205,197, 91,111,189,197,149, 72, 36, 67,204, 61, 27, 21, 21, 21,229,114,185,220,166, 71,
+143, 30,182,143, 31, 63,254, 77,182,223,159,127,254,185,178,178,178,146, 77,211,180, 89,142,246,251,247,239, 71, 84, 84, 20, 46,
+ 94,188,136,236,236,108,108,223,190, 29,251,246,237,195,201,147, 39,145,156,156,140,175,190,250, 10,223,125,247, 29,246,236,217,
+ 83,239, 57,106,217,178,229,224,136,136,136,206, 93,186,116, 17,178, 88, 44, 60,121,242, 4, 31,124,240, 1, 20, 10, 5, 28, 29,
+ 29, 1, 0,249,249,249,216,178,101, 11, 52, 26, 13,196, 98, 49, 92, 93, 93,249,107,214,172,233,238,232,232, 56,160,190, 58, 26,
+141, 70, 35,139,197,130,167,167, 39, 66, 66, 66,240,221,119,223,225,220,185,115, 56,124,248, 48,230,206,157,139, 86,173, 90,225,
+222,189,123,184,115,231, 14, 8, 33,245,222,100,248,124,254,216,125,251,246, 73,185, 92, 46, 76, 38, 19,202,202,202,144,153,153,
+137, 91,183,110, 85, 30, 63,126,188,252,212,169, 83, 21, 87,175, 94,173,188,126,253, 58, 1, 80, 45, 56,131,131,131,237,185, 92,
+238,219,102,116,169,163, 76, 38, 91, 49,107,214, 44,126,205, 49,155,151,151,135,209,163, 71, 11, 5, 2,193,114, 0,142,245, 17,
+ 68, 68, 68,252,105, 23,139,208,176, 80,235, 63,137,154, 28, 57,214,252, 14,207,244, 4, 81,209, 47,220, 51,178,141,221, 22, 47,
+217,108,183,120,201,102,187,140,108, 99,183,168,232, 23,238, 60,211, 19, 28, 57,214,252,142, 25, 66,128,238,211,211,121,132,147,
+189,205,142,209,195,135,147,239,190,219,210,126,222,123, 51,121,158,205, 23,131, 47,153, 8, 87,175,127,161,111,144, 7,213,166,
+ 21,205,255,238,187, 45,237, 71, 15, 31, 78,156,236,109,118,244,233,233, 60, 2, 13,132,157,145,218,243, 93,133, 60, 21,188,125,
+ 91,161, 87,207,182, 96, 83, 41, 56,122,120, 55,114,115,115,145,147,147,131,252,252,124,209,176, 97,195,144,151,151, 87,121,249,
+242,101,185, 90,173,238, 9,224,105, 67,141,207,206,126,100,170, 44, 55,234, 76, 70,182,161,172,148, 83, 49,119,225,145,126,119,
+ 18, 57,211,243, 20,174,195,184, 60, 91,238,224,254,157, 14,236,222, 21,130,102,205,252,209,177,211,128,183,108,197, 55, 90,213,
+ 41, 94, 83, 17,253,211,209, 99, 39, 38,142,159,104,120,158,150,158,214,220,137,175, 37,132,232, 23, 46,251,190, 63, 91,228,222,
+198,219, 47,200,241,113,138,209, 57,100,233,219, 63,158, 58,241, 69,246,181,171,199,209,189,199, 72,184,186,248,246,124,231, 29,
+112,255,174, 22, 45,138, 16, 47,182, 88,156,170, 47, 45,245,100,120,188, 76,163,209,232,112,123,206, 28, 27, 29,135,227,108,212,
+233,114,140, 58, 93,142,142,203,181,222,230,231,231, 70, 8,177,183,113,115,123, 65,184, 92, 15,131, 78,151, 66,209,116,179, 90,
+159,206,121, 60, 55,177,167, 39,147,119,254,188,214,107,216,176, 18, 0,208,234,116, 14,207,211,211, 37,249,114,185, 36, 47, 63,
+ 95,146,145,149, 37, 73, 77, 75,147, 36,167,164, 72,146, 82, 82,172, 31, 38, 36,136,239, 63,124, 40,166, 88, 44, 39,115, 56,159,
+231,228,180, 89,186,116, 41, 4, 2, 1, 12, 6, 67,109,215,108,168, 84, 42,188,243,206, 59,168, 0,186,152,195,105, 52, 26,169,
+127,173, 89,179,242,163,149, 43,189,163,162,162,120,157, 59,119,134,157,157, 29,236,236,236,208,185,115,103, 28, 57,122,148, 59,
+119,254,124,183, 21,187,118,189, 67,243,120,238, 13,113, 22,250,248,192,206,206, 78, 80, 37,178, 0,160, 69,139, 22,216,190,125,
+ 59,239,236,185,115,146, 79,126,248, 97,115,216,245,235, 1,154,140, 12,149,125,243,230,132,203,227,185,153,219,159, 0, 80, 86,
+ 89,233,191,101,235, 86,123, 7, 7, 7, 42, 63, 63, 31, 41, 41, 41,200,200,200,128,193, 96, 64,199,142, 29,169,195, 71,143, 74,
+180, 44, 86,167, 63,121, 8,253, 70,139,252,141, 48, 27,117,196,209, 98, 94,221,128,174, 0,160,162,163,163, 73,213,114,226,171,
+155, 99,181,152, 50, 71,104,189, 9, 20, 10, 5, 20, 10, 5,118,237,218, 85, 45,140,170,160,213,106,205, 17, 45, 1, 46, 46, 46,
+ 40, 45, 45, 69,243,230,205,127,101,201,226,112, 56, 96, 24, 6, 28, 14, 7, 60, 30, 15, 26,141, 6, 30, 30, 30,168,168,168, 8,
+168,143, 83,173, 86,183,179,179,179,171,190,193,106, 52,154,106,145, 85, 85, 95,173, 86,139,146,146, 18,148,151,151,163,172,172,
+ 12, 42,149, 42,208,156,246,154, 76, 38, 36, 36, 36, 60,107,209,162, 69, 59, 22,139, 5,177, 88, 44, 82,169, 84,213,190, 69,197,
+197,197,216,187,119,175,106,234,212,169, 14, 39, 79,158,108, 48, 97, 49, 69, 81,248,247,191,255, 13, 30,143,135,138,138, 10,124,
+247,221,119, 88,176, 96, 1, 56, 28, 14,202,202,202,176,125,251,118,124,240,193, 7, 96, 24, 6, 90,173, 22, 91,183,110,173,147,
+235,209,163, 71,207,111,222,188, 25,216,190,125,123,219, 99,199,142, 21,244,239,223,223,113,224,192,129, 16, 8, 4, 80,171,213,
+208,235,245,232,210,165, 11, 90,182,108, 9,185, 92,142, 51,103,206, 20,250,250,250, 58,220,186,117,203,148,151,151,151,209,128,
+184, 38, 53, 44,134, 48, 26,141,200,207,207,135, 66,161, 64, 65, 65, 1,114,114,114,144,157,157, 13,134, 97,208,128,206,130,189,
+189,253, 24,127,127,127, 22, 0, 8, 4, 2,180,107,215, 14, 43, 87,174, 52,168,213,234,241, 0,206,188, 42, 54,248,251,239,191,
+ 63,118,237,218, 53,198,197,197, 5, 73, 73, 73,112,116,116,100,248,124,254,219, 90,173,182, 94,107,148, 76, 38, 11,255,233,167,
+159,236,170,196,117, 85, 63, 87, 84,188, 60, 29,163, 71,143,182,219,183,111, 95,184,193, 96,168, 83, 92,231,230,230,254,121, 86,
+ 3,138,165,249,179,184,109, 4,224,180,243,183, 46,141,140,150,183, 94,188,100, 51,211,210,255,229,195,235,236, 57, 96, 62,255,
+236,195,214,147, 71, 88,159,178, 17, 40, 57, 13,241, 12,238,231,190,109,248,240,254,244,196, 9,193,201, 28,142,141,215,142,157,
+ 97, 82,169,211,187, 53, 26, 97, 13,123, 7,107,120,121,114,169, 35,167, 30, 75,151, 45,255, 68,179,127,223, 23,169, 63, 30,140,
+ 30,196,101, 95, 24,112, 38, 38,107,110, 93,220, 79,159, 41, 78, 86,104,248,126,202,162,120,202,206,169, 27,218,181,109, 1,169,
+ 99, 9,190, 15,143, 68,211,102, 29,161,209,104, 96,109,109, 45, 52, 26,141, 58, 22,139,181,223, 28,145, 5, 0, 23, 47, 42, 76,
+173, 91, 43,180,172, 50,147, 97,222,130,207, 71,245, 31, 60,188, 85,159, 62,253, 76,231, 47,156,215,117, 11,212,229, 14, 30,216,
+ 46,255,236,133,109,201,185, 57,105,190,173, 3,186,227, 81,226,229, 65,132, 32,129,162,106, 23,157,137, 41, 56, 91,105,122,116,
+ 57, 50,114,182, 73,109,186, 39, 88,187,238,225,224,161, 67,167,249, 7,245, 8, 50, 93,136,185,164,229,162,240,177,117,247,174,
+ 47,230,205, 28,124,236,135,253, 91, 7,156, 61, 19,238, 83,170,204,136,222,179, 7, 26,252, 77, 65, 40,202,209, 74, 36, 42, 40,
+ 42, 43,107, 59, 38, 44, 76, 57,110,241,226,115,109, 24,166,149, 81,167, 75, 11, 3,212,132, 16,202,100, 48, 44,127,120,224, 0,
+ 43,148,162,150,133, 1,166,117, 44, 22, 59,219,100,170,112,165,105,225,106,128, 9,123,109, 39,183,209, 96,112, 98,120, 60,186,
+224,242,101, 67,192,187,239,106,170,230,163, 80, 40,196,137, 19, 39,192,229,114,171, 95, 28, 14,167,250,189,147,147, 19,168, 87,
+219, 72,127,243,224, 87, 11,103,213,188,205,203,203,131, 68, 34,129,163,163, 35,242,242,242,112,253,250,117, 60,125,250, 20,108,
+ 54, 27,131, 6, 13, 2, 93,135,111,243,235,156,227, 22, 47,238,239, 23, 16,224, 49,103,206, 28,250,245,251,163, 78,167, 67,113,
+113, 49, 70,140, 24, 65,159, 57,115, 70,118, 54, 51,115, 56,128,253,245,113, 6, 14, 29, 90,148,127,228, 72,173,191,221,190,125,
+123,234,151, 95,126,225, 13, 26, 56,112,209,135,235,214,109,251,122,223,190, 44,163,193, 32,107, 76,219,105,154,166, 41,138,130,
+187,187, 59,138,139,139, 81, 94,254,114, 5, 91, 44, 22,195,214,214, 22,122,189, 30, 38, 66,216,127,230,248,169, 75,139,252, 77,
+176,179,134,224,250,149,101,139,121,181, 46, 90,117,161,232, 85,243,198, 98, 50,153,204, 18, 89,108, 54,187, 65,159, 43,115,172,
+ 92,175,195, 28,161, 85, 85, 87, 62,159,255, 43, 75, 86,149,192,170,170, 39, 77,211, 96,177, 88, 13,222,196, 95,137, 33, 86, 89,
+ 89, 25,142, 30, 61,138,158, 61,123, 86, 47, 75,149,150,150, 66,161, 80,160,180,180, 20,149,149,149,120,254,252, 57, 46, 94,188,
+ 8, 31, 31, 31,192,204,224,175,169,169,169,113, 77,155, 54,237, 80,117, 19,239,221,187,183,219,158, 61,123,114,134, 12, 25,226,
+ 66, 8,193,170, 85,171, 10,187,116,233,226, 80,243, 38,223, 16, 88, 44, 22,174, 95,191, 14, 31, 31, 31, 16, 66,192,225,112,240,
+228,201, 19, 72,165, 82,152, 76, 38, 48, 12,131,130,130, 2, 88, 89,213, 31, 35, 49, 33, 33, 97,250,140, 25, 51,114, 36, 18, 73,
+155,162,162,162, 92, 30,143,215, 35, 54, 54,214, 93,167,211,193,218,218, 26,214,214,214, 56,125,250, 52,108,108,108,240,254,251,
+239,103,170,213,234,235, 34,145,200, 73,173, 86,199,231,229,229,173,106,204,249, 54, 24, 12, 80,169, 84, 40, 41, 41, 65,113,113,
+ 49,148, 74, 37, 42, 43, 43, 27,172, 99,109,232,209,163, 7,162,163,163, 89,159,126,250,233, 15,169,169,169, 0, 0, 47, 47, 47,
+188,255,254,251, 44, 87, 87, 87, 60,127,254, 28,113,113,113,208,233,116, 32,132,212, 59,121, 25,134,233, 61,117,234,212,238, 30,
+ 30, 30,148, 78,167,131,201,100,130, 70,163, 65,213,251,204,204, 76,248,249,249,209,158,158,158,111,165,166,166,246, 70, 29, 27,
+ 43,106, 62, 48,252,209, 8, 9,249, 88,139,191, 33,242, 51,143,195,149, 45, 5,104,107, 16,245,113, 20, 21,190, 89, 20, 23,185,
+ 92,190,110,233,199,191,188,251,245, 38,157, 83,118, 46,208,194,127, 36,124, 91,245,197,244, 41, 6,124,250,217, 81,120,120,182,
+ 64, 70, 70, 6,122,247,238,205,201,201,201,153, 81, 94, 94,190,216, 92,238, 11, 23,110, 26,207,159, 62, 51,118,220,219,211, 58,
+244,235, 55,196,112,238,220,105, 36,196,159, 75,156,241,246, 24, 57, 49,149, 83,118, 54,130,123, 79,146,238,248,182,105,215, 11,
+ 90,131,177, 7, 16,186, 9, 8, 37,117,207,119,104, 79,157,114,166, 79, 29, 15,159, 50,113,242, 59,109,251,246, 29,160, 63,119,
+225, 39,196,221,184,240, 96,243,166, 89, 87, 62,221,122,168,119,255, 65, 99, 90, 59, 58, 93, 63,237,223, 92, 51,211,221, 94,242,
+236,251, 61,197,248, 27,131,225,240,249, 6, 0,180,141,167,167,219,177,139, 23,211,219,177,217, 44,107,192, 72, 8,105, 1,192,
+129,102,152, 21, 39,103,206, 12,244,123,117, 35, 53, 0, 38, 63,128, 46, 5,180, 34,128,139, 58, 66,230, 48,124,190, 9,175,174,
+139, 52, 69,129, 16,242, 43,145,245,186,208,162,105,186, 65, 3, 64, 77,206,154,247,162,170, 7,234, 29, 59,118,128,199,227,129,
+203,229,130,205,102, 55,232,126, 81,147, 51,241,249,243, 62,123,247,239,231,213, 38,178,138,138,138, 80, 84, 84,132,242,242,114,
+ 76,152, 48,129, 19,118,231, 78,123,188,114,253,168,139,211,195,217, 89, 35, 18, 8,242, 31, 61,122,228,210,170, 85,171, 95,213,
+ 87,169, 84, 66, 32, 16, 96,255,129, 3,156,224,161, 67,223,235,123,250,244,102, 52, 16,255,170,182,182, 83, 20, 5,169, 84, 10,
+ 91, 91, 91, 80, 20, 5,131,193,128,188,188, 60, 36, 38, 38,226,206,157, 59, 96, 81,148,225,207, 28, 60,181,105,145,191,161, 85,
+235, 55,203,135, 85, 22, 45,170, 46,235,139,185, 66,139,197, 98,189,177, 85,171, 46,152,179,116, 40, 20, 10, 31,230,228,228,116,
+115,117,117,133,193, 96,168, 22, 90, 53, 45,113, 85, 55, 61,129, 64,128,251,247,239, 67, 40, 20, 62,172,172,172,172,151,147, 16,
+242, 86,167, 78,157, 16, 21, 21,133,203,151, 47, 35, 45, 45, 13, 21, 21, 21,208,104, 52, 80,171,213, 72, 76, 76,132,201,100,130,
+191,191, 63, 68, 34, 17,132, 66,225,195, 42,203, 87, 93, 80,169, 84,185,108, 54,187,133, 64, 32,168,254,204,217,217, 25, 69, 69,
+ 69, 38,189, 94,143,189,123,247, 42,101, 50,153, 72, 32, 16,152, 45, 92, 41,138,130, 92, 46,135,155,155, 91,181,143, 86, 89, 89,
+ 25,164, 82,105,149,176,128, 70,163,129,149,149, 21, 8, 33, 13,157,163,202,148,148,148, 15,107,252,223,113,220,184,113, 63, 70,
+ 70, 70, 54,139,137,137,193,173, 91,183,224,232,232,136,245,235,215,167,165,167,167, 79, 4,112, 71, 46,255, 99,253, 34,205, 25,
+ 67, 69, 69, 69, 71, 31, 62,124,248, 86,167, 78,157,170,175, 18,189,123,247,166,122,247,238,237, 80,211,212, 95, 80, 80,128,219,
+183,111, 35, 38, 38, 6, 20, 69, 33, 57, 57,217,168, 86,171,127,172,135,154,227,234,234,186,103,229,202,149, 98,131,193, 80, 61,
+182, 5, 2, 1,248,124, 62, 56, 28, 14, 88, 44, 22,210,211,211, 49, 98,196, 8,201, 55,223,124, 19,174,209,104,188, 1,252,102,
+160, 46, 90,180,232,111,233, 99,163, 80, 67,119, 63, 65, 41,241,247,115, 74,220,185,227,211,110,179,231,188,188, 70,236,220,241,
+169,193,223, 79,154,120, 63, 33, 95,210, 65,138, 6, 39,230,153,152,172,121, 90,253,153, 97,103,206,254, 60,126,201,162,247,217,
+ 94, 94,126,242,152, 75,119, 61,250, 26, 62,161,236, 29,172, 81, 84,168, 68,122,102, 62, 82, 51,180,196,203,203, 79, 30,119,251,
+ 33,239,179, 45, 95,250,170, 42, 42, 15, 93,186,146,251, 83, 3,244,149, 87,175,167,141,220,252, 21,239,202,180, 25, 29,185, 2,
+129, 11,138, 11, 31,194,195,195, 17, 35,130,219, 96,247,190,235,144, 72,236,224,228,228, 4,154,166, 69,230,182,189,176,176,144,
+ 58,122,240,234,187, 83,223,153,213,101,224,128,161,134,179,231, 78, 49,151,207,159,188, 30,190,115,197, 49,194, 82, 9, 41, 82,
+ 38,104,210, 84, 22,255, 44,229,254,196, 62,253, 38, 64,192,177,242, 1, 90,214, 58, 96,171, 55, 24, 16,100, 70, 69,134,242,167,
+190, 51,187,235,192,129,195, 13,231,206, 29,199,185,211,251,110,174, 94,221,228,116,218,139, 3,156, 27,119,178,249, 35,199,206,
+ 45,137, 62,243, 88, 59,102, 88,211,167, 46,162,118,106, 32,237,111,171,178,104,138, 82, 22, 22, 20, 88,179,217,108,117,248,164,
+ 73,201, 0,160,103,152,162, 50, 22,203,145,162,168, 39, 0,158,172, 3, 28,192,229,150,142, 51, 24,140,139, 61, 60, 56, 76,110,
+ 46,171,196,104, 52,178, 0,238,146,223,230, 95, 4,139, 97,242, 13, 26,141,187,219,192,129,172,138,140, 12,182,216,201,201, 0,
+ 0,122,189,190, 65,161,133, 58, 54,173,188,206,105,110,251, 42, 42, 42, 96,170, 67, 8,190,206,153, 39,151, 55,121,245, 16, 94,
+ 13,189, 94, 95, 45,178,138,138,138,160, 80, 40, 32, 18,137, 80,160,209, 56,153,195, 57,160,115,231,189, 97,161, 14, 57, 34,244,
+ 0, 0, 32, 0, 73, 68, 65, 84,161,139,143, 28, 61,202,169, 41,178,170, 94,108, 54, 27, 27, 55,109,226, 44, 88,178,100,238,123,
+ 12,179, 16,181, 44,131,214,213,159, 85, 15,237, 44, 22, 11, 12,195, 32, 35, 35, 3,153,153,153,200,200,200, 64, 70, 70, 6, 4,
+ 2, 1,200,159,188, 9,232,111,236,159,133, 26, 75,133,179, 95,183,114,213, 27,222,161, 49,206,240,230, 10, 3,163,209,248,135,
+ 10, 45,149, 74, 21,115,241,226,197,206, 35, 71,142,100,110,222,188, 9,153, 76, 86, 45,180,170,254, 86, 45, 71, 9,133, 66, 28,
+ 59,118, 76,167, 82,169, 98, 26,152, 76, 23, 79,159, 62,221, 33, 36, 36,132, 61,125,250,116, 60,122,244, 8,115,230,204,129, 66,
+161,128, 82,169, 68, 81, 81, 17, 42, 42, 42,208,185,115,103,240,249,124,196,199,199,235, 43, 42, 42, 46, 54,180,116, 38,151,203,
+203, 29, 29, 29,157, 95,255,110,236,216,177, 78,223,126,251,109, 69, 82, 82,146,190, 91,183,110,214,230, 10,142, 42, 28, 60,120,
+176,218, 82,247,244,233, 83,124,251,237,183, 32,132,128, 16,130,187,119,239,226,243,207, 63,175,142,125,214, 72,220, 41, 44, 44,
+ 52,232,245,122,248,248,248,192,213,213, 21,149,149,149,248,242,203, 47, 13, 0,238,252,183, 70,115,101,101,229,145,105,211,166,
+125,116,239,222, 61,103,134, 97, 94,154,180, 95,181, 79,167,211, 33, 37, 37, 5,137,137,137, 72, 74,250, 63,246,174, 59,190,169,
+234,125, 63, 55,187, 77,186, 23, 29,180,140, 2,165,139,101, 1,101,239,213, 34,138,130, 3,196,197, 82, 20, 5, 68, 16, 4, 4,
+148, 33, 32,160, 32, 75, 5,100,111, 40,200,110, 41,163, 32,155,238,210, 66,103,210, 38, 93, 73,155,125,199,249,253, 65, 91, 11,
+118, 36, 5,253,169,223, 60,159, 79, 62,185,185,185,247,201, 57,231,158,156,251,220,247,188,231,125, 83, 80, 82, 82, 82,253, 32,
+112,251,246,237, 82,154,166,247,214,197,235,233,233, 57,247,231,159,127,246,150, 74,165,143,245,231, 42,107,104,149,149, 84,165,
+ 82,193,197,197, 5,253,251,247,247, 58,119,238,220, 92,163,209, 56, 15,255, 13, 80,175,190,156,214,249,227, 15, 95,194,200, 40,
+105,238,193,232,252,203, 43,190,157, 94,233, 12,239,149, 56, 50,202, 47,247, 78,170, 11, 94,125,249,112,103, 0,121,168,223, 79,
+139, 59,127, 65,113,164, 75, 23,215,152,131, 71,143,254, 50,123,230,167, 55,103, 76, 31,239,169,211,103,216, 5, 54, 19, 83, 0,
+144,153,109, 34,119,147, 56,195,138,149,159,222, 92,178,252, 7, 94, 97,113,217,196,223,127,175, 59,188, 65, 77,241,194,227,193,
+ 46, 48,184,183,188, 77, 80,143, 22, 87,175,236,128,131, 84,143,182,193,157, 49,120,208, 11,136,137,189,141, 2,149, 1, 10,133,
+ 2, 70,163,177,222,112, 9, 41,119, 15,141, 37, 20, 9,160, 8,149, 67,241,136,221,216,113,239,247,140,140,124,145, 68, 71, 31,
+101, 14, 31,218,113,105,239,175,107,247,243, 68, 66,129,222,228,108,162, 40,131, 26,188,132,164, 10,237,163, 7, 26,161, 68, 84,
+183,249,181, 50,176,107,104, 88,176,247,216,113, 19,157,135, 13, 29, 65, 78,156, 56,204,237,221,179, 45,102,239,150,118, 59, 56,
+158, 70,164,200,213, 73,212, 26, 90, 77, 40,177, 75,133,134,211, 21,102,182, 50,248, 70,190,106, 6,246,255,107, 59, 16,225,184,
+108, 98, 50,181,128, 80,152, 75, 24,198, 27, 52, 93,242,149,193,144,191, 72, 44,110, 62, 95, 32,120, 14, 20,197,153, 41, 74, 11,
+147, 41, 19, 0,220,114,114,124, 76, 78, 78, 5,124,131,161, 21, 88,182,214, 0,200,102,163, 49,175, 34, 55,215,199,173,119,111,
+201,253, 5, 11,164, 77,186,118, 53, 80,149, 62,196,245, 9, 45, 62,159, 15,240,120,156, 37,156,150,214, 79,175,215,131,171, 35,
+180, 74, 67,156, 12,195, 60, 38,178,170,132, 86,213,255,197, 18,206, 77,243,231, 95, 13, 24, 60,184, 36, 54, 54,182, 73,159, 62,
+125,168,242,242,114,148,151,151, 63, 38,182,124,125,125,169,208,240,112,233,238,152,152, 64, 75,219,211, 34, 17,205,227,253,229,
+ 66,235, 95,142, 58, 19, 73, 11, 26,152, 66,179, 88,104, 89,104,209,162,105,154,134,151,151, 23,138,138,138,234,188,241,243,120,
+ 60,216,219,219, 87,205, 17,215,187,242,206,104, 52,174,158, 49, 99,198,148,161, 67,135,122,180,109,219, 22, 42,149, 10, 77,154,
+ 52,129,157,157, 93,181,239, 88, 21,223,205,155, 55,241,243,207, 63,107,140, 70,227,234, 6, 56,191, 91,190,124,249,135, 35, 71,
+142,116,243,246,246,134,171,171, 43,238,222,189, 11, 87, 87, 87,104, 52, 26,164,166,166,194,209,209,177,218,111,231,232,209,163,
+229, 70,163,241,187, 6,196, 27,137,139,139, 51, 59, 58, 58,222, 85,169, 84,252,146,146, 18, 65,105,105,169, 64,163,209, 8,213,
+106,181,240,228,201,147, 30,206,206,206,186,243,231,207,171, 2, 2, 2,248, 15, 30, 60,224,211, 52,221,160,122,165, 40, 10, 83,
+167, 78,133, 72, 36,130,209,104,196,234,213,171, 49, 99,198,140,106,159,172,229,203,151, 99,206,156, 57,213,194,121,243,230,205,
+214, 13,156,132,192,108, 54,131,166,105,139, 23, 40, 60,213, 19,177,101,130,189, 32, 61, 61, 61,170, 75,151, 46,167,247,237,219,
+231, 94, 25,147, 12,133,133,133, 40, 44, 44,132, 74,165, 66, 69, 69, 5, 24,134,129,159,159, 31, 10, 11, 11,113,248,240, 97,117,
+121,121,249, 96,212,179,226,144,207,231,143,235,217,179,167,224,201, 50, 84, 61,229, 85,137,119,137, 68, 2,185, 92,142,190,125,
+251,138, 99, 99, 99,199, 1,248, 87, 11,173,154,225, 29, 6, 13,126, 79, 20, 18,214,205,116, 39, 49, 58, 55,184, 69, 97,238,152,
+ 17, 78,199, 1,224,118, 66,161,243,157, 84, 23,132,132, 69,145, 65,131, 93, 35, 10, 11, 54,181, 3, 96,174, 47, 93, 15, 0, 56,
+ 75, 37,163, 6, 14,232, 42,119,148,201,120, 43, 86,110,254,237,199, 31,191,123,110,255,241, 63,194, 59,172, 88,249, 40,188,195,
+192, 1, 93,185,148,228,148, 81, 0,182, 88, 42, 94,162,162,134,223,250,121,235,207, 72, 73, 60,239,251,249,212,246,226,146, 66,
+ 26,246, 14,254,136,232,216, 4,155,182,222,195,157, 59,119, 10, 76, 38, 83,223,122,251, 55, 69, 2, 18,147, 18,130,218,133,133,
+122,143, 29, 55,193, 41, 42,106, 4,162,163,143,224,215,109, 91,226, 94,121,125,228, 79,249,165, 26,190,151, 80, 42,146, 18, 78,
+204, 23, 57, 11, 68, 18,123,165,201,244, 40, 2,129, 80,104,231, 4,140,170,247,198, 51,105,194, 24,231,126, 3, 70,224,248,137,
+ 35,248,117,219,166, 11, 95,134,189,186,165, 69,167, 16,170,235,115,223, 78,110,209,178, 69, 51,109, 69,161,134, 71,137,205, 6,
+ 3,231,248,237,182,172, 85,153,115,198,101, 2, 88,137,127,233,170, 67, 49,203,222, 49,154,205, 99,252, 35, 34,174,203,175, 95,
+111,247, 13, 77,187,125, 1,148,124,105, 50,101,237, 3,114,203, 0,222,196,202, 49,125, 37, 96,167, 23, 8,124,156,121,188,219,
+229, 44, 59, 20,124,126, 34,106,127, 16,191,251,235,176, 97, 93, 62,206,200, 16,121,246,232, 97, 47,143,137,145, 86,102, 34,169,
+ 87,104, 9, 4, 2,144,186,167,186, 30,227,164,182,111,231, 1,143,166,252,235, 26,227, 68, 34, 17,116, 58, 29,104,212,105,209,
+125,140,211,231,212,169,220,140,140,140, 54,110,110,110,143,137,172,146,146,146,234,109,131,193, 0,157, 78, 7,123,123,251, 68,
+125,237, 51, 34,143,113, 22,198,197, 25,150, 78,157, 58,239,141,215, 95, 95,123,246,220, 57, 59,119,119,119,168,213,234,199,132,
+150,201,100, 66,191,254,253, 69,203,111,221, 26, 11,141,102,190, 37,237,217,164,111,223, 6,253,129,249,124, 62,184,191,120,234,
+240, 63,128, 9,181, 9, 47, 94, 67, 83, 56,150,174, 58,172,227, 6,249,228,234,190, 57, 17, 17, 17,134,180,180, 52, 4, 4, 4,
+ 84,139,149,154,191,233,228,228, 4, 23, 23, 23,220,188,121, 19, 95,127,253,181, 30,192,156, 6, 56,203,117, 58,221,107, 3, 7,
+ 14,212, 11, 4, 2, 4, 7, 7, 87,199,207,226, 56, 14, 98,177, 24, 50,153, 12,183,110,221,194,240,225,195,117, 58,157,238, 53,
+252, 57,134,214,147,156,106,157, 78,247,230,160, 65,131,116, 73, 73, 73,232,217,179, 39,238,220,185,131,138,138, 10, 84, 84, 84,
+224,225,195,135, 8, 13, 13,133, 78,167,195,250,245,235,245, 58,157,238, 77, 0,234,250, 56,203,203,203,135,207,152, 49,131,191,
+107,215,174, 22,126,126,126, 97,157, 59,119,110,219,191,127,255, 86, 47,191,252,114,179, 97,195,134,249,180,105,211,198, 48,120,
+240, 96,207,161, 67,135,122,234,116, 58,225,229,203,151, 21, 52, 77, 15,109,160,156,213,226, 36, 45, 45,173,122,170, 80, 32, 16,
+160,168,168,168, 58,114,127,213,160, 84,135, 16, 30,208,144,216,174, 18, 88, 85,130,203, 2, 63,183,218, 56, 27, 60, 73, 44, 22,
+ 87, 89, 60,137, 5,156,183,147,147,147, 7,246,238,221,251,246,123,239,189, 87, 94, 80, 80, 0, 71, 71, 71, 4, 6, 6, 34, 40,
+ 40, 8, 30, 30, 30, 48,155,205, 56,116,232,144,246,240,225,195,247,212,106,117, 95,252, 57,134,214,128, 39,218,241, 97,109,131,
+108,149, 53,171, 74,104,217,217,217,193,207,207,175,170,109, 31, 90,211,158,141,196, 95,203, 89, 41, 96,250,247, 27,220,114, 88,
+228, 75,206,135,142, 92, 17,175, 93,119,248, 94,196, 0,108,118,111,174, 57,234,222, 92,115, 52, 98, 0, 54,175, 93,119,248,222,
+161, 35, 87,196,195, 34, 95,114,238,223,111,112,203,164,196,148,182, 53,243, 30,214, 86, 78, 59, 59,187,110, 61,123, 68,148,198,
+ 94,186,192, 45, 89,254, 3,175, 95,223, 87,110,109,249,233,208,161, 45, 63, 29, 58,212,175,239, 43,183,150, 44,255,129, 23,123,
+233, 2,215,179, 71, 68,169,157,157, 93, 55, 75,234, 62,105,194, 24,231,200, 97, 35, 16, 29,125,136,217,191,123,253,242, 61, 7,
+210,123,191, 63, 37,174, 48, 45,237, 14, 81,230,157,130,144,151,141,228,228,100,117,165,200, 74,179,132,115,226,248, 49, 53, 69,
+214, 69,119,239,158,155,147,147,193,158, 57,115,140, 62,119,238,150,254,226,109,165,250, 70, 82, 81,137, 92, 85,242, 64,163, 41,
+ 54,113, 28, 11,150,101,249, 95,125, 85,237,176, 91,235, 53,234,222,189, 15,206,159,221,137,109, 91, 55,170, 57, 14,134, 81,251,
+247,179,163, 70, 45, 32,205,154, 55,111,182, 99,247, 78, 42,234,197,151,156, 9,192, 13, 31, 57,194,101,215,158, 93, 84,203,214,
+ 45,155, 7, 6, 86,135,180,249,215,245,165,207,129, 10, 10, 72, 86,252,254,123,103,135,158, 61,239, 50, 66, 97,208, 66,145,168,
+213, 26, 64, 60, 10, 96, 39, 2,244,124,128, 55, 31,240,211, 11, 4, 29,236, 25,230, 78,185, 78,215, 20, 0, 22, 17,242,160, 54,
+206, 5, 64,169, 38, 59,251,194,205, 31,126, 48, 54,121,237, 53, 55,113,147, 38, 78, 96, 89,170,106,124,175,235, 37, 16, 8,158,
+180,192,212,201,233,231,225,145,127,244,232, 81, 4, 5, 5,193,207,207, 15, 53,125,100,171, 2,114,187,187,187,227,192,129, 3,
+ 32,143, 7,167,174,147,179, 83,139, 22, 55,151, 45, 93,106,226, 56, 14,165,165,165,127,178,102,149,150,150,130,227, 56,156, 56,
+126,220,164,121,148, 9,196,162,186,247,229,243, 43,222,232,213,107, 73,100,100,164, 57, 35, 35,163,122,229,117,149,101, 75,169,
+ 84,194,193,193, 1, 6,163,209, 31,128,212, 18, 78,229,201,147, 50, 52, 48,174,215, 98,209,250, 43,250,210,191, 93,100,213, 76,
+ 40, 61,193, 34,139, 22,195, 48,240,247,247,127, 44,165, 11,143,199,123,236,101,229,138,195,237, 73, 73, 73,167, 6, 15, 30, 60,
+239,249,231,159,159, 52,111,222, 60,126,219,182,109,161, 86,171,225,234,234, 10, 47, 47, 47,164,166,166,226,232,209,163,108, 81,
+ 81,209, 6, 0, 11, 81, 75, 0,187, 90, 16,147,158,158, 30,213,190,125,251, 61,179,102,205,114, 30, 52,104,144,208,223,223, 31,
+132, 16,220,186,117, 11, 7, 15, 30, 52,111,217,178, 69, 83, 41,178, 98, 44, 44,235,105,185, 92,254,202,208,161, 67,119,140, 27,
+ 55,206,145,101, 89,225,195,135, 15, 97, 52, 26, 65,211, 52,114,114,114,204,209,209,209, 21, 58,157,110, 12,128,211, 22,240,221,
+ 44, 43, 43, 11, 61,115,230,204,184,203,151, 47,127,253,222,123,239,185,247,239,223, 95,196, 48, 12, 46, 93,186,164,234,212,169,
+147,151, 82,169, 52, 31, 56,112,160,216, 96, 48,204, 97, 89,214,162, 20, 60, 20, 69, 65,163,209,192,195,195, 3, 70,163, 17, 28,
+199,193,100, 50,193,193,193,161, 58,109, 18, 33, 4,214, 56,215, 63,209, 7,248,102,179, 25,175,191,254, 58, 56,142,195,234,213,
+171,193, 48,140,213,100,206,206,206, 55,110,223,190, 29,213,177, 99,199,106,241, 82,213,135, 36, 18, 9, 60, 60, 60,224,238,238,
+142,232,232,104, 8,133,194, 27, 13,249,187, 85,226, 78, 81, 81, 81,167, 51,103,206,116,187,119,239,222, 91, 0, 58,154,205,102,
+ 63,150,101, 41, 30,143,167, 32,132,220,213,104, 52, 63,193,194, 20, 60, 74,165,242,235,183,223,126,187,211,206,157, 59, 29, 4,
+130, 63,254, 26, 2,129, 0, 18,137, 4, 85,193, 49, 9, 33, 48,153, 76,152, 59,119,174, 70,171,213,126,253, 95, 25, 37, 34, 58,
+119,197,166,245,107, 28,206,157, 63,165, 74, 78,199, 65, 87,215,228, 39,251, 95, 94, 97,193,166,118,242,220, 92,135,136,206, 93,
+ 45,226,164, 77,230,226, 55,199, 76, 11,168, 76,193, 51,247,225,195,172,141, 59,182,175,202, 4,128,111,191, 91,221,166,176,184,
+108, 98,114, 82,202,168, 13, 27,118,119, 99,204,230, 98, 75, 56,255, 16, 47, 59,212, 32, 48, 0,184,118,235, 94, 97,139,225,175,
+157,156,211,186,165,211,139,202, 98,125,126, 69,133,238, 35, 0,153,150,214,189, 71,247,222, 56,127,122, 23,126,221,182, 67, 67,
+ 56,190,193,195,195,131, 0, 64,114,178, 7, 73, 78, 46, 35,127,248, 21,187,104,133,228,206,194,105, 31,245,159,166,214,148,124,
+183,122,125,253, 83, 41,237, 59, 60,143,246, 29,158,199,148,143,190,112, 14, 13, 11, 14, 0,128,253,251,193,134,181, 78, 58, 54,
+239,203, 5, 47, 46, 92,184, 0,154,114, 35,170,210,245,164, 38, 36, 29,207,204,132,233,223,220,143,230, 49,204,165,133,132,188,
+172,139,139,107,215,237,179,207,126,191,184, 98, 69, 11, 53,159,223,253, 43,128,227, 81, 20, 11, 66,236,121, 60,158, 66, 70,211,
+183,202,197, 98, 31,138,227,158,115,100,217, 67,116, 61,249, 63,231, 49,204, 53, 76,155,214, 70, 87, 82,226,217,227,243,207, 61,
+ 4,159,125,198,171,207, 25,190,230,255,215, 18,206,235,119,239, 30,159,248,254,251,249,243,231,205, 27,188, 97,227, 70,251,118,
+237,218,161,160,160, 0,193,193,193,240,243,243,195,153, 51,103,112, 96,239, 94,109, 89,121,249, 28, 0, 63, 90,194,185,253,196,
+137,212,182, 97, 97, 69, 27, 55,110,244,141,140,140,164,180, 90, 45,212,106, 53,212,106, 53,140, 70, 35, 42, 3, 66,147,180,244,
+244,100,154,166, 55, 88, 90,119, 86,165,178, 91,216,181,107,158,136,227,150,189, 50,114,228,140,133,139, 22, 73, 90,182,108, 73,
+ 25,141,198,106,171,150,217,108,134,131,131,131,217,100, 50,185,163, 22,191,183,218, 56, 37, 91,182, 48, 42,149, 10,158,158,158,
+213,225,154,106,198, 37, 44, 47, 47, 7, 33,228, 63,155, 0,253,175, 68,157, 10,201,213,213,245,134, 64, 32,104, 90,211,186, 85,
+ 91,238,188,154,251,104,154,206, 43, 42, 42,138,120, 66,241,214,229, 15, 21, 8,224,155,126,253,250,189, 50,125,250,116, 42, 54,
+ 54, 22,135, 15, 31, 38,153,153,153,251, 43,173, 88,153,245, 60, 61,213,197,233, 40,145, 72, 62,145,201,100, 3,170, 66, 56, 72,
+165,210,123, 90,173,246,108,229,116, 97,121, 35, 56,157, 36, 18,201, 84,153, 76, 54,176, 50,253, 10, 28, 29, 29,111,107,181,218,
+ 51, 70,163,113, 13,234, 78, 84, 93, 31,167,189,179,179,243,215, 30, 30, 30,111,126,246,217,103,238,113,113,113,138,243,231,207,
+139,202,202,202,118,154, 76,166,250,146, 74,255,137,211,205,205,237, 6,159,207,111,250, 23, 93, 35,180,111,223, 62,122,248,240,
+225,145, 99,198,140, 1, 77,211,248,241,199, 31,113,230,204,153,227,247,239,223,143,106,224, 9,247, 73, 78,143,166, 77,155,198,
+ 78,154, 52,169,217,235,175,191, 46,117,117,117,133, 64, 32,128, 86,171,197,253,251,247,113,235,214, 45,114,228,200,145,138,155,
+ 55,111,230,233,116,186, 62, 0,138,172,104,207,167,121, 18,127,140, 83, 32, 16,244,246,247,247,223, 61,127,254,124,199,129, 3,
+ 7,218,187,187,187,131,207,231,131,166,105, 40, 20, 10, 36, 36, 36,224,212,169, 83,218,253,251,247,107,139,139,139, 95, 7,112,
+225,255,163,156,207,146, 51,164, 13,190,124, 34, 81,116,157,209,222, 27, 56,182,193,114,246,235,237, 51, 98,212, 43, 67,135, 16,
+ 66,176,239,192,201,147, 49,113, 13, 38,149,174,179,156, 13,149,213, 18,206,224,214,188,249,137, 73, 9,143, 5,180, 12, 11, 13,
+ 79, 11,105, 55,114,177, 37, 68, 53, 34,195, 63, 86,247, 26,211,177, 53,109,186,143, 77,179,134, 4, 34,106,196,168,151, 35,191,
+152, 51, 27,223,124,189, 4, 71,246, 29, 58,158,156,249, 88,154,160,127, 93, 95,170,121,111,249,138,207,239,199,227,241,252, 41,
+177,248,119, 90,171, 77,119, 4,132,229, 0,255, 43, 64,187, 80, 36,106, 5,150, 13, 3, 33,130,114,138,138, 94,193,178,174, 0,
+228, 13,113, 46, 22, 8,158,151,250,248,244, 90,205,113,179,239, 36, 36, 56,212,124, 96,171,178, 60,215,124,168,244,245,245, 85,
+ 42, 20,138, 38,150,112, 70,125,255,189, 89, 39,147, 73,102, 47, 91,214,187,194, 96,232,189,112,225, 66,193,245,235,215,177,254,
+135, 31, 24, 67, 94,222, 14, 21, 48,181,142,217,144, 58, 57,155, 77,157,106, 55,115,253,250,119, 2, 91,183,246,122,235,173,183,
+132, 66,161, 16, 90,173, 22,185,185,185, 56,125,234,148, 41, 41, 57, 57, 73,163,209,188,104, 77,221,163,190,255,222,236, 18, 24,
+ 8,169,167, 39, 57, 23, 19,227, 60,241,147, 79, 38, 53,111,209,194,121,240,144, 33, 66, 39, 39, 39,148,150,150,226,225,195,135,
+ 56,116,232,144,178,162,162,194, 23, 0,107, 9,231,142,203,151,219,159,184,112,225,213,197,139, 23,139,195,195,195,225,236,236,
+140,242,242,114, 36, 36, 36,224,194,133, 11,198, 13, 27, 54,168,213,106,245, 36,150,101,143,254,133,125,233, 63, 57,117,248, 87,
+123,248, 91,114, 33, 34, 0,124, 89,185,189, 8, 13,231, 12,252, 55, 15, 62, 79, 34,192,205,205,109,147,193, 96, 32,122,189,126,
+ 34,128,156,127, 96, 57, 5, 17, 17, 17,235,149, 74,101, 55, 66, 8,156,157,157,175, 36, 38, 38,126,128, 58, 86,222, 52,192,201,
+ 7,208,205,193,193,161,171,163,163, 99,111,163,209, 24, 82, 57,253,150,172,213,106, 47,152,205,230,107,149,214, 39,246,255,185,
+238,124, 0, 3,125,125,125,223,231, 56,174, 53, 69, 81, 46, 44,203,130,166,233, 50,142,227,238,171,213,234, 45, 0,206,252, 3,
+202,249, 76, 56, 67, 91,225,101,194, 67, 72, 93,130,224, 49,161,245,132,128,160, 56, 36, 39,101,224,144, 21,229,228, 13, 25,224,
+191,142, 99,129,211, 49,185, 31,162, 97,231,218, 63,132,150, 5,226,197,106,145,217,138,255, 54,161,200, 99,156, 20,161,114,130,
+219,191,252,235,211, 8, 45, 75, 17, 26,132,222, 32,232,198, 17, 92, 75,185,143,243,255,181,177,110, 62,208,132,199,227,117,161,
+120,188, 86, 4,208, 82, 20,197,128, 16, 55, 16,146, 1, 62, 63,113,158,217,156,129,218, 19,152,215,201,249, 13,224,246,131,171,
+235, 21,158, 64,224, 13,128, 87,105,125,225, 56,138, 98, 9, 69, 49, 53,167,183,158,120,176,172,151,211, 12,180, 19, 74, 36,254,
+ 44,195, 52, 41, 0, 28, 78,176,236,115, 6, 66, 42,154, 2, 95,222, 6, 82,173,173,123, 21, 39, 95, 34, 9, 56, 65,200, 8,149,
+ 76,214, 94,169,215,123, 2, 32, 14, 50, 89,178, 70,171,221,102, 48, 24,214, 89, 91,119, 51,208, 78, 36,145, 52,101, 25,166, 9,
+ 0,240, 4, 2,229, 30,163,209, 63,207,201,233, 45,131,209,216,204,193,193,129, 54,153, 76, 26,131,193, 48,134, 97,152,115,214,
+212,253, 62,195,132, 94,230,241,122,154,101, 50,119, 51, 69,201, 76, 12, 99, 54,153,205,185, 6,131,225, 30,128, 85, 0, 50,254,
+226,190,100, 67, 35,255,128, 54, 78, 27,167,141,211,198,105,227,252, 31,231, 92, 10, 56,125, 3,184,217,218,243, 47,229,148, 2,
+ 8,168,124, 88,252, 55,214,253, 63,105,221, 18,216,218,194, 6, 27,108,176,193,134,191, 26,179,234,118,179,176,225,217, 65,135,
+ 90,124,178,108,248,255, 5, 85,143, 42,181,198, 36,216, 24,101,123,214,198,105,227,180,113,218, 56,109,156, 54, 78, 27,231,255,
+ 28,103, 67,220,255,198, 41,201, 9,181,236,219,244,119,252,176,205,252,107,227,180,113,218, 56,107,197,240,225,195,121,182,246,
+180,113,218, 56,109,156,255,117,240,108, 77, 80, 39,154, 84,190,158,245,177, 54,252,183,251,194,223, 1,191,202,151, 53,199,251,
+252,211, 26,245,216,177, 99, 28, 0,220, 75, 78,144,148,151,151,219,198, 34, 27,108,176,193, 38,180,254,230,155,214,211,220,220,
+158,246,198,184,132,162, 32,167, 40,200, 1, 44,121,134,199, 54, 4, 95, 15, 15,143,143, 67, 67, 67,119, 52,105,210,100, 10, 0,
+ 47, 43,207,111, 35,149, 74,215,200,100,178, 88,153, 76, 22, 43,149, 74,215, 0,104,243,140,174, 27, 5, 96,162, 68, 34,137,241,
+241,241,201, 23,139,197, 49, 0, 38,161,241, 43, 87,219,226, 81,156,180, 69, 0,218, 91,115,162, 87,216,136,189,158, 97, 35,238,
+122,134,141, 72,112, 15, 31,222,198, 51,108, 68,130,103,216,136,187, 94, 97, 35,246,254, 5,253,245, 89, 94,223,103, 85,158, 28,
+138, 66,142,133,229, 89, 69, 1,185, 20,133,188,127, 72,249,255,132,118, 33,225,198, 81,163, 71,219,219,134, 99, 27,108,176,225,
+127, 30,190,190,190,175,248,248,248,156,245,241,241, 57,227,235,235,251,138, 5,167, 12,168,229, 38,193, 82, 20,216, 6, 6,253,
+250,142,107,200, 92, 89,243,220, 21, 22, 86,173, 38,103, 19,138, 2, 75, 42, 65, 81,224,188,188,188,214,250,248,248, 44,121,242,
+229,229,229,181,150,162,192,213, 56,150,173, 33,240,172, 53,171, 54, 25, 59,118,236,190,210,210,210,104,147,201, 20,157,158,158,
+ 30,221,167, 79,159, 61, 79, 88, 34,234,228,180,179,179,123,163, 75,215,110, 55, 47, 92,186,150,158,118, 63, 75,158,148,250, 32,
+235,216,201,115,215,195,219,181,255,221,206,206,238, 13, 43,174, 17, 5, 96,162, 64, 32,136,113,112,112,200, 19, 8, 4, 49, 0,
+ 38,243,249,252,163, 75,151, 46,205, 74, 76, 76, 44,188,124,249,114,217,133, 11, 23,242,223,123,239,189,251, 20, 69, 29,171, 69,
+176, 15,176,192, 2, 51, 47, 59, 59,251,164, 66,161, 56,101,111,111,255,181, 5,199, 87,115,122,134,141,184,171, 84,155,137, 82,
+109, 38,158, 97, 35, 72,141,237,187, 86,182,121, 67,215,232, 79,125, 65, 34,145, 4, 52, 32,232,255, 74, 19,253,159,202, 3,192,
+187,242,187, 8, 0,223, 87,190,170,150,179,123,219, 73, 36,207,170,127, 62,139,246,180,113,218, 56,109,156, 54,206,255, 42, 58,
+ 85,190,251,224,145,191, 86,245,189,219,218, 85,135, 31,166,167,167, 59, 0, 64, 80, 80,208, 7, 0, 14, 88, 35, 36, 40, 10, 51,
+ 57,142,240, 0,128,199,163, 62,239,219,183, 95, 39,123,123,251,199,162, 32,235,245,122,113, 76,204,249,254, 28, 71,168,202,227,
+102, 18,130, 53, 0, 10, 45,253, 13,147,201,200, 19, 10,197,224,241,168,105,225,225,237,154, 23, 21, 21,197,241,120,188, 29,249,
+249,249,165, 86,155,113, 40, 10,155, 55,111, 14,242,241,241,249, 83,180,102,133, 66, 33, 30, 49,226, 69,171,248,222, 6, 36, 70,
+137,164,171,136,162,124, 88,134,113, 1, 0,129, 64, 80,122, 93, 44,142,248,102,241, 98, 41, 69, 81, 92,113,113, 49,244,122, 61,
+ 62,253,244, 83,251,164,164,164,151,138,138,138,214, 53, 64, 27,212,190, 67,167, 79, 79,157, 58, 25,162, 41, 41, 53,108,254,110,
+227, 77,189, 64,164,107, 17, 26, 44, 90,191,105,155,235,132,119,198,124,148,146,146,120, 27,181,167, 35,169, 9, 30,128, 67,159,
+124,242, 73, 88, 84, 84,148,184,188,188,220, 78,175,215, 55,223,177, 99,199,220,136,136, 8,135,142, 29, 59,138,119,239,222, 77,
+169,213,106, 16, 66,164,193,193,193,100,244,232,209,134, 61,123,246, 76, 1,176,182, 30,225, 59,243, 81, 91,242, 86,183,109,219,
+118, 62, 0,164,167,167,139,106,180,177, 48, 36, 36, 68, 6, 0,169,169,169, 95, 17,194,125, 2, 0,132, 96, 57,128,217,181,152,
+214,210,195,122,140, 2, 40,180, 78,188,180,207, 46,172,231, 40, 3, 8,238, 83, 64,122,229, 3,193, 66,160, 70, 92,168,199,145,
+ 44,151,203, 27,149,155, 48, 50, 50,138,162, 40,106,255,205,155, 55, 15, 40,149,202, 22, 28,199,142,175,175,156,117, 93, 43, 79,
+ 79,207, 83, 44,203, 26, 75, 74, 74,170, 3,101,122,182,127,185,155,187,163,172,191,170,180, 60,174, 56,233,200, 5, 11,251, 38,
+229,238,238,254,118, 81, 81,209, 18, 0,239, 39, 39, 39,119, 2,128,144,144, 16, 17,128, 27, 78, 78, 78,221,205, 38, 19,101, 27,
+255,108,176,193, 6, 27,254, 22,161,117, 11, 64, 36,254, 72,193,179,169, 49, 66, 75, 12, 0,113,113,113, 0, 32,105, 68, 65,168,
+154, 2,102,234,212,169,240,241,241,121, 82,188, 32, 54, 54,230,105, 42,251,216,111, 44, 90,180,200,161,172,172,108,192, 79, 63,
+253,212,139, 16,178, 66, 46,151, 95,109,224,252, 66, 66,176,156,199,163, 62,167, 40, 10, 18,137, 93,218,164, 73,147,110, 85,126,
+215,252,216,177, 99,210,225,195,135,235, 0,100, 1,128, 68, 98,231,199,231,243,130, 8, 33, 85, 55,220, 58, 5,225,171, 64, 32,
+ 35, 22,247,155,248,253,247,204,115,195,135, 11,100,158,158, 20, 0,100,165,164,184, 47,255,246,219,238,165,153,153, 98,189,187,
+123,113,177, 86,171, 79, 75, 75,131, 68, 34,161,248,124,254,115, 13, 85, 88, 38,147,125,188,248,155,101, 50, 77, 73,153,222,160,
+ 41, 55,241, 25,218,232,104, 47,101, 11, 11,148,197, 14,246, 50,221,231, 95, 46, 16,127, 56,126,220,199, 90,173,246,131, 6,168,
+166, 76,155, 54, 45,164, 75,151, 46,126,123,247,238,165,212,106, 53, 4, 2,129, 67,199,142, 29, 17, 17, 17,193,158, 63,127,158,
+106,209,162, 5,194,195,195,113,233,210, 37, 92,185,114,133,234,212,169,147,244,224,193,131, 99,105,154, 94,219,144,184,230,243,
+121,159, 6, 7, 7,119,148,201,100,166,160,160, 32,140, 31, 63, 30,132, 16, 12, 24, 48, 32,220,193,193,225,128, 86,171, 21,167,
+166,166,244,106, 72,100, 43, 19,143,140,174,178,108, 1,104, 7,130,251,170,196, 35, 53,167, 31, 67, 82, 83, 83,159, 47, 45, 45,
+197,163,235, 66,170, 19,152,247,234,213,203,154,190, 84, 72, 8,150, 15, 31, 30,245, 57, 64, 81, 3, 6, 12, 40,155, 50,101, 10,
+ 47, 37, 37,229,205,151, 95,126, 41, 60, 61,253, 62,172,124, 24, 8, 26, 52,104,208,165, 19, 39, 78,184, 7, 5, 5,169, 74, 74,
+ 74,170,191,240,118,119, 25,124,225,224,234,143,191, 94,179, 35,120, 59,161,202, 84,201,135,239, 53,208, 55,169,183,223,126,167,
+208,193,193, 97,228,254,253,251, 83, 21, 10,133, 64, 36,170,214,174,124, 47, 47, 47,207,160,160,160,201,110,110,110, 74, 62,143,
+231, 69, 64, 72, 67,253,243,255, 27,233,105, 41,194, 54, 65,193,180,109,188,182,193, 6, 27,254,133, 56, 94, 41,174,142, 63,249,
+133, 0, 0,162,163,163,171, 35,211, 70, 69, 69,213,249, 4, 76, 8, 41,188,115,231,142,191, 78,167, 3, 33,196,146, 1,187,230,
+ 18,205, 66,138,226,173,231,241,168, 15, 40,138, 66,120,120,187, 7,171, 87,175,174, 45,167,151, 41, 60,188,221, 3, 62,159,215,
+146, 16, 2,138,226,253, 72, 8, 87, 88, 7,103,173, 55, 34,177, 88, 50, 19, 0,188,189,125, 50,127,251,237, 55,211,171,175,190,
+138,111,191,253, 86, 52,107,214,172, 25, 2,129, 96, 74, 78, 78, 78, 65, 61,229, 4,128,217,158,158, 94,210,205,155, 55, 7, 77,
+154, 52,233,150, 66,161,152, 13, 0, 62, 62, 62, 75, 0,132, 2,200,170,177, 15, 27, 54,236,201, 31, 63,126,124,154, 82,169,156,
+ 93, 23,231, 72,160,149,127,112,112,191,133,113,113,132,103, 52, 82, 69, 23, 47,106, 84,133,133,116,134, 74, 37,221,122,227, 70,
+212,220, 37, 75,132,254, 1, 1,136, 61,122,212,163, 72,167, 83,169,141, 70, 67, 97, 97, 33, 97, 24,230,138, 5,117, 15,243,242,
+244,146,110, 92,245,227,117, 71, 33,159,243,106,234, 71, 9,221,220, 4, 60,169,147,152, 47,224, 25, 91, 54,111, 35, 6, 16,214,
+208, 53, 18,137, 68, 99, 7, 13, 26, 36,221,179,103, 15, 21, 30, 30, 14, 23, 23, 23, 92,188,120, 17,183,111,223, 70,105,105, 41,
+143,166,105,116,238,220, 25,203,150, 45, 67, 64, 64, 0,202,202,202,144,147,147,227, 33, 22,139, 61,105,154,174,171, 61, 31,235,
+ 79, 51,103,206,132,143,143, 15, 24,134, 65, 73, 73, 9, 24,134,129,131,131, 3, 0, 32, 47, 47, 15, 71,143, 30,177,164, 47, 53,
+ 8, 66, 8, 94,120,225,133,114,138,162,146,159,180,104, 89,195,233,231,231,183, 91,165, 42, 26,218,175, 95, 63,148,150,150,210,
+ 11, 22, 44, 64,251,246,237, 17, 20, 20,212, 96, 57,125,125,125, 39, 50, 12, 51, 15, 0,204,102,243, 86, 59, 59,187,119,127,253,
+245, 87,247,154, 41, 66,170, 44, 89,133,202,226,210, 43,215, 19, 83,167, 77,124,181, 79,220,213,132, 92,179,112, 68,142,250,238,
+ 17,117, 45,229,156, 45, 18,137,127,106,214,172,217,170,169, 83,167,250,184,185,185,193,104, 52,206, 45, 40, 40,192,228,201,147,
+ 1, 0,195,134, 13,107, 47, 20, 10,127,123,239,189,247,208,162, 69,139,252,146,146,146,156,155, 55,111,142,215,233,116, 9,141,
+109, 79, 11,241, 84,156,117,136,172,127, 92, 57,109,156, 54, 78, 27,231, 95,195,105,169, 22,249,135, 66,129,199,195, 57,108,122,
+ 76,104, 69, 69, 69, 81,209,209,209,196,130,138, 21, 55,109,218,212,223,222,222, 30, 0,138,173, 45, 5,199,113, 83,220,221,221,
+149,179,103,207,238, 17, 20, 20,100,154, 50,101, 74, 66, 86, 86,214,156,154,199, 52,111,222,252,235, 31,126,248, 1,105,105,105,
+ 89, 75,150, 44,185, 84, 92, 92,108,109, 30,179, 89,132, 96,117,165,117,172,232,232,209,163,237,227,226,226, 62,248,238,187,239,
+ 60, 63,252,240, 67,209,199, 31,127, 60, 6,192,183, 13,145,240,249,124, 93,109,211,133,181,193,199,199,199,196,231,243,235, 12,
+ 18, 23, 5,216,219,137,197,125, 23,198,197, 17, 83, 86,150,238,231,149, 43, 29, 55,254,254,251,124,154,144, 38, 94, 94, 94,232,
+217,189,123,133, 29,159, 95,164, 44, 40,224,188, 90,181,226, 63,252,237, 55, 15,189, 88, 44,223,179,103,143,186,184,184,248,112,
+131, 38, 60,138,210,112,132,152, 28,154, 6,208,175,190, 52, 48,252,250,181,219, 41,142, 94, 30,188, 78, 29,195,219,167,164,101,
+221, 4,199,153, 41,138,106, 48, 88,160,179,179,115, 80,113,113, 49, 52, 26, 13, 60, 61, 61,177,122,245,106,120,123,123, 67,167,
+211, 33, 49, 49,145, 52,109,218,148,138,139,139, 67,211,166, 77,161, 82,169, 96, 50,153, 80, 94, 94,174, 52, 26,141,117,229,102,
+ 44,228,241,248,191,240,120,212, 59, 20, 69,161,101,203,192,236,117,235,214,153, 56,142, 67, 72, 72, 8, 94,126,249,101, 28, 60,
+120, 16,137,137,137, 85,150, 39, 83,179,102,205,179,121, 60,170, 89,165, 86,106,180, 5,166, 42,181,143, 92, 46, 31,217,200, 63,
+ 13,207,215,215,119, 76,235,214,173, 63,120,227,141, 55,104,177, 88, 12,173, 86, 91,213, 22,244,208,161,195,202,134, 15,143,114,
+ 62,126,252,120,157,229, 52,155,205,243,242,243,243,125,244,122, 61,134, 12, 25,242,241,138, 21, 43,100, 98,177, 24, 0,192,178,
+236, 99,150,172,197,223,109, 63,245,201,188,117, 49,167,118, 47,243, 93, 60,235,221, 62, 99,166,124, 29, 3,224,100,109, 5, 51,
+153, 76,153,106,181,250,253,105,211,166,237,216,176, 97,131,235,156, 57,115,192,113, 28, 8, 33, 96, 24,166, 58,145, 56,199,113,
+ 56,116,232, 16, 50, 50, 50,190,126, 66,100,217, 96,131, 13, 54,252,227, 96,133, 22,249, 39,194, 7,143,166, 13,241,164,216,250,
+219, 35,195,243,249,252,141,167, 79,159,238,216,171, 87, 47, 65,255,254,253,195, 79,158, 60, 25,158,159,159,159, 80,105, 61, 8,
+239,223,191,127,184,151,151, 23,214,172, 89,163,227,243,249, 27, 27,249, 51,213, 55,189,130,130,130, 91, 0, 86, 28, 60,120,112,
+249,196,137, 19,225,237,237, 29,170, 80, 40,254,214, 58, 59, 73, 36,157,222, 91,189,154, 17,210, 52,239,251, 21, 43,156, 86,198,
+196, 44,223,187,111,159,224,133, 23, 94,160, 8, 33,184,119,247,174,253,178,181,107,165,175,191,244, 82, 86,106,102, 38,115,228,
+212, 41,186, 48, 63,191, 36, 95,165,154, 7,160,164, 33,126,154,166,227,211,211,211,125,123,246,126,193,239,194,239, 9,183, 95,
+125,105, 88, 63,161,128, 71,221,207,202,187,225,227,237,225, 28, 27,115, 86, 79,211,116,124, 67, 60, 90,173,246, 33,195, 48,110,
+132, 16,207,216,216, 88,120,122,122,162,180,180, 20, 52, 77,195,100, 50,153,116, 58,157, 93,113,113, 49, 12, 6, 3,140, 70, 35,
+156,156,156,112,239,222,189, 66,134, 97,206,215,197,201,178,236,123, 18,137,100,145, 80, 40, 20,139, 68, 34,249,141, 27, 55,160,
+209,104,154,187,184,184,124,203, 48, 12,228,114, 57,226,226,226, 62,115,114,114,202, 2, 0, 59, 59, 59,136,197, 18,119,163,209,
+200, 0,200,111,108,155, 19, 66, 26,125,189,188,189,189, 3,236,237,237, 23,126,254,249,204,144, 14, 29, 58, 66,165, 82,129,227,
+ 56,200,100, 50,232,116, 58, 56, 57, 57,161, 91,183,110, 15, 23, 46, 92,168, 32, 4, 19,234, 17,131,252,202,235,131,137, 19, 39,
+202,156,156,156,144,155,155,139,224,224,224,106,161,165, 80, 21,223,187,124, 61, 33,101,218,164, 81,189,119, 30,141, 73, 62, 21,
+123, 35,249,165, 33,221, 59, 80, 20,105, 94, 95, 25,149, 74,165, 74, 32, 16, 76,153, 56,113,226,162,160,160,160,150,132, 16,180,
+105,211, 6,131, 6, 13,194,111,191,253,134,180,180, 52,104,181, 90,246,234,213,171,187, 20, 10,197, 49,219, 16,110,131, 13, 54,
+216,240,151,226, 79,190, 89,143, 89,180,254, 78, 40,149, 74, 85, 74, 74,202,201,155, 55,111, 70,141, 30, 61, 26,177,177,177,111,
+ 3,152, 6, 0, 18,137,228,237,209,163, 71,227,230,205,155, 72, 73, 73, 57,169, 84, 42, 85,207,226, 55,197, 98,177,193,100,122,
+100,156,178,179,179,179,179,242,244,230,149, 83,134, 0,208,188,158,125,117,155, 70, 4, 2,159,118, 67,134, 8, 74,111,223,214,
+108,190,118,109,209,142, 29, 59, 4, 61,122,244,160,104,179, 25, 44,199, 33, 48, 48,144,234, 63, 96,128,236,151, 29, 59,220, 88,
+173, 54,110,241,231,159, 95,220,244,222,123, 21,233,149,126, 96, 13,193,104, 52,174,253, 96,242,251, 3, 98, 98, 47,250,133, 6,
+183,114, 59,121, 58,230,150,187,187,179, 52,168,117,107, 89,113,105, 9, 59,103,214,103, 2,163,209,248,125, 67, 60,122,189,254,
+208,217,179,103, 95,242,247,247,247, 76, 72, 72,128,201,100, 2,203,178,232,223,191, 63, 8, 33, 18, 0,156, 64, 32, 64, 74, 74,
+ 10,204,102,179, 50, 61, 61, 93,126,255,254,125, 9,128,165, 13,148, 47,219,104, 52, 34, 57,249,209,172, 93,211,166, 77, 7, 70,
+ 70, 70,130, 97, 24, 12, 25, 50, 4, 71,142, 28, 25,152,156,156,188,178,166,230,123,218,107, 94,105, 33, 11,241,245,245, 61, 88,
+185,203, 34, 39,120, 63, 63,191,240,192,192,192, 13, 75,151, 46, 21, 53,109,218, 20,132, 16,184,186,186, 64,167,211,161,168,168,
+ 24,161,161,161,240,247,247,199,210,165, 75, 1, 96, 87,125, 22, 55,142,227,160, 80, 40,240,240,225, 67,100,102,102,194,223,223,
+ 31, 20, 69,161,188,188, 28, 12,243, 40, 39,183,180, 92,115,252,135, 95,142,245,221,183, 97, 94, 88,215,118,109, 2,174,221, 74,
+ 82,142, 29, 57, 80,218,166, 69, 64,144, 42, 97, 1, 15, 88, 80,103,210,101,185, 92,126, 95, 46,151,143, 86, 42,149,162,178,178,
+178,136,129, 3, 7,174, 25, 48, 96, 0,110,221,186,133,139, 23, 47,190, 46,145, 72,148,102,179,153,241,246,246,158, 64, 81,148,
+147,217,108,222, 89, 92, 92,172,176,141,135, 54,216, 96,131, 13,207, 28, 85, 62, 90,168,241,110,157, 69, 43, 36, 36, 68,150,149,
+149,245, 86,243,230,205,197, 0, 96,111,111, 31, 26, 24, 24, 56, 35, 51, 51,179,220,218,210,232,116,186,189, 59,118,236, 24,180,
+106,213, 42,209,176, 97,195, 90, 29, 60,120,176, 11, 0, 12, 27, 54,172,149,163,163, 35,118,236,216, 97,214,233,116,207, 44, 38,
+ 18, 77,211,189, 58,119,238,140,146,146, 18,100,101,101, 89, 53,133,114,236,216, 49, 41, 30,249,101,213,187,175, 62, 48, 38,147,
+171,139,159, 31, 47, 63, 38,198, 92,162,209,248,244,234,221,155,162,205,102,240,120, 60, 20, 23, 23, 35, 39, 39, 7,206, 46, 46,
+ 84, 74,122,186,195,150,153, 51, 79,183,209,185, 0, 0, 32, 0, 73, 68, 65, 84,143, 53,239,208, 65,204,154, 76,238, 86, 20, 83,
+ 91,164, 44,124,231,163, 41, 31, 30,218,185,115,151,103,153, 70,147, 97,111, 47, 53, 74, 36, 34,239,169, 31,125,196,150,148,148,
+140, 3, 80, 97, 1,207,210,157, 59,119, 14, 25, 50,100,200,221,128,128, 0, 47,149, 74,229, 93, 86, 86,198,150,148,148,240,241,
+200,215,138, 2,128,152,152, 24,104, 52, 26,134,101,217, 56, 60,138,133,101,178,180,160,205,154, 53,115,142,136,136,232,227,233,
+233, 9,181, 90, 13,119,119,119,116,236,216,177, 15,159,207,255, 41, 59, 59, 91,253, 44,123,253,153, 51,103, 28, 9, 33,207, 19,
+ 66, 48,100,200, 16,139,206, 97, 89,246,221,200,200, 72, 17, 69, 81,208,235,117,176,179,179,135, 76,230, 0, 71, 71, 39, 4, 5,
+181,133, 92, 46,199,224,193,131, 77, 25, 25, 25,235, 21, 10,197,222, 6,184, 32,151,203,161, 82,169,144,147,147,131,162,162, 34,
+ 0, 64, 81, 81, 81,181,115,254,179,128, 90,173, 30,209,173, 91,183,233,147, 39, 79, 6,195, 48, 24, 49, 98, 4,114,115,115, 87,
+ 62,124,248,112,143,175,175,239,152,119,223,125,215,211,221,221, 29,211,167, 79,183, 7,240,149,109, 60,180,193, 6, 27,108,120,
+230,120,210, 71,235,207, 22,173,250,230, 68,189,189,189,123, 82, 20, 53, 87,175,215,139,171,166,100, 40,138, 18,123,122,122, 30,
+209,235,245, 75, 20, 10,133, 85, 78,113,101,101,101,154, 7, 15, 30, 28,137,143,143, 31, 53,114,228, 72,156, 57,115,102, 28, 0,
+140, 28, 57, 18,241,241,241,120,240,224,193,145,178,178,178,103,146,128,212,207,207,111,104,239,222,189, 71,118,238,220, 25,209,
+209,209, 96, 89,246,138, 53,231,215, 92, 97,136, 90, 86, 29, 86,237,179,136,140,207, 7, 69, 81,213,214,140, 34,149, 10,105,169,
+169, 40, 41, 45,133,209, 96,128, 86,167, 99,131, 90,180,208,171, 77, 38, 33, 5, 88, 59,247,149,125,243,250,213, 28,157, 86,235,
+229,238,234,166,151, 74, 37, 40,211,168, 69, 55,174, 95,173, 0,144, 97, 33,135,137, 16,210,251,183,223,126,155,199,231,243, 71,
+ 59, 56, 56,224,131, 15, 62,224,247,233,211, 7, 34,145, 8, 70,163, 17,101,101,101,216,177, 99,135,138,101,217,150,149,231, 56,
+ 72,165,210,109,124, 62, 63,175,188,188,124,110,131, 63, 96, 50, 13,139,138,138, 18,152, 76, 38, 44, 94,188, 24,243,231,207,199,
+144, 33, 67, 4,215,175, 95, 31, 6, 96,231,179,234,241, 28,199, 97,224,192,129, 53,157,225,147, 45, 57, 79, 40, 20,134,183,110,
+221, 26, 42,149, 10, 42,149, 10,158,158,158,240,245,245,133,183,183, 55, 86,174, 92, 73,214,172, 89,115,210,108, 54,175, 47, 42,
+ 42, 42,180,164, 12,153,153,153,213,150, 65,131,193, 0,173, 86,139,220,220,220,234,169, 67,189,204,105,200,148,119,134,119,208,
+234,245,186,107,247,210,115,230,126, 60,230, 5,173, 94,175, 75,127,152,147, 6,172,229, 44,232,223, 19,198,141, 27, 55, 97,212,
+168, 81,168,168,168, 64,124,124, 60,186,119,239,142,229,203,151,251,196,197,197, 77,235,220,185, 51,132, 66, 33, 98, 99, 99,193,
+ 48, 76,174,109, 44,180,193, 6, 27,254,201,248,151,250,103,213,139,122, 45, 90,254,254,254, 46, 44,203,126, 22, 25, 25, 57,240,
+165,151, 94,194,224,193,131, 31,251,126,231,206,157,142, 7, 14, 28, 88,178,118,237,218, 33,102,179,121,169, 53, 83,125, 28,199,
+ 29,218,185,115,231,176, 23, 94,120, 65,218,183,111,223, 64, 0,144, 72, 36,166,157, 59,119,234, 56,142, 59,212,136,186, 84, 5,
+ 98, 44, 4, 0, 95, 95,223,246, 2,129, 96,228,208,161, 67,219,191,243,206, 59, 72, 76, 76,196,142, 29, 59,238, 7, 5, 5, 93,
+ 42, 44,180,202,191, 58,171,129, 85,135, 75, 26,178,110,241,197,226,226,178,130, 2, 23,135,128, 0,161,171,163,163, 34, 58, 58,
+218,127,192,128, 1, 84,110,110, 46, 74, 75, 75, 97, 48, 24,112,253,250,117, 78, 0,100, 11, 92, 93,169,236,248,120,138, 47, 22,
+ 23,131,182,110,165,187,191,143,107,155, 47,103, 77,106,110, 48, 26,194,212,106, 53, 35, 16, 10,133, 77,189, 93,114, 83, 51,172,
+154,137, 51, 74,165,210, 8, 0, 2,142,227,116,110,110,110,210,211,167, 79, 67, 44, 22,131,162, 40,180,107,215, 14,118,118,118,
+ 34, 66, 72, 14, 0, 56, 58, 58,138, 55,110,220,232, 60,102,204,152,139, 13, 17,119,234,212, 73, 40,145, 72, 94, 12, 10, 10, 66,
+124,124, 60, 18, 18, 18,178,227,227,227,155,117,234,212, 9, 1, 1, 1, 47,250,248,248,236,187,117,235,214, 51, 89,222,255,104,
+197,170,245,206,240, 44,203,114, 20, 69,129,199,227,129,227, 56,168, 84, 42,180,108,217, 18,235,214,173,195,234,213,171, 23, 43,
+ 20,138,163, 86,112,177, 26,141, 6, 50,153, 12, 9, 9, 9,198,200,200, 72, 9,143,199,195,253,251,247,171,133,150,151,135, 91,
+104,247,206,225,193,139,191,219,126, 74, 38,145, 72, 6,247,137, 8, 73, 74,207,206, 35,132,106,112,218, 56, 36, 36, 68,212,178,
+101,203,113,163, 70,141, 66,102,102, 38,150, 44, 89, 82,164, 80, 40, 98, 78,157, 58,245,202,228,201,147,249,221,187,119, 71,113,
+113, 49,126,249,229, 23,230,198,141, 27, 63, 23, 20, 20,108,183, 13,227, 54,216, 96,131, 13,255, 16,161,229,239,239, 63, 74, 36,
+ 18, 77,127,237,181,215,248,109,219,182, 69, 97, 97, 33,156,156,156,104,138,162,132, 0,224,226,226, 66,219,219,219, 99,210,164,
+ 73,232,208,161, 67,207,153, 51,103,118, 23, 8, 4,235,228,114,249, 54, 75,126, 88,169, 84,234,120, 60,222,254, 15, 62,248, 96,
+233,237,219,183, 90, 2,192,239,191,255,254, 64, 46,151,207, 82, 42,149, 58, 43,235, 81, 21, 20,147,146, 72,236,174,181,105,211,
+230, 97, 68, 68,132,211, 75, 47,189, 4, 79, 79, 79,220,188,121, 19,203,150, 45, 75, 55,153, 76,243, 46, 92,184,192,252,221,141,
+204, 24,141, 5, 55, 14, 31,118,236,243,230,155, 78, 83, 35, 35, 87,124,248,193, 7,171,190,252,242, 75, 65,219,182,109, 41,157,
+ 78,135,107,215,174,145, 3, 7, 14,208,191, 44, 90,180, 26, 50,153, 48,254,192, 1,177,201,100,202,182,210,114,215,187, 71,175,
+158,109, 87,172, 90, 11,131,190, 2,215,174, 28, 71,105,169, 10, 27, 55, 29,108,235,231, 71,122,231,231,231, 95,176,148,139,162,
+168,160, 51,103,206,120, 17, 66, 32, 22,139,177,112,225, 66,248,250,250,194,201,201, 9,229,229,229,152, 54,109,154,243, 39,159,
+124,226, 12, 0,137,137,137,213,225, 25, 26,130, 92, 46,239, 54,105,210, 36, 71,134, 97,112,242,228, 73, 19, 69, 81,115,207,158,
+ 61,251, 83,187,118,237,196, 61,123,246,116,220,190,125,123,119, 0,177,207, 74,104, 53,242,188,251,167, 79,159,238, 60,122,244,
+104, 34, 20, 10,169,178,178, 50,184,184,184, 96,221,186,117, 90,133, 66,113,220, 74,174,133,179,102,205,154, 87,185,189,117,238,
+220,185,239, 47, 93,186,212,179,160,160,160,218,170,169, 44, 42, 57,223, 45,242, 35,182,184, 76,109,250,249,187,153,175,218,219,
+ 73,196,115,151,254, 28, 75,243,113,181,193,126,197, 48, 98,169, 84, 42, 38,132, 96,255,254,253,200,206,206,126,183,184,184,184,
+128,101,217,131,159,125,246,217,140,182,109,219,182, 72, 77, 77,205, 46, 47, 47, 95,174, 84, 42, 31,218,134, 59, 27,108,176,193,
+134,191, 12, 85, 78,240, 85,171, 15,143,227,209,116, 98,221, 66,139,101,217, 73,167, 78,157,226,115, 28,135, 77,155, 54,225,198,
+141, 27, 68, 42,149,206,149, 74,165, 63,216,219,219,179,122,189,126,226,248,241,227,199,204,159, 63,159,215,179,103, 79,196,199,
+199,243, 90,182,108, 57, 14, 64, 77,161, 53, 0,245,196,218, 80,171,213,215, 11, 11, 11, 90,214, 8, 80,217, 82, 34,177,187,222,
+ 64,101,158,228,124, 50, 40,102,215,133, 11, 23,106,125,124,124, 76, 9, 9, 9,216,176, 97, 3,119,227,198,141, 24,177, 88,188,
+ 81,161, 80, 24, 45,228,124, 22,168,230, 20, 51,204,205, 95,103,204, 8,121,110,196, 8,238,253,233,211, 43, 68,246,246, 31,175,
+ 88,187,118,102, 89,121,185, 47, 40,138,184, 59, 59,103,111, 90,184,112,201,144, 23, 95,172, 72,188,112,193,238,246,153, 51, 66,
+ 79,154,190, 99, 77, 57,243,243,243, 47,196,198, 94,196,214,205,171, 96, 54, 27,161,200,127,164,211,138,138,213,104, 64,100,253,
+137,147, 97, 24,245, 43,175,188, 34, 2, 96, 63,118,236, 88,177, 82,169, 68,171, 86,173, 0, 0, 26,141, 6,199,143, 31, 71,112,
+112, 48, 0,224,222,189,123,213,219, 13,149, 83, 38,147,189,216,189,123,119,100,103,103, 35, 49, 49,241,156, 66,161, 40, 6,112,
+ 46, 55, 55,119, 88,231,206,157,113,232,208,161,225,245, 8, 45,171,174,145,133, 66,235, 79,156,246,246,246,179, 14, 30, 60,248,
+238,149, 43, 87, 70,207,152, 49, 67,216,191,127,127, 0, 64,121,121,185, 14, 0,107, 13,167, 94,175,223, 8,160,122,229,108, 86,
+ 86,214,175,211,167, 79,143,251,244,211, 79, 61,171,202,167, 74, 58, 26,175, 2,226,195,250,188,251,101,183,206, 97,109,191, 94,
+179,227, 84, 78,110,225, 14,117,242, 17,181, 37,117, 39,132,128,166,105,112, 28, 7, 55, 55, 55,109,113,113, 49,148, 74,229, 67,
+165, 82,249, 65, 70, 70,134, 85,117,127,150,125,222,198,105,227,180,113,218, 56,255, 71, 97,121,100,120, 66, 8,195,113, 28, 98,
+ 99, 99,113,240,224, 65,214,108, 54, 79, 80, 40, 20, 53,163, 85,175,189,121,243,230,153, 87, 94,121,101, 91,106,106, 42, 63, 41,
+ 41, 9,132, 16,214,154,210, 24, 12, 6,154,162,254,188,239,105,107,185,117,235, 86, 20, 20, 20,152,115,115,115,207, 50, 12,115,
+232, 41, 87, 47, 62,245,170,195,173,128,241, 13,147,233,236,252, 30, 61, 6,206, 59,115, 70,242,254, 23, 95, 24,223,126,231,157,
+207, 88,147,137,230,139, 68,156, 88, 38,227,177, 18,137, 48,241,194, 5,187, 53,147, 39,187,233,141,198,147, 59,172,112, 48,175,
+178,104,245,233,211, 19,111,191,255, 41,244, 53, 44, 90,241,215,211, 96, 52,195, 42,139,150,209,104, 12, 83, 40, 20,176,179,179,
+203, 1,224,253,214, 91,111,129,227, 56,232,245,122,148,151,151, 67, 46,151,171,223,121,231, 29,182, 82, 60, 9, 70,142, 28,233,
+100, 9,111, 96, 96,160,175, 80, 40,196,201,147, 39, 33, 20, 10,143, 3,128, 80, 40, 60,126,230,204,153, 97,175,191,254, 58,252,
+252,252, 2, 51, 51, 51, 41, 52,224,159,230, 21, 54, 98, 47, 1,218,128, 66,235, 71, 38, 56,180,246, 12, 27,113,151, 2,210, 43,
+163,198, 39,119,234,212, 9,176,208, 47,171, 38, 42, 23,119,172,166,105,122,223,204,153, 51, 63,232,218,181,235,160,249,243,231,
+ 83,168, 12,213,240,148, 72,203,207,207,239, 53,123,246,236, 83,132,144,199, 68,191,178,168,228,252, 11, 81, 83, 72, 89,153,250,
+182, 42,249,232, 61,171, 44,166, 12,243, 84,225, 44,108,176,193, 6, 27,108,120,102, 86,173, 63,161, 78,161, 69, 81,212,166,222,
+189,123, 79, 0,192,167, 40,106,131, 92, 46,255,211,224,175, 80, 40,210,124,125,125,191,109,209,162,197, 68, 0,132,162,168, 77,
+ 86, 22,170,144, 16, 44,227,241,168,153,143,196, 93,163, 2, 84, 86,165, 37,153, 9,128,226,241,248,219,110,221,186,245, 69, 78,
+ 78,142,202, 66, 11, 68,189,120, 22,171, 14, 1, 96, 23,240,240,181,236,236, 83,211,195,195, 7, 12,153, 60, 25,237,135, 12,113,
+242,109,214,140,213,155,205,220,189, 75,151,168, 43,251,247,139,110,159, 57, 35,212, 27,141, 39, 15, 1, 57,214,150, 51, 63, 63,
+255,194,249,152, 11,167, 95, 29, 57,108, 80, 96, 11,223, 71,162,225,161, 28, 69, 37,234,211,214,136,172, 39, 68,239,136,117,235,
+214, 29, 21,137, 68,130,154,169,108,204,102,115,137,209,104, 12, 3,128,210,210, 82,223, 77,155, 54,237,230,241,120,217, 13,241,
+ 37, 37, 37, 29,153, 55,111,222,200,172,172,172,211,185,185,185, 89, 0,144,147,147,147, 69,211,244, 54,133, 66, 49, 50, 59, 59,
+251, 0, 44, 88, 4, 64,128, 54,137,151,246,181, 3,128,176, 30,163,144,120,105,159, 29,128,118, 97, 61, 70, 1, 0, 26,155,203,
+176, 38, 42,195, 32,204,141,143,143,223, 57,104,208,160,241,120,138,152, 94, 79,138, 45,179,217,220,236,201,157, 85,150, 45,107,
+136, 76, 38, 19,173,215,235, 25,150,101, 5,102,179,153,152, 76, 38, 91,250, 26, 27, 26,130, 45,247,165, 13,255, 90, 16, 66, 58,
+ 3,240,172, 26, 54, 43,223, 61,159,216, 54,161, 50, 93, 96,213, 80, 89,249, 89, 69, 81,212,245, 26, 28,213,251, 45, 56, 23, 0,
+138, 0,220,165, 40,170, 46, 35,200,166,186, 62,215, 41,180,228,114,249, 1, 88,144, 52,218,210,227,234,193,236,202, 60,113, 64,
+227,243,176, 85,115,176, 44, 91,152,147,147,243,212, 23,148,199,227, 61, 28, 62,124,184, 85,199, 55,116,204, 30, 32,251, 35,163,
+113,123,244,247,223,119, 60,185, 97,131, 31,203, 48,238, 20, 64,248, 98,113,177,201,100,202,242,164,233, 59,214, 90,178, 30,179,
+198, 60,200, 31,156,249, 32, 31,173, 91,183, 38,247,239,223,127, 22,131,234, 29,173, 86,235,223, 80, 23,208,233,116, 61, 45, 20,
+131,187,242,243,243,119,213, 34,216,119, 43, 20,138,221, 86,220, 41,210, 43, 69, 21,143,163,184, 87,195,122,140,218, 15,128,171,
+ 74, 42,253, 44, 81, 80, 80,144,138,202, 56,111,255, 52,100,103,103, 27, 41,138,250,117,217,178,101, 99,111,223,190,189, 71, 46,
+151, 27,109, 67,177, 13, 54,216,240, 95, 22, 89, 20, 69, 69, 87,126,142,170, 52, 10, 69, 63,185, 93,117, 76,213,113, 53,143,169,
+226,120,114,127,125,231, 2,192,172, 89,179,190, 88,178,100,137, 20,128,165,201,152, 27,157, 84,250,175, 66,225, 63,132,163,166,
+ 40,216,252, 87, 84,244,123,192, 4,134,185, 10,166,134, 79, 62,253,108, 13, 17,247,239,223,255, 79, 63,181, 86, 37,149,174,129,
+240,255,213,193, 39, 43, 43,107, 93, 64, 64,192, 70,185, 92,206,192, 6, 27, 44,184, 95,217,154,192,134,127, 41, 60,107, 19, 70,
+117,136,178,168,250,190,127,236,193,189,150,227,106,251, 76, 81, 84,244,146, 37, 75,162,172, 40,111,181, 69,139,103,187,118, 54,
+216,240,239,198,255,199, 74, 90, 27,108,176,193,134,255,196,147,199, 19, 86,172, 42,241,245,228,231, 89,179,102,125,129,250,103,
+156,124,240,200,138,229, 83,249,185,218, 95,139,194,163,149, 3,181,193,154,213, 4, 3, 26, 81,191,179, 54, 78, 27,167,141,211,
+198,105,227,180,113,218, 56,255,231, 56, 27,226, 62, 91,139, 32,138,172,107,170,175,190,105,196, 39,183, 27, 58,183,161, 99, 41,
+138,170, 43,204, 79,213, 84,225,147,239,127, 57, 6,216, 56,109,156, 54, 78, 27,167,141,211,198,105,227,180,113, 62, 13, 8, 33,
+157, 9, 33,145,120, 52,253, 77, 8, 33,145,132,144, 33,179,102,205,154, 93,181,111,214,172, 89,179, 9, 33,253,171,142,171, 60,
+166,250,156,170,125, 79,190, 63,185,175,190, 99,235, 41,226,132, 39,182,171, 63,255, 83,124,180,108,176,193, 6, 27,108,176,193,
+ 6, 27,106, 69,213,138,193, 26,214, 38, 21,128,123, 75,150, 44, 41,173,225, 59,165, 2,112, 7, 64,135,202,227, 84,149, 34,173,
+166,111,149,169,242,179,169,150, 99, 76,150, 28, 91, 7, 54,213,177,109, 19, 90,117,161,131, 55,111, 81, 64, 83,175,136,202, 11,
+ 0, 82,153, 4,152,171,140, 87, 68,170, 2, 23,113, 28, 8, 33,144, 43,203,110,222, 83,226,203,198,254, 94,144, 47,220,188,236,
+236, 86,115,132,244,168,220,117, 65, 93,108,252, 52, 81,131, 50, 75, 57,130,155, 32,196,142,135,207, 56,130,246, 0,192,163,112,
+215,192,225,219,148, 66,235,227, 73,213,214,207,195, 60, 49, 65,108, 47,125,205,217,197,181,117,105,105, 81,186,217, 96,220,151,
+164,194, 70, 52,194,193, 54,208, 21,207,115, 4, 95, 0,224, 9,121, 88,153, 94, 98,241, 74, 14, 27,108,176,193,134,167,181,142,
+ 60, 85, 92, 60,138,162,216, 90, 56,169,167,228,180, 45, 84,176, 64,108,213,178,251,247, 90,246, 93,255, 39,149,219, 42,161, 21,
+234,137,201,160,176, 0, 0, 1,193, 87, 73, 42,252,104,213,249, 62, 24, 96,199,231,111, 1,192, 55,152,217,233,132, 67, 92,173,
+141,201, 67, 47, 59, 17,127, 37, 0,206,192,178,239, 37, 41, 44,247, 23, 11,243,195, 16, 1,199,251,149, 35, 68,200,114,100, 27,
+ 8,162, 29, 68,184,124, 53, 31, 6,107,202, 26,208,212, 43,226,240,239,138, 65, 49, 63, 78, 69,215,246,173, 64, 88, 6,224,104,
+ 72,123,126,134,115,223,189,133,174, 33, 1, 32, 28, 13,112, 12, 28,134,174,192,208,112,103,114, 79,217,184, 60,216, 65,190,112,
+107,230,225,149,176,121,243, 22,111,223,192, 80,138, 99,204, 72,253,253,244,152, 79,102,206,235, 23, 6,117,184, 37, 98,171,189,
+ 15,222, 15,104,222,246,179, 79, 23,172,226,251,248,250,203, 56,218,200, 20, 60, 76,238,180,118,249,188, 3, 34, 94,246,202,187,
+ 10,108,177,180, 47,135,122, 98,162, 64, 34, 30,101,111, 39,107,173,211,149,223,103,205,244, 62,158, 80, 48,228,219, 21,171, 59,
+246, 25, 56,204,129, 45, 47,224,209, 28, 66,247,238,217,221,236,251,117,235,135, 37, 40,216, 23, 1,112,214,212,153, 35,152,153,
+182,125,194, 48,161,128, 79,133,188,187,153, 15, 48,141, 18, 90, 33, 94,120,131, 34,104, 48,188, 4,161,112, 49, 89,137, 93,141,
+249,141, 96, 47,252, 68, 17, 4,129,194,126,138, 96,119,146, 10, 74,219,144,103,131, 13,255, 45,240,120,188, 24,142,227,250, 62,
+ 99, 97,240, 60, 33,228,170,173,117,255,183, 97,157, 69,139,194,226,196,140, 92, 87,176,102,132, 5, 5, 46, 2,172, 19, 90,118,
+124,254,182,235,233,133,222, 96,204,216,252,245, 7,123, 76, 52,192,208,102,176, 12, 13,150,161,193, 48,102,176, 52, 13, 66, 27,
+ 49,239,231, 24,192, 84,142,136,240, 54,219, 0,214,199,210,223, 16, 18,222,175, 55, 47,157,118,163, 76,106,236,250,113,201, 71,
+185,170,138,143,206,222,149, 23,133,122,233,103, 39, 41,241,139, 53,130, 32,102,195, 84,236, 56,116, 60,111,205, 79,218, 20,142,
+ 16,184, 57,217,183, 29, 19,149,232,191,253, 72, 76,238,234,109,134, 20, 0,112,150,137,219,142,187,155, 30,240, 52, 23,193,203,
+206,110,245,198,245,223,123,251,184,219, 83,204,149,165, 96, 88, 22,254,205, 34,249,179,167,140,241, 89,252,221,150,239,160, 49,
+190, 93,223,249,109,189, 16,218,188, 69,200,244,109,199,175, 4,104, 53, 74,211,233,157, 95,100,192, 8,218,219, 47, 68,184,104,
+201, 42,254,156,207,167, 78, 51,177,121,215, 82,149, 72,106,104,172, 9,241,194,145, 37, 75, 87,180,239, 55, 52,202,129,171, 80,
+241, 13,218,138,160,205, 63,111, 89, 16,220,190,139,180,103,120, 83,145,114,223, 36, 74, 95, 94, 2, 51,207, 78,210, 47,108,128,
+147,126,236,235,244,230,173, 59,166, 36, 41,177,214,154, 58,179,228,143,190,199,113,141,143,186, 78, 17,244,188,125, 53,102, 34,
+ 43,191, 14,194,210, 0,107,174,126, 7, 75,131,112,143,222,187, 78,250, 25, 64,227,132, 22,143, 96,208,217, 75,215,125, 10, 11,
+ 20,157,191, 91,241,205,108,114,253,250,111, 96,241,107,114, 9, 46, 88, 43, 48, 1, 4,181,116,231,159,162, 89, 24,115,203,216,
+160,170,157,253,130, 36,221,124, 28,168,254, 57,106, 42,238, 98,134,254,130,109,104,178,193,134,255, 23,139, 9, 67, 8, 17, 60,
+ 99,206, 97,132,144, 19, 79, 73,243, 25,128,247, 43,183,183, 0,248,246, 25, 20,173, 41, 0,239,202,237, 2, 0,121,182, 30,240,
+ 84,120,210,249,189,209,113,180,236, 64, 56, 96,255, 75, 0, 96,111,109, 41, 8, 96, 7,138, 15,208, 90,140, 24, 58, 16, 30, 94,
+222, 0,173, 3,204, 58,128,214, 3,180, 22,160,245, 40, 82,100, 3,102, 45,144,249, 27, 24, 66, 36, 86, 87,215,168, 6,210,246,
+161,127,167, 0,120, 58,219, 97,234,136, 80,143, 77, 39,211,182,108, 57,157, 58, 32, 73,137,215, 44, 42, 43, 33,232,218,174, 53,
+214,108,209,166, 28,187,165, 26, 12, 0,195, 58,184,159,236, 26,218,204,127,245, 54, 67,202,137,123,165, 67, 0, 96, 72,152,211,
+111, 93,218,250, 4,112, 79, 17,158,134, 35,164,167,111,243,214, 20,123,123, 35, 56, 77, 30, 52, 26, 61,242, 30,110,135,171,223,
+115, 60,150, 67,239,134,206,183,231, 99,214,199,115,150, 9,117,154, 66, 19,103, 86,177,158,252, 82,190, 64,204, 81,200,191, 96,
+172,224,202,216, 79, 39,188,197, 76,255,242,235, 89, 0,198,212,199, 19,234,133, 41, 43, 87,174,110,215, 61, 34,216,171,224,192,
+ 84,170,162,180, 16, 12, 95, 42, 25,241, 66,119,184,180, 9,229, 10, 99, 87, 82,226,192, 1,112,113, 15, 68,254,149,157,200,186,
+122,144,234,209,105,164,228,151, 93,162,177,128,185, 86,161,213,218, 3, 61, 6,247,234,178, 39, 48,192,215,135, 16, 14, 28, 71,
+ 64, 56, 22, 21, 6, 26,179,247,102,130,101, 89,188, 50,184, 71,127,153,152, 34, 28,199,129, 16, 14,185, 5,197,186,243,215, 82,
+250,103,150,226,154, 37,150,170, 14,207,247,237,113,247,230,213, 96, 58,237, 24, 34,198, 44, 73,161,128, 75, 53,250, 92,143, 91,
+167,126, 9, 6,126,110,188,150,163,192,102,157, 92,138,128, 94, 19,248, 27,119,157,244, 84,171,242,199, 29,216,190,254,213, 31,
+ 55,110,220,145,162,196, 36,107, 68,214, 39,189,196,151,190, 59,175,113,127, 33, 80,166,202,173, 97,167,108,233,202, 27,188,225,
+ 68,210,199,241, 11,187, 6,207, 57, 78,202,226, 50, 12,247,108,227,150, 13, 54,252,189, 32,132, 60,115,177,149,157,157, 45,127,
+ 26,177,229,231,231,215, 43, 63, 63,127,121,149,183, 10, 69, 81,203,155, 55,111, 62,239,143, 7,213,199,158,245,212, 44,203,142,
+201,207,207,143,171,143, 51, 50, 50,210,247,248,241,227, 45,106,112,182, 0,208,162,182, 99, 93, 92, 92,216,110,221,186,101, 29,
+ 63,126, 92,110,235, 33,141, 18, 92, 86, 11,173,148,156,125, 83, 59, 25, 21, 21, 0,144, 98,193,241,143, 77,249, 25,104,118,233,
+214, 5,111, 45, 13,107,238,134,114,173, 9,167,111,100,129,101,105,176, 12, 83,105,217, 98,192, 50, 52, 6,119,240, 64, 55,195,
+ 36,172,141, 78, 5,195,114, 75,234,227,124, 18,102,194,189,209,113,192,232,189, 28, 71,196, 18, 33, 79, 29,228,239,238, 53,253,
+149, 14,188,169, 35,194,160, 55, 51,163,119,198,102,156, 79, 86, 98,179, 69,156,220,159,195, 19,145,218,246,177, 76,131,117,175,
+199, 26,213,117, 64,159,158, 78,196,168, 6, 93,148,137,114, 29,141,204, 98, 26, 5,134, 50, 72, 40,133, 69,156, 28, 65,251,166,
+126, 62,210,203,123, 62,127,232,206,215, 8,188,248,140, 72,204, 99,192,114,132, 79,202,146,140,110,193, 3,133, 85,126, 91,245,
+149,211, 94,234,248, 86,175, 65,145,206, 57, 59, 39, 80,246, 65,131,225,213,201, 31, 15,227,182, 66,121, 35, 26,197,242, 44,202,
+201, 80,134, 38,238,173, 48,116,204,107,248,246,181,206, 40,215,148,131,175,200,112, 22, 11, 37, 46,128,185, 86, 78,194, 98,204,
+202,101, 95,251, 8,248,188, 71,237, 89,245, 98,105,232,141, 70,128,101, 96, 39,224, 64,145,170,239,104,176,180, 89,218,126,228,
+231, 31, 0,236,181,134,234,158,172,196,174, 80, 79,244, 4, 71, 7, 19, 90, 15, 10,184,148,164,250, 67,252,132,120,225,141,231,
+ 6,191,211,147, 80,184,216,152,107, 20,238,142,168,136, 22, 14, 50,153, 38, 5,121,251, 63, 66, 6,236, 72,147,238,239,227,141,
+119,167, 72, 55,109,218, 52, 28, 32,147,241,184,143, 90, 53,103,112, 19,254, 68,154,197, 60, 0,208,211,100,171,163,152,122,119,
+229,238,120,119,240,255,200,240, 80,101,201,202, 40,230, 74,205, 49,115, 83,159,159, 30,221,167,221,237, 62,185, 20, 37,201,185,
+112,223,168,182,166, 47, 89, 9, 27,167,141,243, 47,231,116,114,114,106,217,188,121,243,121, 52, 77,247, 18,137, 68, 77,204,102,
+ 51, 56,142, 43, 16,139,197, 23,179,178,178, 22,106, 52,154, 7,255,180,186,223,189,123,215, 26,177,213, 32,167, 80, 40, 68,106,
+106,234,125, 43,196,214,217, 39,206,255,245,210,165, 75,216,187,119, 47, 0, 32, 45, 45, 13,109,218,180,145,213,118,226,195,135,
+ 15,101,125,250,244,249, 21,128,127,125,156,247,238,221,107,121,236,216, 49,236,223,191, 31, 0,144,154,154,138,160,160,160, 90,
+ 11,115,233,210, 37,254,155,111,190,217, 18,128,252,111,184, 70,255, 5,145, 85,243,253, 15,161, 21, 29, 29, 77,162,162,162,168,
+ 39,183,107, 65,102,128,171,184, 19, 12, 44, 0,100, 90, 91,130,228, 66, 44, 91,179,253,212,144,115,251,215,245,178, 19,241, 48,
+127,243,244, 92, 85, 73,249,243, 2,234,209,244, 11, 67,192,115,117, 16,199, 47, 25,215, 33,160,180,194,128,163,191,231,199, 37,
+ 41,173, 51,145, 38, 41,112, 6,224, 92, 30,125, 98, 97,208, 43,131,198,125,123,102,247,238, 89, 67,218,127, 58,162, 61,142, 92,
+201,250, 20, 96, 26,140,250, 78, 56, 14,132, 99,170,157,223, 43, 31, 29, 0,238,241, 4,190, 28,200,163,125,156,117, 22,173,222,
+128,160,212, 11, 67, 29,165,226, 31, 38, 78, 28,239, 68,171,210, 81, 98, 18, 33,183,212,128, 2,189, 16, 21, 2, 47,228,167,220,
+ 99,121, 20,206, 52,104,114,161,160, 33,140,193,197, 85,236,192, 11, 31,248,129,159,230,228, 23,165, 98,138,225, 59,189,188,216,
+165,232,220,170, 44, 70,171,210, 82, 20, 26, 12, 63,239,236,236,210,198, 80,156,197, 87,151, 22,193,197, 59, 12, 67, 70, 71,225,
+171,200, 80,148,107,180, 80,149,196,147,214, 62, 78, 84,246,197, 29,152, 51, 52, 4,197,133, 10, 24,105,128,210, 26, 75, 12, 38,
+ 67, 69,157,237,200,195,198, 79,102,204,124,163,153,143,167,172,106, 81, 1,225, 88,116, 8, 9,196,192, 94, 93,113,230,210,101,
+ 92,191,151, 6,174,114, 81, 1,225, 56,228, 41, 75, 11, 13,102,118,171, 85, 13,202, 50, 32,180,161, 86, 33,134, 70, 76, 25,134,
+123, 65,202, 2, 95,118,110,233,248,222,172,168,102,142, 50, 9, 5, 3,205,194, 96,162, 81,126,249, 7,184, 55,111, 7,169,157,
+ 29,213, 9,122,193, 45,212,222,182, 6, 26,243, 30, 40,202,124, 80, 81,128, 55, 7,134,125,188,109,201,135, 50,202,238, 81,215,
+164,217,199, 45, 89,151, 23,116, 62,245,230,162,195, 49,123,247,189,238,251,237,103,111,245, 25, 60,109,107, 12,128,147,182,113,
+203,134,127, 35, 94,125,245, 85,187,194,194,194, 88,127,127,255,208,129, 3, 7, 74,123,246,236, 9,173, 86,139,211,167, 79, 67,
+171,213, 54,243,247,247,111,118,250,244,233,145, 57, 57, 57, 73, 77,155, 54,237,179,127,255,126,139,125,104, 43, 5, 16,191,122,
+ 8, 6, 24,138,162, 80,185,143,170,220,215,232, 60,183, 98,177, 24,217,217,217,207,220,178,149,159,159,127,191, 49,150,173,138,
+138, 10,145,159,159, 31, 60, 61, 61,193,178, 44,180, 90, 45, 14, 31, 62, 12,181, 90, 13,142,227, 96,111,111,143,197, 43, 55, 35,
+229, 86, 44,174, 93,187, 6,181, 90, 45,106,136, 51, 47, 47,143,234,208,161, 3,140, 70, 35, 24,134,129,193, 96,192,217,179,103,
+171, 63, 11, 4, 2,204, 92,244, 29,210,110,196,226,246,237,219,200,203,203,251, 91,178,141, 88,161, 69,254,137,168, 51,102,214,
+223,190,234,144,101,153,217,155,182,237,142,159, 61,233, 53, 76,121,125,128,255,194,117, 7, 7, 36, 23, 97, 27, 0,132,120, 96,
+220,216,190,173, 3, 92,164, 66,124,181,243, 6, 64,200,236,167,253,189,196, 18,164,133, 54,225, 62, 61,116, 45, 59,246,139,215,
+ 58, 33,208,199,169, 77,169,184, 68,156,153,105, 65, 78, 65,142,129,171,131,164,237,176, 14,238, 39,193,113,112,113,148, 4,131,
+101,224,226, 32,105, 59, 36,204,233, 55, 0,112,146, 10,131,107,179,124,213,133, 8,127,225, 4,169, 68, 48, 65,230,232, 18,240,
+246,240,129,246,195,134,143,180,119, 16, 50, 40,190,118, 26, 26, 97, 83,208,110,205, 96,164, 75,144,247, 32,131, 61,119, 53, 57,
+191,168,220, 56,189,193, 98, 18,196,229, 63, 72,245,108,217,126,160,107, 81,244, 28,101,203,119,118,182,224,129,227,149,239,120,
+185, 80,230,213,197,254,247,204, 7, 21, 28,169,213,162,243, 24, 52,106,117, 22,205,194, 71,207, 10, 28, 51, 98,126,193,172,161,
+237, 80, 90,162,132,193,204, 64,173,103,204,222, 46,118, 18,227,131, 4, 24,205, 12, 76, 52, 7,161,139, 31, 78,199,223, 43,226,
+104,250,183,186, 56, 51,139,113, 59,243,240,109,135,154,251, 2, 61,208,225,115, 39,251,219,160,245,200,206,147, 99,219,241,248,
+ 78,153,197,184,253, 52,215,153,112,204,163,233,231, 26,150, 44,138,160,103, 99,156,224,131,189,208, 69,100, 39,250,126,249,167,
+111,134,190, 16,228, 38,225,242,226, 65,113,102,200, 88, 1,244, 98, 22,206,254,129,224, 76,229, 68,103, 48,148, 37, 2,245, 93,
+124, 62, 0, 16,179, 22,223,190, 21, 38,163, 92, 3,193,102,158,132,160,227, 4,208,149,214,254,140, 98,238,158, 57,102,110, 74,
+183, 25,199,122, 47, 58,211, 55, 89,126,124,126,178,223,171, 63,116, 0,182, 54,183,221,174,109,248, 55,162,109,219,182,222,249,
+249,249,137, 51,102,204,112,123,249,229,151,113,232,208, 33,104, 52, 26,108,221,186, 21,171, 87,175,198,130, 5, 11, 64,211, 52,
+ 54,109,218, 36, 61,112,224, 64,151,245,235,215,231, 5, 4, 4,132,229,228,228, 20, 52, 32,176, 40, 0, 18, 0,194,202,123, 23,
+ 5,128, 59,113,226, 4,134, 13, 27,134, 19, 39, 78,112,149,251, 88, 60,122,248,105, 84,238, 79,177, 88, 12,177, 88, 12,181, 90,
+253, 76,196,150, 80, 40,132,131,131, 3,196, 98, 49,202,203,203,173, 22, 91, 12,195,240,243,242,242,160, 86,171, 49,112,248,112,
+124,183,100, 9,250,246,237,139,129, 3, 7,130, 16,130,179,103,207, 98, 64,247,112,188,246, 98, 31, 36, 39, 39,131, 97, 24,139,
+202, 91, 80, 80,128,194,194, 66, 12, 25, 62, 28,155,215,175, 71,215,174, 93,209,182,109, 91, 48, 12,131,216,216, 88,188, 58,184,
+ 59,236, 94, 26,128,180,180, 52, 91,167,182,220,154,245, 76,124,180,158, 26,137, 42, 92,229,142, 92,136,126,125,112,151,168,225,
+ 61, 66,177,121,207,185,175,225,169,217, 13, 0,238, 70,201,226,183,250, 6, 34, 41,167, 20,231,110,203,163,147,139,240, 76, 86,
+107,112, 44, 60,220,157,164, 0, 95, 12,189,153, 99,156, 50, 27,118, 96,230, 8,129,180,215,231, 24, 59, 60,201,191,107,168,191,
+127,213,170, 67,135, 97,171, 48,238,222,253,128,206,109,189, 3,192,210, 0, 75,195,233,181,157,192, 34, 89,131,229,232,222, 66,
+124,230,147,169, 83,187, 13,125,105,180,189, 88,234, 12, 86,147, 11,186,224, 30,138,211,227,160,149,182, 65, 65,118, 38,246,158,
+186,166, 78,207, 43,214,240,120, 56, 93,168, 54,126,150, 89,138,138,134,120, 13, 52,150,204,155, 51, 61,114,239,238, 61,142,146,
+192, 30, 84,198, 15,195,212, 98, 1, 35,241,108,241, 28, 79,103,231, 65,190,217,186,199, 73,107,194,210,134,120,116, 90,205,193,
+179,167, 79,190,214,186,101, 15,199,135,215,143, 67,111, 48,194, 72, 3, 97, 93,250,128,101,137,152,226, 81,156, 19,159, 79, 41,
+139, 75, 65,209,108,225,197, 59, 15, 21,151,238,100,242,141,142, 88, 90,111,116,145, 39,213, 61,197,255,120,120,159,142, 0,173,
+199,139,189,218,225,187, 29,231, 62, 2,216,119,158,238, 34, 63,178,104, 17,160, 71,168, 39, 54, 16,130, 30, 55, 14,175, 14,142,
+120,233, 19, 88, 99,209, 10,243,192,208,144,150,190,191,124,183,248,115, 55,247,166,109,248, 20, 71,131,120,183, 7, 52,121,132,
+202,139,135,179, 95, 87,176,190,221,177,105,237,138, 10,142, 35,187, 81, 79,104, 11,150, 3,184,156, 11, 96, 83, 14, 33, 51, 51,
+ 19, 30,205,110, 0, 20, 15,164,249, 67,152,153, 71,167, 25,205,228,248,154,173,199,250,126,214,111, 73,216,240, 96, 65, 64,252,
+157, 12,229,232,119,125,165,207, 7,240,131,146, 20, 50, 94,145, 86,203,217,198, 47, 27,254, 77, 48, 24, 12, 7,151, 45, 91,230,
+ 22, 21, 21, 85,101,145, 65,124,124, 60,182,108,217, 2,153,236,241,113,114,216,176, 97, 32,132,184,205,159, 63,255, 32,128, 23,
+234,226,236,214,173,219,240,219,183,111,203, 59,118,236,152, 89, 41,182, 68, 0,120, 9, 9, 9,188,220,220, 92,202,213,213,149,
+248,250,250,210,114,185,156, 3,192,190,251,238,187,252,125,251,246,181,214,106,181, 23, 26, 43,180,196, 98,241, 51,241,217, 18,
+ 10,133,160, 40, 10, 98,177, 24, 34,145, 8,132, 16,171,196, 22,203,178,130, 19, 39, 78,224,198,141, 27, 88,208,177, 35, 62,245,
+243,131,155,155, 27, 98, 99, 99, 65, 8,129, 76, 38, 67, 73, 73, 9,118,239,222,141,126,253,250,129, 97, 24,145, 37,188,251,247,
+239,199,205,155, 55,177, 40, 34, 2,159, 58, 59,195,193,193, 1,103,207, 62,154, 13,148, 72, 36,200,206,206,198,217,179,103,209,
+167, 79, 31, 91,167,126, 74, 88,220,121,122, 3,130, 18, 10,222,102,147, 30,132, 33, 0, 5,223,144, 16,136,146,147, 31,119,206,
+177, 4, 60, 30,230,172,221, 22, 29,185,234,147,225,212,132, 17,157,124, 23,254, 18, 51, 25, 0,222,123, 37,200, 79, 42, 17, 96,
+205,145, 36,194,227, 97,206,179,168, 96, 72, 8, 68, 84, 49, 38, 15,236,218, 22,242, 50, 19, 50,228,101,231,147, 1,139,178, 56,
+159, 91, 53, 22,219,143,198,230,174,222,110, 72, 33,132,192,197, 65,210,118,220,221,140,128, 95, 78,220,204, 89,185,215,144, 66,
+ 56, 2, 23,169, 48,248,157,228,238, 13,174, 58,140,240, 23, 78,152, 54,125,122,247, 17,239,204,176, 99, 82,246,193,148,113, 10,
+156, 89, 15,141, 89,132, 50,190, 55,242,114,114,240,205,166,232, 92,141,214,244, 90,162,202, 58,129,153, 94,140, 10, 1,165,121,
+249,155,175,190, 56,179,100,241,124, 7,125,102,108, 5,159, 98,244,252,230,189, 5,139, 23,172,162,202,141,166,209,153,165, 40,
+111,136,199,232,136,165,203, 86,174,141, 28, 63,102,100, 74, 80,155,222,238,172,252,129,187, 65,163, 81,238, 60,121,211,187,242,
+ 73,145, 2,128,140,188, 98,168,212, 90,134,101,232, 11,142, 66, 44, 76,178,196, 58, 88,137,150, 94,240,140,234, 17,246,166,167,
+163, 8,250,138, 50,120, 57, 10, 49,184,107,171, 55,233,223,211, 62,127,160,180, 70,174, 61, 41,180,104, 16, 90,143,171, 75,251,
+ 5, 19,150, 14, 6, 75,195,124,247, 87,235, 45, 99, 20, 62,157,210,203,193,201,213,244,144, 7,173, 12,176,247, 0,229,212, 12,
+112,110, 65, 9, 67, 70, 67,158,153,200,124,244,230,152,226, 7, 89,121, 63,121,216,215, 63,173, 77,115, 4, 92, 86, 44, 42, 10,
+ 51,144, 32, 55, 35, 76,249,104,182,221,169,240, 22, 88, 91,196, 28, 27,254,163,200,206,206,126,107,246,236,217,151,186,118,237,
+218,196,195,195, 3,237,218,181,195,209,163, 71, 49, 99,198,140,234, 99, 58,118,236, 8, 66, 8, 74, 74, 74,176,108,217,178, 2,
+185, 92,254, 86,189, 15,232,137,137, 41,219,183,111,239, 21, 26, 26,106, 22,137, 68,101, 0, 36,101,101,101,118, 37, 37, 37,148,
+193, 96, 0,199,113,156,179,179, 51, 43,151,203,233,215, 94,123,205,120,229,202,149, 86, 90,173, 54,251,105, 44, 90,254,254,254,
+ 9,197,197,197,106,138,162,158, 58,244, 67,149,200,242,240,240,240,172,168,168,224, 0,148, 54, 38,244, 3,195, 48,136,136,136,
+192,169,184, 91, 56,113,238, 10, 52,242, 84, 76, 30,255, 22,218,181,107,135, 83,167, 78, 53,250,154,117,232,208, 1, 39,207, 94,
+194,165, 27,119,144,157,118, 23, 31, 77, 30,143,176,176, 48,156, 60,105,243, 94,176, 2,199,241,184,111,214,241, 39,133, 86,159,
+232,232,232,170,161,255, 79,242, 53,216, 3, 29,132, 46,226, 95,231, 15,109, 21, 34, 28, 56, 31,148,208, 30,251,218,156,236, 62,
+231,155, 31, 82,248, 94,217, 99, 18,148, 13,175, 14,123,236, 79,163, 68, 34,185,150,178,235, 78,114,240,155, 47,118,245,199,230,
+163,210, 47, 1, 96,116,207,150,248, 61, 93,133,107,105,202, 93, 73, 42, 36, 62,109,173,195,189, 32,101,139,176,107,217,199, 35,
+250, 52,107,234,141, 45,135, 46,129,162,112,208,162, 27, 46, 33,164,107,104, 51,172,222,254,228, 10, 67,239,128,149,123, 13, 41,
+167, 19,203,135, 2,192,192, 96,233,111,157, 91,185, 6,144,154,142, 91,181,192, 94, 44,152, 56,116,228, 88, 59, 38,237, 40,144,
+117, 22, 20, 99,132,222,204, 65, 81, 84, 14,157,179, 63, 98,227,239,232,213, 6,211, 39, 73,170,198, 89,241,146,139,144, 41,186,
+126, 39,167, 66,171,247,145,122,182, 50,240,121, 28, 87, 97, 36,248, 61, 41, 75,147, 84,128, 84, 75, 56, 50, 51, 97,122,222,143,
+233,185, 97,219,222,121, 66,145,120, 52,159, 2,229,229, 34,243,220,176,106, 17, 28, 29, 29,192,153, 42, 0,173, 10, 47,127,248,
+141, 42, 65, 78,183, 4,128, 54,238,112,232,217, 82,184, 77,192,163,242, 98, 50,204,115, 27,250, 13,138,198,164, 49,131, 59, 10,
+ 57,147, 22, 31, 47,219,131,141,159,143,192,216,254, 33,194,227,151,211, 38, 1, 88,216,216,107, 77, 88, 6,132,214,227,133, 47,
+226, 82, 40,224, 18, 1,122,220,216,187, 56, 24,184,101, 49, 71, 39, 64,200, 10, 91,182,255,223, 0, 0, 32, 0, 73, 68, 65, 84,
+168,144,246, 1, 50, 17,151,119, 25, 92,222,101,194,247,239, 14, 42,160, 23, 69,121, 71,144,239,151, 47,208,110,222,188,229, 52,
+199,195, 87, 22,132,202, 0,203, 1, 69,105,151, 96, 50,153, 64,179,128,193, 96,128, 86,171,133, 44,227,100,181,143,150, 72, 72,
+ 13,153,250,246,240, 14,164, 66,174, 59,150,194,228,108, 25, 31,252, 2,169,144,235,174,230,176,105, 69, 90,163,205,154,101,195,
+191, 17,153,114,185,124,200,176, 97,195,206,157, 58,117,202, 45, 60, 60, 28, 0,112,227,198,141, 71, 15,157, 17, 17, 8, 10, 10,
+ 66, 97, 97, 33, 94,127,253,245, 34,133, 66, 49, 4, 13,248,252,150,151,151, 63,216,191,127,127, 19,173, 86,219,113,238,220,185,
+202,102,205,154,105, 12, 6, 3, 85, 86, 86,198, 49, 12, 3, 87, 87, 87,113,199,142, 29,209,173, 91,183,138,248,248,248,230,185,
+185,185,229, 0,178, 26, 83,248, 17, 35, 70, 32, 46,238,209,162,189,103, 17, 87, 75, 36, 18, 33, 60, 60,220, 47, 51, 51, 51,191,
+242,222, 98,245, 24, 95,243,246,114,231,206, 29, 92,184,149, 7,129, 73, 15,177, 74,142,171,135,246, 99,248,196, 15,192, 48,141,
+207, 45,127,231,206, 29, 28, 62,123, 21, 50,137, 0,169,169,137,216,191,127, 63, 38, 79,158,252, 84,156,141, 68,189, 90,228, 31,
+ 14, 5,234,240,211, 18, 0, 64, 84, 84,212,133, 42,107, 69, 77, 4, 6, 66, 44,169,192,252,129,157,252,102,142,238,209,138, 79,
+107,228,224, 88, 14,124, 33,224,229,225,132, 95,127,221,213,114,215,158, 61,241,235,215,173, 95,203, 49,204,156, 4, 37,116, 86,
+ 20,106,254,170, 61,151, 70,255, 58,189,143, 96,242,208, 96, 55, 0, 16, 9,120, 88,115, 52,145, 1, 48,255,105,106,251,188, 31,
+236, 42,104, 76,240,114,119,254,114,246,251,145,110,125, 34,130,112,225, 90, 2,214,238,143,143, 19, 43,177,221,226,206,205,209,
+120, 82, 63,213,182,234, 16, 92,195,126,151, 44, 75,188, 69, 50, 87,152,179, 98, 0,179, 1, 6,163, 25,185,197, 44,114, 75, 12,
+ 16, 72, 69,184,145,150,167,119, 47, 64,244, 83, 84,155,146, 73,237,124,231,125,189,178,169, 65, 95,193,104, 74,139, 24,145,248,
+170, 80,106, 47, 81, 88,227,170,112, 53, 31,134, 94, 45,132,207, 1, 28, 95,108, 71,116, 95, 76,123, 91,150,159,116, 10,173,121,
+114, 80,132,192, 62, 36, 18,142,246,124, 81,143,230,194, 28, 0,144,201,164,226,101, 95,205,112,254,228,243,175, 26,244, 1, 11,
+ 1, 68, 65,129,222,159,132, 55,115, 69,220,205, 20,196,221,203, 78,140,187,145, 26,214,183,157, 47,130,154,186, 76, 21,151,150,
+ 45, 77,134,245, 22,210, 71, 23,134, 1,104, 67,245,170,195, 16, 47,188,209,121,244,220,186, 86, 27,214,138, 22, 0,151,198, 18,
+ 80,124, 62, 64,241, 30,173,128,204,189, 12,129, 75, 32,217,181,247,176,110,203,150,237,139,146,139, 44, 95,156, 65,179, 96, 53,
+ 26, 13,100, 50, 25, 78,166, 49,198,177,131, 69, 18, 30,143,135,220,180, 91,127, 56,195,187,241, 66, 69,125, 23, 7, 95, 94,208,
+249,148,163,152,146,248, 70,126, 21,194,220,219,158,215,216,155,132, 13, 54,252, 19,160, 86,171,239, 38, 39, 39, 15,110,223,190,
+253,214,143, 63,254,216,113,204,152, 49,190,227,199,143,231, 1, 64, 97, 97, 33,183,122,245,106,249,247,223,127,175, 46, 42, 42,
+122,135,166,105, 75, 66,153, 16,133, 66,113,229,167,159,126, 82, 93,188,120, 49,172, 75,151, 46,146,231,158,123,142,115,117,117,
+ 21, 72, 36, 18,214,100, 50, 25,210,210,210,216,204,204, 76,159,178,178,178,251, 0, 50,208,136,140, 21,149,214,171,133,124, 62,
+127, 30, 33, 36,252, 89,248,104, 73,165, 82, 95, 0,247, 41,138,106,109,237,180,225,159,110,216, 2, 1, 74, 75, 75,161, 43, 72,
+132, 93, 94, 58,218,203,120, 8,117,117,128,147,147,211, 83,137, 34,181, 90, 13,104,243,113,233,210, 29,128, 97,224,236,236, 12,
+103,103,231,191, 93,104,213,165, 69,254, 37,152, 80,203,190,250,125,180, 66, 61, 49,217,222,132,213, 19, 35, 91,137, 90, 4, 52,
+133, 49,239, 6,238,228, 86, 96,206,243, 93,146,248, 18, 71,195,196,183, 70, 68,140,124,181, 57,250,116,235, 76,181,240,113,158,
+186,116,213,143, 31,134,162,104, 70,146, 18,107, 44, 41, 81,146, 10, 15, 56, 40,183,196,220,205,155,212, 84,170, 7,199, 17,196,
+220, 83,224, 94, 86,233,150, 20, 21, 30, 88, 83,187, 80, 31, 12, 16,128,183,135, 16, 98,231, 44,147,149,135, 6, 53,245, 24,240,
+ 66, 7,222,144,222, 17, 16,241,129, 75,191,223,193,167,171, 14, 94,229, 56, 18,121,203,194,105,195, 71, 43, 12, 31, 23, 80,143,
+ 86, 24,210,143,173, 48, 36,132,144, 71,171, 14,235, 55, 62,240,249, 84,129, 46,251,186,183,208,189, 13,244, 25, 49,200, 42,229,
+144,173, 44,135, 70,224, 13, 99,126, 62, 64,184,156, 11,245, 59, 86,215, 11, 15, 15, 15,175,150,161, 65,173,126,216,182, 31,102,
+157, 26, 15, 98,183,162,162, 84,129,197, 27,142,182,242,243,115,239,157,159,159,127,193,138,193, 38,232, 92,244, 46, 47, 16,128,
+ 47,148,224,248,250,189, 40,114,183,135,135, 84, 4,238,255,216, 59,239,176, 40,174, 54,138,159, 41,219, 88,150,206,210,139, 72,
+ 4, 68,177,247, 18, 53,182, 24, 49,246, 22,141, 45, 42, 49, 26, 53, 38,118,163, 49,198,110,196,216, 75,242,217,187,209,136, 73,
+ 84, 18,177,139, 93, 80, 17, 65, 81,122,239,236,178,101,202,247, 7, 44, 1,165,236,162,105,102,126,207, 51,207,108,153, 61, 59,
+253,158,121,239,189,239, 85,103, 96,226,180, 17, 86,189,186,143,176, 2,128,231,143,238,192, 83,174, 54, 74, 87,103,135, 1, 67,
+186,248, 89, 67,175,198,174, 95,239, 20,147,192,187,187,207,220,143,237, 82,223, 90, 54,164,131,167,205,226,228,220,129,200,170,
+ 93, 82, 81, 67, 68,171, 44,194, 87,139,222,134, 71, 0,182, 62,135,216,131, 87,210,205, 7,117,111, 46, 23,211, 4,193, 23, 38,
+129, 55,179,199,230, 93,135, 11, 37,122,211, 70, 98,231,128,197,173,151, 61,253,178,228, 60,193,206, 94,203,110,126,116,118, 65,
+ 27,101,106,106, 42,116,165,117,135, 79,179,185,223, 63,236,222,128, 77,204,227,180,103,150,247, 31, 68,152, 41, 37, 95,172,218,
+ 29,198, 3, 66, 54,105,129,127, 53,106,181,250,150, 90,173,110,244,197, 23, 95, 12,159, 59,119,238,219,230,230,230,117, 1,160,
+168,168,232,169, 94,175,191, 80,122,125,154,210, 59,144, 7, 16, 19, 27, 27,251, 52, 54, 54,214,113,239,222,189,214, 0,100,165,
+223, 21, 3,200, 5,144,134, 87,232,113,104, 48, 85, 4, 65,124,249,186,246,131,193, 84, 17, 4, 81,175, 54,191, 39, 73,146, 37,
+ 8, 2, 4, 65, 64, 42,149,226,226,197,139, 24,220,187, 59, 30,158,202, 69,128,181, 2,173,198, 76,196,193,179,103, 65, 81, 20,
+ 8,130, 0, 69, 81, 38,149, 35, 52, 77,227,210,165, 75, 24, 57,108, 16,164, 52, 96,101,101,133, 47,190,248, 2, 39, 78,156, 0,
+ 77, 11,163,244,153,192,182,114,134,203,200, 60, 90, 4, 22,159,221,185, 84, 12, 86,143,147, 59, 87, 35, 36,178, 80,251, 40, 3,
+243,252, 50, 16,124, 4, 5, 92,198,183,187,131,206, 94,138, 92, 53,118,104,160,252,157, 46,221,241, 78,231, 46,116,195,150,157,
+ 22, 0, 21,140, 86, 55, 84,147,107,131,229,240,245,182, 95,163, 38, 30, 12,139, 38,160, 43,192,208, 30, 45,121,150,195,215, 53,
+108,204, 75,154, 86,102,138,131,151,174, 94,181,129,174, 16,207,238,252, 46,171, 83,247, 45,128,213, 33, 38,230, 49,214,239,250,
+145, 11,187,254,104,143,150,193,167, 79,114, 80,100,172,102, 73, 73,201,192,202, 92,226,247,110, 67,203, 95, 56,240,176,150,139,
+235,243, 28, 11,107,185,168,126,247,250,242, 95,120,158,231, 45,204, 68,245,121, 86, 95,163,166, 90,203,108,221,245,195,142, 53,
+227,198,141, 51,207, 76, 76, 69,114,126, 36, 10, 37,174,208,203,221, 17,123,231,130, 90,165, 97,140, 41,196,171,220,159,153,153,
+153,233,183,194,179,113,112,203, 50,232,181, 26,164, 39,150,120,213,228,204,124, 88,218,187, 94, 77, 74, 74, 50, 90, 83,199,112,
+121, 3, 70, 76, 16,155, 89,192,108,228,128, 64, 73,108,150, 6,205, 92, 44, 74,110, 26,133, 25,120, 24,122, 9,157, 75,219,152,
+ 62, 73, 32,225,217,196,197,168,245,180,144,137, 63,237,213,220, 21, 79,227, 83,112,241,126,210,174,167,217, 72,102,163, 82,118,
+197, 38,231, 6,245,109,227,129,181, 39, 30, 76, 1,244,251, 77,217,118,127, 7, 12,231,121,116, 40,105, 12,175, 6, 15,116,240,
+119,192,112, 35,123, 26,190,164, 73,139,241,193,154, 95,158,207, 63,124, 35,179,239,204, 15, 58, 90,182,107,247,158, 4,140, 22,
+ 5,106,141,254, 97, 46,242, 77,209,204, 87,115, 91, 1,108, 53,124,113, 43,145,219,211,113,225,213, 11,251,199,187, 43, 13, 94,
+253, 66,172,230, 42,128,171, 99, 91,155, 45, 16,119, 89,226,119,117,113,235,211, 17, 41,220,222, 11,177,101, 57,180,106,188,142,
+106,137,160, 41,104,254, 21,154, 44,128, 61,122,189,126, 79,110,110,238,235,212, 76,198,203,121,157, 94,105,219,203, 87, 19,242,
+ 60, 79,151, 70,179,106,106, 12, 95,173,102,249,106, 66,158,231,127, 46,141,102,213, 20,213,170,160,201,113, 92,114,139, 22, 45,
+108,251,244,233, 3,150,101,241,248,241, 99, 60, 79, 72, 64,183,160, 41,176,182,182,198,133,123,247,240,232,209, 35,124,249,229,
+151,208,235,245, 56,126,252,120, 98, 77,154, 52, 77,235,222,122,235, 45,113,191,126,253,192, 48, 12,158, 60,121,130,164,164, 36,
+ 76,159, 62, 29, 86, 86, 86,184,117,235, 86,153,102,102,102, 38,104,154,214, 85, 18,221,250, 51,206,165,127, 59, 47,153,172,234,
+141, 22,192,130,213, 35,239,236, 66,172,187, 8,157, 78,143,250, 15, 50, 16,247,224,143,136,212,102, 42,252,222,201,123,145, 81,
+ 79,111, 93,126, 71,130,244, 8,152,250, 36,241, 56, 11, 41, 22,178,130, 2,232, 10, 44,241,228, 23,196,165, 21, 20, 62,206, 66,
+138,201, 79, 12, 28, 75, 64,167, 2, 82,110,226,202,133,243, 8,187,118, 23, 55, 34,162,216, 43,183,162, 15,146, 28,190,126,152,
+133,199,181,120, 10,129,162,247, 90,140,142,136,241,104,233,235,232, 1,150, 1,207,233, 97, 53,116, 63,198, 60,104,231,209,210,
+219,218,163, 36,146,165,135,205, 71,191, 3,107,100,213,234,221, 76,208,111,147,156, 56, 61,176, 32, 55,171, 77,215, 78,109,205,
+173,252,123, 33, 51, 38, 26,143,239, 94, 82,223,138,140,189,114, 51, 65,191,237, 85,142,174,171,171,235,219, 93, 59,249, 97,232,
+196, 57,208,169,242,240, 36,236, 7, 20,102,167,226,226, 85, 5,162,242,243,219, 2, 48, 58,162,117, 53,158,105,136,248, 28,180,
+175, 35,138,183,128,198,233,195,192, 62,144, 18,197,224, 52,249, 32, 84,153,136, 77,210,230, 13,220,146,192, 2,128, 92, 74,208,
+230,124,158,165, 81,145, 71, 79, 59, 31, 57,165,199,238,179,247,193,113, 37,195, 55,113, 28, 54,239,254, 61, 54,232,235,145,205,
+208,192,195,166,201,157,164,116, 2, 38,132,252, 9, 30, 29,111, 28,252,170,126,241,111, 11, 0, 78,135, 75, 83,109,235,119, 92,
+151,221, 17,181, 28,110, 39, 50, 25, 73, 0,130, 64,171,182, 78, 93,247,235,130, 22,103, 31,116,152,241, 81, 95, 75,240,175,165,
+135,110,244,131, 84,246,237,214,203,159,159,230,248,138,245,185, 37,145, 45,127, 62, 57,159,191,115, 33, 86, 35,100,133, 23, 16,
+ 16, 0, 0, 20, 22, 22, 78, 28, 51,102,204, 86,145, 72,164, 4, 64,112, 28, 7,142,227,232, 85,171, 86,137, 88,150, 37, 73,146,
+100, 41,138, 98,126,254,249,103, 61,203,178, 25,197,197,197, 19,107,210,100, 24, 38,118,210,164, 73,111,213,212, 67,241,192,129,
+ 3, 6,147, 21, 43, 28, 9,163, 76, 86,249,121, 89,148,139,174, 38, 72,251, 85,251,145, 11, 23, 2, 32,192, 99,209,131, 12,196,
+189,184, 72, 68, 54,146, 27, 80,186,233, 13, 91,118, 90,104,248,141,169,107, 86,204,178,131, 90, 54,242, 61, 0, 0, 26,158, 29,
+ 89,155,173,203,215,168,135, 52,109,217,246, 32,199,243, 52,195,243, 59, 72, 14, 71,139, 25, 60, 52,166,167, 93, 85, 36,167,231,
+222,234, 21, 96,197, 3, 37, 85,134,101,213,133,165,105, 28,120,158,231,203,170, 11, 87,203,144,153,167,169, 49, 15,212,229, 56,
+109,119, 45,115, 99,194,153,203,119, 38,178, 44,239, 68, 81, 68,170, 90,203,108,125, 85,147, 5, 0, 73, 73, 73,231, 67,207, 38,
+157,185,215,196,177,135,189,188, 52,202,165, 2, 50, 85, 56,147,148, 81,120,190, 54,154, 57, 69,250,190,115,131, 79,252, 36, 17,
+ 81, 52,120,190, 36,161, 40,207,163, 88,199,102, 95,141,103, 26, 2, 64, 35, 91,184,124,113,156, 57, 64, 81,196,243,154,244,194,
+ 31,165,172, 29,186, 60,244,243,251,207,114,118, 60,203, 69, 36, 0, 60,203, 69,228,161, 75,113, 11, 98, 83, 11, 62,143,124,158,
+179, 26, 38,182,171,224, 9, 92,108, 57,116,225, 75,159,189,234,254,140, 74,193, 93, 0,253,129,196,238, 67,103,172,159, 65, 16,
+120, 93,195, 79, 68,171,117,188,231,139, 31, 26, 34, 91,194,189, 74, 64,224,159,129, 33,170, 69,146,228,226,215,168,249, 51, 65,
+ 16,239, 1,136, 49,225,103,225,133,133,133,141, 94,243,230,101, 49, 12,147,101,204,130,127, 67,131,248,127, 43,219,254,174, 63,
+238, 38,104,254,245,154,245,234,213,227, 77, 48, 44,194,254, 20, 52, 5, 77, 65,243, 63,165,201,243, 60,245, 42, 83, 21,154,196,
+171, 76,194, 49,250,215, 51,161,170,247, 66, 75,183, 55,144,152,152, 24, 66,216, 11, 2, 2, 2, 2,149, 67, 16, 4,251, 39,104,
+ 10,217,241, 4, 12, 6,171, 66,116,139, 20,246,137,128,128,128,128,128,128,128,192,107, 49, 89,229,231, 37, 38, 28, 85,135,255,
+ 76,233, 77, 80,155, 16, 98,168,160, 41,104, 10,154,130,166,160, 41,104, 10,154,255, 57,205,154,180,133,222,140,127,178, 1, 19,
+ 52, 5, 77, 65, 83,208, 20, 52, 5, 77, 65,243,191,167,249,111,166,202, 54, 90, 66,213,161,128,128,128,128,128,128,128,192,159,
+132,208, 24, 94, 64, 64, 64, 64, 64, 64, 64,224,213,168,113, 80,105, 1, 1, 1, 1, 1, 1, 1, 1,129,218, 81,253,160,210, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,181,198,244, 65,165, 5, 4, 4, 4, 4, 4, 4, 4, 4,140, 98,155,176, 11, 4, 4, 4, 4, 4,
+ 4, 4, 4,254, 26, 42,246, 58, 12, 9, 9,225,203,207, 5, 4, 4, 4, 4, 4, 4, 4,254, 74,222, 84, 47, 34, 84, 29, 10, 8,
+ 8, 8, 8, 8, 8, 8,188, 26, 19, 4,163, 37, 32, 32, 32, 32, 32, 32, 32,240,231, 80,101, 27, 45, 67,194,210,206,165,161,186,
+206,194,190, 18, 16, 16, 16, 16, 16, 16,248, 27,120,179,189,136,208, 62, 75, 64, 64, 64, 64, 64, 64, 64,240, 34, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2,255, 36,132,177, 14, 5, 4, 4, 4, 4, 4, 4, 4,254, 98,195,245,167, 27, 45, 97,100,115, 65, 83,208, 20,
+ 52, 5, 77, 65, 83,208, 20, 52,255, 75, 38,171,130,217, 18,122, 29, 10, 8, 8, 8, 8, 8, 8, 8,188, 26, 53,246, 58, 20, 16,
+ 16, 16, 16, 16, 16, 16, 16,168, 29, 19, 0, 4,150,190, 14, 68,185,168,150, 16,209, 18, 16, 16, 16, 16, 16, 16, 16,120, 53,182,
+ 1,112, 46, 53, 88,167, 0,164, 8, 70, 75, 64, 64, 64, 64, 64, 64, 64,224,245, 80,190, 93, 86,239,114,230, 75, 48, 90, 2, 2,
+ 2, 2, 2, 2, 2, 2,175, 72,149,109,180, 8, 84,221,115, 32,212,132, 63,168, 77,239,131, 80, 65, 83,208, 20, 52, 5, 77, 65,
+ 83,208, 20, 52,255,115,154, 53,105,135,226,223,199, 4, 83,204,215,235, 68,232,250, 42,104, 10,154,130,166,160, 41,104, 10,154,
+130,230,127,150,215,222,235,176, 25, 96, 38,236,214, 55, 18,199,210, 73, 64, 64, 64, 64, 64, 64,160,122,254,156, 94,135,254,192,
+ 71, 35, 2,148, 91,244,145, 25,150,145,128,170,186,101,149, 74,229, 86,185, 92, 62, 66,165, 82, 21, 17, 4,193, 25, 62,231,121,
+ 30, 0,202,143,117,244, 36, 35, 35,163, 99, 77,255, 45,145, 72,130, 29, 29, 29, 63, 42, 44, 44, 84, 17, 4,193, 19, 4, 1,130,
+ 32, 0,224,165, 57,203,178,137, 89, 89, 89, 45,254,213,135,144,231, 41,123, 71,199,235, 34,138,114, 53,245,167, 44,199,197,165,
+167,165,181, 53,225, 39,203, 8, 2, 51, 75,254, 22, 43, 1,204,121,211,174, 8, 30,160,140, 89, 46, 0,176,136, 6,134,178, 36,
+ 57, 69, 4,108,212,112,220, 22, 0, 32, 0,182,182,255,173, 9,199, 91, 4,143, 38, 4, 1, 43,158, 71, 30, 79,224,174,180, 53,
+ 98,255,166, 93, 49, 64, 36, 18,245,181,180,180, 84,100,101,101,157, 7,112, 0,192, 48, 59, 59,187, 78,249,249,249,133,122,189,
+254, 4,128, 99,181, 17,238,216, 4,179, 36, 98,209,216, 98,157,126,197,229,187,248,161, 83, 51,216, 49, 28,150,203,196,116, 71,
+141,150, 89,121,233, 30,118,152, 40, 73,148, 78,134,123,134,201, 99,164, 29, 54,242,184, 3,192,113, 27, 27, 95,169,210,242, 55,
+145,132,138,203, 77, 43, 28, 49, 40, 61, 61, 97,240, 43, 28,247,127, 34,246,246,246,163, 73,146,252,134,231,121,176, 44, 59, 47,
+ 59, 59,123,231,107,146,158, 7,192,186,244,117, 46,128,111, 94, 81,239, 57, 0,143,210,215,241, 0, 60,133,114,189,214,108,254,
+241,199, 31,131,186,116,233,130,181,107,215, 98,243,230,205,207, 50, 50, 50,150, 3,216, 5, 64,251, 55,232, 8, 84, 69, 3,224,
+189, 85, 61, 91,179,250,255,125,205,149,251,184, 91, 21, 23,243,247, 31,126,248,161,142,231,121,254,209,163, 71,188, 86,171,229,
+245,122, 61,207, 48, 12,207, 48, 12,175,215,235,203, 38, 87, 87,215,164, 23,126,254,146, 38, 73,146,235, 6, 14, 28, 88,192,243,
+ 60,127,243,230, 77, 94,173, 86,243, 26,141,134,215,106,181,124,113,113, 49,175, 86,171, 43, 76,142,142,142,105,213,105, 90, 90,
+ 90,222,180,177,177, 73,179,177,177, 73,179,181,181, 77,179,181,181, 77,179,179,179, 43,155,236,237,237,203, 38,165, 82,153,166,
+ 84, 42,211,108,109,109,111,214,180,158,165,244, 4,112,222,136,169,103, 37,191,237, 86,222,104, 57, 59, 59,167,241,181,192,205,
+205, 45,193,136,245, 52,224, 72, 16, 96, 13,191, 37, 8,112, 82,169,212,163,252,247,120, 57,210, 85, 99, 72,217,197,197,101,160,
+179,179,115,168,179,179,243, 89, 23, 23,151,129, 70,156, 98, 21, 52, 45, 44, 44,110,218,219,219,167, 57, 57, 57,165, 27, 38,103,
+103,231, 10,147,139,139, 75,217,228,232,232,152,102, 99, 99, 83,229, 49,226, 1,170,170, 41, 12,160,165,192, 59, 52, 69,133, 56,
+ 58, 58,230, 71, 68, 68,176, 60,207,243, 36, 73, 38, 25,150, 49,101,219, 95, 52, 89,170, 75,152,151,121, 78, 26, 94, 24,183, 60,
+ 47,243,156, 52, 92,117, 9,243, 52,225,120,171,182,154, 70, 82,153,230,168, 81,163, 70,221, 77, 75, 75, 75,202,205,205, 77,217,
+178,101, 75,180, 76, 38,187,180,101,203,150,232,220,220,220,148,180,180,180,164, 81,163, 70,221, 5, 48,201, 4, 77, 0, 64,219,
+ 38,104, 51,110,128,179,234,238,241,145,170,119, 90,210,119,218, 7, 32,176,123, 91,113,210,134,217,254,170, 11,219, 59,168,186,
+ 52, 39, 35, 77,212, 36,104,154,110,231,225,225, 49, 86,169, 84,126, 88, 58,141, 52, 76, 78, 78, 78, 35,157,156,156, 70,218,216,
+216, 12,174, 78,243, 48, 64, 25, 51,185,203,100,237, 6,215,245, 80, 61, 95,188,136,143,152, 54,133, 31,235,237,158, 63,200,193,
+161,206,223,112,140,254, 84, 77, 7, 7,135,100,189, 94,207,235,116, 58,222,206,206, 46,249, 53,174,231,106,158,231, 87,243, 60,
+191, 26,192,234,215,160, 89,118, 63, 51,193, 96, 87,167, 41,163, 73,114,134, 92, 34, 57, 43,165,233,116, 41, 77,167,203, 37,146,
+179, 52, 73,126, 14, 64,246, 79, 58, 70,127,130,166, 66,169, 84, 62, 13, 14, 14,230, 85, 42, 21,175, 82,169,248,224,224, 96, 94,
+169, 84, 62, 5,160, 48, 65,179,182, 58,111, 82, 4,235,197,233,245, 69,180,252,129, 22,239, 52,169,119,116,234,232,161,224,142,
+ 4, 19, 53, 60, 49,125,223,182, 69,139,177,187,118,237, 2, 0,140,232,219, 23, 61, 90,181,130,133,194, 28, 18, 73,201,234, 16,
+ 60, 1,177, 72,140,126,211, 63, 51,230,239, 87,246,235,215,239,131, 35, 71,142, 40, 0, 96,243,230,205, 24, 48, 96, 0,108,109,
+109, 33,151,203, 33, 22,139, 33, 18,137, 42,204,107,130,162, 40,183,164,164, 36, 7,153, 76, 86, 22,101,227, 56,174,194,196,243,
+188, 33,250, 6,134, 97,224,227,227, 99,236,238,154,157,151,151,247,118, 81, 81, 81,153, 70,101, 83,221,186,117, 1,224,180, 49,
+130,223, 44,249, 26, 28, 83, 4,154, 6, 24, 6,208,232, 72,112,124,165,230, 6,147, 38, 77, 42, 91,239,218,208,187,119, 32, 65,
+ 16,196,145, 91,183,110, 29, 77, 79, 79,247,226, 56,118,124, 45, 35, 93,159, 60,126,252, 88, 1, 0,190,190,190,147, 0, 28, 53,
+101, 61,104,154,118,187,119,239,158,131, 84, 42,173, 50,114, 89, 46,130, 9,157, 78,135,102,205,154, 49,166,252,135, 35,224,145,
+ 77,146,227,155, 54,111, 62, 97, 97,191,126,178,235,215,175,203, 72,146, 4,195, 48, 88,181,106, 21,195,243,188,117, 3,192,242,
+ 1,144, 95,141,204, 92, 0,163, 75, 11,131, 29, 0, 86, 85,112, 11, 60,154,168,245,210,192, 39,133,253, 90,181,174, 51, 11, 15,
+238, 71,180,242, 86, 28,135, 5,173,137, 5,254,218,168,150,165,165,101,223,181,107,215, 42,119,236,216,145,255,232,209, 35,221,
+150, 45, 91,148, 19, 39, 78,180,208,233,116, 8, 10, 10,202,240,243,243, 19,175, 93,187, 86,121,236,216,177,119,138,138,138, 54,
+153,116,188, 8,124, 61,172,111, 15, 20,235, 73,232,245,140,210, 89,105,177,103,234,168,206, 34,158,215, 98,247,137, 91,208, 51,
+220, 15, 38, 70,178,218, 14, 26, 52,200,123,255,254,253,116, 84, 84, 20, 93,191,126,125,112, 28, 7,150,101,161,215,235, 1, 0,
+ 28,199,161, 94,189,122,175,188, 95,198, 2,190,246,142,182,103,219,190,215,203,204, 89, 38,133,109, 78, 6,198,137,105,139,157,
+114,205, 94, 0,237,222,168,200, 46,207,131,166,105, 36, 36, 36,192,193,193,193,140,227,184, 20, 0,139,114,114,114,182,225,205,
+165,149,132,166,143,238,254, 97,157, 83,235,118,237, 40, 71,103, 7, 68, 63,142, 7, 77,176,221,238,221,184,213,121,236,199, 51,
+166,106, 25,102, 32,128,235,111,218,134, 59,181,155,212,159, 32,169,205, 4,207,225,171, 13, 63, 21, 44, 91, 25, 44, 15, 26, 63,
+138,154, 62,125, 58,220,221,221,189,250,247,239,191, 18,192,199, 53,234,180,158,212, 31, 20,185, 25, 60,143,133,235,127, 42, 88,
+186, 50, 88,254,113, 45,116,254,229, 84,121,141,188,178,209,242, 7,188, 27,186, 59,156, 89, 54,243, 99, 17,255,203,255, 72, 85,
+ 86,122,149,203, 42,149,202,173,239,190,251,238,136,157, 59,255,136, 70,183, 13, 8, 64,255,119, 58,192,193,206, 10,114,115, 73,
+ 73,113,196, 17,184,251, 40,206, 40, 67,224,238,238, 30,116,244,232, 81, 69,121, 51, 33, 22,139,203,166,242, 38,203, 48, 25, 10,
+224,234,144,201,100, 8, 13, 13, 5, 77,211,160, 40, 10, 52, 77,151, 77,229,223, 83, 20, 5, 71, 71,147,154, 46, 45,183,178,178,
+106, 92, 80, 80, 96,153,155,155, 11, 15, 15,143,124, 0,247,202,125,223, 56, 35, 35,195,210, 20, 65,142, 41,194,244,113,254, 16,
+105,175, 65, 43,106, 5, 53,221, 30, 87,110, 60, 68,200,233,243, 72, 74, 78, 69,135, 54, 77,241,225,240, 65, 56,123,246, 44, 88,
+214,228,154,142, 52,158,199,202, 62,125, 2,103, 1, 4,209,173, 91,183,220,201,147, 39,147, 81, 81, 81, 31,244,239,223, 47,224,
+241,227,152,210,168, 34, 49,147,231,177, 14, 64,154,145,186, 18, 0,184,112,225, 2, 0, 72,107,115,238, 73,165, 82, 92,189,122,
+ 21,134,106, 98,146, 36, 65,146, 36, 40,138,194,201, 24,123, 20,105, 73,168,210, 34, 49, 37,208, 3,117,235,214, 5, 73,214,220,
+ 36,177, 51, 32,187, 2,244, 39, 68,162,233,206, 46, 46, 94,157,188,189,229,161,161,161, 20, 0,120,122,122,242, 41, 41, 41,185,
+ 39, 78,156, 40,160,129,205,158, 60,191,171, 58,147,229,238,238,222, 62, 41, 41,233, 27,195, 62, 39, 8, 98,101,157, 58,117,190,
+ 44, 59,110, 28,135, 69, 63, 20,137,166, 78,157, 38,110,221,121, 62, 0,160,117,159,253,200,127,178,204,159,200,158,107,245, 87,
+223, 37,242,243,243, 15,214,171, 87,143,202,202,202,186, 2,224,185, 94,175,159,189,103,207, 30,135,113,227,198,165,239,221,187,
+119, 57, 0,151, 21, 43, 86,116, 46, 42, 42, 58,100,138,110,135,198,120,175,121,227,128, 54, 30,238,238, 56,127,229, 58,196, 18,
+145,245,164,209,129, 80, 40,104,172,222,113,138,123,158,152, 61,249,210, 61,236, 50,193,100,181, 26, 52,104,144,215,254,253,251,
+ 37, 0,112,239,222, 61,164,166,166, 66,169, 84,194,204,204, 12, 34,145, 8, 20, 69, 65, 36, 18,189, 22,147,101,229,110, 23,126,
+252,248, 9, 51, 91, 91,107,108,248,108, 42, 62, 76, 79,131,181,133, 2,250,194, 34,175, 55,172,160,240,237,216,177,163,140,101,
+ 89, 20, 21, 21, 33, 44, 44,204,202,204,204,204,202,205,205,109, 33, 76,232, 61, 37,147,201,210,138,139,139, 29, 74, 95,167, 23,
+ 23, 23, 59, 2,200,151, 74,165,134,251,116, 97,233,220,216,234,196,231,120,185,154, 48,158, 32,136,242,159,213,150,150,173, 90,
+ 54, 14, 61,118,100,159, 34,175, 32, 21,214, 54,233, 32,145,135,109,219, 54,194,204,204, 18, 11, 23,206,165,227,186,189,227,218,
+243,189,129,161,247, 31, 70,119,123,227,204, 22, 79,108,235,214,103,132,173,153,220,162,180, 44,209, 99,231,246,169, 32, 73, 18,
+ 95,126,249, 37, 26, 54,108, 56,225,254,253,251,243, 1,100, 87, 47,131,109,141,222, 30, 98, 43,145,149, 28, 98,142,213, 99,203,
+129,207, 75,116,230, 76,196,176, 62,117, 39,124, 49,232,233,175, 13,189, 81, 80,250, 96,174, 22,145,136, 39, 90,163,204, 48,132,
+132,132,116, 10, 12, 12, 60, 95,213,251,127, 1,206,248, 35,127, 86, 5,243, 69,135,132,132,240,129,129,129, 68,185,141,171,240,
+190, 58,154, 0,246, 54, 86,242,208,205,139,166, 42,232,107,167, 40,117,124, 12,146,139, 43, 20,228, 21,186,104,202,229,242, 17,
+ 59,119,238,172, 16, 82,242,112,116,128, 88, 44,130, 72, 76,192,186, 99, 73,246,250,220,139, 33, 32,136, 42, 77, 86, 5,205,162,
+162,162,226, 59,119,238, 40,118,236,216, 1, 7, 7, 7,120,121,121, 65, 46,151, 67, 38,147, 85, 48, 87,229, 13, 87, 37, 70,171,
+130,166,225,123,154,166, 65,146, 36,206,158, 61, 11,134, 97, 48,104,208,160,151, 76, 22, 77,211, 85, 25,183,170,186,167,158, 6,
+112,143,231,249,183, 75, 11,224,123, 0, 58,149,251,190,167, 82,169,156, 13, 96,185,177,154, 20,197,131, 42,190, 2,206, 45, 24,
+116,194, 84,104, 69, 77,112,238,210, 45,236,220,186, 22, 0,224, 85,191, 37, 6,247, 15, 44,139,198, 25,185,158,101,184,186,186,
+ 30,200,200,200,236,245,206, 59,239, 32, 39, 39, 71,191,104,209, 34, 52,110,220, 24,190,190,190, 70, 29,163, 42,158,156,211,238,
+221,187,231,174, 86,171,193,243,188, 49,230,236, 37, 77,130, 32,176,103,207, 30, 20, 23, 23,191,180,176, 77,167,165,248,124,128,
+ 39,198, 76,217,133,149,143, 14, 97,211,166, 77,213,110,187, 28,104, 92,108, 85,111,157,132, 98, 26, 47,159,251,137,244,195, 15,
+ 63,164,198,140, 25,131,248,248,120,140, 27, 55,174,248,236,217,179,218,212,148,148, 19, 18,142,219,160,171,104,140,171,212,148,
+ 74,165,187, 79,159, 62,141, 67,135, 74,124, 73,116,116, 52,124,124,124,204, 43,152,228,236,195, 40,120,190, 1,225, 39,163,208,
+186,207,126,132,159, 28, 14, 54,247,148,168,133, 15,242, 76,217,159,181,160, 50,205, 67, 89, 89, 89,101, 38,106,239,222,189,102,
+123,247,238,237, 7,224, 39, 0,135, 0, 32, 59, 59,251, 91, 19, 53, 1, 2, 99,134, 12,232, 7, 90,108,129,168,152, 68,116,106,
+219, 12,142, 14, 14,184,247, 48, 22,207,147,178,211, 8, 2,163,123,182,147, 44, 87,171,181,243, 47,222,197,247, 53,104, 18,110,
+110,110,190,135, 15, 31, 22,151,139, 64,151, 93,227, 20, 69,149,189, 55, 24,239,218,156,159, 6,147,101,225,166, 8,255,122, 99,
+123,243,240,136,189,240,241,124, 15, 54,239, 5,226,251, 51,103,240,248,254,131, 98,173,138,233,250, 55, 28,163, 63, 75,211,119,
+192,128, 1, 87,246,237,219,103,157,144,144,128, 11, 23, 46,192,203,203, 11, 42,149,202,152, 7,222, 10,154,197,197,197, 14,134,
+223, 16, 4,225, 96, 8,188,107,181, 90,195,193, 48, 92,136,214,229,150,179,174, 70,211,163,220,114, 6,115,229,249, 26,182, 93,
+ 34, 19,139, 15, 31, 63,118, 64,241, 32,234, 2,154, 54,105, 3,133, 85, 3,112,108, 42,178,178, 11,145, 19,147,140, 37, 75, 86,
+ 98,225,162,121,248,233,199, 35, 10, 63,255, 38, 71,181, 12, 83, 15, 64,241, 27,115,220, 9,126, 66,232,201,189,155, 9,158,131,
+ 58, 45, 74, 42, 42,122, 42, 31, 49,124, 32, 53,116,232, 80,252,244,211, 79,184,127,255,254,230,106, 76, 86,104,185,200,252,132,
+200, 11,135, 54,131,231,161, 78,143,146,138,213, 79,229,163, 62, 24, 76,125, 56,172, 7,174,253,190, 14, 61,154, 62,141,116,113,
+ 64,255,156, 82,139, 77, 83,200,146,202,112,153, 15,199,181,114,102, 43, 12, 0, 81,206, 96,133,225,143, 54,152,255, 6,122,151,
+ 26,171, 9, 47, 62,152,208,181, 49, 88, 0,224, 3, 40, 8,137, 56,124,231,194, 79, 92,228,241,247,105, 77,228, 85, 36,107, 56,
+126,203, 51,134,107, 6,152,221, 6,212, 47,254, 70,165, 82, 21,197,198,198,154,141,238,223, 31,237, 2, 2,224,108,103,135,122,
+110,110, 48,147, 74, 32, 17,139, 42, 60,178, 26, 93,135, 64, 16,188,159,159, 31,250,244,233, 3,145, 72, 4,185, 92, 14,133, 66,
+ 1,137, 68, 82,105, 52,203,216,167, 92,158,231, 65, 81, 20, 34, 35, 35,241,252,249,115, 88, 91, 91,227,242,229,203,232,218,181,
+235, 75, 81,173,242,230,204,148, 16,125, 37, 5,191,193,136,157, 54, 69,139,101, 9, 20,242, 77, 32,123, 54, 25, 42,162, 25, 52,
+ 26, 6, 26,141, 6,223, 95,210,225,122,108, 17,116, 58, 45, 52, 26, 77,117,255, 89, 21,164,139,139,203,136,122,245,234, 77, 26,
+ 62,124,184, 94, 34,145,160,168,168, 8, 42,149, 10,247,239,223,215,247,234,245, 94,110,159, 62,129, 86,167, 78,157,226, 75,171,
+ 14,211, 76,208,206,114,117,117,117, 47,173,158,205,170,205, 89, 77, 16, 68,153,137,121,145,209,223, 62, 0, 77,149, 28,147,205,
+155, 55,131,101, 89,240, 60, 95,229, 65, 42, 38,136,223, 22, 45, 93, 99,181, 34,248, 7, 88,217, 58,226,252,249,243,236,175,191,
+254, 90, 64, 0,209,143,239,223,255,246,125,224,231,195,128,206,148,245,203,201,201, 49,243,242,242,130,155,155, 27, 56,142,131,
+ 94,175, 47,139,190,100,101,101, 65,173, 86,195,214, 60, 23,111,217,185,129, 41, 8, 67, 74,228, 87,112, 86, 68, 97,215,105,173,
+190,185, 47,238,254, 3,110, 28,255, 43,157, 94,241,169, 25,174, 14, 78,238, 32,121, 61,146,211,179,208,175,119, 15, 80, 98, 5,
+226, 18, 50,209,164,129,183,243, 7,239,183,119,166, 8, 6, 51,151,239,159, 4,112,223,215, 36, 87, 88, 88,200, 70, 69, 69,225,
+222,189, 18,191,107,105,105, 9,115,115,243, 10,215, 56, 73,146,175, 20,209, 50,152,172,165,155,187,154,147,162, 34,228,179,161,
+216,177,231, 22,154,248, 5, 98, 75,248,141, 98, 54, 45,187,219,234,226,226,232, 3,255,226, 96,134,147,147,211, 68,142,227, 22,
+242, 60,159,219,161, 67, 7,199,253,251,247,219, 36, 37, 37,225,214,173, 91,248,242,203, 47, 51, 88,150,101,120,158, 39,120,158,
+255,234, 53,252, 29, 87,206, 96,189, 78, 68,114, 25,166,216, 91, 18,125,105,210,210,139,201, 47,140,203,212,242, 39, 84, 12,183,
+ 30,128,190,218,155, 27, 73,126,116,228,224,102, 23,123, 37,135,206,202,119,144,146,166,195,210,207, 70, 33, 43,171, 0,223,111,
+ 95, 6, 64, 2, 29, 67,225,237,206, 3,225,224,224,138, 9,227, 39, 56,109,222,186,229, 19,134,227, 86,227, 13, 33,245,202,166,
+ 31, 1,132, 42,149,202,251,159, 76,152,160,244,242, 26, 9,153, 76,134, 3, 7, 14, 96,255,134, 13,108, 48, 48, 88, 10,156, 11,
+ 2,126,172, 86, 39,252, 15,157,169, 65, 65, 74,127,255, 32, 72,165, 82,252,254,235,255, 80,156,186,167,160,119, 59,232, 84,197,
+232, 93,167, 15,111,251,236, 36,145, 45, 18, 33, 6, 0, 68, 50,164, 0,120,177, 26,236,223,102,176, 12,156,194, 31,237,178, 38,
+ 84,136,104,213,250,222, 41,146, 68,108,159, 54,204,211, 17, 26, 66,123,233, 36,146, 52, 28,187,226,177,142,186,157,199,127,254,
+176, 18,147, 85,122, 98,115, 30, 30, 30,120,167, 69, 11,244,239,216, 17, 52, 77, 67, 38, 17,195, 66,102, 6,158, 45,137,100, 25,
+170, 14,171, 41, 19, 81, 89,244,201,206,206, 14, 98,177,184,204, 96,153, 16,205,170, 84,147,227, 56,208, 52,141,123,247,238,161,
+ 67,135, 14,112,119,119,199,161, 67,135,208,179,103,207,151,170, 18, 77, 53, 89, 6,163,245, 66, 53, 94, 79, 0,134, 72,150, 73,
+ 70,171, 88, 75, 32, 83,219, 4, 4, 17, 0,134, 1, 88, 30,208, 20, 23,131,231, 1,158, 7,244, 58, 45,138,139,139,203,254,211,
+152, 42, 89, 39, 39, 39, 15, 51, 51,179,197,179,102,205,244,111,210,164, 41, 50, 50, 50,192,113, 28,204,205,205,161, 82,169, 96,
+105,105,137,118,237,218,197, 45, 94,188, 56,133,231, 49,193, 68,147,245,202, 24,246,249,153, 51,103, 42, 84, 27, 26,166,162,148,
+ 68,140,249,116, 47, 36,116, 73,213,146,161, 13, 79,117,247,221, 46,111,183,199,149,219,209,204, 71, 51,215,105, 68, 89,183,150,
+ 59,113,220,206,196, 87,216, 46,158,231,145,153,153,137,180,180, 52,244,237,215, 15,251,247,237,195,179,103,207,208,160, 65, 3,
+116,233,210, 5, 14, 14, 14,120,246,236, 25,174, 95,212, 64,147,147,141,108,237, 45,200, 45, 90,227,248,249, 88,205,151,155,117,
+177,127,227, 13,163, 47,128, 81,150,150,150,117, 85, 42, 85, 10,195, 48,135, 1, 28, 6, 48,152,166,233,193,114,185,220, 57, 63,
+ 63,255, 41, 74,122, 19,157,168, 73,204, 76, 38,179,147,202, 44,193, 49, 26,208, 52, 13,119,119, 47,240,172, 22, 57,249,106,140,
+ 30,218, 7,183,239, 61,196,175,231,174, 49,122, 61,247,157, 49,187,149,162, 40,222,215,215, 23,233,233,233, 16,137, 68, 48, 51,
+ 51,131, 66,161,192,156, 57,115,176, 97,195,134, 50,147, 85, 91,163, 53, 22,240,181,244, 80, 92,251,102, 99,137,201, 74, 77, 78,
+ 65, 90,162, 8, 74, 59, 71,124,183, 33,184, 40,231, 89,106,235, 31,128,232,127,123, 33,203,113,220, 87, 73, 73, 73, 14, 52, 77,
+ 59, 49, 12,131,132,132, 4,220,188,121, 19,147, 39, 79, 78,203,202,202,234,140, 90,110,163, 76, 38, 75, 55, 68,178, 74,171, 14,
+171,170, 78,204, 45, 23,201,202,173, 70,178,170,106, 66,111, 47, 55,139,179,219,215, 78,247,104,217,186, 29, 41,167, 45,115, 10,
+ 99, 82, 59, 92,186,112,190,221,228,181,223,127,242, 60,167,176, 7,128, 39, 85,137, 74, 69,162, 94,109,218,183,167,193,167,129,
+150,116,192,202, 21, 67,145,145,153,143,156,236, 2,136,197,230,208,234, 41,176, 28,129,118, 29, 58,226,127,187, 14,162,225,248,
+113,148, 68, 36,234,206,104,181,111,140,209, 42,101,217,250,245,235, 61,252,252,252,176,115,231, 78,156,219,189, 27, 31,230,229,
+225, 60, 73, 82,122,145,200,254,103,189,126, 27,106, 48, 90,229,117, 26, 54,108,136, 31,126,248, 1,123,246,236,137, 31,209, 53,
+253,232,244, 17,112,208,233,240,238,173, 71,176,173,211, 7,184,245, 8,182,205,253, 80,143,161, 17, 67, 16, 21,211, 65,133,132,
+132,116, 42, 63,255,151,145,130, 42,170,216,105, 0,157, 67, 66, 66,248,242,243, 26,111,156, 74,159,160,101, 61,234,122, 6,188,
+229, 65,232, 15,173, 67, 66, 17,163,157,255, 72, 39,121, 92,200, 79,127, 8, 4, 87,243, 4,193, 83, 20, 5, 11, 51, 51, 40,173,
+173, 75,194,252, 36, 9,112, 0,167, 7, 8,182,196, 0,240, 28, 1,158, 53,233,134, 1,137, 68, 82,105,195,119, 83,219,102,149,
+215, 44, 40, 40, 64, 92, 92, 28, 38, 76,152, 0,185, 92, 94,226,220, 83, 83,225,233,233, 9,154,166,145,148,148,132,223,127,255,
+ 29,117,235,214,133, 84, 42, 53,201,109,149,139, 46, 53, 70, 73, 47,195,198, 41, 41, 41,150,206,206,206, 48, 57,162,197,241, 80,
+105, 8,104,181, 44, 30, 63,126,140,228,228,100,196, 61,141, 65,203,162,124,240,160,192,243,188, 73, 17, 45, 87, 87,215, 0,111,
+111,239, 45,203,151, 47, 23,187,185,185,129,231,121,216,216, 88, 67,165, 82, 33, 51, 51, 11, 13, 26, 52,128,187,187, 59,150, 47,
+ 95, 14, 0,251,255,106,147,245,194, 57, 85,102,180,202, 27,174, 79,223,247, 64,118,182, 2, 20, 69,150, 25,231, 26,218,104,137,
+ 1,160,115,143, 1,244,217, 95,127, 54,103,128,197,169, 20,181,152,174,249, 56,234, 89,142,147, 87,245,125, 66, 66, 2, 68, 34,
+155,237,138,119, 0, 0, 32, 0, 73, 68, 65, 84, 17,142, 28, 62,140,236,180, 52, 52,105,210, 4,173, 90,181, 66, 76, 76, 12,110,
+223,190, 13, 59, 59, 59, 40,221,218,226,252, 83, 29, 30, 36,171, 97,101,101,133,216, 68,242,239, 76, 25, 48,190, 91,183,110, 95,
+126,251,237,183, 14, 78, 78, 78,162,140,140, 12,191,141, 27, 55, 54,217,184,113,227,212, 79, 62,249,196,241,147, 79, 62,177, 81,
+ 42,149,116,106,106,170,239,103,159,125,214, 60, 52, 52,180, 46,128, 53,213, 9,154,155, 91,216, 82, 98,115, 16, 4, 13,107, 43,
+ 27,208, 18,115,112, 12, 13,150, 3, 44,173,148,184,114,251, 8, 46, 71, 20, 76, 76,207,194, 97,163,226, 99,165,199,221,206,206,
+238,165, 72,245,228,201,147,177,125,251,246,178,106,196,218,154,172,165, 27,187, 42,136, 82,147,149,154, 64,131,208,212,197,201,
+ 31,175,230,230, 60, 75,237,240, 38,152, 44,195, 61,142,231,121, 60,125,250, 20, 42,149, 10, 23, 47, 94,196, 87, 95,125,149,241,
+162,201,114,112,112, 24,111,105,105,185,168,176,176,112,101,106,106,234,186, 26, 31,252, 74, 76,148,225,181, 97, 94,105,117,162,
+145,171,234, 89, 89, 36,203,221, 89,118,250,246,197,189,158, 86,252, 93, 2,207, 39, 0,143,243,239, 91,132, 59,188,253, 94,203,
+222,100,179, 77, 95,215,105, 53,113,206,233,132,252, 98,191,170, 34, 91, 28,203, 54, 51, 87, 88, 0, 72,199,173,155, 97,101, 38,
+ 43, 43, 59, 15, 26, 29, 5,141,150, 64,177,142,196, 59,221,222,197,134, 45,123,144,148,158, 13,150,101, 27,189, 97, 38,203, 54,
+ 32, 32, 32,104,240,224,193, 88,188,120, 49, 66,191,253, 86,251, 49, 65,228,211, 0,127,138,101,193,241, 60, 65, 26,215,136,189,
+130,206,234,213,171,127, 4, 48,108,249,100,180,205, 41,196,104,151, 62,188,109,157, 62, 37, 11, 14,154,197, 3,128,109, 70,104,
+197, 34, 51, 48, 48,144, 48,212,172,153, 90,195,246, 79,135, 14, 12, 12, 60, 31, 18, 18,130,242,243,234,126, 96,225,232,247,222,
+ 23, 51, 38,173,104,217,179, 35,145, 50,163, 59,178,243,139,153,185, 15,116,146, 68,117,245, 38,171, 60, 95,108,220,136,219,209,
+ 37,215,177,155,131, 3,102,126,240, 1,120, 6,184,124,255, 1, 14,134,134, 98,104,183,110, 48,151,201,140,142,108,112, 28, 87,
+105, 20,171,124, 52,203,212,168, 83,110,110, 46, 14, 31, 62,140, 86,173, 90, 65, 46,151,131,166,105, 52,110,220, 24, 15, 31, 62,
+132,183,183, 55, 8,130,192,241,227,199,209,191,127,127, 60,121,242, 4,109,219,182, 85, 60,127,254,220,100,163,245,224,193, 3,
+ 75,158,231,223, 54, 68, 63,106,139, 70,163, 65, 84, 84, 20,250,244,233, 3, 27, 27, 27,184,186,238, 71,232,233,189,144, 7,124,
+ 8,130,128, 73, 70,139,101,217,177,189,123,247, 22, 19, 4, 1,181, 90, 5,153,204, 12,230,230, 10, 88, 88, 88,194,215,215, 15,
+201,201,201,232,217,179,167, 54, 54, 54,118, 83, 74, 74,202, 33, 83,215,213,223,223,223,252,217,179,103, 31,214,169, 83, 71, 2,
+ 0,102,102,102, 13,188,189,189, 63,127,242,228, 73,129,169, 81, 45,131,193, 34, 8, 2, 20, 69,149, 25, 45,154, 36,225,236,228,
+ 80,246,190,180,125, 26, 81,141, 86,126, 82,150, 70, 10, 0, 30, 30, 30,216,176,245, 39,178,119,239,222,152, 58,117, 42,244,122,
+ 61, 54,109, 42,233,100, 55,124,248,112,232,116, 58, 28, 61, 90,210, 73,146,166,233,106,195, 38, 55,111,222,196,173, 91,183,160,
+215,235,145,151,151,135, 95,126,249, 5,231, 47, 92,192,129,227,191,225,217,211, 24, 52,246,243,196,184,113, 99, 33, 18,137,176,
+107,215, 46,116,232,208,225,111,189, 33,136, 68,162, 17,219,183,111,119,222,185,115,103,238,241,227,199,139,218,180,105, 35, 13,
+ 14, 14,118,216,176, 97,131, 82,171,213, 98,218,180,105,233,215,174, 93,211,244,235,215,207,124,219,182,109,206,111,189,245, 86,
+119,134, 97, 42, 51, 90,230, 0,134, 2, 24,153, 83,160,165,115, 11,212,224, 24, 45,158, 62,139, 67, 94,161, 22, 28,171, 67,124,
+ 98, 50, 10,139, 89,100,101, 23,160,113,179, 30,235,195,194,194,230,233,116,186,185, 0, 66,106, 90,207,251,247,239,227,218,181,
+107,120,246,236, 25,158, 62,125, 90,209, 41,142, 31,143, 61,123,246,152, 28,209,170,220,100, 81, 32, 52,222, 8, 57, 30,158,155,
+ 30,147,242,198,152,172,210,123,208, 66,103,103,231,133,206,206,206,178, 51,103,206, 88,213,169, 83, 7, 12,195,104, 95,140,100,
+117,238,220,121,254,246,237,219,157,189,189,189, 39, 3, 88,247, 79, 88,119,146,196,248,149,155,131,236, 45, 36,241,201,120,188,
+166, 52,151, 32, 5,168,242,129,176,125,160,219, 47,136,155,220,111,150,205,236,157,139,199,115,224,170,236, 33, 27,251, 36, 1,
+155, 55,111,192,244,105,163,241,191,239, 87,130,227,104,104,244, 20, 60,188,218, 64,163,227, 64,144, 52,154, 52,107,129,115, 97,
+ 23, 33, 34,129,195, 59, 55,191, 97, 62, 11,217,145,145,145,155,142, 31, 63, 62,101,234,212,169,224, 56, 78,178,104,243,102,117,
+ 70, 70,198, 50,152,150,255,234, 69,157,254,155, 55,111,142,158,189, 33,227,199,233, 35, 64, 61, 59, 73,100,223,122, 4,219, 65,
+179,120, 28, 89, 65,160,185, 31,178,229,149, 23,241, 23, 94,152,191, 25, 70,203,224, 36,203,207, 43,163,153, 79,221,175,173,108,
+109,198,146, 22,174,246, 51,167,126, 76, 63, 73, 45,198,209, 58, 31, 20,254,190,251, 59,243, 84, 70,186, 62, 22,197,193,166,252,
+241,193,223,127, 47,123,189,106,255,254, 74,191, 75, 25, 52,200,232, 39,179,170,162, 88,166, 70,178, 0, 64, 46,151, 91,119,239,
+222, 29, 93,187,118,197,192,129, 3,203,218,100, 53,109,218, 20, 7, 14, 28,192,128, 1, 3,112,231,206, 29, 56, 59, 59,163,126,
+253,250,168, 95,191, 62,126,254,249,103, 83,111,114, 96, 89, 22, 1, 1, 1,134, 94,135,141, 19, 19, 19, 45,107,123, 32, 53, 26,
+ 13,178,178,178, 96,107,107, 11,137, 68,130,214,173, 91, 97,202,167,173, 97,239,252, 3, 2,252,253, 80, 84, 84, 84,214,253,221,
+136,194, 54,160, 94,189,122,200,200,200, 64, 70, 70, 6,148, 74, 37, 92, 92, 92,224,228,228,132, 53,107,214,240,235,214,173,251,
+ 85,167,211,109,202,204,204, 52, 57,146,229,228,228,212,145, 32,136,249,106,181, 90, 82,238, 9, 87,162, 84, 42, 79,168,213,234,
+101, 41, 41, 41, 70, 55, 4, 37, 8, 2, 58,157, 14, 4, 65,224,212, 83, 23, 20,105, 9,228, 39,222,194,212,247, 61, 43, 24, 47,
+145, 72, 84, 99,117, 41,207,243, 69,195,134, 13,115,112,119,119, 67, 66,236,125, 28, 57,194,227,219,111,191, 53,244,138, 68,116,
+233,131,129,225,125,151, 46, 93,224,229,229, 5,222,132, 92, 25, 28,199,225,222,189,123,216,127,226, 60,156, 61,253, 17,255, 56,
+ 10,183,127, 62,137, 58, 74, 91, 52,108,214, 2,122,189,254,149, 82,111,188, 14,244,122,253, 14, 31, 31, 31, 94,171,213,158, 7,
+176, 33, 34, 34, 98,116, 74, 74,202,180,159,126,250,201,101,240,224,193,201, 39, 79,158, 12, 6,176, 51, 34, 34, 34,104,201,146,
+ 37, 93, 25,134,169,180,183, 32, 69, 81,255,251,236,179,207, 58, 15, 30, 60,152, 16,147,122,237,153,211,187,104,134,209, 19, 95,
+204,221,193,134, 93, 58, 79, 50,140,158, 24, 56,236, 51,238,231,223, 35,200,137,159,174, 98,155,182,233,141,200,200, 72,167,192,
+192,192, 37,122,189,190, 90,163,101,136, 84, 85, 21,161,164, 40, 10,163, 71,143,198,129, 3,198,183,160, 26, 7,120, 91,122, 42,
+174, 45,221,216, 77, 65,208,133,229, 76,214, 91, 8, 57, 30,158,155,246, 56,249,141, 50, 89, 0,144,149,149,181, 21,192, 86,142,
+227,210,204,205,205, 81, 80, 80, 80,217,249, 39,139,136,136,144, 73, 36, 18,244,232,209,195, 54, 52, 52, 52,154, 36,201,117,201,
+201,201, 85, 58,142,202,170, 9, 43,171, 78,196, 43,244, 58,180, 81, 34,176,117,199,102, 22,143,172, 22, 91,200,232,226, 59,117,
+162,101,150, 4,128, 60,141,227,211, 43,207,135,230, 19,233,210,166, 45,186, 52,135, 37,109, 30,152,203, 20, 84,106,180, 72,138,
+186,157,151,147,219, 43,191, 64,139, 75,151, 35, 49,108,104, 61,104,116, 4, 56,142, 68, 97,145, 6,160, 68, 32, 1, 12,255, 96,
+ 20,120,130, 70,118, 90, 50, 40,138,138, 0,195,224, 13, 99, 78, 80, 80, 80,175,185,115,231,214,157, 57,115, 38,102,206,156,233,
+185,125,251,246,173, 75,151, 46,157,153,145,145,209, 8, 53, 36, 31,175, 70,167,206,201, 3, 11,102,156,184,184, 37,175,119, 59,
+245,227,230,126, 37,145,175,230,126,200, 22,137, 16, 67, 83,200,226,249,138,205,140, 2, 3, 3, 59,149,159,255,203,120,177, 17,
+124,217,123,163,218,104,213,171,235,250,110,179,166, 1,159,206,155, 59,207,226,225,149, 48,204,254,122, 3,239,211,162,123,193,
+214,139,183,181,133,230, 94,189, 10, 51, 99, 46, 27,235, 47, 0,224,221,119, 6,160,113,131, 86, 47,125,217,161, 75, 73,178,246,
+ 75,231,110, 34, 45, 35,201,232,194,182,212, 28, 84,218, 38,203,152, 46,253, 47,162, 86,171,115, 35, 35, 35, 29, 18, 19, 19, 43,
+ 52,124,247,242,242, 2, 65, 16, 8, 15, 15,199,181,107,215, 48,108,216, 48,208, 52, 13,145, 72,132,243,231,207,155, 20,141, 41,
+ 23, 93, 50,244, 58,236,233,230,230, 86, 85,111,195, 26,181,212,106, 53,242,242,242,112,250,244,105,212,171, 87, 15, 75,151, 46,
+133,139,179, 35,230,205,155, 1,142,227,144,159,159, 15,150,101,141,141,104,113,134,104, 17,199,113,200,200,200, 64,221,186,117,
+177,113,227, 70, 4, 7, 7, 47, 73, 73, 73,249,201,212,117,116,119,119,183,102, 89,246,139,222,189,123,119,239,215,175, 31,122,
+246,172,152,143,117,223,190,125, 22, 71,143, 30, 93,246,221,119,223,189,171,211,233,150,167,167,167,103, 24,163,251,195, 15, 37,
+233,151,228,109, 22, 98,246,224, 58, 24, 57,105, 23,214,172, 57, 6,169, 84, 90,161,224, 93,188,120,113,181, 38,134,227,121, 31,
+113,230,149,228, 25,179, 86, 59, 44, 91, 22,138,208,208,116,144, 36, 9,103,103,103,144, 36,137,184,184, 56,144, 36, 9, 79, 79,
+ 79,144, 36,137,164,164, 36, 67,155,192, 28, 84,210,235,177,242,167,112, 18,197,197,197, 72,136,127,134,196,216,104, 40,242, 83,
+161,180,148, 35,231,254, 61, 52, 30, 55,190, 44,255,211,223,204, 30,173, 86,187,167,220,251,213, 39, 79,158,212, 18, 4, 49, 16,
+ 37,237, 52, 12, 17,141, 37, 12,195, 44,169, 74,164, 77,155, 54, 77,231,206,157, 43, 50,164,219,112,241,248,134,209,233,116, 28,
+ 0,248, 53,126,187,130,219,143,137,137,193,154, 53,107, 80, 84, 84, 4,177, 88, 44, 54,102, 63,112, 28, 87,214,195,176, 50, 19,
+102,138,201, 2, 0, 59, 79,183,245,225,183,206,179,119, 99,183,168, 35, 30,253, 98,150, 18, 79,130,212,190,185, 38,235,197,200,
+150,155,155,219, 66,142,227,120,158,231, 23,148,251, 74,234,225,225,113,241,204,153, 51,118, 12,195,224,187,239,190,179, 78, 77,
+ 77,181,126,251,237,183,103, 3,168,210,104, 85, 86, 77, 88, 89,117, 34,202,245, 58,148, 74,165,182, 90,109,149,193,147,151,122,
+ 29,178, 44,124, 45, 45,172,145,131, 68,104,236,245, 77,115,237,152,236,179, 41,227,239,184, 60,111,214,192,156,213,215, 37,243,
+181,112,149, 91,131,227,249, 42,187, 70,107,244,250, 95,238,220,186,221,195,195,189, 30,245, 83,200, 5,244,237, 63, 24, 26, 13,
+137, 98, 61, 1,130, 18,129,160,196,104,212,184, 25,234, 55,108, 12, 30,192,205,235, 87, 24,173, 94,127,246, 77, 58,246,206,237,
+167, 12, 35, 8,172, 3,207,241,149,228,209,170,219,191,127,255,101, 0, 62,173, 73,199,161,205,148, 97, 36, 89,162, 83, 62,143,
+214,103, 83,130,112,255,186,200,234,194,173, 21,226,158,109,112, 42, 35,148,128, 92,246, 71,175, 67, 17,249, 74,169, 57,254, 45,
+134,171,102,163,229,238,238,110,109, 41,149,253,240,201,184,177, 22,207,239, 94, 69,234,131,112, 92,190, 16,157,115,240,232,177,
+236,162,172,244,113, 38,152,172,178,106, 62, 59,167, 58,240,242,127,217,104,201, 20, 74, 0,128,151,127, 43, 80,230,166,165, 17,
+170, 44,154, 85, 27,147, 85,254,134, 93, 89, 14,173,137, 19, 39, 98,251,246,237,104,223,190, 61,124,124,124,202,110,246,166, 70,
+205, 42,137, 46,153,220,219,176, 60, 5, 5, 5,240,244,244,196,182,109,219, 16, 17, 17, 1, 11, 11, 11, 12, 27, 54, 12, 5, 5,
+ 5,101, 6,203,216,198,240, 60,207,199,156, 57,115,166,229,144, 33, 67,120,145, 72, 68,228,230,230,194,218,218, 26, 27, 55,110,
+ 44, 74, 73, 73, 57, 85, 11,147, 53, 88, 44, 22,207, 24, 58,116, 40,229,231,231,135,180,180, 52, 88, 90, 90,234, 9,130, 16, 1,
+128,181,181,181,222,204,204, 12, 65, 65, 65,104,210,164, 73,199,153, 51,103,182,167,105,122, 99,114,114,242,174,234,206, 37,130,
+ 32,202, 10,212,113,235,162,160,213,150, 20,208,155, 54,109, 66,105, 91,183, 63,170, 8, 98, 99, 1, 35,122,178, 40, 20, 10,248,
+248,248, 84,122,236, 59,118,236,136,155, 55,111,150, 84, 77,210, 52, 28, 28, 28,112,249,242,101,163,122, 82, 25, 18, 65, 70, 70,
+ 70,194,223,203, 30, 17,161,103, 96, 47, 23,161,137,139, 19,220, 58,118, 66,116,116,244,223, 25,205, 34, 80,210, 14,163, 91,233,
+ 57,184, 3,192,196,114,239, 55, 2, 88,111,138, 32,195, 48, 60, 73,146, 68, 66, 66,130, 78, 46,151, 19,182,182,182,180, 84, 42,
+133, 70,163, 41, 51, 92, 49, 49, 49, 8, 9, 9, 65, 98, 98, 34,108,109,109, 73, 43, 43, 43,232,116,186, 28, 99,244,125,125,125,
+225,228,228, 84,161,225,251,184,113,227,106,101,178, 70, 3, 1,219,191, 89, 94, 71, 74, 82, 86,254,246,239,226,105, 84, 92, 49,
+169,133,236,191, 96,178, 0, 32, 55, 55,119, 43,128,173,134,247,246,246,246, 99, 40,138,154,167,209,104,172,206,159, 63,111,173,
+ 84, 42,137, 93,187,118,233, 23, 44, 88,144, 75, 81, 84, 14, 65, 16,107,255,126,115,136, 7,153,121,177,158, 34, 27, 23,238,110,
+ 49,127,101, 90,194,236,250, 57,162,122, 74,162, 97, 0,250,167, 63,188, 52,134,137,109,151,150,146, 74,242,224, 30, 84,115, 15,
+222, 49,123,238,226, 47,162,163,110,123,200, 44,101,152, 24, 52, 23,167,126, 61, 7,130, 20,225,226,149,112,104,117, 44, 50,179,
+243, 48,116,248, 8,184, 57,219,227,193,181,211, 25, 12,199,109,124,179, 76, 54,183,161, 71,223, 49, 54, 82, 51,121,233, 62, 97,
+177,231,251, 25, 32,201,117,248,242,203, 47, 17, 16, 16, 48, 41, 50, 50,242, 43,212,144, 71,139, 32,184, 13,141, 58, 13,183, 17,
+ 75, 75,116,120,142,197,182,195,179, 75,243,104, 77,199,198,173, 71, 27, 53,244,122,186,168,186, 60, 90,111,144,201, 42, 63,175,
+222,104,121,122,122, 74,205, 69,152, 32,162,232,153,159,124,208, 79,153, 30,123, 31,137, 15,111,151, 84, 47,232,212,186,212,199,
+ 15,141, 73,133,222, 13, 21,243,119,240,213, 85, 93, 21, 23, 27,245, 68, 95, 65,211, 80,224,190, 24,205, 50,209,100,189,164, 89,
+222,108,149,207,155,229,238,238,142,101,203,150, 25,147, 71,235,197,109, 55,208, 19, 37, 13,224,203, 55,134,239,105,164,201,170,
+ 84, 83,169, 84, 34, 43,171, 36, 67, 66,231,206,157,209,185,243, 31,253, 25,116, 58, 93, 89, 20,203,194,194,162,178,136,214, 75,
+154,102,102,102,179,143, 29, 59, 54,246,202,149, 43, 67, 62,255,252,115, 81,215,174, 93, 13,102, 78, 5,227,198,118,171,160,201,
+178,108,208,233,211,167, 41,142,227,176,109,219, 54,220,188,121,147,151,203,229,243,229,114,249, 6, 51, 51, 51, 86,173, 86, 79,
+ 28, 63,126,252,136, 69,139, 22,145, 29, 59,118,196,213,171, 87,201,186,117,235,142, 2, 42, 36,177,172,116,219,195,195,195, 65,
+146, 36,152,236,120, 76,154,125, 16,230,102, 52,162,162,162,144,157,157,253, 82, 18, 83, 99,246,103,249, 72,137, 97,234,216,177,
+ 99, 89, 53,100,235,214,173, 65, 81, 20,238,220,185, 83, 85, 53,108,121, 77,222,206,206,174,236,252, 16,139,197, 56,119,238, 28,
+190,254,250,107,120,216, 90, 35,231, 97, 4,156, 58,191,131,238, 99,199, 99,216,176, 97,160, 40, 10,182,182,182,101,145, 95, 35,
+206,165, 87,161,188,230, 88,127,127,255, 81, 15, 30, 60,112,107,212,168,145,115,100,100,100,151,128,128, 0,207,136,136, 8,195,
+123, 41,140,107,155, 83,166,121,227,198,141, 35, 27, 54,108, 8, 26, 61,122,180,152,227, 56,246,249,243,231,122, 0,132,147,147,
+ 19,117,227,198, 13,238,167,159,126,130, 90,173,134,155,155, 27,233,234,234, 74,156, 61,123,150,123,248,240, 97, 56,207,243,115,
+141,217,118,150,101, 43,164,113, 48,188,222,183,111,159,201,215,123,157,250,190, 75,187,190,237,231,158,153,124, 7, 41, 73,177,
+ 96,243,148,186,144,227, 39, 53, 38,154,172, 63,251, 24,253,149,154,139, 31, 63,126,236,170,209,104, 32,145, 72,176,105,211, 38,
+221,178,101,203, 30,100,102,102,118, 64,229, 61,202, 43,104,214,178,215, 97,118, 53,154, 47,245, 58,204,203,194,169,227, 39,110,
+180, 84,244,223,129, 73,201, 25,101, 13, 27,121,130,176, 61,230,216,160,131,188, 85,163, 36,242,231,133,100, 1,171, 58, 85,205,
+182,107,213, 90,237,224,254, 3,134,255,118,224,192,126,197,130,133, 11,113, 57, 60, 2, 89,185,133,224,120, 10, 28, 65, 96,222,
+188, 5,112,178,183, 69,126,242, 99,149, 70,167,235,143,138, 57,180,254,245,199,157, 32,200,201,103,127,218,181,142, 36,192, 21,
+165, 61,146, 82, 5,177,242,145,195,250,211,131, 7, 15,198,177, 99,199, 16, 25, 25,185,165, 26,147, 85,166,201,243,228,228,136,
+243, 7,215, 17, 0,167,206,120, 36,165, 11,159,202, 71,125,208,159, 30, 54,108, 24,126, 12,185,130, 3, 39,159,110, 62,112, 18,
+ 39,241,102, 99,122,102,120, 11, 26,145, 29, 26,120,187,118,108,214, 80, 70,179,106, 36, 62,140, 69,118, 81, 49,206,222,127,158,
+ 75,242,100,173,115,235,148,220, 32,197,136,143,127, 92,201,147,149,172,180, 64, 47, 54, 73,147, 36,201, 10,209,172, 87,137,100,
+149, 95, 79, 71, 71,199, 10,195,185,148, 47,184, 13,109,128,106,145,218, 97,118,124,124,188,101,124,124, 60,120,158, 71,120,120,
+184,101,235,214,173,103,191, 74, 52,107,198,140, 25,101, 81,171, 23,231,149,125, 86, 19,165,141,210,131,245,122,253,225,153, 51,
+103, 78,106,221,186,117,143,133, 11, 23, 18, 48, 97, 0,222, 23,162, 57, 12,199,113, 8, 11, 11,195,177, 99,199, 88,157, 78, 55,
+ 33, 37, 37, 37,162,220, 34,223,221,186,117,235,236,128, 1, 3,118, 61,122,244,136,122,240,224, 1,120,190,230,126,167,106,181,
+ 26, 62, 62, 62, 96, 24, 6, 43, 38,185,163,160,160, 17, 24,134, 1,203,178, 48, 55, 55, 47,139,226,149, 55,207, 53,157, 71, 44,
+203,190,100,180,194,195,195, 65, 81, 20, 58,116,232,128,219,183,111,151, 69,180,106,138, 64,233,116,186,120, 71, 71, 71,199,197,
+139, 23,151,173, 87, 70, 70, 6,206,156, 57,131, 54,109,219,161,193,132,137, 72, 78, 78,198,218,181,107,225,226,226,130,165, 75,
+151, 34, 59, 59, 27, 12,195,252,213,225,244, 94, 15, 30, 60,112,251,224,131, 15,210, 35, 34, 34,220, 66, 66, 66,172, 3, 3, 3,
+205,135, 15, 31,158, 30, 17, 17,225, 70, 16, 68, 59,152,216, 8,154,227,184, 57,243,230,205,251,117,233,210,165,179, 63,253,244,
+211,214,163, 71,143, 22,137, 68, 34, 46, 41, 41,137,217,191,127, 63,225,227,227, 67,138,197, 98,226,244,233,211,220,245,235,215,
+175, 49, 12,179, 2,192, 69, 83, 34,206,229, 77, 22, 69, 81,198,154,172, 10, 76,115,144,142,178, 32, 51, 58,108,216,180,140,244,
+243,114,211,237,222,127, 38,225,226,213,199, 79, 40, 13, 51,237,135,106, 82, 3,188,201, 80, 20,117,200,223,223,127,204,228,201,
+147,205,122,246,236, 41, 93,180,104, 81, 94, 65, 65, 65, 85, 38,171,146, 7,230,191,164,215,225,247,115, 62, 15,153,246, 89,163,
+ 49,222, 31, 57,213, 65,104, 81, 58,114,104,138,180,180, 38,209,204,147, 66, 65,102,140,242,228,111, 59,227, 0,212,148,151,237,
+198,173,123,145,221, 26, 54,106,122,116,197,210, 21, 14,243,103,205, 20, 29, 13,249, 5, 60,163, 67,248,249,243, 80,136, 89,254,
+225,173,208, 52,141, 78,219, 15,111,224, 16, 60, 41,151,215, 31, 0,112,194,214,214,246,238,216,209,163,125,252,253,135, 67, 46,
+151,227,200,145, 35,216,243,221,119,108, 48, 48, 68, 10,220, 14,170, 33,159, 94,250,181, 50,157, 59,227,199,142,245,109,214,236,
+ 35,200,229,114, 28, 62,124, 24,187,130,131,141,214,249,151, 99,200, 12,127, 10,127,100,136,175,161,141, 22, 73, 20, 92,123,252,
+188, 48,252,241,243, 66,112, 60,207,241,188,134, 36,145, 80,164,211, 45,125,252, 52,169, 86,166,192, 80,117,184,228,155,201,175,
+175,206,163,156,249,169,109,151,238, 74, 76, 86, 98,249, 49,210,202, 23,210, 85,189,214,235,245,137, 70,202, 47,247,240,240,120,
+233,179,218,135,126,121,147, 76,150,177,121,180, 0, 32, 43, 43, 43, 5,192,252,171, 87,175,238,235,209,163,199,120, 0, 73,181,
+ 60, 70,219, 58,117,234, 52, 1, 0, 69, 16,196,150,228,228,228,136,151, 46,248,148,148,104, 23, 23,151, 85, 94, 94, 94, 19, 75,
+ 30, 76,137,109, 53, 20,228, 79, 27, 53,106,164,171,236, 88, 84,245,158,227,184, 26,143, 81,110,110, 46, 90,181,106,245,210,152,
+150, 60,207,227,249,243,231,134,136, 83,217,190,175,206,192, 21, 22, 22, 78,156, 50,101,202, 86,145, 72,228, 1,128, 48,152, 92,
+150,101,169,245,235,215,203, 88,150,165, 0, 16, 36, 73, 50, 34,145,168,248,216,177, 99, 12,195, 48,241, 26,141,102,226, 95,124,
+131, 56, 76,148, 12,197, 80,244,224,193, 3,191,210, 72, 86, 98,100,100,228,157, 3, 7, 14, 40, 1, 28,172,165,238, 69,149, 74,
+117,113,217,178,101, 29, 55,109,218, 52,103,226,196,137,173,134, 13, 27, 70,119,238,220, 25,167, 78,157, 98,195,194,194,194,213,
+106,245,114, 83, 12, 86,233,177,204,115,119,119, 47, 51, 92, 53, 92,203,213, 54,228,181,243,148,110, 24,241,177,139,108,219,242,
+ 51,133,153,201,218, 43,250, 66,237,220,157, 64, 36,254,195,164,165,165,125, 14, 96,193,218,181,107,147,155, 52,105, 34, 21,139,
+197, 90, 99, 77,214, 95, 8,195,229, 22,190,247,109,247, 65, 39, 58,205,155,226,213,189, 75, 7,185,123, 29, 7,215,135,177,105,
+136,185,122,170,232,238,201,111,158,241,154,156,190, 0,140,105,185,126, 93,163,211,213,155, 49,115,198, 36,137, 72,212,131,101,
+217,198, 93,207, 30,231, 41,138,138,208,234,245,103, 75,171, 11,139,223,224, 67,190,100,213,170, 85, 62,254,254,254, 56,114,228,
+ 8,206,238,221,139,161,153,153, 56, 71, 81, 20, 41, 22,219,157,212,233, 86,195, 56,131,180,100,205,154, 53,190, 1, 1, 1, 56,
+116,232, 16, 78,239,218,133, 33,181,211,169,170,172,107, 9, 64, 89,250, 54, 19,192, 35, 0,205, 1,152, 1,208,160,100,104, 39,
+251,242, 69, 88,233,119,134,239, 47, 16, 4,241,103, 54,132,173, 57, 51,252,139, 68,198, 60,107,254,186,215, 66,173, 86,103,251,
+248,248,152,212,231, 90,175,215, 87, 91,135,203, 48, 76,162,183,183,183,209, 81, 11, 99, 76, 81,118,118,118,139, 63,241, 96,188,
+ 82, 91,172, 10,133, 8,199, 61,115,118,118,230, 12,133,126,101, 38,172,178,207,120, 32,206,148,255, 73, 77, 77,125, 4,224,179,
+218,174,103,114,114,242, 81, 24, 49,104,180,177,203, 1, 64, 78, 78,206,107, 31,204,151,224,249,164, 69,139, 22,153,100,176,193,
+243,213,153,207,136,194,194,194,214,198,252,183, 78,167,195,223,200,161,210,137,140,140,140, 28, 79, 16, 68, 79,148, 84, 9,108,
+193,235,201,230,125, 49, 63, 63,255,226,202,149, 43, 59,110,219,182,109, 26,207,243,200,207,207, 15, 54,213, 96,149, 61, 61,167,
+167,159,122, 93, 27,158,157,166,253,125,255,150,196,119,212,185,186,105,219, 11,181,187, 32, 80, 22,140,226,121,254,127, 35, 71,
+142,108, 3, 96,231,171,138, 85,209,235,240, 85,137,227,114,242,154,156,155,241,245,216,115,214, 22,189,193,210,126,208,146, 39,
+161,205, 58, 5,224, 7, 24,215,204,161,108,123, 25,142, 91,195,104,181,107,202, 21, 46,255,133,227,108, 27, 16, 16, 48,109,204,
+152, 49, 88,176, 96, 1, 78,175, 94,173,251,152, 32,242, 68, 0,255,107,201,131, 38, 73, 0,179,140,213, 25, 53,106, 20, 22, 44,
+ 88,128,159, 87,172,168,173, 78,117, 40, 9,130, 8, 1,128,217,179,103,207, 93,182,108,153,205,156, 57,115, 26, 47, 95,190,124,
+105,233,251,251,134,239, 75,203,186,192, 57,115,230, 52, 44,247,125, 1,128, 27,127,242,254,172, 52, 51,252,159, 77, 55, 65, 83,
+208, 20, 52, 5, 77, 65, 83,208, 20, 52, 5,205, 87,129,231,249,222, 37,179,170,231, 85,189, 46, 55,255, 91,160, 33, 32, 32, 32,
+ 32, 32, 32, 32,240, 47,164,124, 20,171, 54,223,191, 70, 12,109,180,202,179, 13, 40,233,214, 93,149, 43, 53,165,215, 67,109,156,
+109,168,160, 41,104, 10,154,130,166,160, 41,104, 10,154,255, 57,205,154,180, 95,250, 61,207,243,189, 9,130, 8,225,121, 62,176,
+170,185,193, 88,189,248,186,220,252,181, 53, 59,168, 4, 67,219,172,151,218,104,253,217, 8, 97, 85, 65, 83,208, 20, 52, 5, 77,
+ 65, 83,208, 20, 52, 95, 9, 67, 21, 32, 0,126,246,236,217,115,254,129, 85,135,206,165, 38,171,252, 4,160,154,170, 67,158, 63,
+ 76, 37, 37,193, 82, 34,145,139, 1, 64,171, 85,233, 92, 93,145, 79, 16,131,255,206, 1,111, 5,254,157, 24,186,123,167,189,230,
+101, 5, 4, 4, 4, 4,254, 27,100, 24, 34, 85, 0, 50, 0, 16,165,239,181,165,243,140, 82, 67,246,226,235, 10,223,255,137,164,
+160,138, 72, 22, 93,149,201,202,204,148,219,211,116,142, 47,203, 22,215, 7, 0,154, 38,163, 50, 51,109,162,121,254,112,102,109,
+204,150,189,131,195, 45, 17, 69,185, 26,179,172,158,101,147, 50,211,210, 42,166,142, 39,136, 55,193,224, 25,107, 34, 94,197,108,
+252,233, 70,197,222,222,222,209,209,209,241,125, 75, 75,203,182,185,185,185,215, 51, 50, 50,126,172,102,220,195,101, 4,129,153,
+ 37,231, 21, 86, 2,152, 83,141,180, 41,203,190,136,143, 92, 46,159, 68, 16, 68, 64,233, 5, 22,169, 82,169, 54, 1,120,252, 31,
+188, 33,153, 1,232, 71,211,244, 40,123,123,251, 86,169,169,169,139, 0,212, 54,155, 55, 13, 96,134,181,181,245, 80,107,107,107,
+239,236,236,236, 39,249,249,249,135, 0,172, 1, 80, 99, 87,233, 69,159, 58,183,237,220,179,243,252,176,211, 97, 75, 22,125,151,
+114,245,165,239,103, 56,219,245,232,222,126, 65,216,201, 43,139,231,110, 76,206, 54,113,221,200,210, 9, 40,233, 29,201,227,229,
+100,175,175,138, 8, 64, 31, 0,157, 1,132, 1, 56,105,204,118, 87, 65, 27, 0,115, 75,215,121, 13,128,115,255,240,243,200,220,
+209,209,113, 5,128, 62, 52, 77, 63, 72, 74, 74,154, 0, 32,241,111, 94, 39, 26, 64, 75, 0, 1, 40, 73,195,113, 3,198,165,112,
+168, 17, 59, 59,187, 64,154,166, 39,149,166,118,217,148,149,149, 21,242, 79, 61, 48, 18,137, 36,216,201,201,233, 35,181, 90,173,
+ 34, 8,130, 47,159,239,145, 97,152,196,204,204,204, 22,111,218, 77,141, 32,136, 27,255,240, 85,156, 80,201,103, 85,231,209, 74,
+ 74,130, 37, 77,231,248,166,167, 70, 12, 77, 78,185, 55, 4, 0, 92,156, 27, 31,114,112,106,116, 48, 41, 73,162,115,242,235,175,
+ 16,201,233, 77, 20, 37,106, 90,172,213,216,139,104, 81,166,142,209,223, 33,181,252,164,212, 71, 63, 86,154,108, 81, 68, 81,174,
+207,162,207, 57, 48,186,108,136,100, 46, 16,153,121, 84,185,182, 46, 46, 46,181,218, 74, 27, 27,111, 11,157, 84, 54, 77, 36,162,
+186,115, 60, 19,192,115, 0, 73,136, 34, 25, 86,255,155, 88,163,249, 54, 39,231, 73, 65,109,247,160,159, 29,156,120, 96, 24, 8,
+116, 7,143,179, 4,112,224, 81, 22, 82, 77,144, 48,214, 68,188,138,217, 40,255,219,181, 0, 62,127,221,103,146,171,171,171, 77,
+ 96, 96, 96,240,215, 95,127,109,166, 80, 40,136,248,248,248,158,179,102,205,122,251,230,205,155,159, 37, 37, 37, 37,191,104,250,
+ 8, 2, 51, 57,142, 39, 1,128, 36,137, 89, 74,165,131,156,162,168,151,114, 27,177, 44, 43,207,200, 72,159,204,113, 60, 81,186,
+236, 76,158,199, 58, 99, 12,163, 76, 38, 27, 30,208,168,233,103, 43, 86,173, 81, 56, 58, 56,152, 51, 44,167,139,123,254, 76, 62,
+127,246,231,173, 99, 99, 30,175, 43, 46, 46,222, 95,155,235,154,162,168,161, 82,169, 52, 16,128,127,233,103, 15, 53, 26, 77, 8,
+203,178, 7,141, 45,208, 29, 29, 29, 47, 80, 20, 85,199,148, 63,102, 89, 54, 62, 45, 45,173, 67, 45, 15,209, 96, 15, 15,143, 31,
+ 58,117,234, 36,111,213,170, 21, 36, 18, 9, 22, 44, 88, 48, 35, 37, 37,165, 38,163, 69, 3,152, 33,151,203,135,154,155,155,123,
+ 23, 22, 22,198,170,213,234,163, 18,137,164,219,186,117,235,220,219,183,111,111,145,150,150, 70, 80, 20,229,248,243,207, 63,127,
+ 24, 28, 28,220,147, 97,152,174, 53, 21,114,121,177,252,124,105, 31,255,142,121,177,231,230, 3,232,245,226,247, 76,177,108, 20,
+ 79,185, 7,170,249,219, 9,165,230,195,104,147, 37, 18,137,214, 57, 57, 57,141, 41, 46,201, 21,192,191, 88,224, 0,128, 86,171,
+205,201,205,205,245,171,205, 37, 15, 96,156,181,181,245,152, 47,190,248,194,166, 87,175, 94,216,187,119,239, 39,219,183,111,207,
+201,207,207,255, 31, 74, 18, 97, 62, 50, 81,115,102,106,106,234,123, 34,145,136,112,119,119,167,212,106,181, 41, 70,203, 23, 37,
+131, 48,223, 0,176, 9, 37,169, 11,186, 0, 37,215, 59,128,149, 6,227, 70,146,228, 38, 63, 63,191,247, 31, 62,124,184, 25,192,
+146,218, 94,235, 78, 78, 78, 91, 55,110,220, 56,164,111,223,190, 84, 70, 70,134,107,147, 38, 77,246,165,166,166,118,124, 13,183,
+145,177, 82,169,116,122,227,198,141, 27, 60,122,244, 40, 58, 63, 63,127, 77,233,254,172,238,154,114, 3,208,205,218,218,186,235,
+188,121,243, 20,129,129,129,216,182,109,219,123,219,183,111, 47, 44, 40, 40,248, 13, 37,109,122, 94,201, 4,210, 52, 61, 41, 49,
+ 49,209,158,231,121, 56, 59, 59, 79, 2,240,143, 52, 90, 36, 73,174, 27, 48, 96,192,152,125,251,246,201,159, 61,123, 38,119,117,
+117, 45, 75,158, 77, 16, 68,173,203, 79,129, 87,102, 91, 57,195, 85,115, 30, 45,137, 68, 46,102,217,226,250,201, 41,247,134,188,
+221,105,189, 21, 0, 92, 56, 63,101,136,131, 83,195, 72,137, 68, 30, 45,181,148, 29, 27,208,167, 91,211, 65,129,157, 8, 55,103,
+ 7, 36,166,164, 59,126,127,224,244,187, 33,167,207, 29, 67, 73, 2,177, 74, 97,116,217, 48,211,133,226,209,165,239, 96,223, 57,
+ 25, 27,126, 78,196,213,187,113, 80,229,101,162,142,147, 25, 86, 77,235, 1, 39, 27,121,237, 30,189, 28,124,186, 48,180,244,224,
+ 7,195, 71, 90,189,223,207, 95,228,233,228, 4,158,151, 34, 58,182,176,221, 47,103,206,181, 60,122,120,255, 36,115,145,207,208,
+162,244,199, 70,223,220,154, 57,195,172, 72,135,126, 52, 69,124,216,190, 69,131,174,195,223,235, 72, 54,240,175,135, 7,247, 31,
+246, 56,241,123,248, 42,242,202,253,223, 24,150,223,109, 46,198,241,219, 41,213, 38,244,123,201,112,116,237,218,173,163, 84, 42,
+173,144, 60, 73,163,209,136,127,251, 45,180, 77,109,204,134,225, 63,180, 90, 13, 41, 18, 73, 64,146,196,103, 1, 1,141,252, 51,
+ 51, 51,207, 17, 4,241, 67,114,178,105,209,130, 41,128, 36,135,166,155,147, 82,169, 51,171,213,218, 1, 0, 33,145,228,196,145,
+100,163,121,115,231, 42, 40,138,226,178,178,178,160, 82,169,136,241,227,199,203, 98, 99, 99, 7, 36, 37, 37,125, 87,195, 19, 9,
+182,111,223,238,235,236,236,252,210,232,177, 41, 41, 41,146,190,125,223,175,205,161,247,109,220,164,217,244,211,167,127,245,207,
+207,206, 41,222,190,118,235, 45,189, 76,174,169,235,239, 39,218,180,109,151,213,132, 49, 35,166, 68, 69,221,191, 3,211,198,171,
+243, 48, 51, 51, 59,182,122,245,234,128, 46, 93,186,136, 28, 28, 28,144,150,150,134,135, 15, 31, 6,252,254,251,239,253,118,237,
+218, 53, 67,173, 86, 15, 0,140, 26, 16,213,231,183,221, 63, 56,152,219,218,129,213,235,225,210,184, 89, 89,126,179,152,223,207,
+128,209,233,192,233,245,240, 15,236, 87, 26, 77,230,225,239,239, 95,219,172,187, 46, 13, 27, 54,220,179,116,233, 82,177, 70,163,
+ 65,120,120, 56,206,157, 59,199,165,164,164,212,148, 16,151, 38, 8,226,204,194,133, 11,221, 58,116,232, 96,145,153,153, 9,150,
+101,237,143, 31, 63, 62,169,105,211,166,150,238,238,238,146,221,187,119,163,176,176, 16, 12,195,216,122,123,123,219, 14, 31, 62,
+ 92,187,123,247,238, 25, 0, 86, 84, 21,201,202,143,229,231,167, 16,222,239,250, 53, 31,133, 84,226,215,119,167,191,139, 95, 44,
+223, 34,202, 34, 91,239,122,123, 91,228, 39,201,103, 41, 44, 27,217,230, 39,133,206,122,215,219,123,251,175, 79,140,122, 24, 34,
+ 75, 11,155, 15, 14, 28, 56, 32,127,248,240,161,220,223,223, 31, 28,199,149,101,224, 55, 36,156,245,241,241,169,205,126, 92, 30,
+ 20, 20, 52,107,200,144, 33,104,220,184,113, 89, 82,212, 47,191,252, 18,179,102,205,178,185,112,225,194,140,253,251,247,207,248,
+241,199, 31, 87, 0,152,109, 98, 52,198,128,169,199,248,171,167, 79,159, 14, 62,118,236,216,136,153, 51,103,250, 0,152, 12, 96,
+ 65, 86, 86, 86,167,210,104,140,164,212,104,141,157, 49, 99,198,199,179,103,207,198,123,239,189,183, 32, 60, 60,252,155, 90, 70,
+249, 40,134, 97,222,235,219,183, 47,165,215,235, 97,110,110, 14,189, 94,255,214,171, 6, 37, 0,108,156, 56,113,226,199, 65, 65,
+ 65,176,177,177,129, 94,175,247, 61,112,224,192,246, 5, 11, 22,180, 5, 48,174,138,117, 29,245,241,199, 31, 15, 28, 57,114, 36,
+ 90,180,104, 1,154, 46,217,141,171, 87,175,198,226,197,139, 21,103,206,156,233,183,123,247,238,126, 39, 78,156, 56,138,138,195,
+118,153, 4,199,113,160,105, 26, 9, 9, 9,112,112,112,144,114, 28,119,154, 32,136,109,217,217,217, 63,254,131, 10,243,149,131,
+ 7, 15,254, 96,223,190,125, 10, 0, 88,181,106, 21,166, 79,159, 14, 71, 71, 71, 40, 20, 10,193,234,252,115, 34, 90, 19,106,140,
+104,213,132, 74,165,106, 54,231,211, 15, 65,146, 37, 79,141,245,234,122, 96,217,220, 9,196,137,144,211,205,170,141,193,203, 92,
+240,232,210,119,144,186, 79,131, 70,207,224,218,221,167, 56,187,170,103, 73,105,217,107, 30, 52,186,174,134,194,198, 86, 98,102,
+182, 82,203,178,151,225,228, 20,142,231,207, 51,106, 50, 89, 74, 39,199,144, 45, 91, 86,152, 5,188,229, 7, 29,163, 71, 82,122,
+ 18, 8, 66, 10, 55, 87, 11,140, 29,213, 75,212,169,147,139,253, 87, 95,109, 61,149,202,161,191, 42,243,113,141, 9, 67,125,237,
+177,179, 89,128,207,144,225,189, 59, 72, 27, 5, 52,132, 88,106, 86,246, 93,243, 22, 45,208,188, 69, 11,114,118, 97, 65,247,235,
+ 55,110,117, 63,114,230,154, 70,165,127,126, 40, 58, 19,163,107,184,201,148, 25,142,169, 83,167,194,209,209,177,194, 2,105,105,
+105,248,253,247,223, 42,253,141, 9, 55,178,178,255,248,230,155,111, 44,114,114,114,122,237,216,177,227, 29,142,227,190, 73, 77,
+ 77,189,100,140,200, 72,160, 78,158, 84,218,117,204,154, 53, 92,211,247,223,167,172,157,156, 72,142,101,137,228, 39, 79,236,214,
+126,247, 93,231,236,152, 24,179, 34, 91,219,236, 28,181, 90, 21, 29, 29, 13,153, 76, 70,208, 52,221,178, 18,169, 52,158,199, 74,
+146, 36,102, 17, 4, 1,169, 84, 22, 29, 20, 20,116,187,244,187, 58, 39, 79,158,148,247,233,211, 71, 5,224, 25, 0, 72,165, 50,
+ 87,138, 34,125, 75, 50,177, 99,165, 49, 6,211,220,220,252,211, 37, 75, 87,152,231,103,231,170,117, 69, 69,122,165,165,130, 32,
+ 20, 22, 84,126, 94, 65, 65, 82, 74,134,102,222,162,197,212,196,177, 35, 63, 45, 42, 42,154,100,172,201,106,210,164,201,245, 99,
+199,142, 57,216,217,217, 33, 55, 55, 23, 89, 89, 89,184,126,253, 58, 56,142,195,128, 1, 3,164,237, 90,183,106, 54,119,222,252,
+171, 9, 73, 73,109,141, 49, 91,230,182,246, 88,213,161,105, 73, 97,253, 44,171,236,248,108, 27, 28, 88,182,204,226,196, 60, 67,
+116,238, 85,134,144,106,219,181,107, 87, 49, 0,140, 27, 55, 46,191,160,160, 96, 25,128,125,168, 57,163,255,140,249,243,231,187,
+214,173, 91,215,115,223,190,125, 40, 44, 44, 4, 0,135,186,117,235,194,215,215,151, 13, 11, 11,131,175,175, 47, 44, 44, 44,112,
+225,194, 5, 92,189,122, 21, 45, 90,180,176, 16,139,197, 67,116, 58, 93,165, 70,171,115,207,206,243,165,125,252, 59,250, 53, 31,
+ 5,133,165, 51,182,239, 63,136, 71,183,118,117,212,232, 30,206, 23,179,231, 71,170,121,233,232,140,120,197,236, 58, 45, 58,217,
+213,107,248, 62, 60,155,223,182, 47,102, 47, 62,215, 9,111,111, 0, 0, 32, 0, 73, 68, 65, 84,157,223,189,238,114, 90, 86,188,
+107,209,154,148,172,170, 76, 22,128, 85, 3, 6, 12, 24,124,224,192, 1,107, 0,136,136,136, 64, 90, 90, 26,148, 74, 37,100, 50,
+ 25, 68, 34, 81,217,248,164,181,100,244,166, 77,155,202, 76, 27,195, 48,101,163, 0,200,229,114,188,253,246,219,104,218,180, 41,
+126,252,241,199,209, 85, 24,173, 14,173, 91,183,222,235,233,233,233, 94,254,195,162,162, 34, 12, 27, 54, 12, 0,208,169, 83,167,
+174,102,102,102,188,193, 16,166,164,164, 20,222,184,113,163, 59,128,240, 42,156,165, 58, 41, 41, 9, 95,124,241, 5,226,226,226,
+ 62,217,178,101,203,115, 0, 50,137, 68, 82,246,124, 12,192,183, 97,195,134,235,166, 79,159,142,216,216, 88, 60,120,240,224, 58,
+106, 95,149,202,154,155,155,199,232,245,250, 22, 12,195, 64,173, 86,163,127,255,254,178,163, 71,143,166, 81, 20, 21,149,153,153,
+ 57, 2, 37,109, 82,140, 69, 6, 96, 77, 80, 80,208,199, 51,103,206,196,111,191,253,134, 19, 39, 78, 96,228,200,145,152, 54,109,
+ 26, 20, 10,197,152,105,211,166, 93, 69,201,128,230, 47,210,117,211,166, 77, 96, 89,246,165,107, 67, 38,147,161, 67,135, 14,104,
+208,160, 1, 78,156, 56,209,245, 21,140,150,103,135, 14, 29, 36, 28,199,161,168,168, 8, 97, 97, 97, 10, 51, 51, 51,133,155,155,
+219,120, 0,255, 24,163,229,233,233, 25,116,224,192, 1, 69,249,218, 31,169, 84,138,114,231,129,192,223, 31,209,170,246, 9,171,
+ 12,173, 86,165,163,105, 50,202,197,185,241,161, 11,231,167,148, 85, 29, 2,100,148, 86,171,210, 1, 0,203,241,200, 87, 49, 48,
+147,146,120,150, 90,128,251, 79, 50, 43,147,170,208, 69, 83,100,230, 1,105,171,103,224,121, 30, 90, 29, 11, 77, 94, 42,150,157,
+ 82,225, 97, 98, 49,180, 69, 57,208,234, 74,154, 97,217,219,219,211,167, 79,255, 50, 61, 52,244,247,143,255,247,191,255, 81,137,
+ 86, 86, 15, 10,128,102,149,105,218,216,120, 91,112, 18,201,161,205, 91, 22,152,241,212, 19, 68,199, 23,161,158, 91, 43,216, 91,
+187, 35, 53,179, 8,151, 31,252,140,168,199, 33,168,235,236,137,105,159,190, 43, 91,178,116,223, 65, 49,227,229,145,155, 27,151,
+ 95,213,122, 26,158,162,182,254, 26, 13, 38,251, 9,216,172, 88,176, 5,201, 47, 45,160, 80,122,160,121, 23, 87, 40,221,223,146,
+142,158,182,120, 20, 80,193,104,149,215, 76, 35, 8,114, 51, 73, 18, 31, 19, 4,129,198,141,155, 36,174, 89,179,166,178, 84,224,
+186,198,141,155, 36, 82, 20,233, 86,114, 99, 39, 55,241, 60,151, 86,195,122, 86, 48, 53, 18,137,116,102, 73,216,223, 57,225,212,
+169, 83,186,193,131, 7, 99,245,234,213,146, 89,179,102,205,163, 40,106, 92, 37,213,123, 21, 52,251, 3, 30,214,111,189,213,227,
+155,203,151,121,145, 94, 79,100, 95,191,158,159,155,146,194,164, 22, 20, 72, 14, 71, 69,189,247,209,231,159, 75,220,221,221,113,
+ 41, 36,196, 46,163,168,136,207,213,104,212,185,185,185, 60,195, 48,215,171,208,156,163, 84, 58,200,183,111,223,238, 27, 20, 20,
+116, 59, 37, 37,101, 14, 0, 56, 59, 59, 47, 3,208, 0,192,179,114,159, 97,203,150,131, 73,227,199,143,143, 78, 79, 79,159, 83,
+221,122,150,163,161,131,210, 65,190,127,235,238,123,182, 22,102,164,210,205,133, 20, 89, 91,211,140,196, 76,204, 1,234,186,238,
+111,153, 3,104, 88,197,111, 95,212, 36,204,204,204,142,253,244,211, 79, 14, 34,145, 8, 44,203, 66,169, 84, 34, 46, 46, 14,185,
+185,185, 40, 40, 40,192,211,168,135,240,114,119,199, 87,179,103, 57, 79,158, 53,251,152, 74,165,106,241, 66, 97,246,242, 0,200,
+122,221, 75,145,189,202, 70, 49,120,177,218,203,200,227, 94,158,184,248,248,120, 40, 20, 10, 4, 4, 4, 40, 46, 95,190,124,177,
+ 26,147, 85,126, 16,224, 33,237,219,183,183,216,183,111, 31, 90,180,104, 1, 43, 43, 43,132,133,133, 33, 34, 34, 2, 58,157,142,
+ 44, 44, 44,132, 66,161,192,242,229,203,225,225,225,129,130,130, 2, 60,123,246,204, 78, 36, 18,217,191,144,209,190, 76, 51,236,
+116,216,146,188,216,115,243, 83,137, 95,223,221,190,255, 32,198, 15, 31, 10, 39,254,201, 69,171,183,136, 37, 61,250,180,255,146,
+167,220, 3,205, 45, 26,219,248, 4,244,129, 88,162,192,228,153,139, 17, 29,121,210, 70, 85,112,239, 19,130, 77,112, 95,180,230,
+240,212, 74,182,157, 0, 64,186,187,187,127,116,248,240, 97,139,178,208, 11, 69,149,141,121, 88,126, 16,248,106, 6,124,175,113,
+127, 18, 4,129,184,184, 56, 56, 56, 56, 64,161, 80,148, 13, 32,254,240,225, 67, 92,187,118, 13,134,209, 40,170,208, 28, 17, 26,
+ 26,234,110,110,110, 94, 97, 1,158,231,145,153,153, 9,134, 97, 32,151,203,193,178, 44,116, 58, 29,244,122, 61,138,139,139, 21,
+ 13, 26, 52,152,164,215,235,195, 43,211,228, 56,238,179, 33, 67,134,180, 15, 15, 15,247,254,238,187,239,160,213,106, 87,165,166,
+166, 98,224,192,129,224, 56, 14, 93,187,118,109,195,243,252,163,121,243,230, 1, 0,166, 79,159,174, 47, 42, 42, 10,170,205,182,
+151,210,160,121,243,230,222,191,253,246, 27, 58,118,236, 8,141, 70,131,213,171, 87, 91,110,217,178,197,114,247,238,221,202,153,
+ 51,103,254,144,145,145,209,179, 6, 77, 2,192, 42, 39, 39,167,143, 59,119,238,108, 86, 58,134, 41,118,237,218,133,175,190,250,
+234, 0,128,121,191,252,242,203,194, 19, 39, 78,140,250,232,163,143,240,213, 87, 95, 77,203,205,205,221, 81,149,230,211,167, 79,
+161, 84, 42, 97,105,105, 89,114,179,212,233,112,231,206, 29,156, 61,123, 22,245,235,215, 55,102,155,170, 90, 79,207, 1, 3, 6,
+252,176,127,255,126,139,132,132, 4, 92,184,112, 1, 94, 94, 94, 80,169, 84,198,140, 13, 27,250, 39, 20,216, 85,106,170,213,234,
+226,248,248,120,197,138, 21, 43,224,236,236, 12, 79, 79, 79,200,100, 50, 16, 4, 1,189, 94, 95,221,240,106, 53,174,103,167, 78,
+160, 51,147,108,250, 90, 89,219,124,194,243, 60,157,151,151,179, 85,135,220, 35, 79,158, 64,251, 23,110,251,191,153,102, 0,110,
+163,226,152,135, 41,101, 70, 43, 36, 36,132, 15, 12, 12, 36, 12,115, 87, 87,228,103,102,218, 68, 59, 56, 53, 58,232,224,212,176,
+116,220, 47, 50,138,162,108,162, 29, 29, 85,249, 0,160, 99,120, 92,137,202,197,189,152, 84, 68,196,164,194, 92,106, 92,240, 69,
+163, 99, 74, 90,172,242, 60,138, 11,255,120,104,213,169,114,160,209,149, 52,247,208,106, 84,200,203,120, 64, 12,238,223, 93,246,
+241,199, 19,225,236,236,170,172, 74, 79, 39,149, 77,155, 60,253, 61,107, 91,107, 17, 66, 46,255,138, 54,245,251, 67, 38, 21, 33,
+ 43,175, 24, 32,128,199, 79,206, 2,156, 5, 34,163,227,209,186,161, 28, 61,123,248, 43,126, 60,242,232,115, 0, 11,140, 89, 95,
+ 38,241, 58,196, 62,189, 32, 98,245,208,103, 62, 2,151,251, 28, 48,119,130,154, 80, 32, 43,229, 57,162, 46, 30, 53,234,153,145,
+227,184, 79,236,237,237,115,231,205,155,215,185, 94,189,122,186, 73,147, 38,221,125,254,252,249,103, 47, 60,173,124,187,105,211,
+ 38,196,196,196, 36,125,243,205, 55, 97,153,153,153,243, 77, 60,208,179,121, 30,193,165, 85,113,153,199,143, 31,111,126,254,252,
+249,105,193,193,193,142, 83,166, 76,145, 76,153, 50,101, 44,128,175,171,171, 46,204,151, 74,187,125,115,225, 2,207, 36, 38,106,
+246,172, 95, 47,217,120,229,202, 60, 29,199,185,216, 59, 56, 16,237, 90,183, 46,146,147,100,102, 86, 90, 26,163,244,246,166,226,
+206,158,181,227,205,204,146,127,249,229,151,252,194,194,194, 42,135,206,161, 40, 74, 85, 89,117, 97,101, 56, 59, 59,107, 43,107,
+195, 85, 77,129,152,207,241,188,206,186,110, 93,190, 71,215,182,245, 98, 30, 61,121, 34,179,182,166,124,234,121,249,221,143,138,
+187,206,179,108, 49, 65, 16,249, 70,213,149, 80,212,208,224,224,224, 70,150,150,150,224, 56, 14, 86, 86, 86,200,200,200,128, 86,
+171, 69,126,126, 62,180, 5,121,208,230,229, 33,226,121, 28,218,119,238,140,193,239,246,240,223,125,252,167,161, 44,203, 30,168,
+182, 62,175,113,179,178, 72,214,226, 58,118,127,212, 5, 37,228,150,153,174, 21,205,124, 32, 86, 40,208,253,179,217,175,114,161,
+223, 62,117,234,212,207, 3, 6, 12,120,239,243,207, 63, 39, 83, 82, 82,126,141,139,139,107, 15,224, 65,117, 63, 82, 40, 20,111,
+101,102,102,162,176,176, 16, 86, 86, 86, 8, 14, 14,134,163,163, 35, 84, 42, 21,110,220,184,193,187,185,185, 17, 97, 97, 97,112,
+115,115, 67, 86, 86, 22,116, 58, 29,212,106,117,170, 86,171,173,178,186,188,180,122,176,215,244,119,241,203,163, 91,187, 58,186,
+ 18, 79,111, 12,153,209, 41,230, 81, 68, 84,252,153,179,151,191,102,138,101, 9,185,137,161,179,234,182,188,109,255,201, 23, 95,
+ 97,195,170,133,120, 20,126, 33,219,209, 35,127,163, 25,161,217, 89,221,250, 22, 21, 21, 21, 71, 69, 69, 89,220,189,123, 23, 4,
+ 65,192,202,202, 10,114,185,188, 82,179, 85, 11,200,242, 17,168,162,162, 34,136,197, 98,216,217,217, 97,199,142, 29,101, 5,175,
+151,151, 87,117, 26, 91,187,119,239, 62,212,195,195,195,162,252,135, 45, 91,182,196,196,137, 19,177,121,243,102, 92,185,114,165,
+194,120,154,169,169,169, 41,122,189,190,186,237,206, 77, 75, 75,123,183,127,255,254,183, 46, 94,188,104,185, 99,199, 14, 48, 12,
+ 83,233,180,125,251,118, 92,187,118,109, 1,128,168, 90,158, 71,245, 7, 14, 28,120, 97,239,222,189,214, 25, 25, 25, 48,156, 27,
+ 69, 69, 69, 96, 89, 22,126,126,126, 4,195, 48, 53,181,123, 35, 41,138, 58,190,126,253,250, 62,227,199,143, 7, 77,211,208,106,
+181, 88,191,126, 61,102,205,154,149, 86,250, 80,170, 3, 48,111,231,206,157,163,222,127,255,125, 52,105,210,196,255,220,185,170,
+ 91,118, 20, 22, 22,162,176,176, 16, 34,145, 8, 78, 78, 78, 88,178,100, 9,180,218,146,219,138,175,239,255,217,187,238,176, 40,
+174,246,123,102,182,194,238,210,123, 81,172,160, 96,239, 5, 69,108,104,236, 29, 75,236, 26, 21,123, 67,141, 53, 81, 76, 52,177,
+ 43,214, 24,236, 61, 17, 27,138,138, 5, 43, 29, 81, 84,122, 19, 16,150,182,125,103,103,126,127, 80,130, 72, 89,208,228,251,126,
+249,246, 60,207, 62,187,179, 59,115,246,157,123,239,204, 61,243,222,123,223,215,169,236, 50, 6,112,208,201,201,105, 72,108,108,
+236,118, 20,207, 93,251, 12,214,214,214, 35, 24,134,153,165,209,104, 10,123,244,232, 97,118,250,244,105,131,180,180, 52,132,132,
+132, 96,237,218,181, 98,154,166, 53, 52, 77, 19, 50,153, 44,222,210,210, 50,132,207,231,235, 75,165,210,220,156,156,156, 45, 0,
+110,254,167,122,114,130, 32, 8, 14,135,131,233,211,167,131,205,102, 67, 95, 95, 31,114,185, 28,106,181,186, 76,204,163,150,195,
+210, 77,155,138,204,216,224,206, 52, 49,112, 89, 52,102,225, 96, 11, 27, 91, 59, 24, 27,242, 17, 19,243,170,251,221,192,219,123,
+120,236, 55,190,180, 82,237,251, 38, 49,255,111, 79,118, 95, 81,139,252, 63, 21, 90,159,229, 60,100, 87, 94,153, 99, 52, 12,115,
+254, 99, 90, 26, 79,197,227, 9, 98, 75,189, 92, 86, 86,210, 2,130, 24,163,177,104, 49, 12,148, 74, 93,114,163, 96, 74, 94, 90,
+ 10, 45,181, 6,239,222, 68,225, 97,192,159, 48,151,166,225, 99,124, 91,128,219, 10, 74, 89, 62,228, 74, 85,137, 40,209, 32, 60,
+ 36, 16, 5,249,185,104,217, 97, 48, 64,146, 79,171,226, 51, 50, 35, 6,119,107,223,154,245, 46, 57, 10, 29,157, 70,163,177,125,
+ 15, 36,101, 20, 32,175, 72, 1,113,129, 28,109, 91,122, 35, 91, 44, 67,129, 84,142, 87,239,252, 96,103,219,152, 36,216,113,125,
+180, 21, 90,138, 87,151,160,120,253, 7,184, 14,221,193,107, 54, 20, 44, 7, 87, 36, 71,220, 67,248,141, 29, 72,141,126, 4,134,
+214,192,198,169,147,182, 23,201,158,155, 55,111,118,234,222,189, 59,187,111,223,190,109,174, 95,191,222, 38, 35, 35, 35,188, 68,
+ 96,180,233,219,183,111, 27, 11, 11, 11,236,218,181, 75, 70, 16,196,158, 58, 86,118,153, 7, 44, 43, 43,235, 57,128,205,151, 46,
+ 93,218, 51,123,246,108, 88, 90, 90,182, 74, 79, 79,175,242,192,108, 14,167,205,148, 45, 91, 24, 14,139,197,156,217,187,151,187,
+241,230,205, 95,126, 59,126,156,219,219,221,157, 96, 24, 6, 97, 97, 97,130,159,246,238, 21, 76, 24, 54, 44, 49, 41, 43,139, 10,
+ 10, 14, 86,101,164,166, 22,102, 73, 36, 27, 51, 50, 50, 62,252, 39, 90,182, 90,173,126, 18,159, 16,111,215,161,115, 91,139,208,
+152,248,104,143,222,221,186,145, 36, 73,190,137, 75, 10,182,176, 48, 20,220, 14,184,173, 82,171,213, 79,180,225,226,243,249,131,
+123,247,238,205, 22,139,197,176,181,181, 69,118,118, 54,210,210,210,138, 61, 14,249, 98,168,242,243,161, 46,200,131, 70, 82,132,
+248, 23,207,209,182,113, 35,254,121, 62,127,176, 84, 42,173, 86,104,149, 62,101, 86,150,232,186,244, 59,158,129, 1,120, 34, 17,
+136,218, 15, 27, 14, 51, 54, 54, 94,153,151,151,119, 29,192,143, 42,149,202,107,229,202,149, 29,119,239,222,109,190,121,243,102,
+195, 89,179,102,157, 47, 42, 42,106,139,226,164,170, 85,117, 96,239, 41,138, 50, 3, 96, 21, 24, 24, 8, 75, 75, 75,228,231,231,
+151,122, 90,148, 82,169, 84, 47, 39, 39, 7, 10,133, 2, 74,165, 18,134,134,134,120,249,242,101, 46, 69, 81, 87,107, 50,206,176,
+ 9,241,163, 66, 21,243,189,153,179, 48, 93, 69,153,184,101,229,210,226, 13,191,100,108, 2,240,203,128,198,141, 15,171,232, 7,
+241,111,163,174,154, 36,188,184,159,155,254, 86,210,248,200,245,248,234,230,104, 49, 0,104,130, 32, 24, 39, 39, 39,100,103,103,
+131,197, 98, 65, 32, 16, 64, 36, 18, 97,213,170, 85,216,179,103, 79, 93,132,150,158, 80, 40,220, 66,146,228, 56,146, 36, 45, 52,
+ 26, 13,188,189,189, 49,100,200, 16,240,120, 60,168, 84,170, 50,143,102,169,151,170, 6, 79, 71,216,211,167, 79, 13,159, 62,253,
+228,182,229,110,110,110,126, 87,161, 80, 32, 46, 46, 14, 87,174, 92,233, 5, 32,168,150,117, 29, 23, 22, 22, 54,192,213,213,245,
+247,246,237,219, 55, 97, 24, 6,173, 90,181,130,167,167, 39,252,252,252, 16, 30, 30,142,252,252,124,250,246,237,219,191, 1,216,
+ 94,219, 62,188,164,124,155,141, 26, 53,234,209,169, 83,167, 76,114,114,114, 32,147,201, 32,145, 72,112,254,252,121,116,239,222,
+ 29,230,230,230, 56,121,242, 36,197, 48, 76,117,117, 79,146, 36,121,196,215,215,119,200,140, 25, 51,176,111,223, 62,156, 57,115,
+ 6, 67,135, 14,197,184,113,227,144,157,157,109,181,109,219,182,201, 37,195,132,235, 61, 61, 61, 81, 84, 84,132, 23, 47, 94,196,
+104,121,205, 35, 47, 47, 15,121,121,121,208,215,215, 47,127,141, 17, 0,252,118,236,216, 49,126,209,162, 69,104,220,184,241,250,
+248,248,248, 29,168,100,149, 40, 77,211,223,165,165,165,153,176,217,108, 51,138,162,144,146,146,130,151, 47, 95, 98,222,188,121,
+185,185,185,185,179, 1, 36, 1, 88, 51,125,250,244, 31,151, 44, 89, 82,214,150,150, 44, 89,226,127,253,250,245, 1,255,180, 55,
+199,201,201,184, 5,143,197, 95, 40, 46,100,153,137,197,226,178,123,135, 82,169,132, 66,161,248,196,147,197,229,114,204, 58,182,
+173,127, 77, 38, 45, 92,253,234,109, 94,149, 9,210,157,155, 24,181, 22, 8,141, 22,117,239,209,123, 98,255, 1,195, 89,148, 90,
+141, 91,183,174,226,232,209,253,112,119,117, 66,227,166,173, 48,127,193, 66, 35,133,146,242,190,125,251,230, 74,227,167, 15,111,
+ 22, 22,228,173,170,142,243,127, 28,215, 74,196,213,181, 74,135, 14, 43, 83,144, 37, 33, 28,196, 37,155,230, 38, 38, 38,123, 53,
+ 26,141,187,161,161, 33,232,188, 88,188,122,249, 12,185, 98, 14, 20, 50, 13,104,166, 88,108,105, 37, 92, 20, 74, 60,184,245, 7,
+118,238,248, 5, 57, 57, 57,112,237,217, 11, 69,236,122,168, 95,175, 62,228, 50,105,201, 69, 3,168,148,106, 88, 88, 57, 32, 52,
+ 52, 92, 93, 32,145, 84,121, 67,226,234,169,156,235, 91, 57, 65,161,234, 10, 61, 30, 15,249,133, 74,136, 75, 68,214,201, 11, 99,
+161,144,202, 64, 41, 85,160,148,106, 88,212, 31,133,230, 86,189, 65,107,174,182,168, 85,241,209, 26,168, 18, 30, 64,149,240, 0,
+250, 93, 23,224, 79,159,241, 21, 58, 82,237,242,238,102,103,103,103, 69, 71, 71, 95, 13, 11, 11, 27, 49,118,236, 88,220,187,119,
+111, 22,128, 57, 37,195, 55,179,198,142, 29,139,176,176, 48, 68, 71, 71, 95,205,206,206,206,250, 26, 53,207,227,241,100, 10, 69,
+113, 31, 43, 16, 8,244,106,216,215,174,227,200,145,100,126,104,104,193,142,199,143,215, 31, 62,114,132,219,183, 79, 31, 66, 77,
+ 81,160, 53, 26, 52,117,116, 36,250,247,239, 47,244, 59,119,206,140,165, 86, 63, 93,238,229, 21,120, 96,210,164,194,231, 18,137,
+182, 19,205, 27,148, 12, 25, 2, 64,131,106,190,211, 26, 10,133, 98,247,119, 51,167,246, 13,122,240,168, 94,253,122,118,134,183,
+110, 7,133,243,245,121,100,227,134, 77, 88,226,252, 92,246,166,245,171,245, 21, 10,133,182,162,213,217,220,220, 28, 31, 62,124,
+192,187,119,239,160, 80, 40,160, 86,171, 65, 75, 37, 80,138,243,160,204,207, 5, 33,151,129,175,209, 64,254, 49, 19, 13, 26, 55,
+ 2,254, 90,145, 88,227, 80, 84,101, 66,171,244, 93,207,208, 16, 92,161, 8, 36,135,163,117,114,116, 0,237, 59,117,234,116,238,
+226,197,139,220,105,211,166,117,190,115,231,206, 94, 0, 73,105,105,105,125,214,174, 93,251,124,239,222,189,252,217,179,103, 55,
+219,190,125,251,100, 0, 7,171, 34,145,203,229,231,174, 93,187, 54,193,193,193,193, 42, 50, 50, 18,114,185, 28, 52, 77, 99,224,
+192,129, 64,241,220, 26, 0,192,155, 55,111,100,114,185, 60, 43, 42, 42,170, 32, 41, 41, 73, 5, 45, 86, 9,110,216,157,241,164,
+224,195,131,145, 86,214,118, 79,245,244, 27, 52,100,138, 66, 71, 44, 30,109,183,109,199,133, 52,249,205,184,184,194,239,251, 53,
+218, 42, 41,140,152,103,108, 95,180,239,166,127,188, 54, 19,225,203, 86, 23,154,153,153,129,205,102,131,195,225,128,203,229,130,
+ 32, 8, 44, 88,176, 0,135, 14, 29,170,105,232,240, 19,145,101, 96, 96, 16,189,113,227, 70,251,217,179,103,115,245,244,244, 32,
+ 22,139,113,242,228, 73, 76,159, 62, 29, 71,143, 30,173,116,254,139, 22, 67, 74, 21,189,165,139, 38, 77,154, 4,165, 82, 9, 79,
+ 79, 79, 28, 62,124,120,145, 70,163, 9,170,195, 37,253, 52, 60, 60,220, 49, 60, 60,220, 16,192,208,113,227,198, 29, 31, 53,106,
+ 20,130,130,130,112,245,234,213, 94, 40, 94,244, 33, 3,224, 3,192,178,228,189,186,235, 83,104,101,101,181,159,166,233,161, 22,
+ 22, 22,225, 78, 78, 78, 45, 79,157, 58,101,156,149,149, 85,186,248, 1, 9, 9, 9, 56,118,236, 88,198,145, 35, 71, 10, 52, 26,
+141, 25, 73,146,215,242,242,242, 86, 85, 35,216,142,236,216,177, 99,106,201,112, 32, 46, 94,188,200,252,242,203, 47,196,218,181,
+107, 33, 22,139,225,238,238, 14, 95, 95,223,133, 69, 69, 69,109,126,249,229,151,153, 99,198,140,193,166, 77,155, 32,145, 72,118,
+212,244,176, 82,141,248, 34, 0,116,219,177, 99,135,195,162, 69,139,112,241,226, 69,180,111,223, 94, 63, 62, 62,254, 0,128, 25,
+149,213, 31,195, 48,136,143,143,135, 84, 42,197,163, 71,143,176,126,253,122,113, 57,145,181,112,206,156, 57, 63, 46, 92,184, 16,
+ 91,182,108, 97, 34, 35, 35,179, 70,141, 26,101,117,232,208, 33, 86,211,166, 77, 23, 74,165,210,127, 76,104, 53,107,106,186,181,
+ 99,251, 30, 43,109,236,154,226,228,169,211,200,205,205, 45, 43,147,210,114, 97, 24, 6,133,133,133,248,240,225, 3,140, 12, 13,
+176,109,251,143,223,204,157, 53,181, 30,138,195, 96,124,238,178,108,108,178,125,212,184,105, 75, 61, 39, 76, 69,100,120, 8,252,
+142, 31, 68, 84,100, 88, 25, 31,165, 86, 33, 54,230, 37, 98, 99, 94,194,202,218, 1,253,251,246, 34,198,143, 31, 63,112,210,132,
+113, 22, 0,254,182,208, 17,255,143,189, 89,192,231,113,180, 14,125, 34,180,106,112,215,153,155,152,152, 68,159, 61,123,214,204,
+213,213,149, 69, 81, 20,110,222,186,133,121,115,190,197,228, 73,222, 80,193, 4,148,146, 11,154,171,167,149, 37, 50,153, 20, 12,
+ 24, 72, 36, 18, 4, 7, 7,131,161, 41,248, 29,250, 5, 12, 67,151, 9, 45,128,129, 82,165,130, 93,253,102,216,127,120, 51, 5,
+ 14,231, 57,212,149,135,174, 41,200, 97,105,212, 20,131,180,172,100, 36,103, 68,193,200,160, 62,216,156,250,200,201,147,130, 77,
+ 90, 67, 45,127, 3, 77,201,177, 82, 73, 42,100,170, 47,171, 63, 77, 37,222, 83,166, 22, 55, 93,153, 76,118,226,196,137, 19,223,
+252,250,235,175,188, 65,131, 6, 57, 93,184,112,161, 27, 0, 12, 26, 52,200,201,208,208, 16, 39, 78,156, 80,202,100,178, 19, 95,
+209,227,211,187, 83,167, 78, 16,139,197, 72, 72, 72, 8,175,246,220,148, 74, 51,145,165, 37, 43,235,222, 61,117,182, 88, 92,175,
+119,239,222,132,154,162, 64, 18, 4,114,243,243,145,148,152, 8, 99, 99, 99, 34,250,205, 27,209,158,249,243, 47, 59,181,108,201,
+ 46, 93,145,168, 13,174, 94,189, 42, 64,241,188,172,106,191,171, 37, 36, 89,153, 31,166,122,121,121, 93, 62,113,226,164, 81,102,
+ 86,102, 44,159,199,163, 68, 34, 61,219, 73, 19,231,178,243,242,242, 38, 0, 40,210,150, 76, 44, 22, 35, 62, 62, 30,250,250,250,
+224,114, 56,160,101, 82,104, 36, 69,144,231,102,131,165, 82,130,167,209,192, 84,192, 71, 61, 43, 43,212,183, 48,215,138,243,221,
+221,128,178,137,239,229,135, 11,183,117,114, 6, 79, 40, 2,207, 64,132,185,254,247, 75,158, 70,185,192,218, 31,180,161, 53,183,
+179,179,251,243,212,169, 83,220,236,236,108,132,133,133,133, 3,200, 7, 96, 0,128,142,137,137,185, 19, 21, 21, 53,184,100,213,
+ 93, 77,171,197,126,185,116,233, 82, 63, 87, 87, 87,170, 97,195,134,194,172,172,172,122, 98,177,152,206,200,200,248,196, 37, 20,
+ 16, 16,192, 47, 44, 44,148,208, 52,125,185, 68,100,213, 24,191,104,241,104, 59,189,224, 80, 44,112,243,104,208,202,208,188, 53,
+114,169,208, 86, 79,195, 51, 22, 44, 30,109,183,123,199,133, 52,185, 62,161, 56, 78,104, 82,234,177,245,228,218, 78, 98,102,128,
+226,185, 82,193,193,193, 72, 74, 74, 66,124,124,252, 39,130,106,214,172, 89,240,243,243,211,202,163, 37, 20, 10,183,108,216,176,
+193,126,209,162, 69,220,114,162, 8, 94, 94, 94,200,207,207,199,225,195,135,225,229,229, 85,235,142,191, 2, 26,245,238,221,123,
+144,141,141, 13,114,114,114, 96,109,109, 13, 87, 87,215, 33, 65, 65, 65, 13, 1, 36,212,177,221,207,245,240,240,248,113,227,198,
+141, 80,171,213,152, 62,125, 58,222,190,125,123,238,237,219,183, 59,235,215,175,191, 96,197,138, 21, 86, 86, 86, 86, 24, 59,118,
+172,144,162,168,145, 85,145,152,154,154,250, 28, 60,120,112,194,160, 65,131, 72,149, 74,213,243,238,221,187, 72, 76, 76,132, 82,
+169, 4, 69, 81,120,255,254, 61,188,188,188, 50, 74, 86, 55,190,215,194,174,105,107,214,172,153,186, 96,193, 2,252,244,211, 79,
+216,176, 97,195,111, 70, 70, 70, 45,219,182,109,219,110,195,134, 13, 88,190,124, 57, 28, 28, 28, 96,102,102,214,124,237,218,181,
+206, 75,150, 44,193,238,221,187,177,126,253,250,223, 0, 28,171, 75, 65,208, 52, 77,108,221,186,181,205,142, 29, 59,108, 74, 69,
+ 22, 73,146, 56,123,246, 44, 66, 67, 67,135,196,197,197, 85,118,140,175,181,181,245, 44, 27, 27, 27,222,237,219,183, 69, 14, 14,
+ 14,160, 40, 74, 93, 34,178,246,212,175, 95,127,222,251,247,239, 49,104,208, 32,196,197,197,157, 0, 48,217,200,200, 72,178,100,
+201, 18,129,190,190,190,145, 84, 42,253,167, 58,111,176, 72, 98,202,150, 77,203,241, 34,244, 13, 46, 93,226,226,197,139, 23,176,
+178,178, 2,159,207, 7,195, 48, 80, 40, 20,200,206,206,134, 90,165, 64,171, 22,141,240,251,145,173,200,202,202, 6, 72,162,202,
+ 41, 55, 4, 73, 76,156,250,237, 8, 60,124,116, 11, 7, 14, 28, 68, 81,145,164,138,135,111, 61, 52,117,114,134,157,173, 37, 82,
+ 82, 83, 64,144, 48,255, 59,207,245,255,249,208, 97,217, 45, 8,218,132,119, 40, 15, 99, 99,227,157,103,206,156, 49,115,119,119,
+103, 73, 36, 18,208, 52,141, 30,174,174, 88,176,104, 17,174,158, 58, 5,199,206,158, 32,148, 34, 80, 2,237, 86, 61,200,101, 82,
+184,180,235,134, 49, 99,199, 33, 57, 41, 9, 30,131, 71, 65, 46,151,150, 61, 97,148,122,180,148, 74, 21,204, 45,235, 33, 32, 32,
+128,133,233,211, 95, 97, 79,229, 78, 9,141,138, 23, 17,251, 94,222, 61, 79, 22,138,224, 23,126, 80, 41, 84,104,213,106, 45, 84,
+180, 25, 44,237,103, 65,173,190,130,130,236,187,197,195, 24,102,238, 72, 77, 78, 6,201,226, 70,215,181, 4,105, 73,246, 23,221,
+116,243,243,243,243,227,227,227, 47, 4, 7, 7, 79, 28, 57,114, 36, 2, 2, 2,102, 2,192,200,145, 35, 17, 28, 28,140,248,248,
+248, 11,249,249,249,249, 95,163,182,109,108,108,134,246,234,213,203,179, 99,199,142,240,247,247, 7,195, 48, 15,181,186,176, 57,
+ 28,134, 36, 73,208, 52, 13, 2, 64, 78, 94, 30,222,190,125,139,156,143, 31,161, 86,171, 33, 41, 42,162,157,157,156,138, 24,154,
+ 54,168,141, 61,229, 87, 24,162,146, 85,135,165,223,213,225, 84,147,158, 63,125,156, 92, 88, 84,100, 97, 98,108, 82,200,227,241,
+ 52,226,188,188,252, 87,209,145, 74, 45, 59,135, 82,196, 68, 69, 69,181, 76, 79, 79, 71,114,114, 50, 40, 73, 33, 88, 10, 37, 72,
+133, 20,125,186,117,133, 62, 24,232,129, 6,135, 86,131,195,226,160,176,120,117, 94,141,195, 29,154,114, 15, 9,165, 34,139, 32,
+136,226,225, 66,161, 16, 60,145,193, 39, 30, 46,109,218, 19,159,207, 63,117,254,252,121, 27, 59, 59, 59,108,218,180, 9,246,246,
+246,205,109,109,109,165, 70, 70, 70,250, 86, 86, 86,112,113,113, 65,183,110,221,112,227,198, 13,104, 81, 6, 20,195, 48,253, 31,
+ 62,124,184,244,241,227,199, 99,132, 66, 33, 49,127,254,124,246,192,129, 3,193,231,243, 33,149, 74, 33, 22,139,113,250,244,233,
+143, 52, 77,151, 46, 74, 49, 19, 8, 4,199, 8,130, 72,144, 72, 36,139, 42, 18,254,254,107, 43,219,172, 92,122, 58, 83, 36, 24,
+225,230,209,160, 85,111,143,190,104,228,216, 27,189, 61,146, 1, 96,171, 41, 59,209,243,231, 53,198,151,141, 13,136, 99, 1, 55,
+111,175,119,117,235,189,102,101,209,189, 31,127, 58,148, 87,227,124, 58,130, 32, 64,211,244, 39,177,131, 42,254, 62,121,242,100,
+156, 61,123,182,198,114, 36, 73,114,220,236,217,179,185, 21, 60,207, 72, 75, 75,195,224,193,131, 49,114,228,200, 79,132,150,185,
+185, 57,172,173,173,145,152,152, 8, 0, 57, 90,182,171, 5,211,166, 77, 35,100, 50, 25,102,204,152,129,195,135, 15,195,211,211,
+147, 8, 10, 10, 90, 0, 96, 81,109, 27, 59, 73,146,219, 86,172, 88,177,212,203,203, 11,185,185,185,184,126,253, 58, 6, 14, 28,
+136,179,103,207, 90, 92,191,126,125,139,187,187, 59, 88, 44, 22,252,253,253, 65, 81, 84,181,177,190,184, 92,238,208, 65,131, 6,
+145, 41, 41, 41,224,114,185,232,208,161, 3, 82, 83, 83, 33,149, 74,145,150,150,134,133, 11, 23,126,200,201,201,233,165,237,117,
+196,229,114, 23, 45, 88,176, 0,103,206,156,129,183,183,247,113, 0, 51,242,243,243,199, 60,126,252,248,204,176, 97,195,144,150,
+150,134,203,151, 47, 99,253,250,245,196,228,201,147,177,111,223, 62, 44, 92,184,240,183, 18,175, 83, 85, 13,191, 48, 43, 43,203,
+168, 73,147, 38,200,204,204, 68, 81, 81, 17, 46, 95,190,108,121,227,198,141,134,118,118,118,134,241,241,241,154, 31,126,248,129,
+183,104,209, 34,236,220,185, 19, 97, 97, 97,240,243,243, 67,239,222,189,169,184,184,184, 74,189,100, 37, 33, 27, 46, 51, 12,115,
+ 91, 40, 20,162,176,176,176,244,186, 91,230,237,237,237,229,227, 83,236,100, 79, 79, 79,199,148, 41, 83, 38, 5, 6, 6,210,238,
+238,238, 2, 46,151, 11,185, 92, 46,249, 39,123,109, 90, 67, 3,160,209,176,158, 8,183,174, 30, 65, 72,120, 28, 66,194,163,192,
+227, 23, 79,130,151,201,164,104,215,170, 41, 58,119,232,132,244,140, 52,156,240, 59, 2, 83,115,187,106,239, 35, 12,195,128,203,
+214,192,217,201, 26,167,252, 14,194,255,122, 32,252, 78,156, 46,155,243,198,102,115,208,182, 93,103,116,232,224,138,184,248,247,
+ 56,114,228, 0, 44, 44,235,233, 6, 7,235,136,178,161,195,242,239, 21,148,127,111, 87, 87, 87, 86, 81, 81, 17,228,114, 57, 62,
+124,248,128,196,196, 68, 24,155, 24, 35, 46, 61, 1,189, 4, 42,124,160, 11, 16, 19, 30,173, 33, 88,156,176,154,254,112,144, 91,
+ 91,192,173, 45,230, 77,243,172,230,145,149,129,208,208,188,120,232,134,162,222, 97,247,110,170, 42,161, 69,105,212,119,110,221,
+190,219,105,218,228,161,156,128,187,135,161, 86,210,144,169,141, 32,145, 43, 33, 81,113, 64, 26, 13, 4, 62, 6,129,197,230,163,
+ 75,155,166,184,124,233,134,138,161,212,129, 90, 23,144, 85, 75, 80,153, 81,229,132, 86, 86,133,113, 7, 83,173,135, 14,203, 58,
+ 94,141,230,236,201,147, 39,135,119,237,218, 85,224,238,238,222,164,164,227, 84,157, 60,121, 82, 90, 18, 12,179,182,248, 36, 26,
+188,181,181,117, 59, 46,151,235, 57,112,224,192,118, 83,167, 78,197,171, 87,175,112,226,196,137,216,166, 77,155,222,203,200,168,
+122, 69, 54,139,199,203, 41,202,202, 50, 22, 53,108,200, 54, 49, 48, 72,191,113,253,186, 67,223,126,253,136,228,228,100,228,228,
+228, 64, 46,151, 35, 44, 60,156,225,176, 88,169,132,161, 33,249, 38, 52,148,100,241,120, 57, 85,121, 27, 43, 65, 98, 13,171, 14,
+125,234,234,221,170,103, 99,210,100,189,247,119,141,228, 10,121,203,130,130, 2,138,205,225,112,236,173,141,147,222,188,215,254,
+158,168, 80, 40,252,239,220,185, 51,188,111,223,190,252,216,136, 48, 80,249,249, 80,230,139,193,165, 53, 48,109,215, 6, 44,149,
+ 2, 80,170, 97,231,204, 64,158, 39, 64,208,179, 55,106,133, 66, 81, 99, 80,195, 82,161, 69, 86, 16, 6, 60,145, 8,124, 3, 67,
+240, 69,162,138,130,161,166, 39, 57, 65,255,254,253,251,116,233,210, 5, 12,195,224,208,161, 67, 80,169, 84, 60,149, 74, 5,165,
+ 82, 9,149, 74,133,130,130, 2,248,249,249, 97,255,254,253,143, 1,252,166,197,233, 83,250,250,250,195, 8,130,176,100,179,217,
+ 82, 11, 11, 11,225,217,179,103,203,194, 77,180,109,219, 22, 6, 6, 6, 92,148, 4,133,180,180,180,228, 28, 61,122,212,120,200,
+144, 33, 15, 42, 29,238,104,213,124,121, 35,202,196, 77, 79,191, 65, 67, 67,243,214,104,228,216, 27, 0,208,111,240, 52, 52,106,
+ 90, 31, 5, 31, 35, 26,202,101,137, 35,184,108,177, 73,244,238,180, 87,250,131, 90, 78,149,100,221,127,139,202,151,247, 87,218,
+ 81,144, 36, 89,229,112,172, 54, 34,171, 88,179,144, 22,165,243,124, 0, 32, 39, 39, 7, 25, 25, 25,136,137,137, 65,179,102,205,
+144,155,155, 11, 59, 59, 59, 40,149, 74,116,236,216, 17, 50,153, 12, 59,118,236,192,163, 71,143, 30, 3, 88,168,197,127,232, 59,
+ 58, 58, 78,105,215,174, 29,174, 95,191,142, 23, 47, 94,164,221,186,117,203,206,213,213, 21, 13, 27, 54,156,154,144,144,176,186,
+100,168, 79, 91, 8, 93, 93, 93,231,123,121,121, 33, 42, 42, 10,223,125,247, 93, 78, 74, 74,202,229,115,231,206,205, 88,191,126,
+ 61,233,225,225,129,140,140, 12,108,219,182, 77,243,232,209,163,237, 0, 54,213, 80,142,175, 83, 82, 82,236,229,114, 57,114,115,
+115, 65, 81, 20,164, 82, 41,110,220,184, 1, 63, 63,191,204, 18,145,245, 78, 91,227,218,180,105,227, 66,146, 36,206,156, 57, 3,
+ 0,223,163, 56, 98,255,229, 17, 35, 70,164,253,240,195, 15,118,171, 86,173,194,204,153, 51,161, 82,169,240,211, 79, 63, 97,213,
+170, 85,215, 74, 68, 86,117, 55,209, 95,173,173,173,103,125,247,221,119,205,151, 44, 89,130,224,224, 96,203,151, 47, 95,118, 8,
+ 11, 11, 67,189,122,245,144,147,147,195, 54, 51, 51,195,206,157, 59,177,120,241,226,139, 0, 62, 62,121,242,100, 92,124,124,188,
+ 15,128,109, 53,136,118, 95, 59, 59,187, 89, 12,195, 48, 82,169, 52,209,219,219,123,219,230,205,155,177,120,241, 98, 68, 71, 71,
+ 35, 63, 63, 31, 6, 6, 6,196,138, 21, 43,166,124,255,253,247,152, 62,125, 58, 35,145, 72,246,255,211, 29, 53,195,104, 32, 21,
+ 71, 65,163, 48, 65,219, 86,205,208,182,101, 3,220,186, 27, 2, 0,232, 51,202, 21, 82, 73, 33,142, 31, 63,132,119,239,222,130,
+205,225,192,216,212, 90, 27, 79, 32,148, 5,175,145,167,202, 64, 95,247, 14, 24,232,209, 11,191,253,126, 22,148, 90,133, 25,211,
+ 38, 64,156,151,135,223,127, 63,130,184,248,247, 96,115, 56, 48, 51,255,251, 3,161, 86,167, 69,254,223, 11, 45, 45,134,159, 64,
+211, 52,210,210,210,240,242,229, 75, 36, 36, 36, 64, 32, 16, 64, 70,105,232, 3,119, 30,209, 4,193, 77,165, 25,230, 49, 67,149,
+ 69, 41,254,156, 67,163, 73, 43, 23,177,214,200,196,196,132,167, 80,200, 64, 81,234,114,189, 10, 1, 16, 0,151, 13,216,216, 54,
+ 66, 74,114, 10, 35,151,203,239, 87,251, 4,165,144,239,252,227,242,121,175,110,221, 93,205, 7,246,217,136,203, 87,214, 66, 92,
+ 80, 0,185,138, 3,137, 92, 5,169, 28, 48, 54,117, 66,199, 86,173,145,158,158,131,136, 23, 65, 69,108,133, 84,155,137,162,111,
+247,172,153,230, 56,109,222,114,232, 59,116,135, 34,230, 50,232,162,204, 50,143,150,158,200, 4,166,245,157,145, 39, 81,224,124,
+ 96, 8, 80,139, 84, 47, 89, 89, 89, 82, 22,139,117,210,203,203,235,167,144,144,151,246, 0, 16, 18, 18,146,154,145,145,177, 50,
+ 43, 43,171,182, 62,233,210,104,240,132,158,158,126, 72,211,166, 77,211, 59,116,232, 96, 52, 98,196, 8,152,155,155, 35, 44, 44,
+ 12, 62, 62, 62,175, 85, 42,213,242,160,160,160,106,135,122,148, 74,101, 90,200,149, 43,134,189,190,253,214,120,249,144, 33,219,
+188,188,188,118,110,218,180,137,227,232,232, 72,168, 85, 42, 68, 70, 70, 50,167, 78,158, 84,239, 95,181,106, 7, 79, 40,100, 63,
+255,227, 15, 14,165, 80,164,253,167, 27,177,157,157,157,155,107,207, 30,206,219,127,221, 13,185,172, 8,207,130,175, 65, 44,206,
+198,193, 67,151,156,237,236, 24,183,180,180,180, 32,109, 5,240,177, 99,199,150,118,110,215,174, 93,227,122,245, 16,153,148, 0,
+ 30,173, 1,151,162,192, 82, 41, 64, 82,114,212,107,201,128, 32, 13,144,241,161, 0,155,207, 92,136,210, 70, 24, 55,255,102, 40,
+ 54,165,230,131, 32, 8,252,210,181, 37,120, 6, 34,112,133, 34,204,253,243,110,153, 48,240,223,180, 10, 60,145, 8, 77, 58,107,
+ 21, 16, 94,122,239,222,189,151,145,145,145, 29, 91,182,108,137,165, 75,151, 34, 49, 49, 17, 52, 77, 35, 51, 51, 83,158,145,145,
+145,150,157,157,157,136,226,248, 63,135,107,232,196,202,171, 14,187,160,160,160,178,225,134,192,192, 64,216,218,218,194,200,200,
+ 8, 5, 5, 5,152, 61,123,182,241,186,117,235, 0, 0, 47, 95,190, 68,121,129, 82, 17,145, 33, 49,219,243, 10, 25, 49, 83, 20,
+ 58, 34,151, 10,109,213,219, 35, 5,253, 6, 79,197,109,255,223,112,247,214, 29,152,178, 19, 19, 32, 44,188,241, 49,225, 99, 65,
+170,196,209,215,185,253, 12, 86,134,228,150,239,252,161,177, 44, 27, 27,250,252,170, 3, 5,121,213,217,234,232,232, 8, 43, 43,
+171,178, 57, 90,108, 54, 27,211,167, 79, 7,195, 48,218,138,172,146,190,134,206,150,203,229, 86,122,122,122,248,240,225, 3,222,
+191,127,143,184,184,184,178,208, 1, 52, 77,171,151, 45, 91,198,153, 63,127, 62, 14, 28, 56,128,251,247,239, 63, 6,176, 17,128,
+182, 15,107, 19,198,142, 29,107,160, 84, 42,113,250,244,105, 10,192,224,243,231,207,191,236,216,177, 35,123,192,128, 1, 6,251,
+246,237,155, 80, 82, 71, 90, 11, 45, 67, 67, 67,174, 74,165,194,190,125,251,144,146,146,226, 6, 32,230,249,243,231,190, 99,199,
+142,221,223,178,101,203,166, 81, 81, 81,111,139,138,138,230, 2,136,168,137, 44, 51, 51,115, 90,135, 14, 29,206,211, 52,237,208,
+183,111, 95,225,175,191,254,106,248,230,205, 27,216,219,219,131,166,233, 72,212, 50,133,213,219,183,111, 99, 50, 50, 50,156,123,
+245,234,133, 27, 55,110,108,213,104, 52, 91, 0,252, 52,103,206, 28,187,164,164, 36,180,107,215, 14,166,166,166,120,243,230, 77,
+ 97, 70, 70,198,126, 20,167, 36,170,201,133, 27, 15, 96,165,175,175,111,107, 95, 95, 95, 79, 83, 83,211, 46, 97, 97, 97,120,248,
+240, 33,182,111,223,142,117,235,214,161, 71,143, 30, 88,186,116,233, 71, 0,158, 0,168,248,248, 71, 86,159,181, 0, 0, 32, 0,
+ 73, 68, 65, 84,120,173,226,230,149,122,182, 0,160,125,251,246,233, 62, 62, 62,152, 49, 99, 6,115,244,232,209, 93, 39, 79,158,
+ 92, 52, 97,194,132,178, 62,112,202,148, 41,204,137, 19, 39,166,160, 56, 13,211, 63, 9,181, 74,165,132,161,105, 35, 20,229, 37,
+ 35, 59, 37, 24, 2, 3,107,120,244,110, 3,169, 76,137,171,127, 92, 68, 68,100, 56, 72,146,132,149,117, 61, 24,155,152, 35, 54,
+246, 45, 80,253,106, 99,181, 74,165,130,129, 73, 3, 20,229,167, 64,153, 21, 2,125,145, 37,166,126, 59, 2, 82,153, 10,151, 46,
+ 95, 68, 84, 84, 4, 88, 44, 22,172,109,234,193,200,184,152,147, 96,170, 95,193,172, 3,128, 74,226,105,213, 40,180, 88, 44,214,
+189,155, 55,111,142,238,220,185, 51,251,221,187,119,120,247,174,248,225, 70, 44, 22, 83, 4, 52, 23,178, 34,255, 24, 95,205,225,
+125, 81,178, 58,163,124,238, 66,145,129, 65,218,155,215, 49, 86,226,220, 76,132,135, 62,194,187,216, 72, 36,196,197, 64,165,146,
+131, 69,146, 32, 89, 36, 26, 52,106,129, 71,143,131,149,114,138, 10,174,138,179,216,142,184, 66,161,165,227,184, 31, 55,173,246,
+ 95,188,124,131,254,152,209, 7, 16,241,230, 21,138, 40,107, 48, 12, 96,109, 38, 68,219,198, 43,144,150,158,141, 51,191,237,147,
+210, 42,213,196, 10, 49,180, 62,227, 4, 0,171,143,112,217,127,232,183,233,135,253, 78,109, 88, 62,127,182,213,176,145, 19,193,
+203,125, 5,117,122, 8, 26,117, 28, 8,130,111,140,235, 1,119, 17,244,242, 85, 38,173, 97, 54, 88,229,224,104,108, 13,156,229,
+145,151,151,247,228,195,135, 12,251,114, 81,224,237,249,124,189,154, 86,199, 85,228,252, 36,226, 60,139, 69,182,255,241,199, 31,
+213, 86, 86, 86,170,168,168, 40, 28, 56,112,128, 14, 9, 9, 9, 32, 73,114, 79, 70, 70,134,188, 38, 78, 11,181, 58,252,148,183,
+183, 75,167,145, 35,153,241,243,231, 75,193,231, 47,216,246,203, 47,222,217, 98,177, 45, 67,211,176, 48, 53, 77,221,182,106,149,
+207,232,177, 99,197,209,143, 30,233, 7, 95,185,162,207,163,168, 16, 45,236,252, 26,168,146, 51, 45, 45, 45,232,254,253,135, 56,
+126,248, 87,168, 84, 10,100,164, 37, 1, 0, 62,230,228,163, 6,145, 85,145,147,145, 74,165, 35,191, 95,183,238,233,247,139, 23,
+ 89,247,236,211, 23,201,225, 97, 80,229,102,131, 80, 83,224, 16,108, 72,178, 4,200,202, 44,194,202, 19,231,178,138,164,210,145,
+149,116, 18,149,218, 89,234,177,226, 27, 26,128, 43, 20,129, 39, 50,248,196,139,165,103,104, 8,158, 80, 4, 54,143, 87,217, 4,
+238,207, 56,139,138,138, 70,141, 30, 61, 58,226,249,243,231, 38, 51,102,204, 64,183,110,221, 66,101, 50,153, 59,128,194,186,150,
+ 39, 77,211,105, 61,123,246, 36, 9,130, 16, 77,156, 56,145,159,157,157, 93, 22, 89,189,168,168, 8, 55,110,220, 64,179,102,197,
+171,250,163,163,163,209,162, 69,139, 42, 57,103,174,140, 74, 3,176,105,241,104,187,109, 79,195, 51, 22, 0,216,218,168,105, 61,
+220,189,117, 7, 15,239, 6,123,119,105, 73,239,254,102, 98,199, 31, 4,238, 99,151, 59,183,159,193, 18, 25,218,224,247, 75, 23,
+ 89, 49, 33, 71, 54, 75,165,145, 77,112,224,242,178,170,236, 36, 8, 2, 12,195,124, 22,202,129,197, 98,225,228,201,147,181, 61,
+247,115,135, 15, 31,158,243,221,119,223,113, 51, 50, 50,240,250,245,107, 72, 36, 18,232,233,233,225,214,173, 91, 20,128,125, 39,
+ 79,158,188,117,242,228,201, 1, 40, 94, 77, 20, 88,155,246, 41, 20, 10,189, 60, 60, 60,240,250,245,107,188,120,241,226, 34,128,
+136,208,208,208,139,239,222,189, 27,215,163, 71, 15,252,246,219,111, 94, 50,153,236,112,109, 56,105,154, 46, 31, 51,169, 52,227,
+ 67,120, 81, 81, 81,151,224,224,224,218,214,123, 70, 78, 78, 78,247, 18, 97,157, 98,101,101,101, 24, 30, 30,142,250,245,235, 67,
+165, 82,117,174,109, 91,202,207,207,255,117,207,158, 61, 71,167, 77,155,134, 31,126,248, 97,226,185,115,231, 38,126,243,205, 55,
+ 24, 52,104, 16,142, 29, 59,134,136,136,136,173,208, 46,173, 88,101,231, 30, 1, 32,194,202,202,106, 94,189,122,245,176,125,251,
+118, 68, 70, 70,250,108,218,180,105, 85, 68, 68, 4,154, 53,107,198,143,137,137,161,234,114, 15, 1, 0, 67, 67, 67, 67,181, 90,
+141, 43, 87,174, 60, 3,176,120,226,196,137,150, 59,119,238,244, 20,137, 68,200,205,205,149, 69, 69, 69, 77, 0,240,199, 63,125,
+175, 99, 8, 98,205,140,153, 11,124,103,206,152,160,215,161,125, 91, 72, 11, 82, 33, 43,202,132,180,240, 3,246, 28, 14, 0, 65,
+144,176,176,176,129,165,181, 61,146,146,146,241,248,218,117,165, 68, 42,219,201, 83,211, 91,171,231,156, 95,204,217,174,152, 83,
+ 42,201,130,172, 40,171,140,211,210,210,182,132, 51, 9,143,130,175,203,101, 18,201,175, 74,134,248,249,111, 62,247,255,207,168,
+ 93,174,195,242, 16,139,197, 11,103,207,158,237,190,114,229, 74, 51,138,162, 88,166,166,166, 72, 74, 74,162, 46, 92,184,144, 91,
+ 84, 84,180,176, 46,214,176, 57,156, 8, 71,167,102,238,195,134, 13,163,134, 14, 29,194,157, 52,109, 0,219,194,210, 18,249,121,
+ 57,136,125, 29,134, 55,175, 66,224,216,172, 13,214,111,218, 1, 24, 27,215,152, 72,178, 36,173,206,224,141,223, 47, 59,219,221,
+173,191, 97,179, 22,109,184,109,155, 24, 65,165,166,144,154,154,138, 63,174,132,171,162, 94, 62, 44,160, 41,229, 56,233, 71,237,
+ 82,240, 4, 1, 20,114,112,176,165,165,234,228,150,109,123,150,238, 59,120,124,249,202, 5, 51,132, 61, 92,251, 33,242,206,111,
+184,232,127, 86, 34, 87, 40,183,113, 89,248, 37, 42, 7,210,216, 90,150,129, 92, 46, 87, 85,236, 79,229,114,185,234, 75,107,250,
+216,177, 99,200,204,204, 84, 38, 38, 38,222,164, 40,234, 92, 53,201,158, 63,195, 30, 64, 57, 66,161,184,243,189,171,235,128,239,
+111,221,210,155,178, 98,133,114,226,164, 73,203,160, 80,168,192,227, 49,108,161,144, 4,159,207,137,126,244, 72,127,215,156, 57,
+166,132, 82,121,251,120, 53, 97, 3, 42,193, 87, 95,117, 88,234,209,234,213,171, 7,166,204, 88, 12, 89, 57,143,214,147, 23,177,
+ 80,168,160,181, 71,171, 4,201,137, 41, 41, 93, 22,172,249,254,210, 56,143, 62,206, 45, 29, 26,240, 45, 26, 54,128,200,218, 26,
+ 57,217,217,120,244,226,141,122,211,217, 75, 81, 37, 34, 75,171,184, 50, 52, 77, 23, 79,114, 7,208,103,225, 74, 16, 44, 22, 80,
+ 18,198,161,116,229, 80,195,142,221, 64,176,217,208, 48, 52, 20, 10,133, 54,147,254, 82,223,191,127, 63,106,226,196,137,129,254,
+254,254,164,135,135, 71,219,203,151, 47,211, 95,210,118,100, 50, 89, 23, 0,208,211,211, 75, 48, 54, 54,182,155, 54,109, 26,212,
+106, 53,164, 82, 41,242,243,243,145,154,154,154, 55,109,218, 52, 21, 0,232,235,235,243, 70,143, 30,109, 88, 19,231,142, 11,105,
+242,197,163,237,118,155,178, 19, 61, 11, 62, 70, 52, 52,101, 39, 38,116,105, 73,239,222,113, 33, 77,110,104, 43,249,241, 99, 98,
+ 80,108,134,228,150,239,239,151, 46,178, 38,143, 24,165,177, 23,189,245,214,179,100, 46,212,196, 75, 16,196,103,193, 73,181, 20,
+ 89,159,160,176,176,112,213,218,181,107, 7,137,197, 98,251, 1, 3, 6,112,157,157,157,241,244,233, 83,248,251,251, 83, 79,158,
+ 60, 73,145, 72, 36,171, 1,200, 1, 4,212,165, 76,157,156,156, 26,178,217,236,210,161,180,189, 37, 95,239,189,124,249,242,184,
+ 25, 51,102,160, 65,131, 6, 46, 49, 49, 49,124,212,226, 58, 98, 24,166,108,148,225,107,130, 32,136,184, 93,187,118,217, 89, 91,
+ 91, 19, 55,110,220,160, 88, 44, 86, 93, 60, 55,199,142, 28, 57,210, 89,173, 86,207,156, 53,107, 22,220,220,220, 64, 81, 20, 78,
+156, 56,129, 35, 71,142,104, 43,178,170, 69,108,108,108, 72, 74, 74, 74,207,101,203,150, 97,251,246,237,171,150, 45, 91,134,148,
+148, 20,196,198,198,134,125, 9,111, 65, 65,129, 44, 57, 57, 89,208,181,107,215, 14, 81, 81, 81, 81,238,238,238, 45,102,204,152,
+129,173, 91,183, 50,247,239,223, 31, 13,224,198,127,162,247,126,243, 46,215,143,163, 97,223,218,244,227,175,235,154, 52,110,248,
+221,244,169, 99, 89, 78,142, 45, 32,201, 79,133,153,185, 21,236,235, 53, 66,118,214, 71,220,188,121, 67,243,241, 99,222, 49, 13,
+ 73,108,124,247, 46, 55,253, 75, 56,237,236, 27, 33, 43, 43, 11,215,175, 95,215,228,137, 11, 14, 65, 77,110,138, 73,202,203,132,
+ 14,218,120,178,102,161,154, 40,241,213,193,220,196,196,228,180,161,161, 97,166,161,161, 97,166,137,137,201,105, 64,171,213, 7,
+125,203,221, 29, 88,159,188, 70,143,214,131,158, 94, 23,176,217, 75,140, 77, 76,110, 24, 25, 25,229,244,234,213, 75,233,235,235,
+ 43,143,137,137,166,211,210, 82, 24, 35, 35,163,252,178,253, 43,227,172, 0, 19,147,198, 6, 66,155, 22,235,140,236,219, 62, 18,
+217,184, 20,138,108, 92, 10,141,236,219, 60, 22,218,184,108, 48, 49,105,108,160,149,157, 85,160,145, 37, 44, 28,205,177,175,153,
+ 5, 33,115, 52,199,190, 70,150,176,208,250,220,171, 31,246,211, 16, 4, 52, 40, 94,134,141, 58,112,150,114,208, 44, 22,235,184,
+189,189,189, 13,106, 23,176,238, 51,206, 73, 64,131, 73,124,254,204,243,222,222, 83, 18,238,223,159, 88, 16, 31, 63, 62, 63, 46,
+110,108,216,217,179,227,246,142, 27, 55,105, 60,159, 63,107, 52,208, 88, 91, 78, 27, 27, 27,159,144,144, 16,127,109, 95,229,132,
+151,214,229,217,184,145,221, 45,143,190,157, 25,175,217, 35, 25,175,217, 35, 25,143,190,157,153,198,141,236,110,125, 65, 29, 17,
+ 44, 22,203, 83, 32, 16,156, 22, 10, 4,145, 66,129, 32, 82, 32, 16,156,102,177, 88,158,168,126, 14,213, 39,156,102,102,102, 47,
+173,172,172, 50,107,243, 50, 55, 55, 15,173,133,157,227, 27, 54,108,152, 66,146,228,142, 90, 94,211,213,113, 58,234,235,235,199,
+ 9,133,194,212,242, 47,125,125,253,242,129,161,204, 4, 2,193, 85,161, 80,184, 83, 27,206,159,215,180, 88,247, 56, 96, 94,196,
+207,107, 90,172,171,248,219,252,225, 38,211,158, 6,110,204,153, 63,220,100,154, 54,118, 90, 90, 90,222,183,180,180,204,176,180,
+180,204,176,178,178,170,246,101,110,110,254, 82, 11, 78, 61, 3, 3,131,157, 6, 6, 6,153, 66,161, 80, 35, 18,137, 50,133, 66,
+225, 14,148, 11,109, 81,215,242, 36, 73,114,171,139,139,139,156,197, 98, 29,173,240,211,246, 38, 77,154,200,217,108,246,182, 90,
+114, 26,246,232,209, 67, 19, 30, 30,206,184,185,185, 49, 0, 76,190, 98,189, 91,155,152,152,220, 48, 52, 52, 76, 54, 48, 48,216,
+ 3, 64, 88, 71, 78, 2,128,167,157,157, 93, 88,239,222,189,165,118,118,118,193, 0,134,125, 69, 59, 7, 13, 31, 62,156, 78, 78,
+ 78,102, 24,134, 97,146,147,147,153,225,195,135,211, 40, 14, 20,249, 37,247,228, 53,115,230,204, 97,158, 60,121,194, 60,121,242,
+132, 9, 14, 14,102, 6, 13, 26, 68, 3,248,246, 11,239,243,248, 90,231,238,220,200,188,113,243,166, 38,231, 38,140,114,165, 3,
+254,216,193,172, 95,253, 29,211,207,173, 5,211,172,137,201, 37, 71, 71, 51,199,175,193,185,110,245,108,166,111, 79, 23,218,185,
+177,201, 89,231, 70,230,141,255,225,115,255, 55,122,181,240,119, 79, 56,251,203,181,248,169, 88,170, 28,182,182,182,200,201,233,
+172,199,102,187,242,249,124,119,146,197,186,151,155,157,189,168,228,113, 75,243, 79,185,106,171,237,208, 27,131, 87, 77, 74,130,
+186,112,126, 50,145,189,142,156,181,225,208,138,179,170,164,210,180, 66,145,110, 70, 81, 47,247,160,218, 50,248,132,211,206,206,
+110, 38, 77,211, 13,181, 53,136, 36,201,132,180,180,180,195,117, 41,207,166, 77,155, 50, 37,195,219,196,215,172,247,191,163, 45,
+253, 47,113,254,254,107, 43,219,102,173,154, 47,143, 12,137,217, 94, 50,172, 88,134, 13,243, 77, 12, 92,123,247, 90,251,232,238,
+253, 31, 54,236, 17, 23,254,135,207,157,132,150,115,218,190, 2,103,105,144,208, 90,113,114, 56, 28,223, 78,157, 58,205,124,250,
+244,233, 81,141, 70, 51,235,127,180,125, 14, 98,177, 88,203,156,156,156,218,198,198,198,134,105, 52,154,237,168, 36, 80,100, 29,
+236, 92,221,176, 97,195,185, 92, 46,151, 95, 84, 84, 36, 78, 79, 79, 95, 11,224,220,127, 91,121, 58, 55, 53,237,192, 48,101, 65,
+183, 55,191,126,159,251,252,171,113, 50,180,134,102, 88, 63,198,198,231,132,254, 7,234,253,223, 38,178, 14,253, 19,127,220, 87,
+199,169,227,212,113,234, 56,117,156, 95,157, 83, 95, 87,158, 58,206,127, 33,231,191, 18,108, 93, 17,232,160,131, 14, 58,252,191,
+131, 76, 87, 4, 58,232,240, 95,135,242, 94,173, 50,111, 22, 81,141, 42,173,141, 75,176, 46,202,246,142,142, 83,199,169,227,212,
+113,234, 56,117,156, 58,206,255, 57,206,127,171,200, 58, 84,205,246,223, 6,157, 91, 85,199,169,227,212,113,234, 56,117,156, 58,
+ 78, 29,231,255,130,208,170,116, 91, 55,116,168,195,223,142,221, 35, 96, 7, 0, 11, 46, 35,237,239,216, 95, 7, 29,116,208, 65,
+ 7, 29,254,195, 56,132, 42,134, 14,255, 27,132,150, 45,128, 46, 40, 78,124,251, 6,192, 67, 0,226, 47,224, 51, 7, 48,150, 32,
+136, 49, 0,192, 48,204,121, 20,175, 26,249,168,205,193,122,122,122,153,114,185,220,178,228,115,150, 92, 46, 47,159,203,128,192,
+231,171,217,152,114,175, 74,209,176, 97,195, 76,133, 66, 97,169,197,223,231, 51, 12, 19, 65,146,100,164, 72, 36,186, 27, 27, 27,
+235, 95,155, 19,119,119,119,159,194, 98,177, 54, 3,128, 70,163, 89,115,239,222,189,227,127, 99,189,117,174,103,107,253,155, 74,
+173,162, 50,179,115,215,226,243, 64,126, 0,128,125,131,225, 67, 80, 88, 94,242,121,219, 60,255,234,227,232,212,118,255,106,208,
+129,195,225,120, 89, 89, 89, 13, 76, 77, 77,125, 9, 96, 5, 80,115, 84,227,122,245,234,125,203,102,179, 39,106, 52,154,198, 44,
+ 22, 43,142,162,168,147, 41, 41, 41,126,186,123,136, 14, 58,232,160,131, 14, 90,136,173,207, 80, 43,161,213,204, 12,214, 12,224,
+ 9, 2,253,192,224, 54, 1,156,121,147,131, 15,218, 30,255, 77, 51,168,213, 84,241,127,114, 73,104,110,188, 39, 15, 13, 28, 56,
+208,126,254,252,249,232,214,173, 27,158, 62,125,218,245,216,177, 99,211,206,157, 59, 23, 65,211,244, 61, 0, 79, 1,173, 66, 41,
+ 8, 81, 28,167,101,194,192,129, 3,251,110,222,188,153,213,162, 69, 11,200,100, 50,220,191,127,223,117,219,182,109, 59, 31, 63,
+126,124, 7,192,169, 18, 65, 80,101, 2, 60,185, 92,110, 89,154,140,147, 32, 8,203,209,163, 71, 63, 47, 47,174, 74,242,171, 17,
+ 12,195, 60, 33, 8, 34, 88,163,209, 60,189,112,225, 66, 74, 51,160,243,236,134,220, 11,139, 18, 84,246, 21, 57, 21, 10,133,229,
+149,159,183,128,205,231, 67, 81, 88,128,174, 83,255, 18,189,183,215, 45, 7, 65, 83, 96,129, 17,187,255,184, 51, 2, 64,100,122,
+122,122,132,155,155, 91, 66,109,107,152,197, 98,109,190,121,243,166, 13,195, 48,240,240,240,216, 12,224,239, 18, 90,252, 46, 29,
+218,220,187,122,241,180, 94, 81,110, 38, 6, 12, 27,119,242,109, 74,214, 20, 0, 23, 63, 17, 77, 3, 97, 69, 16, 88, 62,103,203,
+ 41, 22, 0,236, 95, 61, 97,197,142,254,216,189, 56, 0, 31, 0,184,151,136, 31, 0,248, 25,192,189,125, 3, 97, 5, 96,229,156,
+ 45,167, 8, 0, 56,176,122,194,242,125, 3,177,107,222,141, 90,135,173,152, 59,101,202,148,221,155, 55,111,102,217,216,216, 32,
+ 45, 45,109,128,139,139,139, 83, 65, 65,129, 11,170,153, 68,220,160, 65,131,179, 61,122, 15,105, 52,114,140,167,192,194,220, 4,
+233, 25, 31, 13,207,158, 62, 58,155,245,228,254,192,196,196,196,113,186,123,136, 14, 58,232,160,131, 14, 85,160,238,145,225,219,
+217, 64, 95,162,194,112, 54,139,248,182,123, 7,151, 62,227,191,233, 65,186, 56, 55,197,171,232,152,254,127,220,125,182,141, 12,
+142, 14,164, 52,140,159,144,139, 43,161, 25,213,175,132, 81, 83, 96, 7, 92, 57, 85,220, 19, 78,155,192,122,254,252,121,211,246,
+237,219,151,165,134,233,211,167, 15,250,244,233, 67,236,223,191,191, 77, 64, 64, 64,155, 35, 71,142,168, 2, 3, 3,127, 67,245,
+241, 81,188,154, 52,105,178,109,247,238,221,124, 55, 55, 55,240,249,252,178, 31, 68, 34, 17,134, 12, 25,130, 33, 67,134,176,210,
+211,211, 61,174, 94,189,234,241,243,207, 63, 43,147,146,146,150,225,175, 40,205,213, 98,237,218,181, 29, 42,249,250, 38, 65, 16,
+239, 41,138, 10,107,211,166, 77,138, 19,208,116,246, 55,221,110,207,237,238, 40, 92,180,234, 88,165, 60,108, 30, 15,191, 79, 41,
+238,171,203, 11,173,132,187, 55, 32, 50, 52,200, 17, 24, 24, 68, 0,136, 4, 16,193, 48, 76,100, 92, 92, 92, 76,115,160, 77, 23,
+ 19,242,183,163, 98,186,117, 45,196, 22, 82, 82, 82, 96,100,100,164,239,230,230,150, 65, 16,196,134,251,247,239,127,237, 9,121,
+157, 55, 44,159,203, 21, 39, 70,224,195,235, 39, 88, 50,198, 85,176,104,207,159, 63,200,149,234,139,213, 29, 68, 16, 36,249,115,
+ 48,237,141,226,100,188,107,115,114,114,220, 0,192,204,204,140, 7,224,222,142,103,248,102,113,119,226, 75, 98,187,113, 89, 44,
+214,190, 99,199,142,205,248,246,219,111,139, 83, 71, 60,122, 4,145, 72,132, 77,155, 54, 53, 88,186,116,169, 15, 69, 81, 11,171,
+242,100,245,232, 61,164,209,174,237, 63,184, 20,230,230, 43, 14,238, 59,247,194,182,101, 51,114,142,215, 82,131, 93, 42,133,181,
+ 70,163,249, 86,231,217,210, 65, 7, 29,116,208,161, 54,222,172, 26,133,150,147, 57,142,183,107,233, 56,118,252, 32, 87,126,171,
+150, 45,192,229,255, 21,186,165,125,135, 14,104,223,161, 3,233, 93, 84,216,239,249,139,144,126, 23, 2,158, 42,164,234,164,115,
+177, 31, 49, 69, 91,171, 74,147,210,110, 30,102,213, 91,146,151,165, 7, 0, 66, 99, 75,249,234, 43, 31,238,118,239,222, 29,246,
+246,246,220,192,192,192,233, 53, 8,173,213,111,222,188,225,179, 88,213,199, 67,181,181,181,197,232,209,163,209,172, 89, 51, 94,
+175, 94,189, 86, 87, 37,180,244,244,244,178, 8,130,176, 4, 0, 83, 83, 83,205,134, 13, 27,194,152, 98, 0, 0,195, 48,204, 19,
+146, 36,159,210, 52,253,236,207, 63,255, 76,117, 1, 44, 7,180,111,246,112,238,164,209, 2,230,194,206, 42, 69,130,188,160,160,
+210,239, 5, 34, 97,182,190, 80, 24,193, 23,232, 69,162, 56,151, 87,164,189,189,125,140, 11, 96,223,169, 89,195,128,253,139, 39,
+ 24, 28,157,245, 67,141,101,217,174, 93, 59,167,214,173, 91,235,105, 52, 26, 72, 36, 18, 28, 56,112,192, 72, 95, 95,223,104,224,
+192,129,235,203, 55, 0,103,160,213, 40, 91,214,172,141,233,154,121,117,104, 72,198, 61,186,118, 72, 28, 61,100,160, 97,135, 46,
+ 61,240,246,222, 9,228,230, 22, 34, 63,175, 8, 52, 77,127, 22,215,103,222, 13,100,238, 27,140,109,251, 87, 77, 88, 73,144, 36,
+209,102,196, 10, 12,181,206, 95,224,235,235, 27, 13,128,195,227,241,202,183, 67, 91,125,187,150,219,154,246,239,129, 3,107, 38,
+129,161,105, 6,192,182, 90,120,179, 44, 13, 12, 12,254, 8, 8, 8,232,220,177, 99, 71, 60,125,250, 20,241,241,241,152, 59,119,
+174,114,222,188,121,220,201,147, 39, 19, 75,150, 44,153,255,243,207, 63, 95, 0,240,248,179, 11,129,205,158, 56,108,228, 56, 94,
+ 81, 94,129, 92,169, 80, 41, 77,205,141,105,133, 68, 46,253, 40, 46,144,143,155, 48, 83, 25, 29,250,108, 34,128,207,132,214, 23,
+150,167, 14, 58,232,160,131, 14, 90,128, 97,152,142, 0, 44, 0,100, 19, 4,241,162,252,118,201, 46,165,217, 90, 42,110,127, 68,
+241,168,148, 89, 57,186,143, 40,158,238, 99, 1, 64, 3,224, 57, 65, 16,226, 47, 52,177,250, 85,134,254,254,254, 76,249,247,114,
+ 66,139, 97, 24,134, 81,231,188,103, 20,177, 55, 24,233,139,195,159,189,100,209, 23,153,140,231,231,152,103,167,214, 49, 78,230,
+213,103, 97,255,166, 25,212, 19, 90,131,153,211, 17,204,194, 94,198,242,231,207,159, 7,210, 52,237,239,221, 3, 12,243,234, 20,
+195,188, 58,197, 44,238, 10,230,194,133, 11, 55,125,124,124,252,253,252,252,252, 1,212, 52, 79, 41,179,240, 69, 48,243,204, 18,
+ 76, 85,120,243,230, 13,227,235,235,203,172, 90,181,138, 57,122,244, 40,131, 26, 34,168,123,120,120,220,143,138,138, 98, 38, 79,
+158, 28,134,106, 2, 3, 58, 3,194,137, 13,172, 95, 43,206,238, 84, 41,191,109,197,136,123,234, 85,122,254, 54, 54, 54,159,216,
+179,213,209,154,217,219,201,145, 57,222,175,253, 7,134, 97,110, 50, 12,179,149, 97,152,113, 12,195, 52, 3,128,118,128,225, 48,
+ 27,179,119,242,115,187,100,202, 89, 93,106,204,123,215,174, 93, 59,167,101,203,150,229, 42,149, 74, 38, 33, 33,129, 57,120,240,
+ 32,115,251,246,109,230,202,149, 43,140,171,171,107,122, 57,123,173,166, 53,115,200, 84, 30,217,168,168, 75, 43,226,176, 88,123,
+ 95,220,190,192,188,123,120,158,121,126,198,135, 57,249,253,120,102,254,176,206, 42, 67,125,190, 28, 64,239,170,142,155,215, 29,
+ 77,155, 53,176,136, 77, 74, 74, 98, 84, 42, 21, 51,117,234, 84,198,195,195,131,233,223,191, 63,211,183,111, 95,166, 79,159, 62,
+ 76,239,222,189,153,187,119,239, 50,233,233,233, 76,223, 30,237, 37,131,157,209,161, 22,166,181,116,112,112,248,144,144,144,192,
+168, 84, 42, 38, 48, 48,144, 57,113,226, 4, 19, 24, 24,200,120,123,123, 51, 0,142,207,153, 51, 71, 38, 22,139, 25, 15, 15,143,
+ 84, 84, 18, 53,222,193,193, 33, 38, 42, 54, 37,101,199,150,195,119,127,223,123,250,238,165, 11,183,239,254,113,235,249,181, 43,
+183, 94,156,123, 22, 30,119,197,193,193, 33,166,146,250,255,162,242,212, 65, 7, 29,116,208,161,102, 45, 82, 34,180, 6,149, 56,
+ 59, 6, 49, 12,211,183,194,246,160, 18,225,244,217,182,183,183,247,170,242,219,165,251,120,123,123,175, 2,192,116,237,218,245,
+ 52,195, 48, 77,191,130,249,179, 42,121,213,236,209, 42, 5,149,250, 28, 92,199,129,224,104,212, 80,127,124, 3, 58, 47, 9, 16,
+ 90, 67, 70,136,144,147,145,132,215, 15, 47, 86,159, 72,162, 4,215,223,128, 3, 32, 48, 38, 38, 6,175, 95,191, 70, 74, 74, 10,
+ 4, 2,193,103,251, 61,122,244, 8,250,250,250,176,177,177,209, 78,233, 42, 63,237,231, 34,218, 59, 64,212,213, 13, 31,199,127,
+135,192,192, 64,100,101,101,129,203,229,130,199,227,129,162,168, 26,249, 72,178, 56,227,111,169, 23,171,178,125,220, 0, 54,223,
+ 84,116,117,255,250,133, 13,201, 39,254, 28, 89,242, 59,164,203, 53,218,121,242, 68, 66, 8,132,130, 12,125,125, 65,217,112, 33,
+128, 72,130, 32,222,182, 3, 56, 66,145,222,213,223,126, 92, 98,205, 10, 13,212,147,189,139,168,148,163,111,223,190,179, 1,172,
+103, 24, 38,175,117,235,214, 86,155, 55,111, 54, 73, 75, 75,195,171, 87,175,112,238,220,185,108,170,248, 68, 9,134, 97, 54, 2,
+ 64, 23, 64,207,216,194,248,214,222,117, 11, 13,112,239, 44,175, 46,173,200,200,121,200,181, 81,147,231,204,219,189,112, 8, 36,
+133, 50,156,186, 29,138,155, 33,239,135, 2,120,132,106,230,189,237,123,140,119, 64,118,159,145, 35, 71,134, 61,120,240,192,252,
+200,145, 35,160, 40,170,210,215,145, 35, 71,112,231, 97,200, 2, 0, 47,181, 52,203,182, 97,195,134,119,158, 61,123,102, 33, 16,
+ 8,112,251,246,109,228,229,229,149,121,178,166, 76,153, 66,228,229,229,121, 30, 56,112, 96, 84, 98, 98,226,246,135, 15, 31,230,
+160, 56, 23,228, 39, 13,129,197, 98,189,167, 40, 85,115, 27,231,166,236, 49, 67,122,244, 40,202,137,128,200,172, 53,158,132,191,
+191,154, 39,206,145,177, 88,172,247,229,247,255, 26,229,169,131, 14, 58,232,160, 67,237, 64, 16,132, 63,195, 48,131, 9,130,240,
+175,248, 93,197,207,165,251,249,248,248,148,109,151, 30,179,117,235,214, 45,229,182,165, 95,201,188,106, 39,195,247, 42, 81,144,
+189, 42,219, 73,241,234, 18, 20,175,255, 0,215,161, 59,120,205,134,130,229,224,138,228,136,123, 8,191,177, 3,169,209,143,192,
+208, 26,216, 56,117,210,214, 16,121,243,230,205, 33,151, 23, 79,205, 82, 40, 20,224, 10, 77,228, 75,102, 77,208, 3, 0,154,173,
+167, 40,167, 96,181, 34, 52,232,238,142, 78,153, 12,158, 91, 21, 59, 42, 58,101, 22, 31,247,227,212,169,224,114,185,224,114,185,
+ 32, 74,166,254,104, 35,180,136,146,157,233,226,225,171,202,140, 32,164,124,206,169, 51,235,189, 58,241, 19, 35,121,138,168, 39,
+ 72, 87,208,204,213, 76,205, 53,109,236, 21, 8, 5,105,250, 2, 65,164,190, 72, 88, 38,180, 8,130,120, 15, 0, 12,135,227,119,
+ 98,163, 87,107, 97,102,156, 80,254, 34, 16, 25,114, 90, 85, 5,205,198, 27, 55,110, 88,178,217,108,107,141, 70,131,228,228,100,
+ 68, 71, 71, 99,215,174, 93,153,133,133,133,189, 66, 67, 67, 99,203,107, 71,141, 62,239,156,223,166,133,141,216, 17, 65,122,138,
+247, 81,181,110, 61,230, 45,135,123, 12,237,213,230,218,236, 73,107, 48,252,155,254,152,220,203,133, 73, 72,207,149, 3,184, 93,
+226,122,173, 9,105,161,161,161,253,122,246,236,121,178,109,219,182,206, 12,195,160, 85,171, 86,240,244,244,132,159,159, 31,194,
+195,195, 81, 80, 80,160, 10, 8, 8,216, 9,224,152,150,102, 9, 76, 76, 76,110,222,189,123,215, 66, 32, 16, 32, 32, 32, 0, 50,
+153, 12, 54, 54, 54,152, 55,111, 30,111,235,214,173,191, 23, 20, 20,140,241,241,241,209, 75, 72, 72,216,123,235,214,173, 6, 40,
+206, 59,247, 89, 35, 80, 42,149,135, 78,249, 29,223, 61,207,107,190,221,221,167,175, 2, 21, 69,133, 70, 14, 14, 41, 5, 22, 38,
+ 34,131,157, 63,109,172,175, 84, 42,103, 87, 94,158,247,235, 84,158, 58,232,160,131, 14, 58,124,134,106,181, 72,121,241, 84, 81,
+108,213, 70,164, 1,144,121,123,123,175, 38, 8,194,223,219,219,123,181,143,143,143, 12, 64,250,223, 33,178,202,132,214,224,193,
+131,131,252,253,253, 49,120,240,224,160, 42, 41,104, 13, 84, 9, 15,160, 74,120, 0,253,174, 11,240,167,207,248, 10, 39, 79,215,
+217,186, 33,155,110,223, 85, 40, 20,236,227,199,143,151,205,219, 2, 0,141, 70,243,213,107,177, 54, 66,171, 68,232,125,102, 68,
+ 67,190, 40,232,208,226, 49, 93,204, 52, 82,142,242,209, 85,164, 41,104,106,251, 59,149,244, 69, 30,243,115, 85,156, 87, 22,205,
+ 70,202,195, 59, 16,136, 68, 41, 51, 30, 68,150,121,177, 74, 68, 86, 60, 0, 52,224, 27, 4,250, 46, 28,238,106,205, 5, 87,121,
+237, 60,210, 21,180,194, 55, 81,125,172,138,198, 6,134, 97, 16, 31, 31, 15,169, 84,138,224,224, 96, 92,188,120, 49,187, 18,145,
+133,134,124,209,253,163, 43, 38,118, 54, 44,252,192, 85,190,184,131,116, 5,173,213, 80,151,121,171,225,221,185, 36, 17, 64,144,
+ 44,253, 62, 93,156,176,104,230, 8,236, 56,250, 39,165,180,236, 49,120,247, 31,215,199, 22, 41, 84,171,181, 20, 89,101,206,198,
+208,208, 80,151,208,208, 80, 62, 0,119, 79, 79,207,235,163, 70,141, 66, 80, 80, 16,174, 94,189,234, 8, 32,163,100,191, 77, 40,
+ 78,148,253, 51,128,184,170, 28,143, 92, 46,247,204,157, 59,119, 90,216,218,218,226,206,157, 59,144,201,100,152, 51,103,142,210,
+203,203,139, 59,101,202, 20, 34, 63, 63,191,204,147, 21, 28, 28,156, 83,149,200, 2,128,180,180,180, 27, 23,207,157,232,214,179,
+103,207, 17,141, 28,155, 25,198, 21, 22,100, 9, 4,122,250, 15,131,238,113, 95, 60,123,188, 55, 45, 45,237,121,229,229, 25,168,
+117,121,234,160,131, 14, 58,232, 80, 53,180,210, 34, 21, 60, 83,181, 65,185,227, 56, 62, 62, 62,209, 62, 62, 62,159,120,188,190,
+ 16, 21, 87, 29, 94, 43,237,211,234, 20, 71, 75,147,159,252,249, 9,208,116,109, 78,246,179,239, 76, 76, 76, 40,125,125,253, 79,
+132, 22,173, 37,103,238,229,211,136,155, 59,161,204,147, 85,234,217,194,128, 41, 95, 36,180,104,154, 14, 6,240,137, 17, 2, 75,
+167,241, 59,135, 56,119,119,105,100, 71,170,207,237, 66,170,148,146,175,127,163,146,191, 46,100,134,198, 84, 50,201,186,140,147,
+ 82, 67, 79,168,159,164, 47, 18, 86, 20, 89,137, 0, 32,180,114, 28,181,125, 96,179, 94,109,154, 53, 33,169,179,191, 34, 77,170,
+ 46,242,142, 81,169,226, 36,204,165, 42,202,112,125,255,254,253,215,155,153,153,233,237,222,189,219,200,193,193, 1, 20, 69, 41,
+ 43,138, 44,129,165,211,248, 93,195, 91,118,119,178, 54, 33,213, 23,246, 32, 69,166,145,238,138, 83,255,174,141,200, 50, 55, 18,
+221,242,221, 50, 87, 95,192,231, 64, 46,151, 99,235,254, 11, 8,120, 28, 53,248, 99,212,149, 91, 0,110,125, 65,131,156, 49,120,
+240,224, 29,155, 54,109,130, 90,173,198,244,233,211,241,254,253,251,128, 55,111,222,236,170, 95,191,254,178, 21, 43, 86,216, 90,
+ 91, 91, 99,236,216,177, 92,181, 90, 61,165, 10,142,159, 78,157, 58, 53,184, 77,155, 54, 8, 10, 10, 66, 94, 94, 30,108,108,108,
+224,229,229,197,243,241,241,249,189,160,160, 96,204,150, 45, 91,244,226,227,227,171,245,100,125,210,174, 53,154, 31, 15,238,152,
+187,172, 99, 23, 87,242,221,187, 88, 42,185,147, 27,121,239,206,213, 7,102,102,102,191, 39, 39, 39,255, 85,158, 35, 90,213,186,
+ 60,117,208, 65, 7, 29,116,248, 58, 32, 8,226, 90,201,188,171, 79,188, 92, 21, 69, 88,169,199,170,252,118,197,253, 75,126,255,
+ 26, 15,203,135, 42, 17, 94,159,134,119, 24, 60,120,176,214,203,234,105, 73,182, 86,226,169, 34,190,105, 6,181,157, 8,236,213,
+110, 36,184, 66, 19,249,144, 77,183,239, 86,181,175, 80, 40,212,218,163, 69, 43,228, 53, 85, 74,173,132, 86,201, 28,173,155, 12,
+195,124, 34,180,140,172,156,220, 86,174, 88,184,211,117,212, 0, 50,115,102, 87,228, 21, 41, 20, 43, 94, 81,116,170,180,122,145,
+ 85,220,139,171, 19, 4, 66, 81,164,158, 80, 80, 94,100, 37, 3,128,158,101,147, 78,203, 23,205,219,223,123,252, 16, 34,123,142,
+ 43,196,121, 50,197,178,104,138, 72,147, 49, 99, 98,128,123,149,209,221,189,123,247, 32,128,131,110,110,110,153, 66,161, 16, 69,
+ 69, 69,159,213, 65,169,189,221, 71, 13, 32, 51,103,116, 70,174, 68,165, 88, 17, 77, 33, 93, 70,159,169, 73,100, 89, 24, 27,220,
+242,221, 60, 87,144,158,154, 8, 46,151, 11,145, 72,132,219,143, 34,241, 49,250,143, 47, 17, 88, 32, 73,114,131,183,183,247,250,
+121,243,230, 33, 39, 39, 7, 87,175, 94,197, 55,223,124,131,211,167, 79, 59, 92,191,126,125,135,187,187, 59, 88, 44, 22,252,253,
+253,161, 86,171,223, 86, 65, 51, 98,214,172, 89,203, 70,141, 26,133,231,207,159, 35, 35, 35,227, 19, 79, 86, 94, 94,158,231,254,
+253,251, 71, 37, 36, 36,212,232,201,170,128, 78, 13,155,180,227,174, 90,251, 11, 20,210, 44,118,118,218,211,160,192,219,228,147,
+220,220, 92, 1,128,252,186,150,167, 14, 58,232,160,131, 14, 90,123,181,170,210, 34,217, 37, 34, 42,187,178,237,114, 2,171,178,
+109,162,130, 23, 76, 89,225,247,240,191,243,156,180,242,104,177,173, 90,130,202,140, 42, 39,180,178, 62,249, 93,207,192, 84,171,
+161, 67, 53, 5,182,239,177,178, 56, 90,122, 57, 57, 57,122,230,230,230,242,242, 2, 65, 32, 16,192,214,214, 22, 98,177, 24,135,
+ 14, 29, 2,106,158, 20, 77, 25,142,154,132, 78,227,167,227,133, 61, 15,140, 90, 85,230,217,242,157, 58,245, 19,177,197,229,114,
+ 75,231,134,213,212,233, 62, 43,241, 52, 61, 1,192,180,115,108,244,131,158, 80, 56, 85,207,188,158,249,162,185, 51, 56, 9, 89,
+ 10,220,117, 93,149,119,225,167,149,162, 20, 70, 52, 47, 25,249,143,107,224,139, 27,118,224, 68, 69, 79, 86,106, 91,199, 70,107,
+244, 4,122, 51,121,166, 13,172,189,151,204,229, 36,100, 42,136,187,157, 86, 20, 92,252,121,133, 32, 30, 6,203, 82,145,119, 79,
+139,234, 89,255,205, 55,223,172,103, 24,134,161,105,122, 45, 0,148,183,119,137,215, 76, 78,220, 7, 57, 2, 93,215,136, 47,254,
+180,210, 32, 5,213,219,107,222,106,120,119, 43, 19,195, 91,190, 91,230, 9, 50,210,146,192,231,243, 97, 96, 96,128,148,204,124,
+112,216, 44,217, 23,182, 55,126,143, 30, 61, 86,206,157, 59, 23,145,145,145,152, 51,103, 78, 70,114,114,242,165,179,103,207,206,
+ 89,183,110, 29,219,195,195, 3, 25, 25, 25,216,182,109,155,250,209,163, 71, 91, 0,108,171,180, 61,178,217, 51,126,248,225, 7,
+ 38, 61, 61,157,136,143,143,135,141,141, 13,230,207,159,207,219,178,101, 75,217,156,172,218,120,178, 74,145,150,150, 22, 20,112,
+231, 9,134,222,216, 9, 74,173, 8,202,203, 73,126,240, 58, 78, 28,100,202,227, 45,181,107,215,170, 78,229,169,131, 14, 58,232,
+160,195, 87,241, 98,189,168,110,251,191, 0,149, 13, 29,106, 37,180,222,238, 89, 51,205,113,218,188,229,208,119,232, 14, 69,204,
+101,208, 69,153,101, 30, 45, 61,145, 9, 76,235, 59, 35, 79,162,192,249,192, 16, 0,120, 91, 27,171, 10, 11, 11,209,190,125,123,
+236,155,226,212, 91, 94,152,163,167, 15, 64,193, 55,148, 95,225,245,184,123,253,250,117, 41, 77,211,103, 0, 92,175,129,102, 67,
+139, 22, 45,246,254,242,203, 47, 60,231,241,211, 80,244,244, 97, 69, 15, 10,244,245,245,193,231,243, 17, 17, 17,129,187,119,239,
+ 42, 1,108,168,161, 66,159, 81, 20, 21,126,246,236,217,212,166,141,236, 6,180,111,219,122,193,234, 85,222, 6,175, 30, 6, 96,
+237,150,189,116,211, 14, 30,249, 91, 79, 95, 41,204, 23,213,239, 35,203,120, 19,166,197,169,134, 87, 16, 89,233,205, 27,214,235,
+221,182,101,139,229,107,215,174, 49,140,126,120, 27,235,126,246,101, 28,219,244,205,255,249,226, 31, 5, 31, 5, 13,250,203,179,
+ 94, 63,215,166, 12,131,130,130, 14, 2, 56, 88,186, 93,209, 94,239, 77,187,104,167,142, 3,196, 91, 79, 95,148, 20, 24,212,239,
+ 91,157,189, 22,206, 35,186,217, 91,152,220,218,243,227,119,130, 15,105,201,224,243,249, 16,137, 68, 72,206,200,195,250,157,231,
+ 36, 42,154, 30,240,165, 66,203,192,192,128,175, 82,169,176,111,223, 62, 36, 39, 39,119, 5,144,252,242,229, 75,223,113,227,198,
+237,110,213,170, 85,243,232,232,232,183, 69, 69, 69,243, 0,188,174,138,196,216,216,184,171,133,133, 5,241,228,201, 19,124,247,
+221,119,202,249,243,231,115, 39, 79,158, 76,136,197,226,186,122,178, 0, 0,118,118,118,110,253,250,116, 65,247,126,115,130,148,
+242,188, 7, 9,175,127, 15, 34,153,199,122,117, 45, 79, 29,116,208, 65, 7, 29,254,103, 80,183,192,224,110, 0,219,201, 12,179,
+ 91,216,113, 63,248,253, 52,159, 41,140, 11,102,100,207, 15, 50, 5,151,103, 50,215,182, 77,102,174,239, 89,196,204, 25,212,130,
+105,110, 73,124,112, 50,195,108,183,207,133,219, 39,217,189,191,105, 6,117,191, 38, 96,250, 53, 1, 51,200, 9,106, 0,171,219,
+181,107,119,197,171,211, 95,113,180,188, 58,129, 1,240, 29, 0, 81, 21,102, 85,150, 49,220, 6,192,161,246,237,219, 83,247,238,
+221, 99,222,140,233,203,132, 54, 55,103,230,205,155,199,172, 91,183,142,153, 48, 97, 2, 99, 97, 97, 65,149, 20,132, 77, 77,156,
+ 67,135, 14,181, 7,128,122,245,234, 25,119,112,110,250, 33, 34,240, 42,243,192,111, 55,115,212,107, 36,211,185,149,243, 71,235,
+230, 61,195,245,109,154,181,173,161,248,202, 56,173,173,173, 87, 49, 12, 51,128, 97, 24, 27, 0,112,116, 52, 19,181,107,222, 52,
+ 61,252,206, 85,230,225,137,189,204, 81,175,145, 76,151,214, 46, 57,246,206,238,175,245, 44,155,119,210,134,179, 50, 84,106,111,
+203,230, 31,173,154,118, 11,171,198,222, 50,206, 70,157,198,254,145,154,158,201, 60,123,246,140,185,126,253, 58,243,240,225, 67,
+198,239,236, 31, 76,253,142, 99,138,204, 91, 13,239, 94,139,166, 83,149,157, 70,131, 6, 13, 98,222,190,125,203, 12, 28, 56,144,
+ 1, 96, 84, 71,206, 43, 9, 9, 9, 76, 84, 84, 20,179,122,245,106, 6,192,241,185,115,231,202,242,243,243,153,190,125,251, 38,
+151, 8, 44,118, 93,236,108,220,208,110,235,136, 33, 61, 54,120,125, 55,202,237, 75,203,243, 43, 66,199,169,227,212,113,234, 56,
+255, 23, 56,255, 63,195,166,196,171, 85,250,222, 78, 43,143, 86, 16, 64, 33, 7, 7, 91, 90,170, 78,110,217,182,103,233,190,131,
+199,151,175, 92, 48, 67,216,195,181, 31, 34,239,252,134,139,254,103, 37,114,133,114, 27,151,133, 95,162,114, 32,141,173,193,138,
+146, 56, 90,159, 32, 52, 52, 84, 96,218,228,175, 24, 76,239,138, 99,179,250,214,242, 4, 51, 0,204, 10, 9, 9,249,197,221,221,
+125,243,204,238,157, 70,122,117,235, 13,181, 90, 13, 63, 63, 63, 36, 37, 37, 93, 2,176, 70, 91,143, 91,100,100,228, 71,151, 38,
+ 14, 11, 57, 44,147, 13,103, 68, 0, 0, 32, 0, 73, 68, 65, 84,246,242,121, 19, 70, 88,100,191,127,133,212,152, 80, 0,128, 66,
+ 33, 83,127,120,251,160, 77,109,140,211,215,215,127,102, 97, 97,241,198,194,194, 66,236,212,168,222, 44, 62, 56,107,231,120, 14,
+179,204, 73,120,141,148,232,226,145, 81,133, 92,170, 74,125,123,175,121, 93,106,215,193,193,129, 47,228, 96,118,165,246, 42,229,
+234,204,119,175,219,106,195, 35, 85, 40,183,108,220,225,215,255,199,229, 83,249,134,134,134, 8,137,122,135,181,191,158,150,200,
+148,234, 1, 31, 35,175,124,149,225, 49,134, 97,160, 86,171,181, 94,232, 80, 5, 86,182,105,211,166,217,230,205,155, 29,167, 76,
+153,130, 47,245,100,149, 71, 92, 66,154,183, 93,189,198, 46,239,222,132,184,155,234,115, 79,126, 73,121,234,160,131, 14, 58,232,
+240, 63,131, 65, 37,206,156, 89,229,222, 67,107, 20, 90,165,136,202,130, 20,192,166, 70,172, 34,223, 85,155,119,172, 39,137,157,
+ 83,105,134,249,141, 34,177, 49, 62, 7,217, 95,104,156,148,195, 6,213,127,248, 4, 54, 0,112,216,117,235, 32, 75,240, 22,192,
+168,195,143,159,119, 60,252,248,249,247, 37,223,253, 8,160, 86, 99,185, 6,108, 68,185,186, 52,182,235,209,174,133, 30, 75, 35,
+ 67,106,204,123,228, 74,228,184, 29,157,148, 71, 50,228,111,181, 53, 42, 62, 62,254, 62, 0, 88, 25, 9, 98,122,184, 52,169,223,
+179,125, 11, 1,135, 80, 34,245, 85, 8,242,101, 74, 4, 68, 39,229,131, 32,234, 60,161,250,107,217,155, 25,249,199,139, 63, 65,
+244, 37, 8,226,206,106,175,241,252,245,191,158,249,170, 34, 11,128, 52, 45, 45, 45, 71, 42,149,154,165,167,167, 43, 81,247, 32,
+113,239, 10, 10, 10, 90, 45, 90,180,104,211,178,101,203,150,255,244,211, 79,220,186,204,201,170, 10,226,180,164,203, 61, 91,124,
+189,250,215, 65, 7, 29,116,208,225,127, 2,179, 42,188, 67,107,161, 85, 38, 24,178,144, 13, 96, 94,227,198,204,146,184, 56, 40,
+191,150,101,149,121,186,190, 16, 47, 0, 12,169,243,209, 36, 81,248,244,109, 82,209,179,183, 73, 69,160, 25,134,102, 24, 5, 73,
+ 34, 69,162, 82,109,121, 27,159, 86,247, 85,119, 4,161,121,241, 46, 89,246,242,125,138,156,161,105,134,102, 24, 37, 65,224,131,
+ 90, 77,111,137,142, 79,250,227,191,193,222,143,145, 87, 30,251, 83, 68,143,199,207,162,150, 72, 36,170,189, 31, 99,174, 4,127,
+197,122, 81, 71, 70, 70, 78,236,218,181,235, 52,141, 70,227, 11, 64,253, 5, 92, 74,138,162, 86,110,221,186,245, 82,100,100,228,
+185,224,224,224,140,175, 33,178,254,214,250,215, 65, 7, 29,116,208,225,223,138,186, 37,149,174, 10, 95, 83,100,253, 55, 34,234,
+ 93, 98,251,191,131, 55,250, 93, 98,203,255, 15,246,102,198, 92,126,153, 9,120,254, 77,197, 27,160,209,104, 2,190,166,168,190,
+121,243,102, 67, 84,146, 86,231,191,173,254,117,208, 65, 7, 29,116,248,215, 98, 86, 85,226,139,173, 43, 27, 29,254, 5, 96,190,
+150,200,210, 65, 7, 29,116,208, 65,135, 58,160, 74,143, 22,129,170, 87, 14,220,169,197, 31,212,101,245,193, 29, 29,167,142, 83,
+199,169,227,212,113,234, 56,117,156,255,115,156,255, 70,216,160,120, 66,252,181,146,247,106,197,215,215,132,110,233,171,142, 83,
+199,169,227,212,113,234, 56,117,156, 58,206,127, 59, 42,157, 8, 15, 20, 79, 30,214, 65, 7, 29,116,208, 65,135,255, 79,224,151,
+188,234,250,187, 14, 58,252,221, 98,171, 76,112,213,101,142, 86,211,146,247,119,127,163,177, 94, 54, 54, 54,179, 90,183,110,237,
+204,229,114,201,194,194,194,141,247,238,221,219, 80,113,167, 30, 46,236,151, 44, 18,246,127,125, 67, 0, 4, 11, 32, 73,104, 24,
+164, 62,140,144,117,208,213,251,127, 53, 28,244, 13, 45,254, 36, 72, 22, 79, 67,169,160, 81,171, 80, 60,221,170, 24, 52, 77, 37,
+105, 84, 10,143,170, 14,182,110, 51,162, 62,165,161,127, 2,152,125, 0, 57, 23,160,247, 19, 96,207, 97, 64, 29, 32,192,250, 14,
+ 44,230,103,104,136, 21,108, 14,107, 85, 70,232,133,148,127, 67,129,157, 63,127,158,245, 37,199,143, 25, 51,166,210, 4,162,182,
+182,182,254, 2,129,160, 73, 85,199, 73, 36,146,140,140,140, 12,247,127,121,123,236, 9, 96, 15,128, 22, 21,190,127, 13, 96, 33,
+128,192, 47,253, 3, 55,128,109, 5,204,230, 2, 43, 0, 64, 5,252,156, 9, 28, 12,250, 47,154, 99,104, 97, 97,241,128,205,102,
+ 59, 74, 36, 18, 73, 97, 97, 97, 99, 3, 3,131, 56,161, 80, 40,164, 40,234,109,118,118,118,207,234,142,101,138, 23,165,212,136,
+150,128, 65, 44, 48, 78, 67,146,243, 57,192, 62, 5, 77,251,150,220,193,181, 73,112, 59, 23,127,165,231, 90, 14, 96,127, 45,127,
+215, 65,135,191, 3, 95,180,234,208,169,248,254, 0, 55, 0, 61, 59,118,236,104, 37,145, 72,240,250,245,235, 76, 0, 15, 0, 4,
+149,188, 98,191,134,165, 36, 73,110,223,177, 99,199,210,249,243,231,151, 37,131,142,136,136, 64,155, 54,159,199, 8,101,145,176,
+191,119,245,142,229,139,200, 88,116,236, 59,186, 68,104,145,128, 36, 3,238,253, 58,213,213, 4, 3, 19, 19,147,141, 4, 65,140,
+ 33, 73,178,198,155, 6, 77,211, 26,134, 97,206,139,197,226,245, 0, 10,107,243, 71, 66, 1, 95, 77,105, 52,149,254, 7,155,197,
+210, 72,164,138, 42,195, 94,152,154,154, 6,147, 36,217,168,124,194,108,224,211, 4,218, 85,253, 70, 81, 84,234,199,143, 31,181,
+ 17,161,122, 36,155,187,144, 32,184,253, 64,210, 78, 0, 1, 2,100, 44,173, 81,222,166, 41,213, 46, 0,242, 47, 17, 89, 54,245,
+ 26, 63, 92,188,102,171,125, 84,204,107,172,246,154,128,159,246, 28,199,170,133,211,176,235,208,105, 44,156, 53, 30, 46, 46, 45,
+170,189,235,210,224,110, 89,179, 96, 76, 95,159,125,231, 92, 87,205, 27,195,247,217,119,190,199,106,175,113,188, 45,123,207,245,
+ 88,237, 53,150,239,179,247,156,235,170, 5, 99,244,183,236,191, 64, 3,152, 84, 23, 35,199, 59,218, 74, 8,138,170,244,201,152,
+ 97,179, 21,167,223,166, 11,255, 19, 87,244,148, 41, 83, 90,203,100,178,144, 9,253,218,109,109,235,100,151, 86,217, 62, 57, 31,
+210,236,226,222,132,122,115,184,250,237,135,121, 31,143,168,214, 61,192,231, 55,122,253,250,181, 35, 77,211,208,104, 52,160, 40,
+170,236, 93,169, 84,162,103,207,158, 95,107,225,204, 16, 0, 27,139, 47, 86,248, 0, 56,247, 5, 92, 34, 54,155,189,152,199,227,
+185, 81, 20,229, 12, 0, 28, 14, 39, 70,161, 80, 4, 81, 20,181, 3, 64, 81, 45,249,118,166,165,165,185,136, 68, 34,168, 84,170,
+178, 4,244, 44, 22,171,121,253,250,245,247,201,229,114,199, 47, 61,121, 43, 96,118, 55, 87,215, 93,147,151, 46,101,201, 30, 60,
+192,174, 99,199,118,162,160, 0, 0,246,213,116, 44,143,199,187, 69,146,164, 67,109,254,143,166,233, 36,165, 82,233, 81,155, 99,
+216,108,182, 99,122,122,186,165,173,173, 45, 10, 11, 11, 33, 20, 10,133,165,219, 95,130, 32,128, 24, 0,244,164, 88,172, 69,102,
+230,230, 61, 66, 2, 2,132, 45, 91,182, 36, 89, 44,214, 42,104, 31,164,154, 15, 96, 27,195, 48,250, 37,253,197,174, 46, 93,186,
+116, 37, 8,130, 2,192,208, 52, 77, 62,123,246,108, 60, 77,211,236,146,123,222, 54, 0,199, 0, 40,116, 58, 64,135,127,192,155,
+117,168,182, 66,235, 58, 0,183,142, 29, 59,234,123,122,122,194,205,205, 13,142,142,142,208,211,211, 43,190,137,231,228, 88,133,
+133,133,141,125,240,224,193,216,171, 87,175,226,213,171, 87, 50, 0,143, 0, 84,122, 81,247, 25,236, 58, 95, 79,196,223, 13, 0,
+217,169, 57, 25,169,241, 89,187, 51, 50, 50,182, 1, 40, 31, 34,188,241,164, 73,147,150, 44, 88,176, 0,254,254,254, 56,125,250,
+ 52, 20, 10, 5, 10, 11,171,209, 47,210, 44,136,239,110, 5,132, 9, 64,114, 16, 32,176, 4,132, 86,117, 46, 41, 19, 19,147,141,
+ 11, 23, 46, 92,228,226,226, 82, 22,197, 92,173, 86,131,162, 40,168,213,106,136,197, 98, 44, 89,178,164,184,163,101, 24,208, 52,
+141, 27, 55,110,204,159, 53,107, 22,196, 98,241,226,202, 56,187,180,175,247,146, 36, 72,251, 82, 95, 13,163,209,164, 62, 13, 75,
+237, 64,105, 52, 44,185, 92, 85,105,166,114, 61, 61,110,181, 34,143,195,225,216,191,250,243, 79, 75,146,199, 3,163,209, 0, 52,
+ 13,134,166, 75,138,179,228,197, 20,127,199,104,104, 48,106, 13,104,138, 6, 37, 83,160,211,220,185,218, 20, 69, 55, 14, 79,255,
+244,196,153, 75,173, 59,119,233,194,105, 80,207, 22,148,134,198,251,132, 84,235,144,151, 79,187,159,255,125,223, 28,165,172,112,
+ 60,128, 58,197,217,226, 9, 12, 3,246, 30, 56,108,255, 34, 44, 10,129,247, 30,224,206,221, 32, 0,192,173,123,193,165,130,187,
+198,170, 2, 85,212,106,225,244,225,252,173,123,207,112, 22, 78, 31,193,250,105,239, 89,206,130,105,195, 88, 91,119,159,230, 46,
+152, 54,140,181,117,207,105,238,130,233,195, 89, 62,187,142,182, 6, 96, 2, 64, 92, 21, 89, 85,117, 68, 80, 20,255,100, 92, 38,
+ 11, 0,178,125,125,161,206,202,130,237,250,245, 0,128,137,141,173,180, 30,154, 48, 55, 55,127,201,225,112,236,107,218, 79,173,
+ 86,215, 40,130,167, 76,153,210, 70, 38,147,189,164, 40,138, 97,179,217,222, 19, 70,244,191, 50,160, 71,155,156,242,251, 68, 68,
+132,155,109,217,242,231,240,115, 33,133,204,216,246, 6, 33,254,219,167,116, 24,188,236,120,120, 53, 29, 50,169, 80, 40,240,246,
+237, 91,148, 79,242, 94, 14,154, 58, 94, 82, 36,128, 93,102,102,102,157,115,114,114, 38, 2, 88, 93, 80, 80,208,154,197, 98,193,
+212,212,116,181, 82,169,124,111,100,100,116, 36, 63, 63, 63,184,196,107,164,109,202,128,158,134,134,134,126,151, 47, 95, 54,105,
+215,174, 29,249,241,227, 71, 52,108,216, 16,185,185,185,157, 30, 60,120,208,126,250,244,233,211, 11, 11, 11,191, 45,121, 24,212,
+ 22,205, 4, 2, 1, 51,121,242,100, 66,163,249,235,116,143, 30, 61, 10,143,150, 84, 19, 11, 99,129, 84,174,100,242, 3,223, 26,
+125,199,229,114, 31, 37, 37, 37,229,215,182, 48,184,192,138,201, 75,151,178, 68,137,137, 16,133,135, 99, 98, 65, 1,251,167, 98,
+239, 86,141, 66,139, 36, 73, 7,191,211,191, 57,242,120, 60, 80, 20, 85, 38, 6, 75,239, 81,106,181, 26, 42,149, 10,106,181, 26,
+ 26,141, 6,106,149, 26, 62, 63,254, 92,231,123,161, 64, 32, 16,216,216,216,100, 10, 4, 2,193, 23,138,203,250,185, 36, 57,179,
+109,251,246,179,214, 15, 31,174,247,252,249,115, 61,146, 36, 65, 81, 20,182,109,219, 70, 49, 12, 99,236, 2, 24,190, 2, 10,106,
+203,205,231,243,217,191,255,254,251,120, 30,143, 7, 0, 80, 42,149,104,217,178, 37,161,235,243,117,248, 15,138,173,207,188, 92,
+213, 9,173,129, 5, 5, 5,208,104, 52, 48, 48, 48, 0,139,245,105,191,111,102,102,134,126,253,250,161,103,207,158,240,244,244,
+196,171, 87,175,244, 61, 61, 61,251, 85, 69, 54, 97,233, 96,212,115,180, 42,233, 76,104,155,199,215,194,182, 30,253,225,130,197,
+135, 15, 31,150,150,219,109,250,236,217,179,137,156,156, 28,140, 25, 51,230,129, 66,161, 24,138,106, 46, 62, 13,141, 84,119,207,
+137,160, 25, 66,127,199,179,195,132, 82, 46, 99, 72,146,148,149, 14, 29,214,165,148, 8,130, 24, 99,107,107,139, 51,103,206, 64,
+169,252, 60, 92,152,161,161, 33,162,163,163,255,242,170,177, 88,232,210,165, 11,139, 32,136, 49, 0, 22, 87,206, 73,218, 63,126,
+145,104, 89,186, 61,184, 95, 11,110,151,246,100,102,122,166,132, 1, 64,172, 89,179,166, 76,184, 1,192,198,141, 27,181,177, 19,
+ 36,135,131,236,160,160,191,110,196,108, 18, 36,151, 0,193, 1, 72,118,241, 40, 42, 24,128,209, 0, 52, 5,208,106, 64,207,166,
+158, 54,197,208,201,174,190,163,255,150, 95,247, 27, 43,212, 12,206,252, 17,136,132,132,120,176, 72, 18,141,155, 56,162,127,175,
+ 30,156,246, 29,187,214,251,121,195,210,171,233,201,239, 6, 2,120, 94,235,130,166, 25,189, 38,245,205,113,228,104, 8, 44, 76,
+ 68, 24, 51,252, 27,232,235,241,241,211,158,223,240,227, 42, 47, 56, 54,118,192,193,157,155,171, 60,220,200,200,104,147,179, 99,
+ 19,135,253,191, 95,131,115,243,230,172,253,126,215,224,236, 82,242,222,194,153,181,223,239, 26, 92, 90,184,176,246,251, 93, 67,
+235, 22,205, 26,188,204,120,182, 41, 55, 55,215,171,234,242,172, 80, 71,253,139,235,136, 83, 68,151,221,180, 19,231,204, 1,128,
+ 50,161, 85, 27,112, 56, 28,251,244,244,116,203,154,246,171,201,107, 80,226,201,122, 73, 81, 20,178,178,178,136,188,188, 60,198,
+216,216,120,248,205,131,171, 47,123,184,182,201, 5,128,240,240,112, 83, 31,159, 45,195,207,190, 44,128,236,233, 94,226,228,159,
+ 65,244,196,161,110, 47,255,216, 58,165, 61, 74, 82, 66, 84,132, 66,161, 72,104,219,182, 45, 83,242,217,142,207,231,115, 43,180,
+ 55,219,166, 77,155,126,230,181,214, 98, 72,113,215,147, 39, 79,188, 92, 92, 92,208,188,121,243,224,206,157, 59, 27, 10,133, 66,
+220,188,121, 19,206,206,206, 45, 12, 13, 13,159,157, 63,127,158,179,114,229,202, 54,199,142, 29, 3,128,249, 90, 20,103, 95,119,
+119,247, 51,254,254,254,122, 92, 46, 23, 50,153, 12,209,209,209, 48, 50, 50, 2,143,199,195,176, 97,195, 88,221,187,119, 55,235,
+213,171,215,197,216,216,216,241,168,197, 10, 40,185, 92,206,172, 94,189, 26, 2,129, 0, 2,129, 0, 66,161, 16, 66,161, 16, 34,
+ 61, 16,190, 11,235,235, 47, 56,148,167,191,120,189,239, 86,191,253, 27,238,213,171, 71,175, 75, 73, 73,201,171,109, 91,144, 61,
+120, 0, 81,120, 56, 80,238,218,213, 22, 70, 66, 83,120,123,123,215,228,145, 2,151,203, 69,183,110,221,106,228, 51, 53, 53,189,
+196,102,179, 63,121, 50,165, 40, 74,207,219,219, 91, 19, 27, 27, 43, 36, 73, 82, 72,211, 52,188,189,189, 53, 20, 69,233, 89, 90,
+ 90, 6,211, 52,157,249,241,227,199,255, 99,239,186,195,162,184,214,247, 59,179,125,233,189,169,160,162, 40, 8,130, 13,197,134,
+ 93, 19, 49,177,198,216,141, 38,222, 36,150, 88, 18,177, 69, 99,131,196, 26, 19,141,154,196,104,188, 54,236, 98,239, 38,118, 5,
+145,162,160, 72, 19, 22, 88,250,194,182,217,157,153,223, 31,176, 43, 32, 91,208,220,223, 45,217,247,121,246,217,157,157,217,119,
+207,153,114,206,123,190,239, 59,223, 25,105,140,183, 15, 32,186, 5,140, 32,120,188,185,158, 94, 94, 45,194,125,125,173, 46, 93,
+186,196, 1, 0, 31, 31, 31, 86, 34,145,148,157, 56,113, 66,198, 5,126,242, 97,217, 61,141, 16, 89, 42, 0, 95,146, 36,249,189,
+ 80, 40,228, 54,111,222, 60,107,217,178,101,183,107, 44,164, 96, 89,150,108,222,188,121,168, 88, 44,246, 81,169, 84, 90, 84,187,
+ 14, 45,214,172,255, 1,176, 44,219,169, 90,183,235,161, 6, 32,208, 25,240,171,123, 59,184,212,251, 30, 0,138,106, 6,138,238,
+ 6,182,139, 1, 36, 3,104, 11,192,173,102,223,125,130, 32, 74,222,160,152,134, 45, 90,177,177,177,250, 33,108, 68, 68,132,190,
+ 99,177,181,181,197,253,251,247, 65, 16, 4,108,109,109, 97,103,103, 7,123,123,123, 84, 84, 84, 32, 57, 57, 25, 79,158, 60, 65,
+102,102, 38, 8,130,128,175,175, 47,116, 55,123, 45,232, 27,184,125, 27, 98, 33,178, 17,130, 32,128,142,253,130, 17,220, 59, 8,
+ 93,238,165,207,121,112,137,216, 41,145, 72,210, 0,112,131,130,130,166,117,235,214, 13, 27, 55,110,132, 74,165,218,104, 64,100,
+233, 57,255, 72,214,118, 6, 0, 79, 79,207, 5,123,207, 61,183,154, 56,164,149, 92, 34,145,172,127,131,147, 83,167, 33, 46, 42,
+ 42, 50,123, 45, 62,134, 97, 80, 90, 90,106,148,179,190,133, 96,211,247, 63, 58,200,202, 11,176,234,219,189,208,104, 52,152, 63,
+127, 62, 24,134,209,191,202,202,202,204, 42, 39, 75,211,175,219, 14,200,106,239, 41,193, 5,188,199, 86,235,138,236, 3, 63,130,
+ 96, 1,130, 6,240,122,189,234,119, 66, 34, 14, 95,124,112,197,183, 91, 28,226,158,188,196,137,203,113,160, 42,114, 33,121,116,
+172,218,228,216,125, 28, 14,169, 56,232, 26,220, 10, 95, 44,249,206,113,233, 23,147, 14,170, 21, 50,127,212,117, 35, 94, 50,253,
+208,208, 88,181,114, 37,118,110,217,136,239, 54,110, 65, 69,121, 25,120, 60,151,154,134,158, 6, 77,211,198,235,206,178, 67, 34,
+231, 76, 37,190,253,233, 40, 66,219,121,226,200,185,123,232,217,193, 7,199, 46, 60, 64,239, 78, 45,112,226, 82, 28,250,117,109,
+133, 51,215, 19,241,197,140,113,196,184,243,187,134, 52,230, 26,109,222,252,163,131,172,162, 0,177,107,246,160,112,235, 86,100,
+205,156,137,208,154, 99,238, 17, 4,248, 77,155, 2,124,211,215,168, 62, 82, 82, 82,160, 82,169, 26, 26,153, 35, 32, 32,192,228,
+117, 87, 40, 20, 15,181, 90, 45, 91, 80, 80, 64, 20, 20, 20,192,218,218,154, 72, 74, 74,164, 3, 3,131, 70,176, 79, 14,255, 12,
+ 0, 81, 81,107, 71, 28,122, 88, 1,249,173, 45, 80,220,254, 1,252, 22, 9,228,206,111,102, 80,159, 44,223,241,176,214, 51, 90,
+167,156,249,249,249,239,228,231,231, 3, 0, 90,182,108,249, 36, 53, 53,181,173,206,213, 92,227, 66,228,107,181, 90, 63,157, 59,
+ 81,171,213, 66,165, 82, 97,192,128, 1, 28, 99,117,119,116,116,236, 22, 16, 16,128,184,184, 56,108,217,178,197,169,111,223,190,
+120,246,236, 25, 8,130,192,218,181,107,137,118,237,218,241,138,138,138, 48,120,240, 96, 28, 61,122,180,123, 69, 69,133,169,243,
+105,107,109,109,189,235,212,169, 83, 34,146, 36, 33,147,201,192, 48, 12,122,244,232, 1,146, 36,145,152,152,136, 37, 75,150,224,
+232,209,163, 56,126,252,184,184, 83,167, 78,187,228,114,121, 0,234,186,245, 13, 93, 35, 86,169, 84,178, 66,161, 16, 66,161, 16,
+ 34,145, 8, 34,145, 8, 2,129, 0,149, 74,224,147, 77, 89, 42,142,200,133, 9,236,208,179,213,212,217,107,201,245,203, 62,186,
+ 2,224,132,185,247, 60, 80, 29,147,245,253,111,191,109,153, 80, 94, 78, 2,192, 47, 4,193, 80, 44,251,157, 57,207, 59, 0, 84,
+ 42,203,225,227,219, 20, 71, 14, 30,199,168,177,195, 27, 20, 89, 60, 30, 31,124, 30, 15,118, 78,214, 38, 57,249,124,190,251,147,
+ 39, 79,156,121, 60, 30, 88,150, 5, 77,211,160, 40,170, 96,233,210,165,174, 67,135, 14,181, 61,123,246, 44, 57,116,232, 80,198,
+209,209,177,234,222,189,123,133, 90,173,214,185, 87,175, 94, 6, 57,173,128, 96,165,125,235,239, 5, 28,109,112,244,226,207,133,
+147, 38, 77,226, 76,157, 58, 21,217,217,217,152, 54,109,154,242,226,197,139,234,124,137,228,132,128, 97,126,164,128, 4,115,219,
+228,122,216, 22, 28, 28,220,241,216,177, 99, 31, 69, 70, 70, 62, 88,176, 96,193,170,218, 59,215,173, 91,183,242,204,153, 51, 62,
+ 35, 70,140,248,253,209,163, 71,219, 26,211, 46,189,109,223, 97,225,124, 59, 24,210, 34, 58,227, 40, 65, 16,177,181,218,236, 8,
+221,118,100,100,228,226,168,168,168, 36,130, 32, 98,107,127,175, 59,174,102,176, 24,219,208,118,205,111,157, 22, 45, 90, 20, 20,
+ 29, 29,189, 54, 44, 44,236,192,173, 91,183, 94, 0,104,172,208, 50, 30,163,165,171, 80,237, 74,214,235,212, 80, 81, 81,129,138,
+138, 10,228,228,228, 96,251,246,237, 53, 15, 52, 15, 92, 46, 23, 92, 46, 87, 31,207, 96, 8,151, 99,255,252, 1,192, 15, 29, 59,
+118,228, 61,190, 29,115,246,171,157,179,251,119, 30,208,145,243,240,242,227,209,168, 94,143,240,157,201,147, 39,187, 0,192,158,
+ 61,123,138, 0,156,253, 55,169,230,152,180,180,180, 47, 60, 61, 61,245, 49, 42,181,221,135, 90,173, 22, 34,145, 8,186, 88, 22,
+165, 82,137,237,219,183,107, 89,150,141, 49,194,137,212,164, 43, 72, 75,186, 90,253, 59,134, 1, 67,191,250,253,138, 21, 43,192,
+178,172,190,179,255,180,198,114, 98, 82,228, 53,116,206,217,122,239,245,190,103,105,218,132,123,130, 63,123,244,164,153,158, 12,
+193,197,201, 43,241,224,241,120, 96,106, 89, 51,121,156,234,209,114,210,179, 60,120,185, 7,226,189,113, 51, 60,142,253,254,227,
+108, 45,165,252,182,177,231,218, 63, 56, 12,115,190,248, 2, 63,239,220,137, 37,203, 87,234, 21,128,150,166,161, 53, 89, 78,146,
+ 28,208, 35, 8,218,202, 60,112, 56, 28,244, 11,109, 5, 14,135,131,129, 97,109,192,225,112, 48,184,135, 63,184, 92, 46,134,244,
+108,135,214,173, 91,131,203,229,146, 38,174, 59, 82,147, 46, 35, 45,233, 90, 45,209,203,130, 5, 64, 73, 36,175, 29,175,145, 72,
+192,122, 59, 55,246,222,194,180,105,211,202,114,114,114,168,250,251,154, 53,107,198,191,113,227,134,131, 1,183,157, 30, 98,177,
+184, 19,151,203,125, 88, 82, 82,194, 88, 89, 89,145, 12, 67, 51,129,129, 65,156,115, 59, 22, 31,211, 29,179,104,209,226, 99, 31,
+116,178, 27,177, 55, 38,150,229, 55,239, 73, 16, 60,161,246,227,229, 59,248, 60,190,184, 19,160, 48,103,240, 64,170, 84, 42, 60,
+125,250, 20,166,202,195,178,172, 81, 55, 77,105,105,233,228,128,128,128, 27, 63,252,240,131, 19, 65, 16,248,227,143, 63,192,225,
+112,244,175,244,244,116,144, 36,137,175,190,250,138,170,168,168,152,110,170,108, 92, 46,247,139, 35, 71,142,216, 11, 4, 2,200,
+100, 50,253,115,195,225,112,240,228,201, 19,172, 95,191, 30,147, 39, 79, 70,118,118, 54,188,188,188, 48,127,254,124,155,232,232,
+232, 47, 40,138, 90,105,198, 37, 74, 80,171,213,157,173,172,172, 32, 18,137,160, 19, 92, 0,112, 33,137,151,168, 80, 40,218, 59,
+ 59,203, 61, 92,175,199,158,236,222,247,189, 16,103, 87,207, 48,137, 68,210,168,165,179,158, 3, 59, 51,104,122,233, 59,199,142,
+185,221, 60,118,140,185,115,234,212, 75,161, 76,182,195,236,123, 72, 67, 34, 43,253, 37, 58,117,234,132,135, 15, 31,162, 83,167,
+ 78,181, 69, 19, 4, 2, 1,248,124, 62,248,124, 62, 92, 28,205, 10,161, 96, 73,146,196,205,155, 55, 65,211, 52,212,106, 53,212,
+106, 53,218,181,107, 87,114,245,234, 85, 27, 0, 72, 79, 79,103, 39, 78,156, 88,118,247,238, 93,116,232, 96,124, 61,117, 37, 65,
+ 92, 94,177,118,131,253,183,155,119,193,222,201, 29,215,175, 95,167,207,157, 59, 39, 35,128,212,180,164,164,141,239, 1,103, 98,
+ 0,170, 49,231,204,221,221,253, 6,135,195,105, 94,251,187,226,226, 98,199,145, 35, 71,162,180,180,244,221,145, 35, 71,246,172,
+105, 19,114, 15, 31, 62, 60, 17, 0, 4, 2, 1, 72,146,164, 97,193,127, 21, 76,105,145,218, 66,169,190,224,138,138,138,138,168,
+255, 93,109, 81,213,208,231,218,191,141,142,142, 94, 91,139, 91,241, 6,197, 55, 29,163, 21, 27, 27,203, 54,160, 32,205,134, 41,
+161,165, 67, 92, 92,156,198,203,203,235,231,180,248,204,254,173,130,125, 33,182, 22, 14, 2,240,131, 80, 40,156, 55,105,210, 36,
+220,185,115, 7,137,137,137,191,226, 45,103,225, 4, 5, 5,157, 23, 10,133, 62, 6,220, 36, 89,137,137,137,131, 13,116, 12,203,
+ 79,157, 58, 5, 99,193,240, 87,174, 92,169,221, 41,213, 14,134,111,248,198, 96, 88,104, 40, 13,170,228,138, 87,157,120,141,208,
+170,170,170,194,216,177, 99,235, 88,180, 10, 11, 11, 77,214,143, 32, 8,172, 63,113, 2, 23, 99, 98,240,110, 72, 8,142,222,187,
+135,232, 73,227,225,239,211, 4, 44, 77,128, 37,128,236,253, 63,162,184,162, 18,251, 46,223, 68,137, 76,142, 9,189,122,193,207,
+206,197, 56, 47,143, 63, 48,180, 91, 24,255,210,173,100,240,120, 92,144, 96,192,106,228,240, 10,232, 3, 14, 73,194,222,189, 5,
+248, 60, 30,120, 60, 46,210,115,138, 16, 16,212, 69, 16, 43, 16, 13,124, 19,161,213,204,167, 5,104,154,198,228,201,147,113,224,
+192, 1, 56,123,248,192,190, 89, 16, 86,111,220,137,119, 7,244, 50, 89,127,221, 8,158,203,229,130,195,225,188,246,174,251,108,
+142,117,146,101, 88, 80,245,175, 17,195, 2, 44,139,166,107,214,160,233,154, 53,184, 87,243,159,237,170,170,160, 80, 40,128,174,
+129,141, 18, 89,106,181, 26, 57, 57, 57, 84,126,126,190,123, 3,251, 11,212,106,181, 73, 97,179,123,247,238,132, 41, 83,166,116,
+118,114,114,122,144,240,232,145, 38, 56, 36,132,119,118,251,226,227, 58,183, 33, 0,132,132,132,148, 44, 94,188,248,248,196, 49,
+ 17,195,183, 69,126, 72,127,182,242,119,174, 80, 44,238, 28,177, 96,119,194,254, 49, 99, 76,251,102, 84,170,140,224,224, 96,214,
+156,122,201,229,242,124, 35,187,135, 1,248,166, 99,199,142,118,125,251,246,197,141, 27, 55, 48,106,212, 40, 21, 69, 81,105, 0,
+ 48,116,232,208, 54,251,246,237, 19, 36, 39, 39,195,213,213,149,151,149,149,181, 11, 38, 2,228, 5, 2, 65,159, 46, 93,186,144,
+ 42,149,234, 53,145, 21, 29, 29,141,113,227,198,161, 77,155, 54, 96, 24, 6,149,149,149,232,219,183, 47,111,203,150, 45,125,204,
+ 20, 90,115,252,253,253,215,163,122,214, 97,237,182, 48,165,198, 5,133,226,226,226,252,248,187,151,147,122, 13, 24,217,185,121,
+235, 32,207,196,132,135, 70, 9,221,220,220, 22,145, 36,249, 1,195, 48,156,138,138,138,156,120,181,186,117, 59, 31, 31,247, 30,
+195,135,163,156,199,227,124,127,249, 50, 89, 32,147,217, 0, 48,203, 5,169,212, 84,193,199,183, 58,212,111,212,216,225,120,248,
+240, 33, 70,127, 56, 2,124, 62, 31, 92, 46,175,250,217,228, 87, 91,180, 28, 92,236,204,186, 55, 53, 26,141,190, 13,215,197,121,
+ 81, 20, 5, 93,104,150,149,149,149,126,159, 74,165, 2, 65, 16,198,238, 13,178,111,239, 30,184, 21,151,170,157,254,213,247, 42,
+ 94,241,195,104, 15,134,217,253, 18, 40,120,139,230,220,239,208,202,101,110, 98, 59,123,208, 26, 13, 2,135,143,214, 63, 39,119,
+127,217, 38, 6,195,136,203,178, 50, 48, 43,230,212, 95,189,102,174, 5,255, 6,152,210, 34,181,133,210,219,130, 32,136,216,200,
+200,200,197, 0,216,200,200,200,197,186,237,168,168, 40, 5,128,220, 55, 20, 91,175, 89,185,184,127,133,200,210,185, 23,140,161,
+111,223,190,179,108,109,109,183,232,182,115,238,228, 34,231, 78, 46, 2,218, 6,246,232, 24,210,185,124,220,184,113,112,118,118,
+198,130, 5, 11, 88, 0,191, 54,246,255,211, 83,147,108, 0,176,158,158,158, 11,106, 26,228,144,123,247,238,185,222,191,127, 31,
+ 93,186,116,121,101,186,167, 40,244,236,217,211, 24,149,172, 38,168,125,238, 95,103, 37, 99, 64, 81, 20,228,114, 5,212,106, 10,
+ 90, 13, 3,173, 86,139, 78,129,182,248,125,103,100,245,119, 90,157,245,172,218,106,214,212,195, 22,182, 54, 60, 13, 73, 18,138,
+ 7, 9,249, 13,182,152,106,181, 26, 9, 89, 89,120,148,153, 9, 0,120, 47,202,120,224,235,239,151,111,160, 93,187,118,166, 74,
+219,170,169,151, 7,242, 46, 38, 84, 55,222,138, 28,220,255,243, 16,108,109,109, 0, 0,129,225, 19,192,231, 87, 11,173, 42, 5,
+ 5,151,182,205, 64,176,172,193,180, 0, 86,142, 30,231,185,124,145, 15, 75, 51, 96, 89, 6, 44, 67,131,101, 25,112,120,124,171,
+ 89,159,126, 4,134,161, 17, 26, 26, 10,130,195, 1,173, 81, 97,204,176,129, 40, 45,151,193,217,193,188, 78,130,207,231, 35, 60,
+ 60, 92,108,104,255,179,103,207, 20,181,133,153,241,107,164, 65, 85,149, 2, 42,149, 10,148, 90, 11, 74,163, 5,221,146,143, 85,
+ 75,199, 67, 75,105, 33,255, 48, 12,148, 70, 11,230,139, 17,160,212, 26,100, 91,145,100,112,128,139,134, 4,161,136, 79,145,218,
+153, 18, 90, 58,113, 96, 8, 13,197, 4, 26, 16, 91,143,166, 76,153,210, 41, 56, 36,228,225, 7, 3, 66, 54, 60, 78, 76,202,123,
+156,152,244,218,113, 62,109, 66, 50, 62,139, 62, 48,159,199, 23,119,138, 88, 96,124,214, 97,109,212,118, 35,190, 37, 22,203,100,
+178, 96, 27, 27, 27,164,166,166,130,195,225,128, 32,136,103, 0,130, 1,192,211,211,243, 57,151,203,245,229,112, 56,216,186,117,
+ 43,193,229,114,219,135,133,133, 45, 86, 42,149,135,140, 12,232, 2,108,109,109,235, 88,179,248,124, 62, 34, 35, 35, 49,113,226,
+ 68,189,200,226,243,249,216,189,123, 55, 58,119,238, 12,181, 90, 29, 96,102,121,239, 3,232,101,134,197,143,168, 17,231, 38,197,
+168, 86,171,157, 82,252,193, 7,173,113,253, 58,122,248,250,182,235,212,169, 19, 40,234,149, 65,199,215,215,183,153, 76, 38,203,
+ 87, 40, 20,255, 68,117, 26,130,120,163,162, 72,201, 32, 43,189, 58,252,244,225,195,135, 8, 13, 13,213, 91,176,106, 91,179,248,
+124, 62,196, 2,155, 70, 9, 45,134,169,110,151,100, 50, 25,121,253,250,117, 23,127,127,127, 2, 0,252,253,253,137,248,248,120,
+ 39, 43, 43,171,162, 86,173, 90,153, 26, 0,243, 1,160,207,160,145,220,139,231,206, 88,107,129,149,249, 28,206, 74,174,201, 54,
+146,213,208, 12, 99, 48,232, 94,108,103,143,221, 83,198, 2, 0,190, 30, 48, 68, 63,216, 58,247,205, 98,240,120, 60,244, 95,176,
+248,181,103,137, 97, 24, 14, 44,248,159, 18, 89, 13, 89,180,222,174,111,126,101,209,138,138,138, 74,138,138,138,122,205, 58,214,
+ 72,152,182,104,213, 54,221, 53, 22,186,135,213, 16, 54,110,220,136,246,237,219, 27,237,136,182,108,217,130,189,123,247,110, 4,
+144,222,104,147, 99,255,142,129,216,116, 44,201,183, 77, 32, 1, 0, 43,191, 24, 70, 86, 85, 85,225,230,205,155,176,183,183,199,
+179,103,102,167,253,178,181,183,183,255,134, 36,201, 49,156,250, 51, 0, 26, 22,152, 52,195, 48, 49,229,229,229, 6,211, 59,176,
+ 44, 64,105,180,168,146, 43,161, 86,171,241,197, 87, 63,154, 44, 68, 20, 64, 80,106, 25, 55,188,119,152,216,144, 69, 39,180,125,
+ 31,124, 62,201,230,181,206,155, 67, 2, 36, 9,116, 8,173,182,184,196,223, 75, 2,195, 0, 52, 3,184,184, 57,226,215,253, 27,
+140,138,124, 45,205,212,140,142,105, 84,170,104, 4,116,139,192,203,148,235,122, 11,146,128, 95,237, 50,230,243,120, 96, 88,162,
+ 58,235,131,161, 86, 87, 32,246, 41,149,164,251,237,140,125,140, 79, 34,218,227,240,165, 4,140, 30, 16,140,171,119,147,209,183,
+107, 59, 36,165,101, 34,208,175, 57,182,238,138, 1,203, 66,246,211,166,213,249,175, 58, 52,109,150, 57, 22,173, 59,119,238, 40,
+234, 91,177,106,191,179,166,251, 67,176,236, 43,139,150, 66,169,194,130, 69,102,165,222,169,190, 70,189,186,137,205, 57,216,152,
+197,202, 28, 33, 86,223,178, 5, 19,233, 89, 90, 2,232, 12, 44,252,119, 54,156, 52, 77,227,244,233,211,250,235,209,208,117,172,
+125,237,204, 16, 57,200,202,202, 66, 82, 82, 18,186,117,235,134,242,242,114,240, 72, 18,243, 31, 63, 70,187, 73,147,160,230,243,
+193, 48, 12, 4, 2, 1,102,204,152, 97,246,249,108,100,235, 92, 19,120, 77,155, 34,223, 16, 22, 22,214, 58,181,170, 10, 73, 79,
+158, 96,192,138, 21, 0,128, 51,103,206,212,185, 39,230,205,155, 39, 72, 78, 78,158,246,224,193,131,105,121,121,121, 27, 1,204,
+ 55,216,206,178, 42,125,140,214, 7,227, 71,161,181,127, 75,236,253,109,191,126,255,188, 47,231,128,199,227,131,199,231,193,193,
+222,193,172,218,104, 52, 26,189,104,149,203,229,228,153, 51,103,154, 14, 28, 56,144, 63,103,206, 28, 2, 0,246,238,221, 75,254,
+240,195, 15,214, 23, 47, 94,228, 55,105,210, 68, 98,194, 66, 80,145, 91,172, 18, 2,128,183,183, 55,126,220,113,146, 28, 58,116,
+ 40,230,204,153, 3,141, 70,131,109,219,170,159,171,113,227,198,129,162, 40, 28, 57,114, 68,247, 28, 27,181, 70,105, 41,234,181,
+251,134, 32, 8,240,120, 60,240, 5,124,128, 97, 64, 16,132,245,186,117,235, 86, 38, 37, 37,117,241,247,247,135, 74,165,154,132,
+234,201, 31,150, 60, 90,255,101, 98,203,152, 22,105, 40,214,170,198, 42,101, 8,210,218,113, 91,134,132, 90,237,152, 45,188,217,
+ 4, 10,243, 98,180, 26, 2,135,195, 49,105,173,210, 77,213, 53,134,121,243,230,193,214,214,214, 80, 7,196, 62,126,252, 56, 89,
+ 34,145,236, 4,240,227, 27, 93,156,203,113, 73,223,204, 29, 33, 67,141,111,213,193,193,161,168, 95,191,126,149, 0,168, 67,135,
+234, 14,144, 85, 42,149,193, 14,220,222,222,254,155, 95,126,249,101,246,240,225,195,201,250, 41, 6,106,187,247,116, 47,141, 70,
+131, 67,135, 14,205, 94,184,112, 33,202,203,203,231, 26,235,196,229, 85, 10, 40,106, 2,161,159, 39, 30, 54,183, 81, 55,184,203,
+198,193, 19, 77, 91, 6, 27,236, 76, 72,126,117, 12,145,187,247,171, 14,204,214, 86, 4,218, 8, 39, 65,144,233,153,217,121, 77,
+154,121, 56,225,121,142, 20,238,205,219,163, 52,247,213,121,224,114, 57,224,213,184, 14, 29,236,172, 33, 45, 44, 4, 73,114,140,
+ 10,227,213,251,226,112, 55, 49, 19, 71, 46,197,131, 82, 86, 97,211,158,115,160, 84,149,160,148, 85,160,148,213,239,107, 23,126,
+ 12,130, 64,190, 70, 85,213,166, 49,215,157,203,229,162,107,215,174, 6,133, 78,110,110,174,153, 22, 45, 86,111,209, 82, 40, 27,
+121,141,204, 27, 57, 25,181, 88,233,246,191,169, 48,208,165,124, 16,139,197,157,119,239, 54,156,198,161, 33,120,120,120,156,181,
+177,177,105, 97,238,241,141, 72, 94,186,214,193,193,225, 27,127,127,255,128, 77,155, 54,241, 56, 28, 14,250,247,239,223,198,195,
+195, 35, 11, 0, 2, 3, 3,189,116,109,204,103,159,125,198,222,185,115, 39,177,122,140, 97, 24, 2,129,224,137,189,189,125,231,
+190,125,251,162,188,188, 28, 57, 57, 57,176,182,182, 70,187, 13, 27,240,248,179,207, 16,178,125, 59,200,126,253, 64, 16, 4, 4,
+ 2, 1, 30, 63,126, 12,177, 88,252, 68,169, 52,152,242,173, 43,128,239, 0,244,192, 43,119, 33, 11,224, 38,170,211, 46,220,109,
+160,189, 35, 1,128,102, 24, 83, 23,107,252,130, 5, 11, 80,198,227, 1, 67,135,130,159,158, 14,138,162,208,173, 91, 55,189,149,
+189, 91,183,110,224,114,185, 8, 14, 14,134,151,151, 23,182,110,221, 58,222,152,208, 82, 86, 82,200, 74,127,137,176,176, 48,189,
+229,106,232,208,161,122,139, 22,143,199,211, 91,182, 8,218,180,112, 37, 8,130,173, 61, 72,166,105,154,224,114,185,220,185,115,
+231, 18,163, 70,141, 98,213,106, 53, 35, 16, 8,200, 35, 71,142, 16, 87,175, 94,229, 86, 85, 85,153,178, 54, 84,125,248,225,135,
+110,205,154, 53, 69,206,243, 36, 28, 62,204, 98,227,198,141,184,113,163, 58,203, 70,106,106,245,196, 85,221,118,223,190,125,209,
+162, 69, 11,176, 38,110,252,160, 17, 99,240,245,192,119,170,219,147, 22,174,224,241,121, 16,240,249, 88,240,228,165,254, 90,219,
+237, 62, 32,136,142,142, 30,237,239,239, 95,237,218, 7,184,150, 60, 90,255, 93, 48, 97,232,145,214, 19, 73,234, 90,219, 82, 0,
+ 68,205,182,180,150,160,146, 18, 4,113,159,101,217, 46,245,142,213,237, 87,215,123,215,237,127,244, 6,197,215,173,117,248,154,
+248, 50, 54, 34, 78,187,125,251,182, 95,167, 78,157,144,157,157,253,218, 76, 56, 93,199,101,109,109, 13,177, 88,140, 91,183,110,
+ 1, 64,154, 33,178,171, 87,175,254,128,234,172,203,168,113, 27,132,245,253,160,207,173,208, 33, 93,176, 47,106,127,185, 68, 34,
+ 9,198,171, 28, 58,132,151,151,215, 68,158,128, 59,214, 55,200, 59, 28, 12,243,221,229, 83, 55, 87, 24,171,161,111,155,192, 74,
+ 0, 10,221,172,195, 55,156,125, 8,146, 36,199, 12, 31, 62,156, 76, 78, 78,198,216,177, 99,177,119,239, 94,131,199, 78,156, 56,
+ 17, 7, 14, 28,192,240,225,195,201, 69,139, 22, 25, 76,239, 80,215, 90,162,254,203,110,202,212,103,143,240,251,129, 95, 12,198,
+ 32,185,185, 85,199, 99, 21, 22, 22,233,191,235,210,201,184,103,132,209,170, 47,198, 61,184, 23,214,189,119,127,126, 78, 65, 25,
+ 24,173, 10, 74,217,171,223,203,203, 10,192,106,149,224, 91, 57,193,195,197, 30, 15,111, 95, 80, 83,106,229, 69, 99,156,179,135,
+ 7,226,179, 97, 1, 0,203, 96,196,252, 95, 17,251,227, 44,253, 8,186,231,168, 57,184,124,232,123,179, 99,252,234,131,199,227,
+225,241,227,199, 10, 67,214, 44, 14,135, 99, 78, 78,174, 26,171,163, 6,114,185, 2,114,133,242,175,108, 59, 92,221,221,221,127,
+114,116,116, 20, 25, 16, 82,174,174,174,174, 63, 57, 59, 59,139,204,117, 29, 26, 18, 89, 53,121,181, 30, 76,153, 50,165, 81, 98,
+ 75, 40, 20,182, 72, 75, 75,211, 39, 43, 53,246,174, 86,171,209,183,111, 95,115,147,151,158, 2,240,194,211,211,243,102,187,118,
+237,236,159, 63,127,142,253,251,247,243,121, 60,158,183,174,253,144,201,100,224,112, 56, 40, 44, 44,212, 0,248, 8, 38, 92,103,
+ 42,149,234,250,245,235,215, 59, 12, 27, 54,140,243,228,201, 19,112, 56,156,234,114,133,133, 33,100,251,118, 36,206,157,139,240,
+204, 76, 40, 41, 10, 34,145, 8,231,207,159,167,228,114,249,117, 67,124, 98,177,120,103, 70, 70, 70,160, 72, 36, 2, 69, 81, 96,
+ 24, 6, 36, 73, 18, 92, 46,183,167,131,131,195, 22, 0, 93,234,139,229, 85,148, 0, 0, 32, 0, 73, 68, 65, 84, 93, 44,183,144,
+ 46,125,219,210, 90, 45, 45,201,126, 46, 53,117, 2,138,139,139,113,234,212, 41,116,235,214, 13,225,225,225,200,205,205, 69,122,
+122, 58,222,125,247, 93,253, 49,143, 30, 61, 66, 92, 92, 28, 90,181,106,101,218,162, 71,106,208,170,109, 11,240,249,252,106,107,
+ 14,143, 95, 51,240,225,233, 45, 89,124, 30, 31, 60, 46, 15, 34,177,200,108,139, 22, 65, 16, 32, 73, 18, 4, 65, 64, 44, 22,235,
+ 6,217, 76,211,166, 77, 37, 37, 37, 37,158, 0, 56, 98,177, 24, 52, 77, 27, 29,180, 48, 44,235,199, 47,186,149, 55,127,225,122,
+183,168,168, 75,184,116,169, 16, 36, 73,194,211,211, 19, 36, 73, 34, 35, 35, 3, 36, 73,194,199,199, 7, 36, 73, 34, 55, 55, 87,
+ 39, 18, 75, 97, 88, 12,235,159, 27,130, 32,244, 34,139, 47,224,235, 45, 91, 0, 80, 86, 86,166, 28, 62,124,248, 63, 85, 42,213,
+ 84,188,217,170, 39, 22,252, 7,131, 32,136,251,255,142,223, 54, 2, 67,107,132,213,107, 65,241,198,110,198,119,187,119,239,190,
+125,220,184,113,253, 55,111,222, 12, 27, 27, 27, 72, 36, 18,125,135, 40, 16, 8,208,172, 89, 51,148,148,148, 96,199,142, 29,120,
+249,242,229, 21, 0, 51,204, 45,145, 68, 34,185,243, 44, 62,173,184,239,232,238,206,129,221,219, 58,228,164,189,236, 38,145, 72,
+110,213,136,172, 95,199,205,123,119,106,223,145,161,224, 11,120,200,121,150,143,203,167,110,254,191, 92, 76, 14,135,195, 33, 8,
+ 2, 99,199,142, 53,235,248, 15, 63,252, 16,215,175, 95,135, 49, 55, 35,163,179,104,201,149,168, 82,252,117, 3,171,207,103, 77,
+196,231,179, 38,234,197,132, 57,174, 23, 0,240,242, 58,104, 68,104, 81,155, 99, 15,238,248,164, 99,104,152, 79,231,192, 22,184,
+251, 32, 30,251,182,191, 50, 50,236,250, 97, 37,190,221,117, 5,205,220, 29, 65,169,170,112,246,240,207,249,148, 74,190,249, 13,
+141,114,213,226,150, 32,192,178, 76,163,234,174, 19, 79, 60, 30, 15, 65, 65, 65, 6, 45, 90, 37, 37, 37, 10, 83,214, 44,253, 53,
+ 82,107, 80, 89,165,128, 66,254,151, 9,173,144,158, 61,123, 94,140,137,137,113,118,115,115, 67, 94, 94, 94,125,161, 21,210,163,
+ 71,143,139, 49, 49, 49,206,238,238,238,200,201,201, 49, 59,173, 72, 3, 34, 11, 82,169,148, 40, 45, 45,101, 28, 29, 29, 27, 37,
+182, 72,146,132, 74,165, 66, 74, 74,138,185,127,107,246,108, 46,123,123,251,221, 7, 14, 28,176, 47, 42, 42, 2,135,195, 65, 74,
+ 74, 74,157, 89,135,186,215,175,191,254,202, 31, 49, 98,196, 47,101,101,101, 70,167,181,105,181,218,141, 19, 39, 78,156,150,155,
+155,235,232,230,230, 6,137, 68, 2,129, 64, 0,150,101, 65,244,237,139, 94, 47, 94,128,162,105,136,197, 98,164,166,166, 98,231,
+206,157, 85, 53,169, 98, 26, 52,144, 17, 4,225,199,231,243, 49, 97,194,132, 58, 59,246,236,217,131,247, 58,115, 58,187,218,115,
+ 43,181, 16,169, 10,196,239,156,229,112, 56, 68, 72,215,126,109,186,246, 30, 26,244, 52,241,238,115,105,193, 75, 83,141,146, 70,
+173, 86,195,223,223, 31,247,239,223,199,165, 75,151,208,175, 95, 63,132,135,135, 35, 33, 33, 1, 23, 46, 92, 64, 92, 92, 28, 8,
+130,128,179,179,179, 46,252,194,104, 12,134, 90,174, 69, 97, 94,241,107,214,171,250,219,124, 62, 31, 42,133,121,147,251,158, 60,
+121,130,251,247,239,235, 83,203,112, 56, 28,237,164, 73,147,192,178, 44,155,145,145, 1, 91, 91, 91,118,202,148, 41, 52,151,203,
+213,230,230,154, 23, 31,108, 99, 99, 3, 63, 63,191, 58, 3, 31,221,171, 87,175, 94,120,240,224, 1, 72,146, 4,151,203,133,155,
+155, 27,110,222,188,105,242,198,215,137, 42,157,200,226,242,121,117, 68, 31,195, 48,178,132,132,132, 79, 0, 36,212, 88,178, 0,
+ 75, 30, 45, 11,254,255,112, 26,175, 47, 44,109,210,162,245, 2,192,128,253,251,247,143, 63,126,252,248,198, 45, 91,182,184, 70,
+ 68, 68,160,180,180, 20, 62, 62, 62,240,244,244, 68,108,108, 44,206,156, 57, 83, 68,211,244,124, 0, 13,153,126, 6,192, 72,206,
+154,220,231,146, 24, 85,101,229,103,157,194, 3,112,229,208, 31, 81, 30, 30, 30, 51, 56, 28,206, 23, 83, 22,191, 63,181,207,240,
+ 46, 72,141,203,192,157, 11,143, 81,144, 93,100,146,179,126, 48,188,131,131,195, 52, 43, 43, 43, 1, 26,152, 74,220,192,172, 67,
+ 61, 39, 77,211,180, 90,173,198,193,131, 7,205, 18, 91,251,247,239,135, 82,169, 4,253,186,127, 85,207,201, 50, 44,193,229, 9,
+225,213,204, 31, 20, 85, 5,134,121,227, 9,149,122, 78,221, 8,244,185, 64, 0,183,162, 34,220,189,123,215, 60,201, 61,116,168,
+169,107,164, 84, 43,101, 19,190, 95,179, 32,118,102,228,119, 14,253,186,119,192,215, 27,246,128,162,118,129,228,144, 16, 11,249,
+232, 20,218, 3, 28,168,240, 83,244,151,101,242,138,210, 9,120,125, 41,158, 58,156,172, 49, 15, 11, 11,208, 12,131, 75, 55,238,
+153, 93,247, 90,110, 14,112,185, 92, 60,123,246, 76,209,208,108, 67, 14,167,218,205,169, 27,169, 27,227,100, 25,134,224,241, 69,
+104,230,211, 14,106, 85,229, 95,114,141,220,220,220,190, 60,118,236,152,179, 46, 85, 66, 66, 66, 2, 8,130, 72,121,101,113,172,
+222,175, 80, 40,144,152,152,136,132,132, 4,160,122,134,155,217,207,145,206,146, 37,149, 74, 9,137, 68, 2, 43, 43, 43, 50, 33,
+ 33, 65, 21, 28, 28,252,192,196,243,173,231, 84, 42,149,153,134,226, 39,149, 74,101, 19,145, 72,196,171,215,225,121,181,110,221,
+ 58,181, 1, 23,226,107,229, 44, 47, 47,191,187,112,225,194, 78, 67,134, 12,193,151, 95,126, 89,226,232,232,104,251,211, 79, 63,
+113, 57, 28, 14, 49,115,230, 76,186,176,176,176,242,231,159,127,182, 63,126,252, 56,202,202,202,110,153, 81,119,153, 82,169,252,
+164,123,247,238,123,206,157, 59,103,229,231,231,135,138,138, 10,176, 44,139,221,187,119, 99,230,204,153, 16,137, 68, 72, 77, 77,
+197,123,239,189, 39,151,203,229,159,224,245,216, 73, 29, 39, 65, 16, 4,203, 48, 12,150, 45, 91,166, 79, 78,170, 75, 86,106, 43,
+ 38,176,115, 94, 75,235, 57, 63,151, 91,143,255,250,231, 73, 0, 64,107,181,244,211,196,187,207,119,255,248,245, 85, 62,159,127,
+195,196, 53, 90, 50,103,206,156,159,134, 14, 29, 42,182,177,177, 65, 73, 73, 9,110,222,188,137,219,183,111,227,206,157, 59, 80,
+171,213,112,118,118,134,163,163, 35, 36, 18, 9,158, 60,121,162, 0,176,196, 24,167,192,138, 7,223, 54,186,153,191,213, 22, 44,
+ 94,173,217,134,181,173, 91,124, 30,207,172,231,168,119,239,222,232,218,181,171, 78,172,208, 89, 89, 89, 18,149, 74, 69,212, 18,
+253,185, 58, 65,238,237,237,173,221,187,119, 47,107,138,147, 97,152,215,196,116,175, 94,189,244,131,194,174, 93,187,130,195,225,
+ 32, 62, 62,222, 80,104, 74, 29,206, 59, 59,183,226,220,170, 37, 16,240,249,152,159,146,163, 23, 93,123,250,117, 4, 79,192, 71,
+192,176, 81,181,127,187, 13,213,238, 66,212, 19, 89,198,250,163,183,126,222, 45,156,127,123, 72,240, 6, 75,240,232,176, 79,169,
+ 84,158,253,248,227,143,163, 67, 66, 66, 62,222,180,105, 19,193,231,243,177, 98,197, 10, 54, 47, 47,239,183,154, 17, 67,233,155,
+148,138,101,217,223,174, 29,189,245,233,228,200,225,196,188,205, 83,122, 62,184,156,248,164,125,119, 63,180,239,238,135, 7, 87,
+146,241,227,226,253,123,105, 13,189, 44, 63, 63, 63,219, 4,149,106, 64,143,182,245,131,225,157,175, 95,189,236,220,216, 89,135,
+ 12,195,196,236,223,191,127,246,200,145, 35,201,123,247,238,189, 22,147,165, 91,118,135, 97, 24, 92,188,120, 17, 20, 69,225,183,
+223,126, 99, 24,134, 49,156, 71, 11,236,137,239, 55, 71, 79,254,237,247, 19, 2, 1,159,192,237, 27, 71, 80, 94,106,124, 86, 23,
+159,207,195,175,187,143, 82,124, 62,239,105, 67,251, 41,138,202,185,124,249,178,251, 96,154,230,145, 36,217,144,128,106, 16, 49,
+ 49, 49, 26,134, 97,178, 76, 28,118,171,224,101,246,176,213, 95,126,180,127,232, 7, 31,187,119,239,222,147,231,226,230, 14,130,
+ 32, 80, 88, 80,136,212,196,123,154,179, 71,126, 41,168,146,155,183, 4,207, 71,235,175,233, 99,178, 0, 32, 98,230, 22,125,124,
+ 22, 0, 12,155,178, 16,125,187, 5,130, 48,199,244,244, 74,100, 49, 90,173, 22,214,214,214,208,106,181, 13,166,120,176,183,183,
+ 23, 43,149, 74, 69, 77, 34, 70,163, 35,102, 22,248,203,175, 17, 77,211, 1,165,165,165,168,170,170,194,237,219,183,217, 53,107,
+214, 72,165, 82,169, 62,104, 83,163,209, 4,148,148,148,160,178,178, 18,183,110,221, 98,163,163,163,165,197,197,197,139, 27,243,
+ 12,137,197,226,206, 92, 46,247, 65,105,105, 41, 99,101,101, 69,106, 52, 26, 77,112,112,176, 80, 44, 22,155,189,160,186, 68, 34,
+ 25, 98,104,159,175,175,111, 90, 90, 90, 90,107,154,166,107,175,129,200, 87, 42,149,126,221,187,119, 55,167,253,152,179,107,215,
+ 46, 28, 61,122, 52,180,162,162, 98, 98, 86, 86,214, 30, 0,161, 92, 46, 23,241,241,241, 41, 74,165,114,220,200,145, 35,119,151,
+150,150,222, 69,245, 18, 60,230,224, 92,106,106,234,132,128,128,128, 93,223,124,243,141, 77,120,120, 56,215,203,203, 11, 93,186,
+116, 65,106,106, 42, 78,159, 62,173,217,182,109, 91,149, 92, 46,255, 8,192, 69,227,151, 29,132, 86,171,133, 64, 32,208,191,132,
+ 66, 33,248,124, 62,100, 10, 22,211, 55,164, 43,180, 16, 43, 54,174,248,228, 52, 11, 16,249, 57,233, 69,133,249, 57,119, 9,130,
+184, 33,145, 72,202, 13,156, 51,129, 82,169,236,192,178, 44,135, 32,136,205, 20, 69, 77,153, 53,107,150,231,218,181,107,209,182,
+109, 91, 20, 21, 21,193,218,218, 26,126,126,126,144, 74,165,184,119,239, 30, 45,151,203,183, 3, 88,137,154,248, 17, 67, 40, 43,
+170, 64, 83, 15,239, 58,150, 79,150,101,193,210,128, 70, 69,131,166, 88,168, 9, 13,120, 60, 13,248,124,190, 57, 46, 21,150, 97,
+ 24,148,122,122,130, 73, 76,196,157, 59,119,192,178,172, 65,171,154,191,191,191, 89, 22, 82,154,166, 95, 19, 90,119,239,222, 5,
+135,195, 65,207,158, 61, 17, 23, 23,167,183,104,153, 21,151,200, 50, 16, 8, 5,117,220,133, 4, 65,128, 47, 16,128, 39,224, 55,
+ 52, 27,199, 98,197,178,224, 63, 6,230,250,177,203, 0,204,120,244,232,209,158, 62,125,250,196,178, 44,203, 67,181, 63,242,143,
+183,249,243,252,252,252,135,183, 78, 63, 92,228,222,212, 49,250,157,137, 61,209,182,131, 15,104, 45,141,155,103,226,241,219,218,
+227, 7,114,115,114,167,192,140,181,207, 24,134,185,218,163,115, 91, 18,181,114,117,123,121,121, 49,111, 50,235,176,188,188,124,
+249,252,249,243,241,229,151, 95,190,201,172,195, 6,241,248,137,116, 6, 1,182,233,176,119,122, 13, 6, 65,178,106,181,202, 72,
+195, 7,125,230, 82, 62,159,247,244,126,130, 36,184,161,227,164, 82,233,224,169, 83,167, 94,228,114,185, 45, 26,115,206, 25,134,
+201, 42, 40, 40,232,111,250, 72,237, 77,149,162,194,239,212,129, 29,115,207, 29,221, 53,152, 97,232, 86, 4, 0, 14,151,255, 92,
+ 67, 81,231, 85,138,138, 77, 48,115, 81,233,117, 51,194, 48,231,251, 11,216,250,229, 48,204,138, 62,132, 95,150, 77,199,162, 13,
+251,241,221,151,115,176,102,203, 63,241,245,156, 9, 24, 61,126, 42,195, 18,228,159,230,214,131,195,225,156,219,177, 99,199,228,
+233,211,167,235, 39, 45,176, 44, 91,167, 17,214,104, 52, 10,134, 97,176,125,251,118, 6,192, 57, 99,124,117,175, 17,193, 26,139,
+151, 50,247, 26, 85, 84, 84,124, 20, 22, 22,182, 27,128,144,101,217,103,165,165,165,255, 0, 94, 45, 13, 85, 89, 89,249, 81,247,
+238,221,119,179, 44, 43, 36, 8,226,181,253,230,160, 38,213, 67,103, 71, 71,199, 7, 53,150, 44,225,155, 4,196, 27, 59,213, 70,
+220,138,230,184, 16, 25, 0,179,106,101,124, 95, 27, 26, 26, 90,123, 81,233,148,210,210,210,206,111, 80,174,139, 10,133, 34,112,
+217,178,101,115, 69, 34, 81, 95,185, 92,222, 6, 0,172,173,173, 83, 85, 42,213, 85,133, 66,177, 9,166,115, 83,169, 25,134, 73,
+213,106,181, 65,174,174,174,213, 51,106,107,196, 22, 0,156,124, 64, 63, 0,232, 46,213, 70,241,125,102, 23,236,204,153, 51,205,
+ 29, 29, 29, 7, 17, 4, 49,154,101, 89,127,153, 76,166, 90,182,108,217,173,152,152,152,242, 22, 45, 90,188, 51,116,232, 80,194,
+201,201, 9,247,239,223,103,139,139,139,143, 0, 88, 12, 51,102, 90, 51, 12,147,181,110,221, 58, 52,246,121, 55,182,159,162,168,
+252, 51,103,206,184, 12, 41, 44,228, 50, 12,131, 97,195,134,213, 17,112,245,241,244,233, 83,168, 84, 42,147,201, 28,203,202,202,
+ 16, 26, 26, 90,103,128,170,123,101,101,101,193,201,201,169,206,255,152, 26, 99,169,202, 75,209,111,238, 66,160,102, 70,169, 14,
+213,150, 44, 22,172,218,162,171, 44,248,207,197,191,122,241, 77,179, 76,139,158,158,158, 99, 69,214,194,207,125,218,120, 6,231,
+165, 23, 38,203,202,229,123, 37, 18,201, 14, 3, 13,185, 89,156,141, 76, 88,106, 49,255,254,139, 56, 95,229,209,162,193,178, 52,
+ 88,134, 5,203, 50, 96, 24,186,122,193,107,150, 1, 75,211, 4, 65,224, 79,181,194,104,102,240,250,229,116,116,113,113, 89,201,
+178,236, 16, 14,135, 67,214,110,168,107,127,174,177,100,157,147, 74,165, 95, 55, 96,121,253,175, 59,159, 49, 49, 49, 13,138,127,
+115,103, 29,142, 25, 51,134,110,228,179,121,213,218,218,218,179,161,125, 85, 85, 85,217, 18,137,100,208,127,200,249,172, 61, 99,
+176, 49,156,141,158,117,104,138,211,199,199, 71, 72, 81, 84, 71, 0,126, 4, 65, 56, 0, 40,161, 40,234,124, 81, 81, 81, 1,128,
+206, 0,150,213,252,102, 21,128, 7,255,230,231, 93,236,226,226,178,139, 36,201,166,230,252, 88,171,213,170, 75, 74, 74, 38,215,
+ 27, 16,188,114,193, 3, 28, 17,159,127, 15, 36,217,164,161,231,209,208,103,176,108,110,149, 66, 17, 74,188,106,243,245,156,206,
+206,206, 15,184, 92,110, 83, 51,202,246,178,184,184,184,179,165, 77,254,175,230,252,111, 70,253, 32,120,131,153,226,255, 21, 66,
+203,194,105,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,127, 93,104, 53,184,109,153, 2,107,129, 5, 22, 88, 96,129, 5,
+ 22, 88,240,118, 56, 93, 79,108,157,214,125, 32,140,168,210,198,152, 4,223, 68,217, 94,178,112, 90, 56, 45,156, 22, 78, 11,167,
+133,211,194,249,183,227,180,224, 47,132,197,172,106,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,127, 29, 6, 93,135,164,
+229,220, 88, 96,129, 5, 22, 88, 96,129, 5, 22,252,107, 96,182,208,178,118,247, 15,112,241, 9,222,237,216,180,125,130, 99,211,
+246, 9, 46, 62,193,187,173,221,253, 3,254,166,231, 77, 12, 96, 60,151,203,189,232,225,225, 81, 1, 3, 75,239,252, 15,192, 14,
+192,104, 84,231,247, 25, 1,192,234,175, 36, 15, 7,184, 99,129,207, 39, 1,217,147,128,236,177,192,231,225,255,131,113,131, 43,
+102,123,134,221, 56, 59,254,236,138,217,158, 97, 13,238,159,239,233,124,231,194,152,239,215,126,238,229,244, 23,253,165,173,155,
+155,219, 78,119,119,247, 76, 55, 55,183, 44, 55, 55,183, 93, 0,236, 45,205,157, 5, 22, 88, 96,193,191, 12,186, 24, 45,221, 75,
+ 31,163,197, 5,128,216,216,216,112, 0,215, 0,244,137,136,136,184, 94,255,215,142,222, 65,211, 91,181,108,245,229,234, 21,139,
+ 9, 15, 55, 23, 43, 45,205, 80, 25,153, 57,237,150,175,142, 62,156, 39,224,110, 44,205, 78,252,229, 13, 10, 69,112, 56,156,177,
+ 66,161, 48, 2,128, 78,176,165,168, 84,170, 88,154,166, 15,194,188,105,218,112,119,119,191,193,225,112,154, 55,230,143,105,154,
+206, 46, 40, 40,232,249,134, 39,115,140,183,183,247,174,240,240,112,171,208,208, 80, 8, 4, 2, 44, 91,182,108,190, 68, 34,217,
+100, 46,129,163,163,175, 45, 37, 20,125,193, 21, 8, 6,178, 26,117, 16, 11, 22, 32,133,137,140, 86,117,153,175, 82,109, 44, 45,
+ 77,151,153, 73,181, 24,192,148,154,115,245, 11,128,117,111,115,151, 76,238, 0,141,134,174,190, 39,248, 92,208, 39, 94,216, 95,
+ 91,178,100, 9, 55, 34, 34, 2,191,252,242, 75,207,157, 59,119,126, 34,147,201, 46, 3, 56, 9,224,249,219,222,149,238,192,140,
+238, 61,123,126, 63,121,254,124,142,226,198, 13,124,191,107,215,102, 84,231, 91,218,218,216,123,137,207,199,104, 23, 23, 94, 4,
+203,162, 35, 1, 16, 4, 16, 47, 45,102,206, 80, 20,125, 16,102,228, 98, 51,130,241,168, 59, 29,127, 95, 99, 9,202,159,179, 75,
+133,195, 2,122,149, 63,191,186, 20,192, 59,245,247,107,149,162,201, 44,167, 89,132,130,141,203, 1,176,225, 45, 79,171,149,171,
+171,107,194,137, 19, 39,154,134,134,134,114, 1,224,193,131, 7,147, 34, 34, 34,250, 73,165,210, 32, 0, 21,255,166, 70, 72,196,
+ 37,201,207, 5, 60,222, 64,154,166,219, 3, 0,135,195,121,172,214,104, 46,106, 25,102, 43,204,204,201,102,129, 5, 22,252,239,
+194,148, 22,249, 15,135,193,204,240,186,202,177,181,223,107,195,218,173,109,187,110,253, 71, 61, 45,151,201,149,153,153,185,165,
+243, 62, 95,115,241,147, 57,235,143,111,248, 57,246,204,245,187, 41,119, 2, 66, 7, 37, 91,187,181,109,103,128,218,144, 15,215,
+ 91, 44, 22, 63,220,182,109, 27,149,154,154,202,150,149,149,177, 79,159, 62,101,143, 28, 57,194,126,250,233,167, 74,177, 88,252,
+ 16,128,183, 57,156,238,238,238, 5, 79,175, 92, 96, 95, 38,196,177, 89, 15,238,178, 26,141,134,165, 40,138,165, 40,138, 77, 62,
+ 23,203, 38,156, 60,202,198, 31, 57,200,170,213,106, 86,173, 86,179, 42,149,138,109,217,178,101,158,153,229,172, 15,175,192,192,
+ 64,117,108,108, 44,123,248,240, 97,118,254,252,249,108, 72, 72, 8, 13, 96,166,185,117,183,118,243,235,107,219, 36, 88, 58, 61,
+114, 43,117,250,214,121, 54,233, 69, 60,155,244, 34,141,141,185,148,194, 78, 89,176,133,178,109, 18, 34,181,118,243,235,107,170,
+238,142,142,142,221, 8,130, 96,117, 0,192, 54,111,222,188,178,246,203,219,219,187,206,171, 89,179,102,149, 45, 90,180,120,238,
+236,236,220,177, 33,206,113,237,193,178,201,251, 88, 54,121, 31,187,164, 55,216,164,164,164, 59, 44,203, 94,211,189, 20, 10,197,
+181, 99,199,142, 93,123,255,253,247,175, 1,120,207,200,121, 50,235,124, 78, 2,178,101, 39, 78,176,236,166, 77, 44, 27, 30,206,
+166, 0,236, 36, 32,187,145,156, 45, 61, 60,120,241,235,215,125,162, 62,113,226, 55,246,236,217,211,236,153, 51,177,236,241, 99,
+187,216,205,155, 62,167,220,221,121,137, 0, 90, 55,130,147, 11, 96, 13,128,141,168,182, 92,166, 74,165, 82, 54, 63, 63,159, 5,
+144, 90,243,221, 70, 87, 87,215, 13,104,216,250, 54,160,182, 37,107,238, 16,143,179, 31,188,211,147,149,149,231,177, 31,188,211,
+147,157, 59,196,163,142,101,107,136,175,175,237,172, 97,237,165, 73, 15,246,210,179,134,181,151, 14,241,245,181,125,195,243, 73,
+160,122,157,208,109, 87,174, 92,209,178,181,160,209,104,216, 61,123,246,208,142,142,142,191, 53,130,179,141,171,171,107,150,147,
+147, 83,106,237, 47, 93,131, 71,116,247,239, 53,105,185,115,187,247,195, 27, 81,206, 80, 17,159,255,242,226,161,159,232,226,236,
+199,172, 90, 81,192,150, 63,139, 99, 95,166,220, 97,247,236,216,168, 17,112,185, 47, 1,132,190,205,189,212, 72, 88, 56, 45,156,
+ 22,206,255, 64, 78, 99, 90,228,191, 25,220,250, 21,172, 15,161, 80, 16,185,124,201, 66,162,172,184, 76,161,172,144,169, 53, 74,
+165,146,228,179,202,199,201, 47, 10, 73, 46,167,108,238,156,217,182,145,139,150, 68, 86, 1, 19,204,252, 79,239,144,144,144,123,
+ 71,143, 30,117,115,114,114, 66,121,121, 57,138,139,139,113,239,222, 61,176, 44,139,145, 35, 71, 10,187,118,233,210,113,233,178,
+101,183, 95,230,230,134,193,112,199,251, 74,188, 56,185, 96, 93,207,234,181,104,191,206, 44,174,238,117, 8, 2, 59,199, 68,232,
+143, 89,249,178,122,181, 12,145, 72,164, 95,144,248, 13, 16,214,191,127,127, 62, 0, 76,155, 54,173, 66, 38,147, 69,213, 88, 56,
+204, 90,105,213,218,205,175,175,139,167, 87,236, 79,219,215,137,219,183,242, 3,165,209, 34, 43, 63, 15, 92,158, 3,154, 54,229,
+ 99,234,132,129,188,222,221,157, 92,214,172,218,121, 58,159,193, 8,121, 81,218,121, 67, 92, 14, 14, 14,123, 14, 30, 60,136, 67,
+135, 14, 1, 0, 82, 83, 83,225,231,231,103,109,170, 12,137,137,137,190,239,189,247,222,129,226,226,226,214,166,142,173,159, 24,
+ 95, 40, 20,162,103,207,158,104,215,174, 29, 78,156, 56,209,167,198,178,245, 86, 80,220,184, 1,155, 71,143,128,235,111, 52,120,
+105,217,169,147,207,157, 51,167,247,186,156, 62,147,130, 13, 27,118,225,249,243,106, 67,155,175,175, 47,198,143, 27,195,123,252,
+248, 86,224,232,209,227,111,253,241,199,243,158, 53, 66,201, 20,190,249,249,231,159, 23,183,104,209, 2,163, 71,143, 30, 19, 24,
+ 24,232, 97,103,103,135, 29, 59,118,192,211,211,211, 87,173, 86, 63, 59,113,226,132, 87,126,126, 62,102,207,158,141,130,130,130,
+249,134,136,250, 12,238,179, 84, 56, 44,160, 87,219, 78,147, 97, 99,231,137,159,247, 31,196,211,135,123,122,169,168,148,165,124,
+250,250, 68, 5, 43,156, 34,205,182,137,108,222, 57,220,185,117,224,123,240,233, 20,231,162,164,255,120,177,116, 96,203,104,174,
+ 72,185,103,197, 6, 73,241,107,164,163, 99, 56, 65, 21, 79,156, 18, 47,162, 24, 88,193,232, 4,150,222, 90,203,226,189,222,189,
+123,235, 47, 92,102,102, 38, 84, 42, 21, 2, 2, 2, 72,181, 90,221,215,204,243,218,102,208,160, 65,127,158, 57,115,198,185, 77,
+155, 54,210,146,146, 18,253, 14, 15,103,135,193,215,143,110,158,189,230,251,127,250,255,206, 18,101,210,148,227,143, 77,112,133,
+246,232,214,233,210,217,163,123,109,136,202, 28, 8, 28,138, 0,166, 24,233, 7,126, 5, 97,229,132,177,159,206,227,246,237,223,
+175,201,192,119, 70, 93,122,154,246,188, 63,128,251,150,113,189, 5, 22,252,173,173, 90,236,255, 90,157,244, 66, 43, 34, 34,130,
+104,168,130, 12,203, 4,187,187, 57,139, 55,175,223,125,159, 67,169,213,214, 14,246,106,158,189, 29, 67,216,218,115, 40,181,166,
+210,199,215, 71,192,176, 76,176, 1,254,250, 83, 60, 9,177, 88,124,244,228,201,147,110, 60, 30, 15, 12,195,192,213,213, 21, 25,
+ 25, 25, 40, 43, 43,131, 76, 38,195,243,148, 20,180,240,110,134, 21,145, 11, 61,103, 47,140, 60, 42,151,203, 59,163,174, 27,241,
+181,105,163,180,166,238,186,209,186, 37, 88, 94, 27,242,215,124,215,192, 62,115,167,162,102,100,103,103,195,198,198, 6, 65, 65,
+ 65, 54, 55,111,222,252,195,136,200,170,195,233,232,232,107,203, 8, 5,135,182,253,180, 76, 76,105, 18,145,156, 94,130,182, 45,
+122,193,221,217, 27,121, 37,106,220,185,119, 18,137, 9,251,208,170,137, 55,102,126,218, 79, 20,189,238,240, 65,190,182,133,119,
+ 89, 89, 70, 69, 67,156, 21, 21, 21, 54, 45, 91,182,132,183,119,245,186,103, 52, 77, 35, 57, 57, 25, 52, 77,235,183,107,191,239,
+ 62,114, 5,218,138, 44, 76,158, 52, 9,197,197,197, 54, 13,113,242, 56,208,206,251,100, 60, 87,204, 3, 4,214, 78,234,202,202,
+ 74,253, 50, 28, 20, 69, 33, 62, 62, 30, 97, 97, 97,225, 49, 49, 49,166, 84,145, 89,231,147, 2,190,251,254,183,223,182, 76, 40,
+ 47, 39, 1,224, 23,130, 96, 40,150,253,206,220,123,201,205,141,119,228,220,217,223, 93, 56,228, 19, 56,217,127,139,123,247,178,
+ 64, 81,213,229, 45, 46, 46,196,172,207, 43,192,231,217,226,196,137,127, 58, 7, 4,244, 60,146,159, 79, 5,161,174, 27,177,161,
+114,138,206,158, 61,139, 89,179,102, 33, 57, 57,217, 75,183, 70,155, 88, 44,198,250,245,235, 57, 1, 1, 1, 94,214,214,214, 56,
+119,238, 28, 10, 10, 10, 8, 99,229,188,118,254,218,234,242,231, 87,151,230, 19,231,134,252,188,255, 32, 62, 30, 55, 22, 30,108,
+250, 31,246,173,136,213,131,134,245,248,154,229, 52,139,176,182, 13,118,244, 11, 26, 6,190,192, 6, 51,191, 90,137,212,196, 83,
+142,114, 89,194,231, 4,157,211,108,197,134,152, 57,175,149,243,240, 24,122,218,190,155,157, 46,122,223,247,121, 20,255,201, 93,
+ 73,220,206,132, 87, 66,203,151, 75,144,180, 61, 80,189,172,201,179,103,207,240,252,249,115,112,185, 92, 40, 20, 10,104,181,218,
+ 6,203,233,229,229, 53, 67,171,213,126, 93,115,157,119,139, 68,162,143,246,238,221,235, 92, 91,104,187, 6,143,232,238,108,107,
+221,191,160,176,184,244,214,253,164,167,243,102,140,238,115,227, 78, 98, 14,197,123, 63,187, 60,225, 68,185,129,243, 41, 18, 11,
+ 4, 71,206, 29,251,167,141,230,197, 21, 88, 7,244, 1,207,198, 15,180, 38, 23,242,210, 42,200,158, 75,160,250,233, 71,116,248,
+124, 46, 78, 29, 63,108, 19,216,190,115,140, 74,163,241, 3,160,126,131,103,179, 49,176,112, 90, 56, 45,156,255,153,156, 6,181,
+ 8,203,178,157, 0,184,215,108, 22,215,232, 2, 23, 0, 69,168, 94, 81,192,189,166,237, 16,212,250, 89,253,237,218,199,214,223,
+174,253,185,184,230,179, 91,205,251,125,130, 32, 74, 76, 20,221, 19,213, 75, 19,158,174,121, 7,106, 92,137, 38, 3,143, 9,130,
+172,160,105, 70,200,119,117, 83, 78,251,160,127,251, 11,151, 30,196, 91,185,216,113, 7,247,233, 24,126,239,241,139,219, 4, 73,
+104, 8,130, 52, 43,238,131,195,225,140,221,188,121,115,123, 59, 59, 59, 48, 12, 3,123,123,123, 72,165, 82,168,213,106,148,151,
+151, 67, 37,171, 0, 37,171,192,163,156, 76,244, 8,239,131, 81, 67, 6, 5,252,243,248,201,177, 52, 77, 31, 48,198,235, 21,220,
+ 81,111,201, 90,217,220,249,149,105, 34,167, 76, 47,186,190,237,232, 7,190,141, 13, 6,206,139,124,155,123, 32,238,244,233,211,
+103, 71,142, 28,249,206,130, 5, 11, 72,137, 68,114, 46, 35, 35,163, 7,128,100,147,162, 66, 40,250,226,179, 47, 34, 28, 29,109,
+ 88,196, 92, 60,137,222, 29,199,193, 74,192, 65,113, 5, 5,130, 0, 82,146,142,130, 32,156,144,144, 42, 65,175, 14,118, 24, 52,
+ 56,192,230,248,225,148, 5,120, 21, 31,244,218,165, 41, 45, 45, 69, 97, 97, 33, 52, 26, 13, 52, 26, 13, 70,143, 25,131,223,247,
+236, 65, 85, 85, 21, 20, 10, 5,212,106, 53,104,154, 6, 73,146,184, 24, 27,131,156, 23, 41,232, 30, 22, 6, 24, 88,122,105, 79,
+ 60,120, 0,238, 60,125,250, 20, 41, 41, 41,120,249,242, 37, 68, 34, 17, 60, 60, 60,176,114,229, 74,168, 84,213,235,137,141, 25,
+ 51, 38, 28,192,227,183,125,160,158, 3, 59, 51,104,122,233, 59,199,142,185,221, 60,118,140,185,115,234,212, 75,161, 76,182,195,
+156,223,242,249, 24,189,238,187, 79,219, 90, 91, 91,227,101,246,102,248,251,243, 49,127,174, 51,162,190, 45, 2, 0,204,158,213,
+ 20, 93, 58,187,160,162,236, 48, 92,220, 22, 99,203,150, 57,173,166, 76,217, 56, 73, 46,167,119,155,160, 94,122,242,228,201, 81,
+126,126,126, 77,226,226,226, 8,129, 64, 0,177, 88, 12,177, 88, 12,145, 72,132,194,194, 66,100,100,100,176,235,214,173,203, 5,
+176,212, 24,209,138, 45,146,219, 0,222,153, 59, 4,103,159, 62,220,211,171, 9,231,197,163, 81, 51,123,102, 38,220,137,147, 93,
+184,120,115,149, 86, 41,202, 41,123,121,105, 97,203, 46,113, 46,159,127,249, 13,126, 92,183, 28, 79,239,222, 40,113,247,174,216,
+ 42, 38, 84, 13,150, 51, 60,124, 5,215,211,221, 73, 59, 99,202, 40,135, 83,238,183,102,156,225, 18,210,252,162,135,235,145, 17,
+167, 16,182,238, 56,177,141, 47,169,190,114,229,138,184,119,239,222, 80, 42,149,122,203,228,222,189,123, 25,173, 86,123,181,193,
+123,147,162,190,206,205,205,245, 84, 40, 20, 24, 50,100,200,236,245,235,215, 91,235,214,147,163,105,186,142, 37,107,245,166,223,
+207,127,241,245,214,171,231, 15,124,235,181, 58,242,163, 62, 19,102,174,185, 10, 3,235, 72,114, 73,242,243, 83,199,118,121,136,
+ 28, 53, 16, 59, 13,130,178, 64,129,167, 59, 63,134,188, 66,137, 46,171,191, 1, 32,128, 90, 67, 98,199,176,209,224, 57,123, 97,
+249,244,143,188,150,236,248,249, 83,134, 97, 54, 91,198,245, 22, 88, 96, 65, 61,184, 19, 4, 17, 11, 0,145,145,145,139,163,162,
+162,146, 8,130,136,101, 89, 54,162,198,128, 18,203,178,108,132,238,152, 26,113,246,218,182,238,216,250,219,245, 63, 47, 90,180,
+ 40, 48, 58, 58,122,109, 88, 88,216,129, 91,183,110,189, 0, 96, 74,104, 13,173, 17, 86,175, 45,189, 67,234, 20,100,237,247, 58,
+ 22, 45,134,185,241,236, 69,166,124,208,128,174, 77, 99,175, 63,190, 63,117,234,208,254, 99,135,245, 30,156,145, 93,156,210,202,
+199,195, 37, 41,233,177, 29,195, 48, 55,204, 57, 75, 66,161, 48,162, 95,191,126,220,210,210, 82, 88, 89, 89, 65, 42,149, 34, 55,
+ 55, 23, 20, 69, 65, 89, 94, 6, 85,121, 25,148,101,165,160,202, 75,241,252,193, 61, 4,183,242, 21,214, 4,203, 27,133,206,234,
+ 82,223, 82, 85,219,178, 37,176,181,133,208,214, 22, 68,227,221,134,239, 59, 56, 56,220,209,117,170, 20, 69,125,190,112,225,194,
+ 34,134, 97,176,102,205, 26, 59, 27, 27,155, 24, 0, 66, 83, 36,182,174,156,136,176, 14, 65,228,147,140, 4,244, 12,153,140, 54,
+ 45,223, 69, 70,129, 2, 69, 50, 10,133,101, 20,186,244,254, 1,205, 67,190, 65,179, 14, 81, 72,201, 42,129, 87, 19, 63, 18, 92,
+161,209,197,159,115,114,114,234,108, 31,216,191, 31,114,185, 28,173, 90,181,194,184,113,227,176,112,225, 66,140, 27, 55, 14, 94,
+ 94, 94,152,240,193,123, 88,190,124, 57,242,243,243, 77, 21, 85,213,166, 77, 27,149,143,143,143,202,199,199, 71, 69, 81, 20, 42,
+ 43, 43, 81, 86, 86, 86,255,124,207,105,236,137,116,115,115, 91,228,225,225,145,224,230,230,150, 36, 20, 10,207,196, 19,196, 19,
+165,143,143,123,143,225,195,137,118, 31,124,192,201, 18,139,137,235,128,141, 57, 92, 46, 78,188,161,125,251,189, 35, 40, 43,221,
+165, 55, 82,125, 52,213, 21,127, 94, 15,196,205, 63, 58, 99,214,231,173, 64,144, 34, 16,164, 0,242,170, 43,232, 26, 26,198,119,
+112, 32, 76,221, 75,227, 1,196,247,232,209,195,107,230,204,153,132, 80, 40,196,236,217,179,169,233,211,167,167,141, 27, 55, 46,
+237,242,229,203,180,143,143, 15,154, 53,107, 70, 52,107,214,204, 19, 64,124,205,111,140,194,174, 21,177, 90, 69,165,252,225,224,
+103,253,130,134, 75,247, 74,141,112,244,138, 13,146,226,213,219, 94,108,200,120, 42,247,125,122,247, 70,113, 90,226, 41, 38,227,
+254,181,162,188, 52,153,239,234,109, 47, 54, 44,222,154,215,224, 67,125,253, 58,152,163,177,215, 41,121,149,156, 59,124, 88, 95,
+249,140,105, 99,219, 56,217, 4,238, 69,147, 65, 33,205,189,155, 78, 88,190,118, 11, 53,253,211, 47,168, 95,126,221,197,202,100,
+ 50, 84, 84, 84, 96,203,150, 45,218, 83,167, 78,229,210, 52,253,133,161, 49, 16, 0,104, 52, 26,204,152, 49,195,218,206,206, 14,
+ 57, 57, 57,122,139, 40, 0, 72,164,197,143,111,222, 79,124, 50,239, 31, 99,194,171, 84, 42,213,249,107, 15, 82,218,249,249, 52,
+ 37, 8,214,224, 68, 20, 1,143, 55,176,115,215,174, 28,150, 45, 3,193,245,198,243, 61,235, 80,145, 95,130,138,194, 18,112,120,
+214,208, 66, 8, 13, 35,128, 67,112, 40, 82,239,199,161,137,171, 59, 87,200,227, 13,182,244, 39, 22, 88,240,247,132, 49, 45, 82,
+ 91, 44, 69, 71, 71,175, 53,182,191,214,187,186,222,182, 94, 72,213, 23, 97,181, 63, 3, 64,116,116,244, 90,150,101, 35,110,221,
+186,181, 31,128,194,204, 42,124, 82,235,221,252, 60, 90, 28,165, 58,106,193,194,165,112,180, 23,219,135,118,244,243, 56,113,238,
+250,131, 27,183, 30,164, 52,111,230,226,202,106,212,142,223,109,252,177, 41, 33, 87, 68,155, 89,136, 0, 23, 23, 23, 80, 20,133,
+103,207,158,225,229,203,151,160, 40, 10,218,170, 42,168,202,202,160, 44, 45, 5, 93, 37, 3,159,166,161,144, 22,194,217, 74, 4,
+188,154,145,104,194,242, 70, 52, 40,180,116,239, 34, 59, 59, 8,109,237, 64,242,120, 38, 87,138,175,133, 78,161,161,161,135, 18,
+ 19, 19,187, 14, 24, 48, 96, 21,170,167,200,103,229,230,230,246, 95,182,108,153,202,221,221, 29, 51,102,204,104, 11, 96,178, 73,
+145, 41, 80, 7,248,120,180, 69, 27,223,201,104,222,172, 31,202,170, 52,144, 86,104, 80, 88, 70, 97,199, 15, 97, 56,242, 75, 40,
+254, 60,210, 11,137,231, 7,162, 76,227, 1, 27,175,247,193,210,234, 64, 99,156, 23, 47, 94,196,202,149, 43,177,106,213, 42,172,
+ 89,179, 6,171, 86,173, 66,110,110, 46,130,130,130,144,157,157,141,179,103,207, 66, 34,145,192,197,197, 5,247,238,221,195,166,
+ 77,155,240,231,159,127,154,172,180, 78,184,154,113, 76,163,124,233, 90,173,118,138,100,248,240,246, 5, 78, 78,237, 58,118,236,
+248,206,236,217,179,125,123,244,232,161,223,239,235,235,235, 45, 22,139,243, 81, 61,131,178,131, 49, 46, 6,232,232,234, 26, 4,
+181,234, 73,205, 53,230,129, 32, 68,232, 55, 48, 5, 61,122, 61, 0,165,225,131, 36,132, 32, 73, 17,180,218, 98, 56, 58,122,129,
+101,137, 32, 19, 69, 92, 38,149, 74,253, 46, 93,186, 68,102,100,100, 64, 36, 18, 1, 64,230,138, 21, 43,126,220,176, 97, 67,178,
+179,179, 51, 29, 27, 27,139,227,199,143, 35, 34, 34,130, 51,125,250,116,191,102,205,154,109, 55, 85,239, 21, 91, 36,183,247,109,
+ 60,251, 33, 79,227,216, 65, 36,110,222, 2, 85, 54,239,127, 22,238, 98, 13, 0,231,210,211,101,110,222, 21,209, 85,178,132,108,
+135,166,149,223,158, 75, 55, 53,227,116, 5,243, 48,237,201,157,125,199,206,149, 23, 22,148,242, 58,182, 15, 84, 68,173,252,146,
+223,188, 69,235,239,150, 47,252,135, 71,110,133,168,108,224,236,179, 79,142,158,187, 87, 57,113,234,199,218,105,159,204, 84,158,
+ 61,119,241, 24,195, 48,237, 97, 96,198, 33,195, 48,144, 72, 36, 72, 74, 74, 66,122,122, 58,164, 82, 41,138,138,138, 32,147,201,
+244,238, 70, 43, 89,197,233, 31,127, 59,245,200, 90, 44,182,234,218,222,207,251,110, 92,114,161,181, 88,108,229,215,194,187, 13,
+176,162,193,118,132,166,233,246, 34, 43, 49, 0, 2,101,137, 55, 80, 89, 90,137,202,178, 74,200, 74, 42,161,162, 56, 80,170, 72,
+ 40,212, 36,124,194, 7,161,178, 74,137,202,226,114, 48, 52, 29, 98,233,110, 44,176,192, 2, 35,125,125,108,100,100,228, 98, 51,
+143, 53,219,189, 89, 95,120, 69, 70, 70, 46, 38, 8, 34,118,209,162, 69,129, 48, 60,161,170, 54,118, 54,240, 2, 96, 70,122,135,
+226,226,180, 74, 91, 34, 96,228,220,175,190, 62,187,255,215, 31,220, 84, 42,121,182,179,163, 13,109, 99, 37,112,153, 54, 99, 13,
+100,149,165, 35,170,204, 79, 71,128,210,210, 82,188,120,241, 2, 98,177, 24,124, 30, 15,180, 66, 1, 90, 81, 5, 69,105, 49, 72,
+ 74, 5, 62, 77,195,201, 74, 12, 31, 47, 15, 52,119,247, 48,139,243,217,149, 11,250,192,247,218,238,194,117,161, 1, 16, 88,219,
+ 64, 96,107,131,207, 98,175, 1, 0,248,124, 62,176,108,149, 89, 70,147, 38, 77,154,156,220,183,111, 31, 95, 42,149, 34, 62, 62,
+254, 17,128,114, 0,182, 0,152,148,148,148, 75,137,137,137, 17,126,126,126, 0,208,202, 20, 89, 69, 17, 73,107,180, 44,114,242,
+ 51,145,241, 50, 14, 78,246, 45,193,179,106,131,194, 50, 10, 66,113, 75,104, 84,175,188,143,202,138, 44, 40, 40,142, 89,117, 87,
+171,213,208,106,181,208,106,181, 80,171,213,248,228,147, 79,112,243,214, 45, 28, 56,126, 25, 47,158,167,162,109, 11, 15, 76,154,
+ 52, 17,161,161,161,184,117,235,150, 81,174,201, 29,160,105, 98, 3,238,198,119, 72, 8,108,156, 85,221, 22,158,191,107, 74,108,
+ 17, 4,193,194,128, 43,178, 30, 54,132,133,133,181, 78,173,170, 66,210,147, 39, 24,176, 98, 5, 0,224,204,153, 51,117,234, 50,
+111,222, 60, 65,114,114,242,180, 7, 15, 30, 76,203,203,203,219, 8,160,225, 96,115, 22, 56,125,250, 54,254,241,143,100, 72,165,
+ 82, 0,192,193,253,175,116,105,198, 11, 10, 67,134, 86,123,180, 28, 28, 28,176,113, 99,144, 89,231,147,166,105,236,220,185, 83,
+239, 46, 4, 0, 46,151,219, 99,222,188,121, 35, 27, 58,190,117,235,214,124, 83,156,115, 71, 55, 17,253,249,136,253,220,190,117,
+243, 64, 59,151, 96, 20,107,226,130,226,114, 37,179,230,142,110,178,121,211,225, 92,165,152, 80,237, 38,232,156,102, 92,145,114,
+143, 57,101, 76, 63,247,131,186,216,103,202,158,124,105,197,146,153, 31,143,119,182,115,112,171,250,229,199, 40, 71,146, 67,178,
+ 39, 31, 80,101,129,190,206, 14,239,119,251,190,242, 31,115,151,197,169,181, 57, 51,145,115, 50, 21, 70, 82, 92,213,158,247, 9,
+ 0, 0, 32, 0, 73, 68, 65, 84,208, 52,141,188,188, 60, 72,165, 82,100,103,103,163,168,168,218,253, 90, 84, 84, 4,134, 97,222,
+166, 65,132, 34, 59, 27, 89,199,126, 65,243,137, 19,209,101,213, 74,208, 12, 23, 10, 57,141,141,221,251,163,180, 92, 1, 21, 67,
+192,171, 83,119,124,124,230, 15,144, 44, 13,236,216,106,233, 73, 44,176,224,111, 10,115,210, 59,232, 4, 81, 84, 84, 84,196, 95,
+253,255,181,197, 86, 84, 84, 84, 82, 84, 84, 84, 99,254,171,190,203, 80,191,173,139,209,186, 86, 43, 0,237,181, 78, 83, 86,148,
+146,158,156,204,205,171, 82, 84, 89,185,187,185,170,172, 68, 66,166,188, 66,198,137,123,252,136,170,202,127,254,180, 17,245, 72,
+ 73, 76, 76, 12,202,203,203, 67,118, 86, 22,180,138, 42,144, 42, 53, 88,165, 28, 3,122,118,135, 8,128,136, 36,192,103, 40,112,
+ 57, 2,200, 42, 43, 0, 32,197,100,231,168,209,188,102,217, 34, 8, 2, 2, 91, 91, 8,172,173, 33,176,177,173, 99,225, 50,199,
+ 98, 35, 20, 10,247,197,196,196,120, 54,105,210, 4, 43, 87,174, 68,211,166, 77,253,189,188,188,228,246,246,246, 98,119,119,119,
+180,107,215, 14,221,187,119,199,217,179,103, 1, 51,114, 74,105,180,162,132,167,153,232, 81, 84,114, 11,127, 92,251, 9,106,133,
+ 10, 29,195,127, 2,197,109, 14,215,192,111,192, 60,219, 11,121,254,137,106,235,129,199, 48,188,204,206, 4,193, 17, 36,153,107,
+121,210,125,126,244,232, 17,246,159,184, 14, 79,159, 0,100,167, 61,193,147,171,151,112,211,213, 25, 62, 1,237,244,110, 32,131,
+101,164,193, 93,189,181, 58, 77,212,210,207,199, 11, 75, 74, 74,132, 78, 78, 78, 42,221,185,243,244,244,124, 27,177, 53,126,193,
+130, 5, 40,227,241,128,161, 67,193, 79, 79, 7, 69, 81,232,214,173, 27,186,116,233, 2, 0,232,214,173, 27,184, 92, 46,130,131,
+131,225,229,229,133,173, 91,183,142, 55, 36,180, 72, 2,241, 90,109,177,191,175,175,175, 94,104,237,249, 93,138,184, 7, 3, 65,
+ 64,128, 45, 63, 62,211, 31,235,237,237,141,124, 73, 58, 8,130, 77, 52, 81,198, 85, 30, 30, 30,203, 60, 61, 61,125, 55,108,216,
+192, 17,137, 68,248,244,211, 79, 91, 86, 86, 86, 54,175, 49, 37, 99,209,162, 69, 0,128,229,203,151, 99,197,138, 21, 80,169, 84,
+114, 67,100,123, 54,182,247, 42, 44, 97,166,177,149, 86, 35,250,186, 52,111,223,111,240, 0,180,244,235,135,126,131,179, 1, 96,
+173, 19, 55,243,131,239,150, 56, 28,115,176, 37,118, 93, 56,119,113,121,207,240,126, 75, 22, 86, 94, 93,253,237,206, 50,147, 49,
+143,229, 89,187,101, 79, 5, 99, 55,253,176,253,247, 77, 95, 47,154, 35,202,150,170, 75,115, 75,217, 74, 27, 33,215,166,149, 59,
+ 97, 51,235,171, 85, 47,242,242,210,231, 35,231,156,201,153,150, 12,195, 32, 61, 61, 93, 31,211,167, 84, 42, 81, 85, 85,133,156,
+156, 28,253, 61,163,176,182, 27, 50,115,234,176,144, 42,133, 66,126,247,113, 90,246,210,217, 19,194,170, 20, 10,121, 90, 70,118,
+ 42,176,165, 65, 53, 70,146,228, 99,185, 76, 62, 64, 94,166,132, 52,254, 41,154,246,247,129, 70, 75, 64,173,165, 33, 45,150, 65,
+165, 5,104,146,135,192, 15, 38,129, 38,184, 40,202,203, 5,201,225, 60, 66,221,160,125, 11, 44,176,224,239, 3,163, 90, 68,103,
+209, 10, 11, 11, 59, 80,219,234,164,251, 12, 64, 5,227,161, 60,210,218, 98, 74,231, 78, 52,244, 63,245,120,205,197,107, 49, 90,
+ 38,211, 59,232,254,179,153,125,133,215,186,229, 19,154, 50, 90,109,219,194,162, 2, 45,151, 43,228, 53,179, 87, 72, 74,178,205,
+255,119,149, 74, 21,123,233,210,165,225, 3, 7, 14, 20,166, 61,126, 4,117,121, 57,212,229,101,224, 49, 90, 56,137, 59,131,164,
+ 84, 32,212,106, 52,241,103,160,148,137,113,253,102,162, 70,165, 82,197,154, 43,180, 72, 14,167,110, 92,150,141, 13,132,182,118,
+ 16,218,216,212,119, 45,154, 18, 5, 86,131, 6, 13,234,223,173, 91, 55,176, 44,139,157, 59,119,130,162, 40, 1, 69, 81, 80,171,
+213,160, 40, 10, 21, 21, 21,248,253,247,223,177,109,219,182,155, 0,126, 51,217,153,105,213,151,206, 95,188, 18,250,209,132, 8,
+222,153,216,141,208,170,105, 40,136,166,168,170,210,160, 82,109, 5,218,121, 34, 80,112, 26, 28,174, 8, 97,193, 45,113,226,240,
+ 81, 10, 90,213,101, 51, 85,120, 29,171, 80, 78,118, 38, 94, 62, 79,133, 77, 69, 62, 92,237,172, 32, 79, 79, 69,199, 73,147,223,
+200, 58,209,172, 89, 51, 48, 12,131,190,125,251,234,131,171,223, 84,108, 21, 23, 23,227,212,169, 83,232,214,173, 27,194,195,195,
+145,155,155,139,244,244,116,188,251,238,187,250, 99, 30, 61,122,132,184,184, 56,180,106,101,220, 72, 88, 84,162, 57,243, 50, 39,
+126,204,251,239,191,207,191,115,231, 14, 88,150,133,159,159, 29,236,108,173, 65,144, 66, 4, 4,184, 1,168, 30, 3,244,233,211,
+ 7, 21, 21,233,218,210, 82,246,140,137,234,238, 3,112, 92,173, 86, 63,235,221,187,183,215,243,231,207, 49,119,238, 92,238,193,
+131, 7,117,166,100, 68, 70,214,157, 76,161, 80, 24,118,221,183,109,239,255,101, 75,173, 99,184, 72,220,188,133,157, 75, 48, 90,
+250,245, 3, 0, 12,140,248, 8, 45, 91,123,163,162, 40,161,133, 82,145, 57,130,207, 45,117, 76,216,146,155, 44, 30, 26, 52, 85,
+ 89,120, 45, 13,213,174, 83,147,151, 93,145,118,176, 32,155, 55,241,208,241,147,103,103,188, 27,241, 30, 79, 67,107,181, 65, 62,
+ 60,135,152, 99,167, 11,115,179,178,191, 71,246,185,196, 87,246, 63,163, 86, 60,186,162,162, 2,214,214,214, 72, 76, 76, 84, 13,
+ 29, 58, 84, 72,146, 36,158, 61,123,166, 23, 90,110, 46, 78,237,122,116, 9,242, 95,189,233,247,243,214, 66,161,112,112,159,206,
+ 1,201,105, 89, 47, 89,150,200, 52,104,109,213,104, 46, 62,142,127,212,215,213,171, 53, 39,253,218, 29, 56,247,122, 23, 42, 21,
+ 9,133,154,129, 74, 11,104, 57,124,120,118,232, 10,135, 86, 1, 96, 1,220,191,115, 83,163,210,104,206, 91,250, 26, 11, 44,248,
+ 91, 91,181, 88, 99, 34,169,230,115, 9,128,204,168,168,168,162, 90,214, 38, 41,128, 71, 0, 66,106,142,147,214,251,157,148, 32,
+136,251, 44,203,118,169,197, 35,173, 37,184,106,127, 86,215, 59,230, 81, 35, 68, 86,237,247,186, 66,203,208,148, 74, 0,112,113,
+113,113,235,216,177,115,171,159,127, 61, 4,150,101,241, 52,110, 61, 74, 11,159, 96,217,218,219,173,154, 52,105, 18,158,155,155,
+123,221,156, 18,208, 52,125,112,215,174, 93,243,187,118,234,216,177, 69,211,166,120,148,153, 1, 62, 75,131, 79,211, 32, 41, 21,
+184,180, 26, 77,131,104,144,132, 13,242,242,202, 17,189,239, 80, 98, 77,150,120,163,240,127,247, 61,172,124, 89, 14,130, 32,176,
+ 33, 44, 8, 2, 91, 27,240,173,109,240,217,201, 43,122,113, 21,187,114, 17, 4, 54, 54,104,213,213,172,132,240,242,171, 87,175,
+ 62,120,252,248,113,151,160,160, 32,204,159, 63, 31,153,153,153, 96, 24, 6, 5, 5, 5, 74,137, 68,146, 43,149, 74, 51, 1, 28,
+ 3,240, 51,204,200, 60,206, 87, 41, 55,199, 30,217, 51, 51,172,103,184,203,251, 35,182,225,248,225,121, 40, 43,175,128, 92, 43,
+ 70,149, 82,139, 42, 21, 7, 78,206,237,209, 53, 56, 24,121,185,133, 72,186,115,190,146,171,146,175,111,204, 13, 74, 16, 4,226,
+226,226,224,235,101,139,212, 63,174,195,197,138,135, 16, 47, 15,120,245,232,169,207, 47,101, 12, 60, 14,180,227,199,143,215,103,
+134, 31, 52,104, 80,198,196,137, 19, 61,231,205,155,135, 95,127,253, 21, 55,111,222,124, 45, 64, 59, 60, 60, 28, 55,110,220,248,
+ 6,192,114, 83, 70, 61,181, 90, 13,127,127,127,220,191,127, 31,151, 46, 93, 66,191,126,253, 16, 30, 30,142,132,132, 4, 92,184,
+112, 1,113,113,113, 32, 8, 2,206,206,206,208, 84,139,103,141, 33, 50,138, 66,204,183,223,237, 90,188,105,211,182,192, 9, 19,
+ 38,224,200,145, 3,248,104,106, 91, 16,164, 16, 4, 33,196,123,195,218, 98,229,170,251,232,218,181, 15, 92, 92,120,216,180,241,
+196, 11,133,130,254,221,140,211,184,250,194,133, 11, 94, 74,165, 18,101,101,101,172,141,141, 13, 81, 92, 92, 61,163,181, 33,139,
+150, 92, 46, 23, 25, 34,122,252, 48,101,125,153,140, 45,101, 43,227, 70,148,104,227,218,247, 27,156,131,129, 17, 83,113, 49,246,
+ 55, 92, 57,127, 9, 78,220,204, 12, 88,203,206, 22,101, 20, 85, 72,170,252,182, 7,116,154,206,121, 89,117,126,251,172,247, 82,
+ 57,158,158, 76,204,162,159, 42,202,140, 9, 45, 0, 68, 73,242,222,147,199, 88,188,215, 61,172,107,235, 32,111, 79, 65,105, 81,
+ 33,123,248,196,217, 68, 42,227,200,169, 90, 2,139, 53, 33,212, 87, 70, 70, 70,126, 93,243,121,247,210,165, 75,167, 71, 71, 71,
+187,230,231,231,235, 99,180, 10,139, 74,174,116, 31, 58,139, 46, 46, 43, 87,239,218,244,213,104,177, 72, 40, 88, 26,189,235,154,
+134,131, 59,134,120,181, 12,179,245,131,185,203,230,164, 61,141,107,210, 92, 44,192,137,175,150,227,209,133,171,208,144,124,252,
+227,210, 93,168, 40, 26,101, 69,197,184, 60,237,115,216,184, 59, 98,219,181, 35, 5, 12,195,252,100,233,106, 44,176,224,239, 11,
+ 67, 90,132, 32,136,134,114,236, 21, 52,240,221,125, 99,191, 51,192,243, 87,192, 96, 86,120,179,166,224, 21, 21, 21, 21,222,184,
+113, 23,215, 98, 87,227,122,236,106, 36,197, 61, 66, 94,174, 26,185, 5, 74,216,217,217,221, 54,242,211,250,153, 99, 89,185, 92,
+ 62,114,233,178,175,243, 69, 98, 43,244,238,223, 31, 30,174,110,176,226,243,192,209, 50,224, 16, 60, 84, 74, 29,144,154, 32,199,
+194, 93,123, 11, 43,229,242,145, 13,116, 18, 3, 12,137, 12,130, 32, 32,180,179,133,192,198, 22, 66, 91,187, 58,110, 68,145,157,
+ 29, 68,182,118,224, 10, 4, 13, 5,195,191,198, 89, 89, 89, 57,106,244,232,209,165,229,229,229,152, 62,125, 58,174, 95,191, 30,
+119,254,252,121,187,132,132, 4,177, 84, 42,109, 13, 96, 16,128, 29, 70, 68, 86, 29,206,210,210,116, 25,171, 85,141,141,250,250,
+ 11,133, 82,235,140, 49,147, 15,194,154,204,129,150,102,192, 2,240,114, 18,160,199,128, 85, 40, 84,119,199,193,237,107,228, 12,
+165,156, 80, 47,135, 86, 29, 78,150,101, 89,119,119,247,215,206,193,165, 75,151, 48,102,244, 40, 12, 30, 49, 28,174, 45,124,225,
+ 54,224, 93, 12,158,254, 15,108,223,190, 29, 36, 73,194,197,197,165,126,199,171,231,220, 19, 15,222,254,199, 32,246, 63, 6,177,
+ 59, 14, 92, 0,147,246,238,221,251,109, 72, 72,200,213,155, 55,111,174, 7, 48,182,246,127,213,194,138,122,214,172,134,174,209,
+146, 57,115,230, 40,210,210,210, 96,109,109, 13,173, 86,139,155, 55,111, 98,219,182,109,216,176, 97, 3,226,226,226,224,236,236,
+140, 86,173, 90, 65,165, 82,225,254,253,251, 10, 0, 75,140,112, 50, 82,169,118,212,150, 45,209,197, 17, 17,189,176,107,215,143,
+240,240,232, 14, 30,215, 3, 92,158, 43,172,109,252,241,203,207,223,226,157,119, 58,226,228,137, 67, 37, 69,197,218, 81, 0,180,
+102,220, 75,202,187,119,239, 98,251,246,237, 24, 61,122,116,238,152, 49, 99,232,242,242,114,189, 69,139,101, 89,176, 44,139, 21,
+ 53, 49,102, 42,149, 74,104,136,243,227,133,137,185, 95,173, 73, 90, 89,144,159,219,237,250,213,219,227,175,156,191,132, 23,105,
+ 87,112,229,252, 37,252,113,229, 86,100, 65,126,110,183,142,161,109,248, 35,167,207,252,114,207,209, 35, 28, 27, 59, 79,236, 57,
+122,132, 51,110,214, 23,107, 58, 15,238,183,196,212, 61, 95,115, 29,217,202,194,130, 69,107,215,255, 80,169,165,148,228,186,239,
+183,230, 41,164,146, 37,181,238, 75,214,212,253,169, 80, 40,118, 40,149, 74, 47,165, 82,233,165, 82,169,150,100,102,102,246,158,
+ 63,127,190,148,166,105,189,181, 84,154,124,242,246,147, 63,119,175,117,115,113, 20,119,239, 18,216,118,227,142,195,215,178,115,
+ 10,254, 89, 43,135, 86, 67,229, 84, 86, 42,148,163,134,143,156, 88, 85, 86,170, 66,216, 23,145, 96, 68, 54, 80,209,128,134,229,
+ 64, 75,112,241,120,245, 70,136,157,108,177, 47,227,161,188, 92, 67,141, 66,221, 28, 90,198,234,254, 54,176,112, 90, 56, 45,156,
+255,153,156,255,205,240, 68,221,181, 14, 61,235, 88,180, 76, 77,169,108,210,164, 73,239,247,223, 27,128, 62, 17, 75,193,178, 44,
+158, 60,252, 14,165,210,167,104,226, 33, 68,122,118, 69, 24,128,235,141, 40, 76,118,102, 78, 78,183, 57, 75,150, 30, 29, 51,168,
+127, 64, 80,139, 22,194,230,205,125, 96,237,230,134,162, 34, 41,254,188,147,172, 89,179, 63, 38,177, 70,100,153,229,152,100, 24,
+166, 58,200, 29, 64,255, 57, 11, 65,112, 56, 64, 77, 26, 7, 93,199,216,162, 75,119, 16, 92, 46,104,150,129, 74,165, 50,103,182,
+220,203,231,207,159,143,154, 48, 97,194,229,216,216, 88,114,240,224,193, 29,142, 29, 59,246, 54,107,230,161,170, 48,237, 42,128,
+136, 53,139,102, 28,236,214,111,184,157, 95, 96,103,126,231,230, 28, 80, 26, 2,121,185, 89,136, 61,122,143, 74,190,123,190,130,
+213, 42,199,202,139,210,174, 26,227,162, 40, 42,187,117,235,214,238,219,183,111,215, 7,195,211, 52,141,162,162, 34,220,190,125,
+ 27,237,187,116, 69,192,212,105,144, 74,165,216,178,101, 11,188,189,189, 49,108,216, 48,148,148,148, 64,171,213,154,235,240,165,
+ 1,156,175,121,161,158,200, 34,106,150, 0, 50,234, 54,244,245,245, 21, 40,149,202, 14, 44,203,114, 8,130,216,172, 86,171,167,
+ 44, 90,180,200,115,237,218,181,104,219,182, 45,138,138,138, 96,109,109, 13, 63, 63, 63, 72,165, 82,220,187,119,143,150,203,229,
+219, 81,189,144,181,212, 68,249,158,221,187,151,209,109,246,236,207,142,126, 27, 61,195, 79,169,234, 35,112,114,234, 9,150,213,
+ 66, 42,205,132,172,226, 38,181,106,229,111,207, 11, 10, 53, 35, 1,164,153, 89,231,229, 51,103,206, 4, 0, 17,128,165,233,233,
+233,241, 1, 1, 1,126,134, 44, 90,230, 96,211,225, 92, 37,128,253,163, 6,123,205,173, 40, 74,240,115,226,102,102,116, 11, 98,
+182,108, 58,156,171,180,243,170, 90, 93,148,121, 61, 85, 82,117,126,251,158,163, 71, 56,147, 71,140,162,155,218,164, 69,138,220,
+216,195,102, 80,179, 33, 33, 33,205, 8,162,164,101, 97,241,211, 7, 31, 77,159,241,129, 61, 95,113, 38,164,105,113, 43,210,187,
+163, 40, 46, 46, 46, 3,141,156, 25, 90,131,212,220,220,220,222,139, 22, 45, 58,207,178,108,157,216,132,194,162,146, 43, 97, 17,
+ 51,217,178,178,242,120,105,202, 73,115,114,169,221,187,247, 48,174,127, 80,251,142, 71,190, 93, 27,237,222,103,206,124,110,234,
+213,107, 0,173, 65,214,245,107,160,133,106,102,227,173,139, 5,229, 20, 53, 2,150,172,240, 22, 88,240,183,183,102, 25,211, 34,
+255,225, 24, 10, 3,193,240,102, 87,198,183,101,147,243,109,253,154, 15,242,110,234, 10, 0, 72,207,200, 67,122, 70,238,133,244,
+ 23,185,131, 77, 40, 94, 67,211, 43,245,139, 74, 19, 53, 41, 28, 88,243, 22,149,174,195,233,236,236,252,128,203,229, 54,109,204,
+217,160,105, 58,175,168,168,168,163,153,229, 28,215,162, 69,139,232,172,172,172,163, 12,195,204,109,164,218,111,144, 83,183,168,
+ 52,201, 21, 12, 96,181,234,246, 0, 64,112, 5,230, 44, 42, 93,155,179,189,141,141,205, 14, 30,143,231,173,187,142,186, 24, 44,
+154,166, 57, 20, 69,137,104,154,230, 0, 32, 72,146,212,242,120, 60, 37, 65, 16, 90,173, 86,155,173, 82,169,102,224, 85,194, 81,
+ 99,117, 55,217,209,215, 8, 45, 52, 96,209,186, 4, 0,105,105,105,109, 28, 29, 29,199, 18, 4, 49,154,101, 89,127,153, 76,166,
+ 90,182,108, 89, 92, 76, 76, 76, 69,139, 22, 45,134, 12, 29, 58,148, 72, 72, 72, 64, 98, 98, 34, 91, 92, 92,124,184,198,138,149,
+222,200,123,137, 20, 10, 57, 31, 58, 57,145, 67, 89, 22, 33, 96, 65, 16, 36, 30,151,151, 51,103,228,114,250,159, 53,130,177,177,
+247,167, 14,227,155, 55,111,254, 91, 70, 70, 6,207,144, 37,213, 80,221,235,227,187, 37,129, 75,195,122,245, 26,117,251,143, 63,
+142,125,181, 38,105,101,237,125,179,134, 59,126, 52,238,243, 57,223,237,223,250,253, 87, 63, 28, 47,221,101, 78, 57, 59,116,232,
+224, 75, 16,196, 88, 0, 65, 44,203,182,102, 89, 66, 68, 16,108, 41, 65, 16, 73, 0, 18,212,106,117,108,114,114,242,203,183,168,
+251,155,140,112, 13,113,234, 23,149, 6, 77, 7,211, 0,107,230,162,210,255,223,229,180,112, 90, 56, 45,156,255, 62,206,255,102,
+124,210,192,119,230,101,134,215, 33,253, 69,238,224,244, 23,185,104,221,186, 53,251,236,217,179, 70,137, 52, 67,157, 52, 77,211,
+ 7,228,114,249,129,183, 33, 41, 46, 46,238,252, 47, 62,121,251, 51, 50, 50,246,255,149,132, 53, 66,106,101,205,235, 77,241,184,
+178,178,178,171,185, 7, 83, 20,245,175, 56, 55, 68,141, 53,235, 27, 67, 7, 12, 26, 52, 40,139,162,168, 75, 0,114, 8,130,112,
+ 0, 80, 66, 81,212,121,173, 86, 91,240,236,217,179,206, 27, 55,110,212,101,190, 95, 5,224,193, 27,150,131, 81,169,232,125,121,
+121,244,190,127, 65, 29,247,169,213,234,121,206,206,206,173,148, 74,165, 64,169, 84,242,107, 79, 62, 16,139,197, 82, 99, 1,241,
+181,225, 96, 75,236,230,115, 75,157, 29,108,137,250, 66, 10, 78, 77,112, 68, 81,149,216,214,169, 9,142,152, 91,176,248,248,248,
+244,144,144,144,189, 36, 73,182, 96, 89,214, 29, 96,237, 89, 22, 82,150,101,139,184, 92,110,110,114,114,114,238,127, 80, 35,164,
+212, 50,204,122,173, 90,253, 42,238,208, 50,187,208, 2, 11, 44,248,223,129,193, 24, 45,110, 99,153,158, 61,123, 70, 88,206,167,
+ 5,181,197,150,177,157, 89, 89, 89, 42, 0,183,106, 94,245,241, 0,192,176,255,244, 10, 74, 36,146,142,134,246,153, 43,178,128,
+234,152, 45, 32,177,193,236,236, 43,126, 40,149,225,135,163, 95, 54,182,108,143, 30, 61,202,134,153, 46,118, 11, 44,176,192, 2,
+ 11,254,101,120,123,139,150, 5, 22, 88, 96,129, 5, 22, 88, 96,129, 5, 13, 98,103, 45,193, 85,199,186, 69,192,240,204,129,198,
+248, 94,223,100,246,193, 37, 11,167,133,211,194,105,225,180,112, 90, 56, 45,156,127, 59,206,255, 85,188, 38,178,254, 63, 96,153,
+250,106,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,239, 32,178,234,191, 0, 88, 92,135, 22, 88, 96,193,223, 24, 49, 49,
+ 49,102, 45, 42,250,225, 87,191, 68,216,216, 56, 46,171,172, 40,143,254, 63,246,174, 59, 46,138,171,107, 63, 51,179,179,125, 23,
+216,165, 46,197, 2, 10, 34,160,128, 5,123, 68, 77,140,189, 68, 44, 81,177,151, 24, 53, 49,106,212,168,209, 88,227,107, 98,137,
+ 38,246,222, 91, 20,236,189, 87, 52, 86,172,244, 46,117, 97,123,153,249,254,128, 37,168,148, 5, 77,222,228,253, 56,191,223, 56,
+206, 48,243,236,189,119,110,121,238,185,231,158,179,123,233,176, 67,150,251, 97, 97, 97,230,234, 82,172,150,106,169, 22, 84,197,
+ 24,222,211,211,221,143, 52, 51, 45, 89,150,164, 88,146, 53, 18, 74,205,158, 87, 57, 57,111,184, 29,240,240,240,176,163, 73,116,
+ 35, 88, 86, 76, 16,140,153,161,200,171, 49, 49, 73,143, 43,145, 48,158, 76, 38,251,146,203,229,118,208,235,245,238, 36, 73, 38,
+233,116,186, 51,106,181,122, 21,222,117, 92,248, 95, 19, 31, 31,159, 1, 23, 46, 92,176,107,213,170,149, 78, 40, 20,154, 52, 26,
+ 13,231,196,137, 19,252, 78,157, 58,229,190,124,249,178, 74, 59, 18, 93, 93, 93,219,109,216,176,193,179, 99,199,142,168, 91,183,
+174,170, 95,191,126,220,230,205,155,115, 71,140, 24, 17,147,146,146,114,174,146,112,126, 4, 65,108, 35, 8,130, 98, 24,102, 48,
+254,116,221,240,161,133, 36, 73,114, 52, 65, 16,189, 88,150,245, 34, 8,226, 21,203,178,135, 24,134, 41,207,113,107,121,242, 25,
+128,206, 36, 73, 6, 3, 0,195, 48,119, 1, 28, 3,172,223,121,247,119, 98,138, 68,162, 32, 0, 80,171,213,247, 62, 20, 38, 65,
+ 16, 65, 0,192,178,108, 85, 49,135, 10,133,194,145, 0,160,209,104,214,195,138,112, 80,111, 11,187,198,151, 13,158, 27, 13, 0,
+184,251,189, 47, 0,160, 50,215,196,152,104,162, 50,191, 85, 26, 94,101, 48, 74,145,206, 3, 7, 14, 92,184, 99,199,142,239, 1,
+ 28,254, 43, 42,190,139,139,199,170,159, 86,172,115,253,234,203,225,139, 81, 24, 17,162,252, 6, 9,124,204,163,168,238,122,179,
+249,242, 99, 96, 31, 0,142, 92, 46, 31,192,227,241,218,232,245,122, 5,135,195, 73,213,235,245,151,242,242,242,118,161,156, 8,
+ 8, 86,151,235, 19,200, 12,106,184, 16,204,159,113,222, 88, 18, 58,174, 8,105, 68,125,228,252, 3,186, 81, 18,192,196,162,188,
+110, 68,217,238, 60,202,235,124,190,114,117,117,237,165, 84, 42,213, 20, 69,177, 40,220,245, 92,248, 79,225,223, 9,134, 97, 50,
+178,179,179, 7, 87,132, 37,174,129,122, 60, 49,177,205,108,132,198,164, 99,199,170, 18, 17, 45,241, 64, 11, 22, 24,204, 2,181,
+ 73,138,116,100, 24, 38, 21,192, 57,210,132,136,130, 20,188,248,135, 14,238, 53,139,202,181, 86,209, 53, 13,192, 25,192,125, 0,
+ 95, 1, 40,168,230, 63,127,155,188,109, 12,127, 20, 64,106, 49,209, 42,225,238,190,109,215,174, 93, 47,122,122,186,251,245,233,
+217,123,225,152,209, 99, 9,138, 34,241,240,209, 35,206,231,131,135,126, 34,147,201,220, 36, 58, 93,125, 16, 4,163, 22, 8, 30,
+ 42,149,121,201,251,118,237,144,250,214,171,103, 54,155, 25,172, 89,251, 91,167,253,191, 31,156, 97, 37,217,242,113,113,113,217,
+ 54,109,218, 52,151,238,221,187, 83, 46, 46, 46,136,139,139,179,219,189,123,119,189, 95,126,249,165,111, 78, 78,206, 96, 0,207,
+170,144,217,214, 46,114,242, 19,169,144,104,143,124, 51,242,141, 56,155,166,193, 41, 0,151,171, 90,122,106,181,122,188, 90,173,
+ 14,105,210,164, 9,187,113,227, 70, 98,200,144, 33, 44, 65, 16,132, 70,163,217, 2,160, 74, 68, 75, 44, 22,175,238,216,177,163,
+183,183,183,247,171,151, 47, 95,118,222,187,119,239,177,240,240,112, 47,177, 88,252, 28,128, 79, 37,225, 54,103,101,101, 5,106,
+ 52, 26,184,187,187,111, 4,208,232, 47,168, 68, 4, 69, 81,135,220,220,220,216, 37, 75,150, 28, 14, 12, 12,116,206,206,206, 54,
+ 77,153, 50,165,195,141, 27, 55, 58,153,205,230,238,149, 32, 91, 50,130, 32,214, 58, 59, 59, 59, 44, 94,188,248, 69,227,198,141,
+239,243,249,124,222,243,231,207, 69,147, 38, 77,250,250,217,179,103,125, 89,150, 29, 13, 84,106,128,144, 17, 4,177,214,213,213,
+213, 97,225,194,133,113,193,193,193, 15,185, 92, 46,247,249,243,231,226,111,191,253,246,171,232,232,232, 42, 97,146, 36,185, 38,
+ 36, 36, 68,246,253,247,223, 63,169, 87,175,222, 53,138,162,120, 73, 73, 73,228,156, 57,115,190, 60,125,250,116, 24,195, 48, 99,
+170,146, 78, 39, 39, 39,217,156, 57,115,158, 52,111,222,252, 6,151,203,229, 62,125,250,148,156, 54,109,218,151, 47, 94,188,176,
+ 58,157,114,185, 60,148, 32,136,117,105,105,105, 28, 0, 80, 40, 20, 77,109,108,108,126, 41, 25,211,210,226,138,194,104, 52,230,
+107,181,218,129,217,217,217,165, 58,194, 29, 50,125,101, 55, 0,248,197, 96,185, 46, 60, 87,116, 13,172,137,176, 38,211, 65, 46,
+133,126,241,126, 82, 13,235, 9, 0, 3,138, 66,133,255,164, 2, 56, 28, 14, 19,228,242, 21,123, 47,173, 82, 46, 99,122,180,107,
+215,110,206,185,115,231,126,107,219,182,237,183,219,183,111,119, 74, 76, 76,252,241,242,229,203, 30,253,251,247, 31,114,246,236,
+217, 69,153,153,153,251, 63, 84,229,231,113,249,124,130, 36, 32, 20,136,108,172,121,158, 38,201,174,215,122,244, 24,185,254,233,
+211,224, 95,162,163, 61, 85, 10, 69,200,132, 9, 19,156,123,247,238, 77,122,120,120,224,197,139, 23,246,219,183,111,175,191,126,
+253,250, 94,185,185,185, 19, 1,196,191, 15,201, 82,229,162,129, 78,143, 96,150,133, 93,113,131, 37,144,203, 55,224, 46,251, 4,
+ 15,254, 1,100,107,246,230,205,155,191,127,241,226, 5, 22, 45, 90, 4, 0,171, 42,249,254,164, 30, 61,122,116, 57,120,240,160,
+112,223,190,125,194, 38, 77,154,192,197,197, 5, 69,147,169, 98,199,212,158,158,158,214,149, 25,131,159,150, 31, 27,214,232, 97,
+246,113,172,238,157,182, 72,232, 14, 83,139, 30,222,189,186, 14, 9,134,173,163, 8, 2, 9, 7,185, 89,202,128,167,119, 19, 59,
+158,223,251,226,199, 23, 81,175, 23,171, 18, 48, 27,101,251,228,251,175,136,189,189,253,198,152,152,152, 80,177, 88,252,198,253,
+ 87,175, 94, 5,121,123,123,231, 1,248,166,178,196,205,209,209,113, 39,195, 48,186,172,172,172,225, 0, 32,149, 74,119,136,197,
+ 98, 89,106,106,234,140,191,106, 34, 99,145,183,185,200,191, 92,163, 85,108,175, 85, 90,172, 67,130, 52, 51, 45,199,140, 30, 75,
+244, 27,208, 63,237,197,171, 24,134, 67,243, 6,156, 56,121, 82,228,231,231, 71,234, 86,173,130,233,245,107, 24,191,254,186,197,
+153, 51,103,140, 97, 3, 6,105,104,138,216,236,229, 89, 91,180,103,215,110,151,131, 7,246,183, 4, 80, 17,209,226,185,184,184,
+108,187,112,225,130,155,167,167, 39,114,115,115, 17, 23, 23, 7,149, 74,133,190,125,251,210, 45, 91,182,116,235,211,167,207,182,
+188,188,188, 86,149,208,108, 57,215,117,231, 68,142, 30,218,219,167,211, 39, 45,197,110, 30,117,192,166,105,145,248, 50,186, 73,
+228,133, 27, 19, 54, 31, 56,246,236, 69, 30,219, 21,165,199, 70, 42, 87, 50, 51, 51,167,246,234,213,235, 64,104,104,168, 35,159,
+207,135,171,171, 43,209,189,123,247,140,148,148,148,185, 85,102, 45, 69, 33,108, 72,146, 52,151, 60,151, 18, 30,200, 26,113,151,
+201,100,144,201,100, 0,224,246,190, 51, 79, 59, 59,187, 85, 82,169,180,143, 82,169,212,144, 36,201, 18, 4,193,234,245,122,161,
+ 76, 38,251,227, 73,244, 51, 87,157, 78, 87,119,233,242,245, 43,218,181, 14,180, 57,125,250, 52,122,247,238,205,158, 58,117,106,
+180,181,113,234, 8,130, 88,219,171, 87, 47,245,172, 89,179,180, 47, 94,197,185, 61,121,246,138, 16, 11,120,140,131,131, 3,125,
+235,214, 45,206,178,101,203, 4,115,230,204, 89,203,178,108,159, 74,148,231,218,254,253,251, 27, 38, 79,158,156,250,244, 69,140,
+211,131, 39, 47, 88,137,128, 54, 57, 56,216, 83, 55,110,220, 96,170,130, 73,146,228,154,169, 83,167, 42, 71,143, 30,157,147,149,
+157,231,146,163, 44, 96,249, 52,101,116,113,113,225, 28, 62,124, 88,183,115,231, 78,114,228,200,145,107, 24,134, 9,171, 68,249,
+174,233,222,189,123,254,180,105,211,114,159,191,138,117,121,240,248, 25, 68,124,218,232,236,236, 68,221,190,125,219,176,116,233,
+ 82,114,254,252,249, 86,165, 83, 44, 22,111,221,187,119, 47,231,240,225,194,190,239,250,245,235,164,151,151,151,168,228, 51, 26,
+173, 14, 36, 1,100,102,102,138,154, 55,111,190, 21,192, 59,206,125,131,231, 70, 99,200,116, 96,252,248,241,169,149,173, 44,193,
+138, 9, 21, 62, 99,254,205,151, 93,166, 30,214,147,195,225, 48, 35, 71,142, 76,123,251,239, 90,173,150, 0,208, 29, 63, 90, 79,
+182, 58,119,238,252,221,209,163, 71,235,108,223,190,253,231,157, 59,119,234, 1, 64, 32, 16, 56,236,222,189,123, 81,223,190,125,
+209,183,111,223, 89,251,247,239,255, 96, 68,203,204,154, 13, 0,192, 23,240,249,209,209,209,132,175,175,111,185, 30,247, 13, 12,
+115,103,253,211,167,141,191,240,245,109,146,205, 48,117,185,157, 58, 21, 76,154, 52, 41, 83,169, 84, 34, 46, 46, 14, 6,131, 1,
+ 67,134, 12,161,218,182,109,235,218,183,111,223,149,249,249,249,159, 1, 48, 88, 81, 39,151,186,185,185,141,202,203,203, 43,176,
+104,117, 90, 13, 54,115,218, 4,153,248, 13,235, 26,121, 92,202,196,237,246, 53, 67,156, 90, 69,168,124, 61,113, 5, 0,184,106,
+188,174,228,100,160, 84,177,113,135,167,153,198,124, 71,119, 97,187,215,241,154, 31, 84, 9,229,146,165,207,196, 98,113, 79,149,
+ 74,181,191,104,112,246,233,218,181, 43,110,220,184, 1, 0, 45,139,136, 86, 59,146, 36, 63,103, 24,102, 3,128,242, 66,185, 77,
+232,209,163,199,199, 7, 15, 30,148, 2,192,254,253,251, 97, 52, 26,225,229,229, 5, 46,151, 11, 30,143, 7,154,166,139,163,131,
+ 88, 41, 10, 71, 71, 7, 56,216,210,144,201,197,157,190,253,181, 7,167,134,159, 13, 50,204,143,144,205,230,194,196,234,192,181,
+ 23,163, 94, 71, 59, 4,127,210,142,140, 88,243,112, 70,196,234, 39,141,213, 36,186, 33, 30,186,127,202,200, 78,146, 36,255,254,
+253,251,112,117,117,125,227, 62, 69, 81, 0,208,166, 10,144,179, 94,189,122,213, 60, 42, 42, 10,161,161,161,179, 26, 52,104,240,
+233,197,139, 23, 93,178,178,178, 16, 26, 26,186, 50, 41, 41,233,240, 95,157,167,146, 92,228,127, 69,213, 69,190,197, 36,219, 22,
+206,130, 73,138,162, 72,196,188,138, 51,134,134,182, 15, 79, 72, 72,144,132,132,132,144, 52, 77, 67,117,238, 28,180,183,111, 67,
+ 34,145,160, 87,175, 94,244,165, 75,151,108,108, 36, 54, 35, 98, 99, 98,243, 41,138, 4,203,146, 21,218, 60,200,100,178, 47,103,
+204,152,225,226,237,237, 13,147,201, 84,236,209,220,100, 50, 33, 49, 49, 17, 18,137, 4,131, 7, 15,118, 18,137, 68, 95, 90,153,
+143, 90, 62, 94, 78,119, 47, 28, 91,219,104,210,152,206, 98, 31,209,105,136, 19, 39, 66,178,255, 11,212, 79, 57,129,105, 61, 67,
+196,167, 86,207, 10,174,227, 42,191, 91, 66,197,106,181,232,116,186, 43, 15, 31, 62, 28,113,241,226, 69, 6, 0,206,159, 63,207,
+ 62,121,242,100,244,251,204, 66, 25,134, 65,110,110, 46, 24,134,161,138,174, 45,231,255,106,125,176,177,177, 89,243,233,167,159,
+246,143,143,143, 23, 30, 63,126,220, 62, 33, 33,193, 33, 54, 54,214,209,199,199,135,179,104,209,162,163, 90,157,129, 50,154, 89,
+189,201,108,204, 79,125,244,232, 85, 78,122,250,221, 77,155, 54,105, 8,130,232,101,229,111,124,166, 80, 40,236,167, 79,159, 14,
+130, 22, 53,173, 87,191,129, 55, 69, 11,109, 73,154,103,171,209,104,205, 49, 49, 49,137,211,167, 79,175, 29, 24, 24,232,138,194,
+229, 53,171, 48, 93, 93, 93, 29, 38, 79,158, 12, 14, 95, 26,212, 48, 48,184, 14,143, 47,150, 82,180, 80, 26, 18, 18,210,246,213,
+171, 87, 41,211,166, 77, 83, 52,105,210,164, 82,152, 77,154, 52,145,141, 28, 57,210, 36, 16, 74,155,123,122,122,213,111,232, 95,
+191,139,143,143, 79, 79, 14,135, 99,122,253,250,117,252,224,193,131, 21,221,186,117,115,174, 12,166,147,147,147,108,218,180,105,
+ 38,143,154, 94, 29, 59,126,252, 73, 51,174, 80,106,203,225,137,237,212,106,173,249,233,211,167,241, 51,103,206, 84, 4, 5, 5,
+ 57, 89,131,169, 86,171,105, 7, 7, 7, 4, 4, 4,192,207,203, 11,121,121,121, 56,120,240, 32, 54,111,222,140, 13, 27, 54, 96,
+215,174, 93,104,220,234, 19, 72,165, 82,164,164,164, 64,169, 84,210,127,119,133, 50,255,230,203,254,162, 31,213,125,236,216,177,
+ 41, 35, 71,142, 76, 19, 10,133,204,219,135, 92, 46, 55, 15, 28, 56, 48,125,240,183,203,187, 91,150, 22, 43,208,100,221, 63,118,
+236,216,203,237,219,183,195,207,207, 15, 29, 59,118,228, 1,192,151, 95,126,201,235,219,183, 47,246,238,221,139,253,251,247, 63,
+246,246,246,190, 10,160,135, 53,233, 28, 60,120,112,171,176,176,176,203, 97, 97, 97,247,250,245,235,183,110,244,232,209,111,140,
+ 92,169, 41, 73,119,244,122, 61, 2,131,155,136,230,109,188, 57,176, 34,188, 39,192,246,117,209,209,155, 23, 63,122, 20, 63,203,
+207,207,174,102,108,172,124,203,210,165, 14,150, 32,221, 70,163, 17,137,137,137,144,201,100, 24, 56,112,160, 3,159,207, 31,108,
+ 69, 50,151,245,232,209, 99,104, 66, 66,130,100,253,250,245,138,123,247,238,185,166,166,166, 42,206,158, 57,233, 56,229,155, 47,
+165,182, 18, 30, 47,229, 53, 75, 0, 64,108, 10,196,209, 49,104,197,178,176, 43,185,156, 88, 37, 81, 64, 40,116,199, 47,117, 90,
+217, 61,155,188, 55,168,223,180,200, 96, 7,153,130, 63,189,156, 55, 26, 46, 89,178,100, 95, 68, 68,196,128, 86,173, 90, 29, 0,
+ 32, 44,229, 25, 65,227,198,141, 15,238,221,187,119,104,235,214,173,175, 0, 8, 40,115, 22,233,238,222,235,247,223,127,183,183,
+ 92, 59, 56, 56, 64, 32, 16,188, 67,178,184, 92, 46, 72,146,172,116,246, 22,236, 30,192,145,215,215,225, 97,206, 49,236, 93,114,
+ 31, 75, 58, 61,101, 22,182,136,213,173, 26, 28,141, 83,123,239, 35, 3,247,209,249,139, 58, 24, 48, 51,176,131,200,140,249,255,
+164, 1,252,245,235,215,159,183,105,211,102, 95,231,206,157,117, 81, 81, 81,120,253,250, 53,220,220,138,231,218,105, 85,128,148,
+139, 68, 34,120,120,120,192,219,219,123,192,165, 75,151, 92,140, 70, 35, 98, 99, 99,145,145,145,113,247,239,200, 83, 73, 46,242,
+ 47,147,183, 13,225,143,190, 67,180,138, 98, 11, 93, 0, 0,150, 32, 84,247, 31, 62,164, 41, 30,111,208,142,157, 59,249, 92, 46,
+ 23,241,241,241,120,252,248, 49,212,103,207, 66,115,237, 26,210,211,211, 81, 80, 80, 0,103,103,103,172,221,184, 81,172, 55,179,
+195,158, 62,123, 70,177, 36, 91,210,222,160,212, 45,158,124, 62,191, 67,239,222,189,203, 36,100, 41, 41, 41,232,220,185, 51, 77,
+ 81, 84,105,187, 26,222,198, 36, 92, 29,137,136,179, 7,230, 41, 20,188,199,192,139, 73, 64,254, 93,128,213, 1, 38, 61,144,252,
+ 0, 56, 58, 23, 53, 11,162,137,147,243,194, 93,220, 68,156,136, 82,152,114, 69, 91, 81,189,124,125,125, 55, 12, 26, 52,136, 4,
+128,118,237,218, 17,190,190,190,235, 0,120,149,243,206,153, 10, 6,201, 27, 57, 57, 57,232,219,183,175,125,157, 58,117,206,244,
+237,219,215,222,114,191,170,152, 22,109,178,159,159, 95,150, 64, 32,216, 5, 88,213,193, 22, 99,218,217,217,173,234,220,185,115,
+159,157, 59,119,114, 1,224,194,133, 11,136,136,136,192,163, 71,143,240,252,249,115, 38, 56, 56,216,113,249,134,125,107, 86,253,
+182,117, 89,207,150,129,174,109,155, 6,215,151, 20,228, 20, 56, 59, 59,183,100, 89,214,203,202,116,118,158, 59,119,238,227, 39,
+ 47,227,109, 73, 14,205,225,210, 28,190,141,141,216, 89, 38, 21,187,203, 69, 2, 55, 62, 73, 72,212,106,117,218,174, 93,187, 24,
+ 0,157,173,197,156, 55,111, 94,204,147, 23,241,118, 4,201,225,208, 28,154, 43,145,136,236, 58,117, 12,109, 2, 0, 92,176, 92,
+165, 82,153,190,121,243,102, 67,101, 48,191,255,254,251,135,217,185, 5, 50, 14, 77,211, 28, 14, 85, 92,150, 98,161,208, 81,196,
+231,243,116, 58, 93,242,138, 21, 43, 52,149,193,156, 59,119,238,227,167, 47, 19,228, 36, 65, 80, 4, 65,114,108,164, 98,123,123,
+ 91,145,163,163, 68,232, 32,226, 80, 60,165, 82,153,188,109,219, 54,171, 48, 13, 6, 3, 55, 61, 61, 29, 79,158, 60,129, 71,147,
+ 38, 56,125,250, 52,106,212,168,129,190,125,251,162,127,255,254, 16, 10,133,104,215,188, 1,166, 79,159,142,151, 47, 95,194, 96,
+ 48,240, 75,195,180,216, 73,189, 45,174,174,174, 81, 21, 85,158,183,222,125, 35,157, 65, 46, 96,127,209,143,234, 94,146, 96,149,
+133, 47,151,203,205,165,105,187,222,198,236,220,185,243,119,103,207,158,173,179,109,219,182,238,131, 7, 15,190,178,109,219, 54,
+ 52,107,214, 12, 79,158, 60, 65,237,218,181,177,101,203, 22,244,239,223,255,202,202,149, 43,187, 71, 69, 69, 5,122,122,122,206,
+168, 8,179, 95,191,126,227,130,130,130,206,165,165,165, 53,207,206,206, 14, 56,120,240,224,176, 94,189,122,197, 12, 24, 48,160,
+125, 49, 97, 52, 26,119, 30, 61,114, 0, 93,186,247, 70, 61,255,128, 53, 67,102,108,111, 80, 65,219,100, 31, 1,235, 54,167,166,
+190,222,169,213,170,251,210,180, 72,116,243,166,124,255,111,191, 57,148,140, 44,144,156,156,140,110,221,186,209, 92, 46,183,117,
+ 5,233, 92,210,179,103,207,190, 7, 15, 30,148, 89,180, 58,215,174, 93,195,131, 7, 15, 16, 23, 23,135,220,220, 92,180, 31, 93,
+128,177,139, 10,177,199, 46, 98,241,201,151,172,184,138,125, 72,177, 8,107,192,197,222,134,115,117,216,138,122, 95,142, 90,227,
+199,145,200,105,236,248,246, 57, 50, 99,117,251,203,192, 36,154, 55,111,190, 61, 44, 44,140,208,235,245,208,235,245,122, 0,165,
+122,245,117,115,115, 19, 52,108,216, 16,163, 71,143, 38,109,108,108, 86,150,149, 78,149, 74,165, 59,118,236, 24, 6, 15, 30,140,
+137, 19, 39,162,110,221,186,144,201,100,160,105, 26, 91,183,239,113,232, 63,108,140, 79,163, 86,109, 2,253, 26, 53,107,152,175,
+163,154,208, 66,217,200, 50,180, 33,165,230,189,192, 41, 10, 15, 99,175,227,151,238, 73,204,173, 45,234,130, 41,159,255, 39,250,
+233,197,244, 71, 51,194,214, 61, 90,247, 12,164, 0, 0, 32, 0, 73, 68, 65, 84,100,175,183,200,220,254, 85, 2,210,141, 79,208,
+186,111, 77,120, 6,201,190, 22,123,192,183,170,229,105,165, 84, 10,179, 65,131, 6,173,110,221,186,197,111,211,166, 13,226,227,
+227, 65,211,197,243, 41,243,251,164,115,238,220,185,124,173, 86,139, 63,254,248, 3,225,225,225,201, 6,131,225,235,247, 73,103,
+101, 52, 90, 22, 46,242, 47,147,117,111, 29,169,101,105,180,230, 2,128,145, 65,196,160,240, 97,234,200,200, 72, 17,143,199, 67,
+124,124, 60, 82, 83, 83,177,117,243,102,115, 59, 39,167,252,142,110,110,202,173,155, 55,179,122,189, 30, 44,203,194,215,215, 23,
+125,250,244, 17,126,214,119, 64, 6,161,212,236,177, 98,153, 71, 97, 89, 95, 31, 54,108,216, 59,127,159, 50,101, 10,108,108,108,
+ 64, 16,132,139, 21,153, 11,155, 48,183,167,187,204,211, 46,157, 77,219,154, 13, 74, 0,112,164, 0,199, 6, 16,216, 2,124, 41,
+192, 19, 65, 23,117, 46,155,100, 59,198,245,110, 61,220, 13, 64,101,150,122,224,234,234, 58,235,220,185,115,142, 81, 81, 81,172,
+ 82,169, 68,106,106, 42,187,112,225, 66, 71, 87, 87,215, 89, 85,253, 34, 41, 41, 41,243,186,116,233,146, 30, 30, 30,110,123,226,
+196, 9,143,240,240,112,219, 46, 93,186,164,167,164,164,204,123,159, 47,205,229,114,169, 71,143, 30,201,231,207,159,223, 31,192,
+ 29,127,127,255, 44, 55, 55,183, 59, 40, 52,154, 44, 87,164, 82,105, 49,201,178,104,215, 56, 28, 14,104,154,134,171,171,171, 62,
+ 59, 59,219,220,186,145,151,208,215,150, 52,186,242,185, 66,185, 80,224, 46,181,177, 13,201,202,202,186, 79, 16,196, 43, 43,151,
+248,130,154, 54,109, 74,155, 89,154, 25, 59,168,157,235,151, 67, 67,157,126,157, 63,178,198,138,121,163,220,150,204, 25,225, 59,
+111,234,192, 80,146, 97,180,181,107,215,118,177, 24,180, 91,161, 62, 15,110,220,184, 49,135, 1,141, 39,207,226,210,227,147,146,
+243, 63,110,219,188, 88,115,233, 23, 20,220,209,209,209,177,141,175,175,111, 99,130, 32,172,218,146, 44, 20, 10,131,234,213,171,
+199, 33, 41,154,176,151, 73, 61,164, 18,161,115,241, 18,138,157, 93, 11,185,163, 99, 24,201,178,121, 10,133,194, 73, 40, 20, 6,
+ 85, 34,239, 28, 6, 92, 56, 59,201,109, 29, 29,236, 36, 29, 67, 91,214,109,222,162,185, 79,131,144,102,205,253, 27, 53,254,140,
+ 48,153,148, 94, 94, 94, 78, 22, 35,249, 10, 52,173,130,157, 59,119, 98,254,252,249,104, 88,179, 38,220,220,220,224,228,228,132,
+107,215,174,225,214,173, 91,144,201,100,200,200,200,192,210,165, 75,113,232,208, 33, 24, 12, 6,105,101,235,147, 53,100,171, 60,
+ 49,153, 76,228,219, 4,171, 44,124,161, 80,200, 88,140,228,203,146, 99,199,142,109,183,104,178,190,250,234,171, 86,203,151, 47,
+191, 18, 29, 29, 13,137, 68,130, 91,183,110, 97,216,176, 97, 87, 86,174, 92,217,106,204,152, 49,216,188,121, 51, 98, 98, 98, 54,
+150,135,215,175, 95,191, 57, 35, 70,140, 88,113,241,226, 69,210,217,217, 25, 50,153, 12, 61,123,246,196,198,141, 27, 57, 38,147,
+105, 83, 88, 88,216,189,176,176,176,123,230,196, 83,223,237,219,176,240,218,195,251,247, 48,110,194,100,158,222,100,156,102, 69,
+246, 89,141, 68,146,111,106,211, 38,123,175,209,168,238,199,229,138,108,239,221,147, 71,108,218, 84, 76,182,166, 79,159, 14, 91,
+ 91, 91,160,208,128, 25,229,104,117, 70, 29, 58,116,168,184, 63,180,183,183, 7,143,199, 3,151,203, 5, 77,211,160, 40, 10,103,
+214,136,241,219,244, 66,126,241,219,116, 2,167, 86, 17,170,247,249,118, 34, 55, 4,200,156,121,247,190,216,226, 31, 24,208,222,
+ 30,215,118,167, 97, 97,151,168,164, 91,123, 95, 79,210,102,224,167, 50, 94,107, 52,101,202, 20,191,140,140, 12,220,190,125, 27,
+183,111,223, 46, 75, 3,164, 61,114,228,200,143, 5, 5, 5,240,244,244, 68,143, 30, 61,218, 0,104, 82, 70,187, 65,227,198,141,
+209,173, 91, 55,132,134,134,162, 97,195,134,208, 27, 76,116,216,160, 81,245, 30,197,188,118, 91,184,116,161,232,220,249,131,228,
+149, 43, 23,169,237, 7, 78,217, 54, 15,253,100, 5, 87,170,184, 1,161,189,194,154,124,170,205, 89, 8, 82,116,194,186,179, 19,
+200, 95, 46,132, 75,182, 70,252,226, 37,149, 74,137,187,183,239, 25,183,174,222,155, 16, 32,238,145,113, 99,119, 22,212, 68, 26,
+218, 15,245, 36, 25,160,207, 63,101,100, 23, 8, 4,203, 47, 94,188,232, 98, 48, 24,240,240,225, 67, 76,156, 56, 81,251,158,144,
+197, 10, 16, 15, 15, 15, 92,184,112, 1, 3, 7, 14,212,166,167,167, 95,255,187,242, 84,146,139,252,175, 8,167, 4,131, 44,150,
+196,196,196, 92,153, 76,230, 86,175, 94, 61, 82,175,215, 23, 46, 73,236,223,111,222,176,105,211, 81,173, 86, 59, 1, 0,119,213,
+175,191,174,113,115,119, 15, 29, 52,120, 48, 97, 52, 26,209,165, 75, 23, 94,100,100,164,253,171,140,140,124, 43, 6,156, 55,126,
+111,200,144, 33, 88,190,124, 57, 0, 96,252,248,241,197,170,117,194, 10,131, 37,137, 45, 58,119,236,218,216, 38, 81,252,139,141,
+161,133,177,160,214, 75,233, 13,113,129,176, 49, 72, 30, 7, 2, 10,140,193,104,122,158,209,235,206,203,231,245,253,132,217, 89,
+181, 59,248,127,132, 13,167,183,117, 86,155,181,123,173,238,112, 68,162,166, 18,137, 4,119,238,220,201,110,220,184,113, 46,203,
+178,182,243,230,205,115, 16,137, 68, 77,223,163,236, 99,159, 61,123,214,166,101,203,150, 95,146, 36,217,129, 97,152, 51,233,233,
+233,171, 0,196, 90,249,254, 88, 0,223, 3, 40,158, 89,234,245,122,144, 36, 9,150,101,209,175, 95, 63, 76,159, 62,221,239,193,
+131, 7, 56,119,238,156,188, 67,135, 14, 55, 0,228, 2, 24, 14,160, 84,173,153, 82,169,212,220,186,117, 75,120,238,220, 57, 48,
+ 12, 3,185, 92, 14, 27, 27, 27,240,249,124,244,236,217, 83, 50,109,218,180,246, 39, 79,158,204, 80,214,170, 65, 9, 82,147, 85,
+124,137, 68, 10, 23,183,214, 99, 6,124, 30,205,178,236,161, 74,116, 14, 60, 33,199,164, 37,204, 58,114,201,236,149,164,136,203,
+ 37, 4, 92, 14,248,140, 26,223,253,184,128,224,178,102, 14, 42,185, 62,207,229,114,185, 82, 62,244, 20,143, 50,138, 8,176, 31,
+162,113, 80, 20,197, 19,112,203,182,199,160, 73,146, 36, 73,146, 11,192,234,160,125,124, 62,159, 43,229,179,101, 98, 10, 41,130,
+ 34, 8,130,135, 50,118,162, 5,185,128,181,104,145,120, 19, 94,233, 74,146,226,214,173, 91,227,232,185, 59,216, 31,113, 6,153,
+241,247, 49,243,219,175,208,164, 73, 19, 68, 70, 70,150,155, 38,139,141, 86, 89,218,101, 87, 87,215,168,148,148,148, 70,101,189,
+ 91,222,146, 97, 25, 90,170,119,241,103,219, 34,120,110, 52, 42,176,209,234,209,186,117,235,113, 59,119,238,212,127,250,233,167,
+188,126,253,250, 33, 32, 32,160,213,208,161, 67, 1, 0, 29, 58,116,192,242,229,203, 91, 13, 29, 58, 20,123,246,236,193,193,131,
+ 7,117,109,219,182,253,246,194,133, 11,201, 40,220,209,249,142, 48, 12,211,109,237,218,181,111,107, 10, 97, 50,153, 96, 52, 26,
+ 21, 38,147, 73, 81,212, 23, 97,197,138,149,153,167, 78, 70,226,219, 25,115,225,228,232, 18,100,101, 29, 34,134, 76,158,156,185,
+101,233, 82, 44,221,179, 7,147,107,215, 22,109,123,252, 24,167,180, 90,236, 61,119, 46,179,232,119, 42,180,205, 84,169, 84,154,
+ 99,199,142,217,236,221,187, 23,118,118,118,168, 91,183, 46,228,114, 57,104,154, 6, 73, 9, 65,113,101,168,231,223, 20,192, 45,
+ 0, 64,109, 87,168,124, 61,113,133, 32,144,203,146,149,183, 41,226,215, 64, 45, 7,119,193,197,113,155, 3,236,108,156,184, 56,
+177, 42, 1, 39,127, 73, 60,164,205,196,207, 48,225, 41,202,182,249,106,236,233,233,137,140,140, 12, 28, 59,118, 76, 5,148, 73,
+200,192, 48,204,143,191,254,250,235,148, 25, 51,102,240,125,125,125, 1, 32, 8,192,237,210,158, 21,139,197,112,115,115, 43, 38,
+150,253,194,199,120,141,158, 52, 70,216,235,147, 80,112, 56, 14,200, 85, 25,145,149,111,132,204, 65,130,111, 39,133, 9,206, 52,
+118,107,178,118,229,142, 35, 26, 13,154, 0,239,246, 7, 4,129,219, 55,239, 95,105, 32,240, 5, 8, 18, 72, 36,207,131, 0,129,
+ 2,194, 8,130,162, 88,179,217,140,132,132, 4,176, 44,139,129,189,134, 37,142, 90,120,208,169,213, 64, 37, 60,234,185,130, 96,
+241,209, 63,133, 8,216,219,219, 7,101,101,101, 33, 54, 54, 22,225,225,225,201,153,153,153,167, 85, 42,213,176,148,148, 20, 0,
+200,174, 2,100, 49,153, 15, 10, 10, 66,211,166, 77,209,183,111, 95,129, 90,173, 14,243,242,242,114,123,253,250,117,139,191, 50,
+ 63,111,115,145,255, 41,162, 85,106, 67, 51, 26,235,233,214,172,129,234,204, 25,240, 78,157,194, 94, 87,215, 2,173, 86,251, 13,
+128,196,162,134,255,213,230, 45, 91,174,118,191,126,221, 70, 31, 29, 13,175, 7, 15, 64,219,217, 5, 85, 54, 1,155, 54,109,130,
+ 82,169, 68, 94, 94, 30, 0,224,151, 95,126,129, 82,169,132,201,202,128,179, 28, 46, 90,185, 56,213, 70, 26,158,131,225,144,146,
+184,122,234,102, 18,173, 52,197, 45,193, 89,149, 71,186, 33, 58, 62, 68,172,201,210, 55, 35, 40, 61,180,153,106,184,181,172, 11,
+ 14, 56,173, 42,147, 70,203,186, 63,135,195,201,126,246,236, 89, 55, 31, 31,159, 8, 0, 14, 85,177, 7,120, 75, 94,164,167,167,
+ 79,168,202,139, 20, 69,125, 31, 19, 19,227,180,113,227,198, 47,231,205,155,199,150, 36, 90,150,255,115, 56, 28,176, 44, 11, 91,
+ 91, 91,208, 52,237,124,237,218, 53,231,144,144,144,213, 12,195, 4,149,145, 79, 54, 32, 32, 0, 49, 49, 49,224,112, 56,176,181,
+181, 5, 99, 50, 96,238,164, 49, 48, 83,124,206,212,169, 83,131,122,247,238,253,112,227,198,141, 70,155,230, 45, 91,100,101,101,
+ 61, 26, 55,112,208,195,195,135, 15,235,139, 92, 60, 84, 60,197,103,217,123,207,159, 63,167,220, 93,157, 41,214,164,102,196, 92,
+ 64,112,127, 5,203,147,184, 64,192,161, 88, 46, 65,130, 47, 16,218,198, 38, 37,101, 49, 12,243,196, 26, 76,134, 97,238,198,196,
+196, 8,157,157,236, 57,106,141,190, 64, 72,179,188,184,187,119, 94,213, 10,110,236, 5, 0,218,187,183, 46,240,235,213, 23,198,
+165,191, 22,215,174, 93,219, 42, 76,141, 70,115, 47, 57, 57,153,114,118,118,230,196, 39, 38, 29,177,147,136, 29,109,236,236,154,
+ 1,128, 33, 63,239, 22,169,211,189,166,104,142,243,235,172,172,108,141, 70, 19, 99,109,222, 95,190,124,201, 81, 40,156,168, 19,
+167,206, 70, 56,139,248, 78, 82, 30,199,134, 79, 16,132,136, 34,148, 92, 19,147, 41, 16,137,156, 98,147,146,178, 89,150, 45, 83,
+ 67,184, 56,119, 80,175,194,239, 53,119, 79, 9,108,220,191,127, 31,199,175, 60,129,152,213,131,208,230,225,212,230,245, 24, 56,
+117,198,123,219,253, 85, 68,182,170,164,205, 90, 91, 63,234, 45,124,164, 86, 96, 8, 63,112,224,192,185,219,183,111, 47, 54, 64,
+121,242,228, 9,218,181,107,103, 89,230, 64,199,142, 29, 17, 18, 18,130, 39, 79,158,192,219,219, 27,231,206,157,227, 83, 20,197,
+ 31, 52,104,208,194, 29, 59,118, 28,171, 80,239,191,110, 29,134, 13, 27, 86,154, 97,245, 75, 0, 90, 66,230, 91, 48,125,241, 86,
+135,236,172, 76,100,188, 78,187,103,109, 57, 16, 4,129, 33,147, 39,103,174,213,235,177,243,230, 77, 12, 22,139, 69, 91, 94,188,
+ 64,151,144, 16, 52,104,215, 46,211,154,190,206,162,213,209,106,181,160,105, 26, 54, 54, 54,176,183,183, 7,151,203, 5, 69,187,
+130,195, 11, 4,201,229, 34,184,117, 32,150,126, 35, 86,135,119,194, 74,130, 64, 46,159,135,187, 92, 81,153,182, 58,132,184, 6,
+122,178, 44,148,234, 68,156,183, 16, 18,219,154,176,165,165,244,169, 17,171,125,237,108,156,184, 56,190, 50, 30,167, 86, 39, 29,
+208,166, 97,102, 81, 89, 48,229, 76, 36, 26,216,217,217, 33, 49, 49, 17, 9, 9, 9,143, 81,190,129,191,250,201,147, 39,175,248,
+124,190,159,163,163, 35, 0,120,150, 53, 49,103, 24,166,216, 14,107,219,206,125, 14, 65,109,188, 4, 31,183,242,195,214,136, 5,
+248, 34,108, 37,104,138,128,217,108,192,207,203,187,194,172, 43, 64, 88,247, 81,196, 71, 29,188, 3,207, 68,232, 71, 24, 53, 57,
+235,223,153, 8,112, 48,255, 63,253,175,217,241, 37,100, 3, 48,132,157,131,131,147,152,203,229,194,222, 70,161,159, 49,250,235,
+ 84,150,101,139,219, 13, 77,113,141,100,190, 92,147,149, 86, 32,180,163, 53, 0, 75,214,170,154, 55,155, 15, 47, 73, 73, 73, 19,
+218,180,105,179, 48, 63, 63, 63, 71,165, 82, 13, 4, 0, 79, 79,207,154, 36, 73,242, 1,148,183, 58, 82, 19,165,187,133,224, 62,
+120,240, 0, 82,169, 20,201,201,201, 37,149, 47, 96, 24,230, 31,179, 9,224, 31, 42,193, 0,238, 2, 80, 0,232,130, 18,238, 29,
+200, 34, 85,221, 71,145,145,145,108,100,100,228, 71,197,131, 23,203, 50,166,236,108,176,186,194,178,165,105,154, 5, 80,114, 71,
+147,200,206,206,142,160,221,221, 65,240, 11, 77, 63,216, 15,184,245,213,104,180,206,181, 12, 99, 6, 5,194, 0,182,196,164, 69,
+ 37, 32,176,192,161, 61, 38,240,102, 33,141,103, 87,114,164, 3, 76, 44,204, 96,168, 74, 38,135, 85,169, 84, 48,153, 76,178, 58,
+117,234, 28, 53,153, 76,178,162,193,141,253,111,125, 81,179,217,252,138,162, 40,124,249,229,151,176,104,127,244,122, 61,210,210,
+210,160,211,233,160,215,235, 17, 19, 19,131,188,188, 60,232,245,122, 60,122,244, 8,158,158,158,160, 40, 74, 81, 78,103,206,178,
+ 44, 11, 15, 15, 15,212,170, 85, 11, 20,193, 98,195,146, 57,248,110,226, 24,244,247,100,176,105,213,207,104,219,182,109,253,218,
+181,107, 55,231,112, 56,102, 23, 23, 23,238,193,131, 7,143,152,205,230,158,176,190,231, 57, 54,125,250,244, 90,254,254,254, 78,
+118, 54, 82, 35,159, 71,129,103, 84,177,124, 93, 22,203, 81,103,194,195,163,166, 9, 66,145,247,224,193,131,205,101,105, 33, 74,
+195,252,230,155,111, 20,190,190,190,182, 50, 59,169,138, 71, 83, 25, 92,176,153,121,247,111,223, 0, 0,158,163,147, 22, 2,145,
+ 95,120,120,184,169, 50,152,179,102,205,242,116,116,116,180, 35,193,230,155, 13,134, 63,215,219,117,250, 44,130,166, 53,224,242,
+ 26,143, 31, 63,158,168, 12,230,148, 41, 83,106,251,249,249,217,217,217,136, 11, 56, 52,149,202,101,152, 84, 1,152, 52, 90,111,
+200, 17, 56, 58,168, 33,146, 4, 15, 30, 60,184, 76, 76,139, 54,107,218,180,105,137,111, 17,111,100,103,103, 67,155,246, 16,220,
+228,104, 4, 74,104, 52,113,148,129,207,231, 23,111,125, 47,171,186,150,101,163, 85, 26,217,178,246,221,198, 63,148,179, 4,184,
+182,126,212,219,126,179, 82, 82, 82,160, 80, 40,202,109, 79, 59,118,236,152, 17, 26, 26,154,209,177, 99, 71,253,209,163, 71, 65,
+ 16, 4,206,157, 59,135,228,228,100,116,236,216, 17, 44,203, 90,118,181,225,222,189,123,232,208,161,131,190, 77,155, 54,201, 69,
+254,181, 42,148, 97,195,134,193,104, 52,162,160,160, 0,217,217,217,136,140,140, 68, 96, 96, 32, 43, 18,137,122, 83, 30,159, 44,
+ 8, 27, 49,163, 69, 64,195, 32,172, 94,185, 84,207,227,208,139, 43,211, 94, 9,130, 64,248, 55,223,100,230, 5, 7,103,111, 83,
+169,212, 67,108,108, 68,117, 18, 19,229,119, 78,158,116, 48, 24, 12, 86, 97, 88,180, 58,238,238,238,197, 36,139,203,229,130,195,
+115, 4, 37,110, 0,158,125, 71,136, 92,122,227,252, 93,190,206, 86,140, 67, 82, 9, 78,136,237,202,118,237, 32,242,192,130, 22,
+253, 20, 7, 91,246, 87,156, 21,213,192,198,162,241,128,100, 57,196,193,161, 63,251,212,113,172, 37,196,245,125,105, 56,181, 58,
+233,119,109, 26,230, 0,120, 81, 81, 59, 55, 24, 12, 90,179,217, 12,146, 36,193,225,112, 74,218, 4, 94,253,253,247,223,113,231,
+206, 29,160,132,219,158,252,252,124, 51, 69, 81, 16, 8, 4, 0, 32, 41,167,191, 3, 77,211,160,105, 26, 23,110, 92,178,239,255,
+ 89, 87,226,218, 31,167,209, 50,112, 0,178, 10, 12, 72,207, 51, 32, 87, 13,248, 55,153,137,128, 14,135,112, 63, 38, 31, 65, 13,
+ 3, 40,138, 39, 14, 47, 13, 79, 27,139, 68, 85, 2,250,100, 61,102,234,234,147,132,199,175, 31,126,242,248,210,254,251,143,118,
+255, 26,241,162, 69,147, 54,170, 34,101, 2, 10, 10, 10, 88,130, 32,216,175, 71,206,120,181,109, 88,142,121,229,192,251, 12, 71,
+ 39,120,249, 55,118,245, 53, 29, 29, 29,175,217,219,219,159, 43, 34, 71, 53,165, 82,233, 85,133, 66, 17,141,194,141, 30,135, 83,
+ 83, 83,125, 85, 42, 85, 75, 20,110,206,138,207,202,202,106, 87,164,121,138, 47, 71, 19,182, 81,169, 84,126,101, 54,155,187, 23,
+ 29,157,204,102,115,208,243,231,207,253,130,130,130, 30,123,121,121,221,243,242,242, 58,238,229,229,117,196,203,203,235, 72,104,
+104,232,114,139,187,135,191,120,217,240, 29, 46,242, 47, 35, 90, 40, 34, 89,235,138,206, 40, 38, 90, 0, 46,188,109,128,102,226,
+243, 31,153,198,141,131,221,145, 35,160,159, 63,199,208,240,112, 27,145, 72,180, 18,133, 62,154, 90, 74, 36,146,213,115,230,204,
+145, 58, 44, 90, 4,215, 75,151, 16, 23, 25, 9, 35, 77,223,174, 74,234, 52, 26, 13, 56, 28, 78,177, 38, 70, 44, 22,195,108, 54,
+163, 52,149,239, 59, 13,208,132,235,201,233,209,224,161, 22, 24,176, 5, 39,148,109,110, 14,120, 53,211, 41, 82,233,233,253, 66,
+197,245,254,193,177,153,211,202,154,173,110,170, 8, 78, 1,207, 78,128,132,132, 68,152,193, 84,106,189, 89,171,213,230,169, 84,
+ 42, 4, 5, 5,217,223,185,115,167, 78, 96, 96,160,188,232,254,173,247,252, 48,205, 93, 93, 93,247,185,185,185,197,186,186,186,
+238, 3,208,188, 18,239,110,188,124,249, 50, 40,138,194,156, 57,115,144,159,159, 15,131,193,128,172,172, 44, 36, 36, 36, 64,175,
+215, 35, 41, 41, 9, 79,159, 62,133, 94,175, 71, 92, 92, 28,116,186,138, 39, 36, 12,195,192,198,198, 6, 90, 77, 1,126, 91,240,
+ 29,102, 77,155,132,188,151, 81, 72, 74, 73,135,157,173, 24, 19, 38, 76,160,100, 50, 25,195, 48, 76, 45,179,217,220,129, 97,152,
+ 53,214,124,167, 18,245,237,138,135,135, 71,192,146, 37, 75,252,190, 91,176,134,107,195, 41, 96,249, 82, 1,195,147,242, 89, 94,
+253,102, 24, 54,115, 37,119,197,178,159,158, 93,191,126, 61, 25,214, 57,239, 36, 1, 92, 9, 14, 14,246, 73, 78, 78, 14,244,245,
+245,173,231, 80,179, 54,159,175,112,203,229, 42,106, 40, 89,157,246, 38,225, 86,163,245,154, 53,107, 30, 94,189,122, 53,165, 50,
+152, 98,177,184,254,214,173, 91, 3,156,157,157, 3,104,161, 80,160,206,203,219,107, 82,171,246, 81,118, 50, 1,105, 99,215,233,
+208,161, 67, 81, 7, 14, 28, 72,171, 12,166,183,183,183,239,130, 5, 11,252, 27, 52,104,224,239,226, 89,135, 47,116,243,200, 18,
+184,215,204, 18, 54, 8,228,195,189,214,167,171, 87,175,190,119,253,250,117,171, 48, 41,138, 50,145, 36, 9,154,166, 33, 18,137,
+112,226,196, 9,140, 27, 49, 0, 30,110,246,168,231,235,139,246, 95,124,133, 3, 7, 14, 20,219,240, 80, 20, 85,230,136,190,101,
+209,132,136, 96, 5, 17,133,181,245,163,176,182,126, 84,176,130,136, 42,147,108, 21,253,189,180,103,172,234,141,202, 88,110,180,
+130,108, 29,187,112,225,194,143, 67,134, 12,225,117,238,220, 25, 55,111,222,196,176, 97,195,174, 28, 60,120, 16, 0,112,243,230,
+ 77,124,253,245,215, 87,206,158, 61,139, 49, 99,198,160, 93,187,118,188,203,151, 47,175,134, 21,190,127, 76, 38, 19, 54,109,218,
+ 4,147,201, 4,137, 68, 2,185, 92,142,174, 93,187,226,225,195,135, 99, 54,111,222, 28, 77,209,244,231, 93,186,127,134,163, 71,
+ 14,226,233,163,135, 99,182, 44, 28, 84,105,167,192, 36, 73,162,115,120,120,102,166,191,127,246, 22,165, 82, 61, 92, 38, 19,249,
+166,165,201,207,239,219,231, 96, 5, 81, 35,204,102,115, 49,185,178,144, 14,203,193,225, 57,130, 35, 14, 0, 71,218, 4,247, 95,
+112,141,220, 16,220,229, 53,193,147,242,252,103,209, 60,114, 88,239,239, 60,209,251, 59, 79,244,152, 90,123,168,168, 6, 54,136,
+107, 96,108,231,137,181, 66,189,154,216, 66,153, 97, 64,228,207,113,241,218, 44, 44, 2,240,212,154,118,206, 48,204,227,228,228,
+100,240,120, 60,212,168, 81,195, 7,128,197, 46,112,227,200,145, 35,199,255,240,195, 15,147, 0,252, 80,116, 79, 18, 26, 26,234,
+ 95, 80, 80,128,231,207,159, 3,192,157,114,180,193,197,187, 12,179,149,113,252,218,174, 13, 16, 88,127, 52,100,178,134, 72,206,
+214, 35, 37, 91,143, 13,191,245, 68,212,229,249,184,115,106, 48,226,211,210, 32,116,233, 5,179, 73, 23, 96,197,164,222,245,143,
+ 63,254, 32, 46, 95,190, 76, 48, 12, 3,163,209,200,230, 43,149,236,221, 43, 87,160,185,120,145,176,177,177, 33, 90, 53,109, 83,
+176,101,254,209, 91,135, 86, 93,185, 99, 80, 87,122,162,254, 62, 50,235,213,171, 87,205,247,237,219, 23, 10, 96, 86,131, 6, 13,
+174, 39, 36, 36,180,184,116,233, 82, 61,119,119,247,149, 85, 5,181,184,133,136,139,139,123,227, 40,114, 11,161, 47, 34, 13,157,
+139,200, 92, 15, 0, 95,227, 61,118,217, 87, 66, 46,252,139,141,225,143,226,173,221,134,111, 19,173,146,142,194,224, 37,147, 73,
+141, 70, 67,210,233,211,167, 13, 36, 73, 66, 36, 18, 97,200,176, 97,228,111,191,254,218,122, 64,243,230,231, 70,125,252,241,241,
+115,103,207, 6,135,132,132,128,101, 89,144, 36,137, 61,123,246,104,180, 90, 77,150,135,135,135,157, 53,157, 70,201, 6,164, 84,
+ 42,139,137, 86, 94, 94, 30,156,157,157,173, 94, 58, 84, 41,113,230,236,137,168, 28,214,252, 69, 66,231, 23,203, 12,139,211,122,
+134,228, 50,102, 78,158,217,136, 60, 13,139,124, 45, 56, 55, 73,121,200, 16,239, 94,134,152, 14, 33, 79, 47, 70, 95,203,210,154,
+181,149,218, 45,145,145,145,241, 93, 88, 88, 88,150, 66,161, 32,108,108,108,224,230,230, 70,246,232,209, 35, 51, 49, 49,241,135,
+170,126, 17,123,123,251,254,161,161,161, 17,201,201,201,125, 46, 94,188, 88,235,210,165, 75,125, 66, 67, 67, 35,236,237,237,251,
+ 91, 9,177,119,198,140, 25, 42, 30,143,135,102,205,154, 33, 63, 63, 31, 69,187,124,202, 61,172, 89, 34,229,114,185, 88,187,228,
+123,204,154, 54, 9,217,209, 55,113,255,202,105, 92, 72, 35, 48,115,193, 79,224,114,185, 85,242,245, 85,215, 81,212,160,129,171,
+244,201,215,195,250,165, 76,159, 54, 77,122,239,222, 61,122,252,196,175,217,184,212,108,240, 58, 47,165,240,209,119,228, 31, 42,
+ 71,116,233,212, 30,115,102, 77,110, 80,228,180,179, 92,169,239, 40,106, 16,224, 42,125, 60,121,212,128, 87, 19, 39, 78, 20, 46,
+ 94,188, 88,219,188,121,115, 77,122,122,186, 80, 44,147,251,114,108,237, 2,226, 82,211, 36,205,155, 55,143,249,226,139, 47,114,
+ 43,139, 57,115,230, 76,209,201,147, 39, 57, 97, 97, 97,166,156,156, 28, 9, 45, 20, 6, 17,124, 65,211,215, 57, 57,182,125,194,
+194, 94,244,233,211, 71, 93,228,176,212,106,204,217,179,103,139,158, 62,125,202,105,222,188,185, 49, 45, 45, 77, 42,182,119, 8,
+164,236,228, 77, 98, 83,211,109,154,134,132,188, 28, 63,126,188,170,188,116,150, 36, 41, 82,169, 52,185,101,203,150,248,249,231,
+159,177, 98,197, 10,124,250,233,167,120,248,232, 33,186,140,159, 4,191,177, 95,227,200,181, 27, 72, 78, 78,198,188,121,243, 16,
+ 24, 24, 8, 46,151,251,180,212,246, 56, 38,154,184,151, 6,226, 94, 26, 8, 98, 76, 52, 97,185, 46, 83,179,245, 67, 30, 74, 62,
+ 95,218,115,119,102,151,174,233, 10, 86, 16, 81,229,217, 97, 85, 68,182,250,244,233, 51,206,226,194, 97,248,240,225, 87, 86,174,
+ 92,217,106,248,240,194,137,118,179,102,205, 48,127,254,252, 86, 51,103,206,188,178, 96,193, 2,180,111,223, 30, 94, 94, 94, 21,
+110,124, 49,155,205, 48,153, 76, 24, 48, 96, 0, 76, 38, 19, 94,191,126,141,103,207,158, 97,221,186,117, 96, 89, 86, 0, 0, 10,
+ 87,247,198, 60, 30, 15,127,220,189,173,158, 53, 60,100, 71, 37, 52, 89, 68,201, 73, 76, 65, 65, 1,250,140, 29,155,153, 84,183,
+110,246,154,204, 76,245, 8,153, 76, 84, 59, 62, 94, 46,213,235,221, 80,142, 93, 34, 65, 16, 96, 24,166,152, 88, 89, 8,215,219,
+ 71,209, 64,105,149, 24,212,204,177, 75,219, 83, 0, 0,109, 6,185,162,199,212,218, 67, 21,222,162, 95, 90, 15, 44, 84,122, 31,
+152,255,138,205, 79, 49, 47,134, 17,143, 43,161,177,190,121,243,230, 77,216,217,217, 33, 44, 44,140, 79,146,228, 34,203,124, 21,
+133,190,179,150, 89,176,248,124,254,210,193,131, 7,147,185,185,185,184,127,255, 62, 0,156, 45,171, 95, 98, 89,182, 56,239, 5,
+217, 4,204, 12, 15, 87,239,158,192,169, 75,251, 17,155,252, 26,241, 25, 90,128, 99, 11,173, 42, 9, 6, 77, 50,244,185,119,161,
+212,137,172, 74, 48,151,203,125,221,160, 65, 3,182, 73,147, 38, 44,203,178,120,249,242,165, 41, 46, 62,222,116,123,249,114,246,
+193,232,209,132,244,217, 51,174, 80, 40, 36, 60, 61, 61, 33, 16, 8, 24,129, 64,144,245, 55, 14,222,127,137,187,133,191,192, 45,
+196,135,212,106,177,248,119, 74, 42,222,220,109, 88,236,192,180, 52,135,165, 96,109,132,253,246,175,254,205, 54,108,192, 32, 85,
+ 96, 96,160,204,205,205, 13, 4, 65,160,103,175, 94, 68,232,197,139, 82,218,213, 21,246,141, 26, 21, 47, 71,156, 57,125, 26, 39,
+ 78,156, 80, 29,253,253,144,219,176, 17, 35,186, 1,216, 90, 78, 98, 56,124, 62,191,248,119, 83, 83, 83,193,231,243,139,109, 34,
+148, 74, 37, 28, 29, 29,145,154,154, 10, 43, 87,230,182, 77,159,118, 99, 90, 70,200,119,158, 33, 82,154, 56,174, 74,131,153,101,
+ 65, 19,102, 64,195,194,104, 6,116, 70, 22,141,107, 83,242, 83, 26,147, 44,242,230,193, 24, 0,219, 42, 83,122, 58,157,238,252,
+189,123,247, 70, 51, 12,179, 31, 0,121,241,226, 69,230,241,227,199,227, 96,189,225,250,187,106,123,145,104,234,185,115,231,228,
+ 83,167, 78,205,137,140,140,204,235,218,181,171,237,186,117,235,228,237,218,181,155,154,149,149,181,219, 26, 69, 96, 66, 66,194,
+214,196,196,196,113, 77,154, 52, 65,118,118, 54, 12, 6, 3,162,162,162,224,237,237,141, 59,119,238,192,199,199, 7,183,111,223,
+ 70,189,122,245, 96, 54,155,161,213,106,193, 48,140,185,162,206, 60, 59,243, 53,144,149,128,148,155,199,241,236, 65, 20,206,165,
+ 16, 88,181, 59, 2, 53,106,121, 86,201, 79,141,143,147,200, 95,225,104,127,106,241,220,217, 78,113,231,247,224,224,166, 85,204,
+133,227,199,253,120, 82,140,254,104,192, 87,159,233,141,168, 9,128,215, 34,164, 9, 58,203,158,154, 69,181,144,118,238,113,249,
+ 14, 22,125,156, 68,254,206, 14,246, 39,255,179,232, 7,233,203, 19, 91,176,119,237,207,236,129,237,187, 2,181, 64,136,191,191,
+127,103,146, 36,237, 0,104,139,236,188,172, 10,109, 83, 26,230,153,136,136, 96, 45, 16,114,248,240,225,206, 34,145,200, 5,128,
+ 81,173, 86,191,122, 31,204,179,145,145,193,150,116, 18, 4,225, 4,192,192,178,236, 75, 84, 50, 4, 79,223,190,125,231,127,253,
+245,215,211,204,102,179, 99,137,217, 57,181,116,233, 82, 14,195, 48, 20,203,178, 6,146, 36, 13, 39, 79,158, 52,155, 76,166, 20,
+173, 86, 59,246,125,122,145,207, 62,251, 12, 55,110,220,152,139,194, 77, 24,214,106,171,223,176,211, 42, 10,217, 83,101,252,139,
+ 23, 47,206,251,252,243,207,167,239,222,189,251,217,202,149, 43,187,143, 25, 51, 6,123,246,236, 65,221,186,117,241,199, 31,127,
+224,187,239,190, 3,128, 86, 51,103,206, 60,178,113,227, 70,175,184,184,184,165, 86,104, 52, 96, 50,153,176,107,215, 46,244,236,
+217, 19,142,142,142,112,117,117, 5, 65, 16,231, 71,140, 24,241, 43, 0, 80, 4,197, 5, 0,157, 86,167,243,245,109, 98,181, 6,
+151,203,229, 22,247,117,105,105,105,197, 59, 5, 63,249,252,243,204, 13,139, 23, 99,135, 70,131, 17, 50,153, 40,201,221, 93,113,
+228,229,203, 81,143, 10, 59,103,182, 60,173, 78, 69, 36,203, 90,147, 6, 77, 42,102,252,190, 48,214, 5,192,167,109, 6,185,162,
+205, 32, 87, 52,233,225, 68,144, 20,129, 7,167,178,240,240, 76,246, 1,163, 18,231, 81,185,112, 57,143, 23, 45, 90,116,228,163,
+143, 62,234, 94,191,126,125,140, 28, 57,242,139, 77,155, 54,113,141, 70,227, 68,252,233,230,193,150, 36,201, 31,214,174, 93, 59,
+ 74, 46,151,227,242,229,203,184,116,233,210,121, 0, 9,101,245, 75, 0,138,125,102,213,240,240,209, 62,141, 43, 16,101, 36, 95,
+197,149,203,191,163,110,224, 87, 16,186,116,131,220,119, 1, 12,209, 43,160,207, 58, 5,185, 71, 87, 36,197,189, 4,197,225, 63,
+172,200, 8,133,101,217, 71, 73, 73, 73, 94, 94, 94, 94, 68,108,108,172, 9, 0,107, 54,155, 89, 67,235,214, 70,191,197,139,233,
+135, 95,124, 65,180,120,250,148, 98, 9,130,137,138,138, 2,128, 39,255,141, 81,220,226,110,225,225,195,135,101,185, 91,168,148,
+ 52,104,208,160,213,165, 75,151,248, 90,173, 22, 23, 46, 92, 64,211,166,197,123,187,254,171,222,239, 75,114,145,127,153,140, 42,
+229,222,186, 55, 52, 90,111, 84,108,134,160,235,249,248,152,185, 36, 54,247,236,214, 77,125,239,222,189,226, 89,159,246,214, 45,
+168, 78,156,128,217,108, 6,203,178,184,116,241, 34, 6, 15, 26, 84, 64, 83,196,134,218,181,107,177, 4,251,134,239,150, 14,165,
+204, 30,194,194,194,194,138, 59,159,196,196, 68,136,197, 98,240,120, 60, 48, 12, 3,147,201, 4,138,162, 96,107,107, 11,147,201,
+ 84,154, 10,230,109, 76,163, 57, 91,213,103, 99,151,129,169,174, 5, 6,118,180, 93,109,212,228, 10,139, 27,167,139, 13,129,238,
+129, 52, 28, 56, 25,236,217,165, 31,167, 48,186,172, 62,120,119, 71, 87, 69, 91,254,125, 26, 54,108,248,235,224,193,131, 73, 0,
+232,208,161, 3,217,176, 97,195, 95, 80,126,168,156,114, 49, 5, 2, 1, 31, 0, 34, 34, 34,178,159, 61,123,246,105, 68, 68, 68,
+118,201,251, 86, 98,174, 91,178,100, 9, 68, 34, 17, 76, 38, 19,244,122,125,177,125, 86,201,179,193, 96,128,131,131, 3,142, 30,
+ 61, 10,179,217,124,180,162,116,122,212,172, 5,194,177, 14,182, 70,156,195,165, 76,110, 85, 72, 86, 49,102, 29, 23,113, 61, 23,
+ 7,251,211,255, 89, 56,207, 49,231, 69, 20,146,146,146,216,147, 39,142, 94,215, 2,201,121,249,152,149,171, 66, 61,141, 30,130,
+166, 94, 72, 56,189,246, 91,118,102, 27, 24, 81,250,174,193, 98, 76, 63, 23,113, 61, 55, 71,251,147, 63,253,103,161, 52,247, 69,
+ 20, 82,211,210,112,236,104,196, 61, 45, 96, 89,110, 28,202, 48, 76, 0,195, 48, 1, 0,134,150, 67, 94, 42,133,169, 86,171, 27,
+168,213,234, 6, 31, 18,147,101,217, 6, 44,203, 90,141, 89,210, 38,106,217,178,101,209,169,169,169,131, 51, 50, 50, 58, 90,142,
+156,156,156, 14, 5, 5, 5,109,213,106,117,107,205,178, 90,182,106,181,218,169,160,160, 64,161,213,106, 27, 3,136,170, 68,157,
+ 47,150,146, 94,167, 83, 83, 83,231,164,166,166, 18, 21,165,147, 26, 27, 77,236,252,105,242,239,107,215,174, 85,188, 39,254, 27,
+233,204,204,204,220,191,123,247,238, 32, 79, 79, 79,175,161, 67,135, 98,205,154, 53, 88,185,114,165, 14, 0, 54,110,220,168, 43,
+161,201,242,136,139,139,107, 82,198,178, 97,135, 18,218,146,109,159,124,242, 9,123,233,210, 37,244,236,217,179,216,145,232,250,
+245,235, 97, 50,153,148,237,219,183,103, 0, 64,163, 85, 43, 89,134,133,222, 80,230,250,251, 59,229,201,227,241, 58,149,244, 23,
+104,113,198,204,227,241,192,178, 44,234,181,106,149,153, 27, 24,152,189, 41, 47, 79, 61,167, 65, 3,155, 81,190,190, 67,235, 3,
+131, 74,195, 36, 8,226, 13,173,206,219, 71, 37, 52, 89, 37,211,153,161, 73,193,200,223, 23,198,158,176,104,182, 4, 18, 14,180,
+249, 38, 28, 90, 28,251, 90,251, 26,235,203, 34, 63,229,229, 61, 59, 59,123,252,226,197,139,117, 50,153, 12,159,125,246, 25, 22,
+ 44, 88, 48,162, 85,171, 86,121, 78, 78, 78, 55,234,214,173,251,160, 95,191,126,169, 81, 81, 81,227, 67, 67, 67,241,252,249,115,
+252,244,211, 79,185, 57, 57, 57, 3,203,195, 36, 8,162, 88,147,215,163, 75,135,236,223,126,249,153,105,255,209, 56,136,132, 54,
+ 48,210, 30,200, 46, 48, 34, 71,197, 66,207, 15, 1,143,203, 71,199,230,254,184,113,114,139,218,172, 87,109,173,168,206, 23, 20,
+ 20, 28, 24, 50,100,136,146,203,229, 66,175,215,179, 52, 77,131, 95,104,119,204,208,159,126,106,104,241,248,177,201,204,178, 12,
+ 65, 16,248,230,155,111, 84, 57, 57, 57,187,171,210,142, 42, 33, 37, 49, 63,148,187,133, 14,111,141, 63, 31,194, 45,196, 95,145,
+247,127,179,172, 43,229,248, 83,163,101,217, 82,105, 57, 19, 4, 99, 54,155, 25,212,246,172, 45,141,139, 77, 88,213,183,111,216,
+240,206,157,187,136,186,116,233, 34,240,143, 46,156,141, 70, 68, 68,224,224,193,131,234, 83,167, 78, 41,249, 52,181,209,163,134,
+135,179,217,204,128, 32,152,114,217,176, 84, 42,157, 56, 99,198, 12, 97, 94, 94, 30, 86,174, 92,201, 4, 5, 5,145, 98,177, 24,
+ 6,131, 1, 27, 55,110, 52,250,251,251,211, 36, 73, 34, 47, 47, 15, 36, 73, 62,181, 50,131,247,243, 18,146, 59,254, 26,218,251,
+ 96,147, 47,135,217,251,133,182,144,181,245,112,131,177, 17,139,148,196, 88, 60, 59,123, 42,231,209,201,229, 89,208,166,247, 70,
+197,225,129, 74, 27, 8,190, 63,117,234,148,211,248,241,227, 89,173, 86, 75, 36, 36, 36,176, 11, 23, 46,116, 26, 57,114,228,247,
+ 41, 41, 41,253,171,248, 81,136,220,220, 92, 16, 4,193, 20,117, 36,150, 89,127,101,214,229, 30,110,221,186,245,112,175, 94,189,
+122,180,111,223, 30,209,209,209,197, 75,132, 37,137,150,101,247,225,162, 69,139,114, 1, 76,175, 8,148,166,105,172,220,186, 31,
+185, 57,153,112,118,118,133, 64, 40, 68, 85,119, 88,242, 72,114,206,143,243,102, 59,101, 62,185, 65, 60,188,126,142,217,119, 63,
+ 61,195,100,102, 75,247,248,159,159,194, 22,177,255,242,103, 51, 36, 53,231,199,133, 63,216, 90,150, 53,119,223, 77, 85, 18,102,
+118,252,123, 53,145,127, 11,230,223, 44,174,174,174, 72, 77, 77, 37, 92, 93, 93,217, 34, 27, 45,182, 28,162,245,102, 5, 47, 92,
+ 46, 35,202, 91, 54,172, 42,126, 76, 76,204,194, 70,141, 26, 77,126,254,252,249, 62, 63, 63,191, 49, 0,106,232,116,186,220,153,
+ 51,103,254,103,227,198,141,195,173,209,100, 1,192,158, 61,123,150, 15, 27, 54,236, 68,183,110,221,190,101, 24,166, 97,137,129,
+ 61,198,201,201,169,120, 9,247,117,122,218,180,209,195, 7, 76, 43, 40,200,177,218,207,157, 68, 34, 25, 53,115,230, 76,129, 74,
+165,194,234,213,171, 25,127,127,127,210, 50, 41,218,190,125,187,201,199,199,135, 19, 54,110, 92,230,178,180, 52,204,191,124, 89,
+ 53, 45, 32, 32,104,211,179,103,141,193, 48,219,202,210,234,148,166,201,178,152, 93, 84, 81, 82,138,200,214,122, 0,159,182,232,
+235,130,195, 75, 98,145, 19,167,255, 15, 76,120, 9, 43,194, 2,149, 34, 73, 7, 14, 28,232,152,158,158,126,120,246,236,217,182,
+141, 27, 55, 70, 64, 64, 0, 45,145, 72, 66, 44,238, 98,242,242,242,112,230,204, 25,172, 89,179, 70,255,232,209,163, 94,229, 45,
+ 87,153,205,230, 12, 31, 31, 31, 75, 57,176, 4, 65,100, 41,117,132,237,222,250, 33,146,161,163,247, 17, 87,110, 95, 67,138,129,
+129,206,200,160,182,103, 48,218,126,186, 12, 71,142, 63, 48,167,196, 61,126,108,212,228,108,176, 34,189, 47, 95,188,120,113,104,
+222,188,121,125,191,253,246, 91, 97,102,102,166, 89,167,211, 49,251,247,239,167,134, 14, 29,106,102, 57, 28,134,203,225, 96,226,
+196,137,154,220,220,220,223,129,191, 53,192,244, 95,226,110,225, 47,112, 11,241,193,180, 89, 37,207,255, 43, 82,106, 11,101, 40,
+242,234,154,181,191,117,218,179,107,183, 11, 69,145, 46, 47, 95,189,186,221,189,119,159,228,211,167, 79,203,185,182,182, 77, 1,
+ 48,250, 49, 99,174, 27,116,154,236,200,195,135,107,214,174, 93, 43,176, 40,168, 52,203, 80,228,213,242,126,176,160,160, 64,117,
+249,242,101,245,244,233,211,137,196,196,196,157,206,206,206,253,142, 31, 63, 46,233,221,187,183, 38, 58, 58,250,128,139,139, 75,
+143,208,208, 80,233,228,201,147,117, 5, 5, 5,149, 9, 60,250,152,125,157, 83,255,214,236,165,159,223, 90,242,219,199,224, 80,
+ 45,161,163, 1,198,120, 21,134,252,211, 0,118,162, 18,254,142, 74,138, 88, 44, 14, 20,137, 68,184,119,239, 94, 78, 72, 72,136,
+ 94,171,213,114, 23, 44, 88, 96, 47, 22,139, 3,171, 90,240, 44,203,178, 57, 57,179, 49,226,226, 0, 0, 32, 0, 73, 68, 65, 84,
+ 57, 96, 24,134, 3,128, 40, 58,131,169,252, 94,252,254,221,187,119, 63,188,119,239,222, 79,186,116,233, 2, 47, 47, 47, 24,141,
+ 70,248,248,248, 64,175,215,195,219,219, 27, 58,157, 14,115,231,206, 69, 94, 94,222, 36,148, 19,243,140, 32, 8,152, 76,166, 98,
+ 99, 91, 55,247,154,133,126,122,222,195,141,133,152, 38,189,158, 70,110, 66, 70, 86, 38,179,247,143,244,116,181,193,220,241,197,
+107,245,163,183,159, 83,155,161, 10, 29, 58, 33, 25, 0,116, 76,249, 17,231,197, 60,120, 61, 59,186, 30,233, 25,153,216,115, 55,
+ 53, 87,101, 96, 62,125, 86, 10,102,165,210,249, 47,193, 12,158, 27,141, 62, 19,172,127,246,125,196, 90, 66, 85,150,220, 75, 3,
+113, 71,180,137,197,218, 77,165,250,200,122, 79,252,195,207,159, 63, 63, 12, 0,143, 31, 63, 78, 28, 48, 96,192,180,216,216,216,
+121, 0,142,197,197,197,173,173, 12,208,166, 77,155,158, 3, 24, 86,222, 51,187,151, 14, 59, 4,224, 80,101,112,243,243,243,181,
+ 81, 81, 81,218,201,147, 39, 19,137,137,137,199, 93, 92, 92, 62, 57,113,226,132,168,119,239,222,186,135, 15, 31,158,117,117,117,
+109,211,161, 67, 7,201,177,155, 55,147,213, 47, 95, 70, 70,198,198,186, 27, 25, 38,178,188,246,249,129, 73,214, 27,100,235,208,
+252,216, 31, 15,255, 24,219,129,209,225,128, 62, 7,215, 1, 36,189, 7,230,165,171, 87,175,250, 13, 26, 52,104,111,215,174, 93,
+ 91,248,249,249,161, 70,141, 26,120,246,236, 25, 94,191,126,141,251,247,239, 35, 34, 34, 34, 66,171,213, 86, 24, 80, 59, 59, 59,
+251,221,240, 68, 2,185,235,150,213,115, 34,110, 95,105,234,211,186,203, 16, 97,128, 43, 3,189,129, 69, 98,252, 75,204,157,181,
+ 65,157, 26,255,252,177,193,100,232, 5, 43, 55,234,104, 52,154,117, 43, 86,172,160, 35, 35, 35,187,172, 90,181, 74, 90,179,102,
+ 77,138,203,229,146, 0,216, 59,119,238,176, 19, 38, 76, 80,101,102,102, 30, 85, 42,149,235,254,230, 49,250,210,171, 87,175,130,
+ 41,138,250,160,238, 22,222,195, 45, 68,181,124, 72,241,244,116,247,171, 83,211,117,140, 87, 13,247,113,158, 53, 61,194, 75, 51,
+114,247,146,201,164,158,181,220, 70,121,213,112, 31, 87,167,166,235, 24, 79, 79,119, 63, 43, 84,139, 94, 54, 54, 54,199, 21, 10,
+ 69, 16, 0,216,218,218,246,176,179,179,123,100,107,107,219,163,104, 22,216, 67, 34,145, 60,241,247,247, 31,249, 55,170, 43,203,
+197,244,241,241, 25, 80, 80, 80,240,133,143,143,207, 0,203,245,203,151, 47,139,175,171,130,233,225,225,209,254,206,157, 59,253,
+151, 46, 93,250, 89,221,186,117,123, 44, 92,184,240,179,223,127,255,189,191,187,187,123,227, 42, 96,242, 1,236,160,105, 58,157,
+199,227,101,208, 52,157,110, 57, 56, 28, 78, 58, 69, 81,233, 0,214,150,161, 45,235, 80, 98,150,115,197,217,217, 57,206,217,217,
+ 57,206,197,197, 37,206,197,197, 37, 78,161, 80,188,115, 56, 56, 56, 92,177,182, 60,125, 93, 36,173, 66,106, 72,175, 54, 80, 72,
+174,212,119, 22,251,126,136,111,228,235, 34,105,213,180,134,237,213, 6, 10,233,229,255,111,152, 65, 46, 96,217, 53,190, 44,187,
+198,151, 13,114, 1, 91,209,245,135, 84,251, 43, 20, 10, 86,161, 80,204,249,171,150, 18,202,192,255,219,219,251, 7,196,244,146,
+ 74,165,187,107,212,168, 97,233,235,186,217,216,216,156,151, 72, 36,221,138,250,186,110, 98,177,248,162,191,191,255,144,138, 48,
+229,114,249, 29, 39, 39,167,180,162, 35,213,217,217, 57,213,217,217, 57,213,201,201, 41,197,201,201, 41,197,209,209, 49,217,114,
+216,217,217,221,168, 98,222,157, 0, 52, 3,208, 24,128,205, 7, 44, 79, 79, 0,163,139,250,160,197, 0, 70, 2,104,248, 1,190,
+ 17, 65, 11,229, 99,249,118, 30, 87,105,137, 99, 62, 45,113,204,231,219,186, 95, 45, 39, 4,143, 53,152,245,228,114,249, 2, 27,
+ 27,155,223,165, 82,233,101,169, 84,122,216,193,193, 97, 33,128,122,255,165,186, 36, 1,176, 17,133,254,153,142,161,112, 41,252,
+ 48, 10, 55, 21,212,252, 7,214,249,255,207, 50,234,191,245,195, 29,170, 49,171, 49,171, 49,171, 49,171, 49,171, 49,255,133,152,
+100,117,121, 86, 19,173, 74, 18,173,183, 15, 0,229,120,134,175,150,106,169,150,106,169,150,106,249,127, 44, 76,117, 17, 84, 75,
+ 37,165,212,165,101,162, 28, 86, 90, 25, 95, 83, 85, 97,182,103,170, 49,171, 49,171, 49,171, 49,171, 49,171, 49,171, 49,255,223,
+ 97, 86,203, 7,148,106,181,106, 53,102, 53,102, 53,102, 53,102, 53,102, 53,102, 53,230,255,186, 84, 47, 29, 86, 75,181, 84, 75,
+181, 84, 75,181, 84, 75,181,252, 69,178,174, 4,225,122, 99, 9,177,154,104, 85, 94, 72, 0, 95, 0,232, 3,160, 14, 10,163,217,
+239, 7,240, 43,170,182,166,111, 3, 96, 26,128,150, 40,220,157, 19, 3,224, 50, 10,119,231, 20, 84, 23,119,233,226,224,224, 48,
+131,166,105, 59,160, 48,180,137,229, 92,242,255,102,179, 57, 87,169, 84, 46,252,139,146, 64,193, 74, 15,202,150,180,150, 76, 91,
+201,179,209,104,252, 43,211, 89, 45,255, 76,241,145,203,229, 59,178,179,179, 7,162, 68,144,229,106,169,150,255, 5,113,116,116,
+ 28, 99, 48, 24,102,114,185,220, 5,175, 95,191,254,237,255, 81,214,223, 33, 89,111, 16,173,200,200,200,139, 0,208,181,107,215,
+143, 0,192,206,206,238, 26, 73,146,158,149,249, 5,134, 97, 98,114,115,115,203,116,160,102,103,103,119,141,162,168,119, 48,141,
+ 70,163,148,195,225,228,151,246,142,201,100, 74, 82, 42,149,141,255, 33,133, 72, 0,136,148,201,100,218,121,243,230,253,218,182,
+109, 91,143,148,148, 20,211,212,169, 83,219,252,241,199, 31, 93, 0,116,170, 36,217,106, 78, 16,196,150,160,160,160, 67,225,225,
+225,123, 67, 66, 66,120, 89, 89, 89,210,253,251,247,187,109,221,186, 53,138, 97,152,129, 40, 39,208,234,255,103,161,105,218, 46,
+ 41, 41, 73, 10, 20,134, 38, 41, 34, 86, 48, 26,141, 48, 26,141, 80,169, 84, 8, 12, 12,252,224,191,235,226,226, 18, 76, 16,196,
+ 42,137, 68,210,184,160,160,224, 54,128,113,169,169,169,127, 84, 38,173, 38,147, 9, 44,203, 22,167,211,207,207,175,250,131, 86,
+ 78, 70,240,120,188, 79,189,189,189,155,234,116,186,156,152,152,152, 91,102,179,121, 54, 62, 92,140, 54, 91, 0,179,249,124,126,
+ 72,157, 58,117, 60,158, 63,127,158,104, 48, 24,110,162, 48, 24,114,222,135, 32, 89, 31,125,244,209,149,213,171, 87,219,143, 29,
+ 59,246,202,229,203,151, 91, 85,147,173,106,249,111,137,135,135,135,157, 74,165,218, 0, 32,152,166,105, 23,129, 64, 0,161, 80,
+152,198,231,243,239, 9,133,194,225, 87,175, 94,205,173, 44,166,217,108,158, 29, 23, 23,231,210,172, 89,179, 37, 78, 78, 78,115,
+ 51, 51, 51,181, 6,131,225,108, 78, 78,206, 36, 0,202,242,222,125,155,139,252,203, 72, 86,201, 51, 44,164,139, 83,148, 49, 22,
+ 64,219, 55, 24, 24,135,227, 30, 31, 31,239, 36, 16, 8,192, 48, 76,241, 96,246,246, 97,185,175,215,235, 17, 16, 16, 96,168, 96,
+192,241, 72, 76, 76,116,226,241,120,197,247,244,122, 61,220,220,220,152,164,164, 36,167,162,176, 7,197,162,211,233,224,238,238,
+254, 79,138,121,244,133, 92, 46,207, 75, 72, 72, 12,212,234, 12, 63,140, 28, 63,125,198,192, 62, 31,203,174, 93,187,198,116,234,
+212, 73,119,241,226,197, 47, 80, 24, 56,213,170,206,156, 32,136,173, 83,167, 78,157, 43, 16,217,216,159,187,246, 88,183,117,255,
+209,228, 32,159,218,196,164, 73,147,168, 9, 19, 38, 92, 10, 14, 14,222,193, 48, 76, 35, 84, 66,179, 37,147,201, 78,240,249,252,
+ 90, 69,229,151,144,147,147,243,201, 63,176, 66,114,240,174,243,216,210,238, 85, 40, 89, 89, 89,208,104, 52,239, 28,126,126,126,
+214,198,202,172, 84,186,105,154, 62,188,104,209, 34,183,180,212, 84,252,188,108, 89, 51, 20,106, 50,155, 89,243,114, 70, 70,198,
+ 59,233,244,245,245, 69,181, 84, 74,166,205,157, 59,119,209,231,159,127, 14,179,217, 12,141, 70,227,250,226,197, 11,255,153, 51,
+103,246,122,249,242,101, 83, 0,175,222,119, 50,238,237,237, 29,253,213, 87, 95,201,155, 54,109,138,162, 40, 21,174,151, 47, 95,
+110,182,113,227,198,193, 9, 9, 9,190, 0, 94,191,207, 15,200,229,242, 29,235,215,175,183, 23,137, 68, 56,114,228,136,125,251,
+246,237, 47,223,189,123,183,245,123,144, 45,210,222,222,126, 2,128,118, 12,195,240, 0,220,204,201,201,153,143,202,123,117, 87,
+ 72, 36,146, 3, 36, 73,214, 6,254,244, 70, 79,146,164, 3, 65, 16,153,150,123, 4, 65, 56, 49, 12,115, 61, 59, 59,187, 69,117,
+117,252,119,139,189,189,253,136,244,244,244,213,124, 62,159, 43,147,201, 32, 18,137,192,225,112,192,225,112,106,240,249,252, 26,
+124, 62,191,115,104,104,232,184,243,231,207,151,235, 97,191,121,144,243, 80,144,196, 15, 20, 65, 82, 0, 64,210, 98, 27, 91, 91,
+ 91,252,240,195, 15,226, 30, 61,122,136, 1,224,202,149, 43,225, 67,134, 12,105,159,148,148, 20, 80, 22,217, 42,141,139,252,139,
+100, 93,121, 3, 30,138,216,227,197, 55, 90, 46, 73,130,199,227,225,198,141, 27,176,198, 89,185, 37, 68, 66,185,189, 65,145,135,
+241, 63,254,248, 83, 1, 96, 25,104,120, 60, 30,174, 94,125,211,169,124,243,230,205,139, 27,251,223, 37,125,252, 10,157, 60,238,
+251,178, 48, 93, 97,171, 10,189,107,239,251,210, 23,109,126,138, 71,159, 9,115,250,169,181,134, 38, 0, 84,185, 57, 57, 57,183,
+ 15, 30, 76, 9,242,241,225,238,216,177,163,169,155,155, 91,159, 74, 16,173,105,141, 26, 53, 58, 64, 9,109, 29,194,135, 12, 13,
+ 31,206, 33, 13,131, 71, 79, 94,144,152,154,169, 26, 53,106,212,193, 35, 71,142,132,255,248,227,143, 79,166, 76,153, 50, 13,192,
+119,214,166, 95, 32, 16,212,122,250,244,169,183,217,108,134,159,159,223, 63, 49,140, 65, 16, 10,157,239,125, 14, 96, 87,209,189,
+ 1, 40,244,220, 31, 12,224, 94,101,192, 44, 26,172,210,142, 15, 45,110,110,110,190,131, 6, 13,114,200,206,204,196,207,203,150,
+ 89,110, 55, 70, 5,203,136,150,246,163,215,235,241,217,103,159, 13, 50,155,205, 28, 11, 9,212,233,116,250,188,188, 60, 45,254,
+ 52, 44,125, 13,224, 99, 43,146,227, 41, 22,139,255, 3, 32, 88,163,209,184, 1,128, 88, 44, 78,102, 24,230,144, 74,165,250, 14,
+127, 6,240,173,244, 4, 23,128, 63,202, 14, 5,197, 46, 90,180,232,249,244,233,211, 95,253, 23, 48,107, 57, 59, 59, 47, 12, 11,
+ 11,195,209,163, 71,113,236,216, 49,163, 80, 40,228, 12, 25, 50,132, 24, 55,110,156,236,171,175,190,234, 12, 96,197,123,126,230,
+206,115,231,206,149,215,175, 95, 31,251,247,239,199,253,251,247, 53,222,222,222,194,182,109,219,130,195,225,200,103,204,152,209,
+ 9,192,150,247,249,129,236,236,236,249,147, 39, 79,222,186,107,215, 46,105, 76, 76, 12, 86,173, 90,229,208,175, 95,191,139, 9,
+ 9, 9, 31, 85,130,108,241, 1, 76, 0, 16, 74, 81, 84,235, 33, 67,134,152,198,143, 31, 79,147, 36,105, 92,182,108,153,227,198,
+141, 27,251,209, 52, 29,156,149,149,101,205, 36,141, 4,240,195,240,225,195,135,157, 63,127, 94,118,235,214, 45,158,189,189, 61,
+204,102,115,177,166,152, 97, 24, 39, 75,157, 53,153, 76,240,245,245,117, 47,241,190,240,223, 74, 52, 72,146, 52, 48, 12, 67, 3,
+ 16, 0,208, 85,116,253,191, 68,178,228,114,249,216,236,236,236, 95, 93, 92, 92,224,236,236,252,206, 88,171,211,233, 32, 16, 8,
+184, 46, 46, 46,235,123,244,232, 65, 31, 62,124,184,204, 37, 64,130, 34,102, 31,217, 61,207, 77, 46,147, 2, 0,150,175, 57,169,
+ 6,128,223,127,255, 29, 41, 41, 41,144,201,100, 8, 8, 8,160,230,205,155,167,152, 52,105,210,207, 57, 57, 57,195,203,194,122,
+155,139,252,203, 52, 90,235, 74,187, 46,215, 70,139,101,217,226, 56,121, 86, 86,218,183,111,157,121, 11,143,208,235,245,120, 91,
+163,101,105,188, 52, 77,191,173,126, 4, 65, 16,108,121,152,165,200, 16,177, 88, 28,168, 82,169,126,169,196,236,182, 24,115,223,
+151,190,216,202,159, 58,192, 18,137,180,243,228,194,243, 86, 0,215, 98,135,175, 90,253,209, 71,110, 19,102,173,156,163,201, 74,
+201,156, 49,168, 91, 45,111, 23,123,161, 56, 55, 35, 79, 94,175, 94,199,183, 52, 50, 21,165,179, 77,120,120,248,182, 83, 55,226,
+ 8,129,128,203,229, 80, 20,221,170,129,143,189,135, 45,101, 43, 5,108, 19, 95, 61,191, 54,116,232,208, 6, 83,166, 76,105, 93,
+ 9, 76, 20, 13,184,216,190,125, 59, 8,130, 32, 43,147,247, 15, 40,103,202, 35, 89, 44,203,130, 32,136,157, 37, 6,149,157, 69,
+247,238,150, 32, 91,156,242,202,211,162, 77,181,144,170, 33, 67,134, 12, 50,153, 76,156, 18,157,196,219, 4,166, 52, 18, 99, 85,
+222, 21, 10,197, 41, 0, 31, 19, 4, 1,189, 86,171,255,207, 79, 63,149,252,243,157,183, 72,214,153,178,218,146,209,104,132,217,
+108,230,220,189,123,151, 46, 81,215,105, 0, 98, 0, 14, 44,203,130, 36,201, 7, 86,148,167,175, 72, 36,186, 22, 17, 17, 97,211,
+184,113, 99,130,199,227,193,100, 50,225,225,195,135, 30, 63,254,248,227,232, 51,103,206,116, 82,169, 84,126,120, 55,120,186, 53,
+223,200,255,242,229,203, 42, 47, 47,175, 82,137,163, 82,169,228,248,248,248,124, 84, 6, 41,250,171, 49,147,210,211,211,123,126,
+252,241,199, 99,210,210,210,162, 77, 38,211,183, 0, 2, 28, 28, 28,238,246,238,221, 27, 66,161, 48, 84,163,209,172,120,159, 58,
+239,228,228,212,163, 69,139, 22, 88,181,106, 21,126,252,241,199, 14, 0,206, 2,104,175, 84, 42,207,116,239,222, 29,118,118,118,
+ 61,115,115,115,183,188, 71, 59,242,105,211,166,205,250, 31,126,248, 65,122,244,232, 81,120,123,123, 35, 63, 63, 31,223,124,243,
+141,211,247,223,127,127, 33, 55, 55,183,109,137,118, 81, 22,166, 31,159,207,223,178,107,215, 46,137,151,151,151, 23,151,203, 37,
+189,188,188,144,157,157, 13,173, 86,203, 95,176, 96, 65, 3,161, 80,248,199,138, 21, 43,182, 0,232, 93, 65, 58, 73, 0,243,215,
+174, 93, 59,102,212,168, 81,118,131, 6, 13, 50,235,245,122,236,221,187, 23, 20, 69,129,166,105,136, 68,162,226,224,213, 92, 46,
+ 23,245,234,189,227, 36,253, 72, 57,249,205, 67,161, 29,170, 29, 42,183,236,122,166, 28,188,226,165, 15,154,166, 33, 16, 8, 32,
+ 16, 8,192,231,243,241,244,233,211, 89, 2,129, 96, 25, 65, 16, 38,107, 48,137, 63,217, 69, 32,128, 91, 21, 93,227, 93,211,144,
+191,179,255,180,136, 59, 65, 16,203, 1,132, 22, 14,187,228, 69, 7, 7,135,137,233,233,233,241,214, 98, 42, 20, 10,251,172,172,
+172, 21, 10,133, 2,206,206,206,197,227,183,155,155, 27,140, 70, 35,210,211,211,193,178, 44,114,115,115, 33, 18,137,224,234,234,
+186, 98,212,168, 81,251,215,173, 91,151, 85, 42, 38,131, 31,187,247,155, 57,155,162, 40, 18, 0, 40,142, 68,242,213,116,160, 86,
+173, 90,104,213,170, 21,180, 90, 45,242,242,242,224,239,239,207, 33, 8, 34,156, 32, 8, 27,150,101,127, 3,112,238,127, 80, 81,
+ 88,166, 49,252,220,183,215, 69, 45,209,226,185, 92,174, 85, 68,171,232,249,138, 52, 40,164,209,104, 4,151,203,125, 67, 35, 65,
+ 16, 4,204,102,243, 27,247, 45, 68,171, 42, 68,125,220,184,113,204,250,245,235,199,228,228,228,172, 65, 21,151, 18,194,195,195,
+223,177,247,152, 52,105, 82, 82, 70, 70, 6,251, 89,199, 64,113,244,241,148,212, 58, 50,137,208, 81, 42,173, 45,144,201,237,178,
+178,178,174, 23,117, 38,214, 74,221, 70,141, 26, 9,183, 30,188,156, 52,242,235, 69,243, 26,123,217,219, 52,116,119,144,185,216,
+ 10,121, 18,146, 80, 9, 76,198, 36,185, 92,238, 93,217,116, 91,250, 5,145, 72, 4,146, 36,255, 73, 26, 45,142,133,100,101,103,
+103,227,232,209,163,232,210,165,203, 93, 11, 9, 81, 42,149, 72, 77, 77,133, 66,161,184, 91,164,249,168,112, 25,145, 97, 24, 24,
+ 12, 6, 24, 12,134, 98, 2, 83,162, 14, 21, 19, 24,203,179, 20, 69, 61,168, 98,218,231,201,100,178, 54,161,161,161,188,221,123,
+247,242, 88,150, 85,161, 48,134, 90, 1,203,150, 17, 32,251, 45, 49,153, 76,197, 90, 54,154,166,145,144,144, 80, 60,112, 89, 98,
+ 75, 10, 4, 2,235, 84, 25,124,254,228, 61,123,246,216, 52,109,218,148,200,202,202, 2,195, 48,197,157,228,175,191,254, 42,232,
+211,167,143, 91, 84, 84,212, 12,157, 78, 55,183, 10,121, 37,202, 34, 68, 0, 96, 99, 99, 99,130,117, 30,179, 43,196, 52,153, 76,
+ 68,203,150, 45,167,100,102,102, 54,208,104, 52, 11,172, 41, 70, 0, 71,146,146,146, 74, 14,236,127, 68, 71, 71,107,250,246,237,
+ 43,172, 93,187,118,200,227,199,143,223,171,146,250,248,248, 52,167,105, 26, 55,111,222,212, 1,176,204,172, 47,222,191,127, 95,
+215,187,119,111,190,135,135, 71,243,220, 92,171, 77, 86,124,124,125,125, 79, 59, 57, 57, 9, 45,125,168,163,163, 35,189,110,221,
+ 58,105,114,114, 50, 12, 6, 3,166, 77,155,134,174, 93,187,194,193,193, 1,147, 38, 77,114, 94,178,100,201,142,130,130,130, 70,
+229, 41,173,121, 60,222,182, 23, 47, 94,120, 43, 20, 10,225,141, 27, 55,208,176, 97, 67,100,102,102, 34, 45, 45, 13, 5, 5, 5,
+ 72, 75, 75,195,240,225,195,157,126,254,249,103, 87, 43, 52, 89,197, 36,107,221,186,117,185, 7, 14, 28,160, 54,108,216, 32,165,
+105,186,152,104,113, 56,156, 98,162,101,137,173, 88,133,149,134,220, 34,210,102,151,151,151,247, 62,118,110,124, 0,188,146, 36,
+139,207,231,131,207,231, 67, 32, 16,188, 87, 92,214,127,137,184, 17, 4,241,152,203,229,242, 69, 34, 17,151, 36, 73,240,249,252,
+142,114,185,252, 81, 64, 64, 64,192,233,211,167,227,172, 1,209,106,181,219,248,124, 62,237,228,228, 4, 0,240,246,246, 70,195,
+134, 13,161, 82,169,152,188,188, 60,216,217,217,145,241,241,241,208,104, 52, 72, 77, 77, 69,205,154, 53,105,146, 36,183,161,208,
+ 14,249, 29,185,118, 55,109, 13,128, 53,150,107, 7, 7,135,244,146,154, 78,129, 64, 0, 55, 55, 55, 36, 39, 39, 67, 42,149, 82,
+223,127,255,125,239,189,123,247,246,186,118,237, 90, 56,128,237, 37,160,230,254,139,109,180, 44, 36,171,228,249, 79,162,213,181,
+107,215, 57,145,145,145, 31,149, 54, 11,167,105,250,131,217,186, 88, 8,149,141,141,205,219, 90, 43, 48, 12, 83,150, 70,171,210,
+191, 35, 16, 8,132, 99,199,142,205,255,237,183,223, 42, 77,182,194, 86, 69, 23,107,177,222,153, 70,250,249, 93,155, 49, 99, 70,
+143,243,231,207, 39, 55,246,170,205, 17,167,196, 23, 8,108,236,236,224, 94,163,203,144,158,189,239,163,112,247,161,181,242, 34,
+ 63, 63, 95, 88,199, 93,164, 39, 73, 45, 81,131,207,145, 42,196, 92,190,139, 76,230,198,213,235, 50,108,100, 50,158, 78,167,203,
+ 69, 57, 65,160, 1,192,217,217,249,164, 80, 40,172,105,185,150,201,100,182, 44,203, 66, 36, 18, 65,161, 80, 72, 40,138,122, 86,
+162,113,197,167,167,167,119,172, 40, 97,118,118,118, 39,249,124,126, 77,146, 36, 65, 16, 4, 40,138, 2, 73,146, 32, 73,178,248,
+255, 20, 69,129, 32, 8,168,213,234,248,184,184,184,142, 86,228,215, 4, 32,152, 32,136,187, 71,143, 30, 69, 72, 72, 8,142, 31,
+ 63,142, 79, 63,253, 20,121,121,121,120,248,240, 33,218,180,105, 3, 20, 46, 41, 90, 37, 37,141,223, 45,147,130,167, 79,159, 22,
+ 19,151,146,135, 84, 42,125, 31, 21,251,149,176,176, 48,172, 95,191,158, 45,154, 76,136, 9,130,104,104,107,107,251,244,201,147,
+ 39, 86,217,193,176, 44, 11,131,225,207, 71, 45,131, 87,145, 61, 68,165,130, 3, 83, 20,213,177, 81,163, 70, 68, 94, 94,158,133,
+ 64,130,195,225,128,162, 40, 80, 20,133,213,171, 87, 11,155, 54,109, 58,147,207,231, 79,225,114,185, 74,163,209,184, 91,171,213,
+ 46, 0,144,251, 79,234,145, 90,183,110,253,117, 98, 98, 98,215,154, 53,107, 70,188, 7, 12,107, 52, 26,245, 0,132, 20, 69,209,
+ 31,160,143,162,138,234,150,182, 4,217, 55, 21, 93,243, 81,184, 76,108,149, 56, 56, 56,236, 56,118,236,152,123,205,154, 53, 97,
+ 52, 26, 97, 50,153, 80, 80, 80,128,139, 23, 47, 66,167,211,193,100, 50,193,219,219, 27,179,103,207,214, 78,156, 56, 81,176,118,
+237,218,140,130,130,130,129, 21,192, 78,220,191,127,191, 88,161, 80, 8, 53, 26, 13, 94,189,122,133, 70,141, 26, 33, 63, 63, 31,
+ 42,149, 10,106,181, 26, 6,131, 1, 74,165,210,206,108, 54,235, 43,192,154, 85,146,100,141, 30, 61,250, 1,143,199,107, 52,126,
+252,120, 36, 37, 37, 21,183,249,145, 35, 71,194,217,217,185,184, 45, 21,245,201,149,234,152, 57, 28, 14,248,124, 62,184, 92,110,
+110,141, 26, 53, 64, 16,132, 32, 62, 62,190, 42, 75,113, 54, 0,148, 52, 77,243, 74, 18, 44, 62,159,143,155, 55,111,206,224,241,
+120,101,105,179,202,106,151,108,101,174,255,219, 66, 16,196,114, 46,151,203,151,203,229,220, 18, 19, 78,174, 68, 34,129,147,147,
+211, 42, 0,157,173,204,119,144, 92, 46, 47,238,223, 3, 3, 3,145,152,152,120, 40, 47, 47,111,112, 70, 70, 6, 72,146,220, 70,
+146,100, 47,203, 36, 53, 39, 39, 7, 30, 30, 30, 65,101,225,181, 8,118, 25, 3,130,125, 67,163,245,214, 4, 13, 54, 54, 54,136,
+141,141,133, 74,165, 98,159, 63,127, 78,140, 29, 59,150,208,235,245,155,163,162,162,174,163,112,183,125,153, 92,228, 95, 34,149,
+183,209,178,104,180,172, 29, 0, 8,130,168,112, 54, 97, 52, 26, 37,254,254,254,165, 25,124, 17,165, 17,173,162,229,164, 42, 85,
+116,154,166,165, 85, 37, 91,111, 75,196,129, 93,206, 63,206,158, 54, 91,238, 90,187,206,148, 41,179, 56,221,186,117,187,177,117,
+235, 86,179,188,126,231,246,231, 78,110,119, 94,241,205,212,227,199,142, 29, 3, 10, 13,163,173,149, 43,145,145,145, 46,147, 38,
+140,195,236,201, 19, 79,216,120, 59,240, 36,132, 92, 44,208,169, 94, 75,192,106,248,117,125,187, 30,140,136, 72, 5, 16, 85, 30,
+136, 72, 36,170,249,248,241, 99,239,146, 27, 9,244,122, 61, 68, 34, 17,206,157, 59,231, 40, 20, 10, 29, 1, 64,163,209, 32, 32,
+ 32,192, 90,141, 73,205,103,207,158,121, 75,165, 82,168,213,106,232,116, 58, 24,141, 70, 48, 12, 3,130, 32, 64,211, 52,120, 60,
+ 30,196, 98,113,101,119,246,221, 3,240,121,151, 46, 93,118, 30, 63,126, 28,254,254,254,200,201,201, 65,116,116,180,133,100, 85,
+202, 70,203,162, 37, 42,105,143,197,225,112,176,195,203, 11, 35, 83, 82,138, 9,204,114, 91, 91,204,102,170, 22, 77, 35, 32, 32,
+128,189,114,229, 10, 78,156, 56,129,238,221,187, 19,135, 15, 31, 54,152,205,102,110, 74, 74,202,131,148,148, 20,171, 48,152,255,
+107,239, 58,195,155,184,210,238,153, 25,117, 89,150,123,197, 96, 3, 1, 76, 7,211,123, 13, 16, 32, 75, 18,218, 38,212,133,152,
+ 16,216, 44, 36, 11, 36, 31,201,134, 56,148, 64, 96, 33,129, 80,188, 16,218, 66, 18, 90,232, 16, 74,108, 76,232, 54, 4, 99, 27,
+211,221,155, 44,171, 90, 86,153,209,124, 63, 44, 41,178,113,145,108,153,146,213,121,158,121,172,209,140,142,239,220,185,229,220,
+247,190,247,189,102,179, 45,173,214,118,219, 94, 96, 57, 43,180,104,154,246,228,243,249, 40, 43, 43,131,213,242, 96,127, 52,107,
+214, 12,114,185,156,163, 82,169, 56,185,185,185,226,165, 75,151,254, 61, 46, 46, 46, 68,173, 86,191,253, 60, 91,161, 77,155, 54,
+133,191,251,238,187,153, 28, 14,135, 29, 49, 98,196,228,140,140,140, 55, 66, 66, 66,206,253,250,235,175,107, 0,180,114,150,207,
+223,223,255, 6,135,195, 9, 83,169, 84,188,125,251,246,153,212,106, 53, 47, 32, 32,160,192,218,118, 88,243,218,100, 50, 57,180,
+114,217,223,223,255,134, 76, 38,227,173, 95,191,222, 84, 92, 92,204, 11, 10, 10, 42,176,242, 40, 20, 10,222,190,125,251, 76, 42,
+149,138,231,229,229,117, 67,169, 84,214,202, 39,147,201, 38, 77,157, 58, 53,225,220,185,115,254, 20, 69, 33, 35, 35, 3,197,197,
+197,240,246,246,198,174, 93,187, 16, 30, 30,142,253,251,247,203,229,114,249,204,175,191,254,250, 83,139,200,170,205, 71,171,127,
+143, 30, 61,194, 21, 10, 5,188,189,189,161,213,106,113,227,198, 13,180,109,219, 22,185,185,185, 32, 73, 18,222,222,222,216,184,
+113, 99, 41, 65, 16,242,154,136, 68, 34,209, 27,209,209,209,222, 0, 16, 29, 29,237, 29, 29, 29, 93,101, 7,215,171, 87, 47,108,
+216,176,161,178,208,114,102, 96, 96,179, 58,217,137,163,178,158, 61,123, 34, 46, 46,110,161,147,226,200, 96, 21,109,149,173, 89,
+ 2,129,192,233,197, 52,102,179,153,135,114,151, 6,194,145,243, 23, 0, 3, 68, 34, 17,175,242,151,165,165,165,188,144,144,144,
+126, 78, 8, 95, 63,145,168,220,224, 20, 30, 30, 14,165, 82,201, 24, 12,134,137,187,119,239, 54, 1, 64, 84, 84,212, 68,134, 97,
+202,104,154,166,248,124, 62,180, 90, 45, 2, 3, 3,253,106,176,141, 46, 58,242,195,210,224,202, 62, 90, 33, 33, 33,136,138,138,
+130, 94,175, 71, 94, 94, 30,226,227,227, 77, 12,195,236,217,180,105,147, 57, 32, 32,224,111, 99,199,142,165, 18, 19, 19,231, 2,
+152, 95,157, 22,121,201,172, 89,177,213, 10, 45,139,130,140, 3, 48,176,242, 67, 86, 22, 63, 53, 9,173,218,166, 14,249,124,190,
+ 34, 51, 51,211,195,190, 83,161,105, 26,161,161,161,102,150,101,137,170,132, 86,125, 76,193, 92, 46,215,243,147, 79, 62, 81,108,
+218,180,105,210,227,199,143,151, 56,242,155,125,115, 91, 99,103, 37,145,181,121,101,204,134,245, 43,151,250, 62, 56,181, 29, 91,
+191, 93,205, 48, 12, 18, 59,116,232,208, 79,163,209,112,188, 60, 76,144, 41,112,210, 34,178, 28, 21,133, 36,128,239,175, 93,187,
+150, 56,114,228,200,223,190,255,241,160,111,238,195,135,151, 5, 42, 89,158,180, 69, 75, 14,175, 81,248,155,234,178, 50,222,196,
+137, 19, 3, 0,140,173,173, 17, 83, 40, 20,200,207,207,175, 44,192,112,247,238,221,167,238,117, 40,113, 36, 9,134, 97,112,224,
+192, 1,136,197, 98,120,120,120, 84, 56,172, 34,171,142, 11, 21,210, 1, 96,196,136, 17,144,203,229,144, 72, 36, 14,167,171,178,
+120, 97, 89, 22, 6,131, 1, 6,131, 1, 70,163,145, 1,192,229,112, 56,152,145,157,109,179,242, 56, 35, 96, 42,163, 67,135, 14,
+236,165, 75,151,240,219,111,191, 65,171,213, 98,253,250,245, 8, 9, 9, 25, 12,224, 51,103,185,236,156,244, 25,149, 74,197, 85,
+169, 84, 54,235, 32,151,203,181, 89, 15, 28,180,228,241, 56, 28,142,109, 52,106, 61,236,173, 90, 20, 69, 33, 40, 40, 8,193,193,
+193,216,188,121, 51,175,105,211,166,163,159,103, 11,180,106,213,170, 22,235,214,173,219,182,115,231,206,147,147, 38, 77,250, 41,
+ 57, 57,121,186,151,151,215,237,243,231,207, 47, 21, 8, 4,230, 58,214,239,176,220,220,220, 64,251,175,204,102,179,152,166,105,
+155,176, 45, 45, 45,117,120,128,193,229,114,195, 82, 82, 82,196, 0,176,116,233, 82, 46, 0,177,213, 25,220,202, 89, 90, 90,202,
+109,219,182,109,152,163,101, 61, 33, 33,161,223,208,161, 67, 47,157, 57,115,198, 39, 60, 60, 28, 57, 57, 57,200,201,201, 65,139,
+ 22, 45,176,124,249,114,173, 74,165,234, 3, 32, 93,163,209, 28,118,144, 51,212,199,199,135,155,153,153, 9,154,166,209,185,115,
+103,108,220,184, 17, 19, 39, 78, 68,251,246,237,161, 82,169,144,146,146,130, 29, 59,118,248,240,120,188, 26,219, 14,157, 78,119,
+ 56, 54, 54,182,113,101,139,214,228,201,147, 61, 10, 10, 10,108,101, 50, 38, 38,166,194, 20,162, 51,109,178,101,106,171,218,163,
+ 46,160,105, 90, 42, 20, 10, 85, 2,129,128,111,245,207,138,143,143,119,218,154, 85,105, 0,232,204,249,115,131, 85,180, 86,209,
+183, 34, 56, 56,216, 97, 30,129, 64, 64, 88,219, 70,154,166,161, 84, 42,153,144,144, 16,219,244,126, 82, 82, 18, 19, 17, 17,193,
+ 80, 20, 69,241,249,124, 16, 4, 1,177, 88, 92,109,131,207, 50,108,204,235, 19, 63,171,176,234,112,222, 39,128,209,104, 68, 82,
+ 82, 18,140, 70, 35,226,227,227, 77, 95,127,253,117,174, 66,161,152, 7,128,115,250,244,233,169, 11, 23, 46,164, 2, 3, 3,135,
+ 22, 22, 22,162, 54, 45,242, 18,137,173,167,172, 92,214, 94, 40,110,244,232,209,132,101,105, 37, 97, 21, 78,206, 8, 45, 75,229,
+171,181,231, 37, 8, 2,121,121,121,182,243,192,192, 64,167,255,151,163,240,243,243,211,246,234,213,203, 83, 38,147, 29, 94,181,
+106, 85,157, 44, 89,155, 87,198,108, 88,241,229,231,190,242,212, 43,200,206,205,131,188,208,148,120,241,246,227, 67, 0, 14, 1,
+ 0,182,180,137, 35,222, 75,251,206, 81,206,214,254,162, 78, 92, 30,231,208,171, 35, 71, 55,158, 16, 61,159,124,255,253,247,251,
+ 78,157, 58, 85, 57,105,210,164, 15, 36, 18, 73, 43,163,209, 88,114,240,248,241, 39, 19, 38, 76,104,202, 48,204, 84,212, 18,115,
+ 68,167,211,101, 12, 28, 56,208, 62, 63,165,103,207,158, 13,122,242,228, 9,230,204,153, 83,148,147,147,163,176,191,215,145, 52,
+ 26,141,198,140, 78,157, 58, 85, 59, 93,104,157, 82, 4, 0,181, 90,157,225, 68,150,190, 13,139,227,123,113,113, 49,238,222,189,
+ 11, 14,135,131,158, 61,123,226,226,197,139,232,219,183,111,146, 51, 86,173,178,178, 50,132,135,135,163,172,172, 12, 90,173,182,
+ 20,128, 96, 87,211,166, 0,128,185,197,197,184,241,245,215,184,178, 98, 5,236,203,179,163,232,216,177, 35,123,229,202, 21,220,
+190,125, 27,122,189, 30, 51,103,206, 4, 0,194, 82,118,157, 9,153,209,156,162,168, 17, 35, 71,142, 12, 5, 0,173, 86, 75, 92,
+187,118, 13, 66,161,208, 86, 23,142, 30, 61,138,156,156, 28, 16, 4, 1, 31, 31,159,176,146,146,146,166, 0, 30,215, 96,246, 39,
+ 30, 63,126,140,175,190,250, 10,102,179, 25, 11, 23, 46, 68,203,150, 45,109, 2, 43, 35, 35, 3, 75,151, 46, 5,195, 48,248,252,
+243,207,209,162, 69, 11,152, 76, 38, 33,234, 24, 66,195, 21,248,240,195, 15, 31, 28, 58,116,232,100, 86, 86,214,107, 43, 87,174,
+ 28, 64, 16,132,121,193,130, 5, 95, 73,165, 82,166, 62,188, 37, 74, 53,238,222,207,176, 9,161,202, 71,128,191,175,211,124,247,
+ 30,102,217,126,207, 48,246,124, 12,252,124,125,156, 77, 98,169,201,100,210,190,249,230,155,222, 7, 14, 28, 32, 90,180,104,129,
+ 71,143, 30, 89, 45, 67,165,112, 62,164, 67,142, 92, 46,111, 73, 81, 20,239,254,253,251,136,136,136, 64,143, 30, 61,176,108,217,
+ 50,200,100, 50,208, 52,141,192,192, 64,179,201,100, 74, 50, 26,141, 23,106,225,138,153, 53,107, 22, 15,192,123, 22,203, 86,135,
+121,243,230,153, 87,175, 94,141,164,164, 36,155, 5,203,222, 25,222,217,169, 67,123,171,147,253, 17, 31, 31,191,144,207,231,179,
+ 0,174,194,249, 64,207,134,202, 22,173,186, 88,179, 26, 10, 13,185,146, 49, 36, 36, 36,222,211,211,115,116, 73, 73, 73, 5,171,
+ 86,159, 62,125,140, 65, 65, 65, 9,142,242, 72, 36,146, 18,138,162,252, 0, 32, 39, 39, 7, 30, 30, 30,188,135, 15, 31,174, 64,
+121,240,108, 52,109,218,116,133, 92, 46,231, 53,181,180,167,193,193,193, 48, 24, 12,213,186,177, 92,190, 89,176, 29,192,118,235,
+185,175,175,111,158, 82,169, 20,173, 94,189, 90,179, 98,197, 10, 29,195, 48,122, 0,231, 21, 10,133, 45,142, 86,126,126,190,146,
+203,229,250,122,123,123, 55,178, 10,173,170,180,200, 75,134,234, 45, 90, 22, 37,201, 86, 22, 68, 4, 65, 60,229,160, 94,139,208,
+170, 85,100, 49, 12, 83,193,202, 96,117,120,175,234,127, 89, 58,245, 58, 77, 29, 90, 68,150,240,224,193,131,187, 86,173, 90,117,
+213,209,223,217,251,104,109, 89,243,229, 74,171,200,250,253,183, 51, 56,156,166,148, 45, 92,177,118, 93, 93,223, 64, 27,127,113,
+199,160, 32,191,184,175,151,199, 72, 31,156,218,129,159,182,252,155,253,253,250,245,238,215,175, 95,159, 50,103,206,156, 38,150,
+130, 37, 7,112, 11,192, 4, 56,176, 74, 39, 39, 39,103,120,165, 78, 56,157,199,227, 5,137,197, 98,228,228,228,104,238,221,187,
+231,244,148,140, 76, 38, 27,222, 0, 5,144, 99, 21, 89, 50,153, 12, 41, 41, 41, 24, 52,104, 16, 0,224,226,197,139,232,211,167,
+ 15, 18, 19, 19,209,165, 75,151, 36, 0,221, 80, 75,160, 86,147,201,164,104,211,166,141,205,186,165, 84, 42,205, 0, 16,157,151,
+135,216,144, 16,112, 56, 28, 92, 89,177, 2,139, 77, 38, 44,115, 82,192,119,234,212,137,189,118,237, 26,158, 60,121, 2,154,166,
+ 49,102,204, 24,212,177,210,183,111,221,186,245,217,243,231,207, 7, 72, 36, 18,104,181, 90,104, 52, 26, 76,155, 54, 13, 19, 39,
+ 78,132, 94,175,199,190,125,251,112,228,200, 17,120,122,122, 66,171,213, 66,171,213,250,140, 26, 53,234, 82,122,122,122,127, 0,
+247,171, 17, 90,236,240,225,195,145,144,144, 0,138,162,208,189,123,119, 20, 23,255,177, 24, 40, 40, 40,168,170,107,212,243, 20,
+ 90, 28, 14,135,141,143,143, 95, 57, 96,192, 0,100,101,101,189,214,165, 75,151,245,211,167, 79,207,169, 47,175,143,151, 39, 58,
+181,109, 14,189, 94, 15,189, 94,143,208,208, 80,168,213,106, 60,120,240, 0,122,189, 30, 65,129,222, 78,243, 69,181,111, 97,227,
+ 11, 12, 12,132, 86,171,197,227,199,143, 97, 48, 24,224,239,239,148,208,106, 60,124,248,240, 95,247,236,217,227,183, 99,199, 14,
+195,192,129, 3,249,235,215,175, 39,164, 82, 41,236, 58, 22,103, 17,127,241,226,197,240,161, 67,135, 70,166,166,166, 34, 62, 62,
+ 30, 6,131, 1, 81, 81, 81,184,119,239, 30,122,245,234, 5,141, 70,115,245,250,245,235, 71, 28, 49, 12, 3,248,116,214,172, 89,
+176,138,173,132,132, 4,228,229,229,193,211,211,243, 41,161,101,245,125,180,172, 26, 15,117, 36,177, 86, 65,100,103,121, 90,236,
+237,237,109, 4,176,174,142,214, 39, 0, 64, 86, 86,150,160, 67,135, 14,122,161, 80,200,183,136,182,181,245,225,115, 37, 92,176,
+146,177, 90, 4, 7, 7,207,243,247,247, 31,218,172, 89, 51, 20, 20, 20,240,248,124, 62,250,244,233, 99,236,214,173,155, 49, 56,
+ 56,120,174,163, 60, 2,129, 32,149,199,227,245, 47, 31, 76, 48,200,204,204, 4,203,178, 11,219,183,111,255, 15,181, 90,141,226,
+226, 98,190, 84, 42,181, 13,170, 35, 35, 35,161,215,235, 83,157,176,188,197, 68, 68, 68,124,202,227,241,150,201,100,178,170,194,
+ 66,240,189,189,189,165, 60, 30, 15, 70,163,177,130,216,172,172, 69, 94,118,145, 85, 65,104,217,169,200, 10, 66,199, 25,139,150,
+ 35, 86, 3,171,131,189,253,185, 85,212, 85,254, 95,117,141,161,229,229,229,165,183,138,172,101,203,150, 93,173, 11,199,254, 61,
+187, 67,188,204,165,141,115,175,158, 64,250,237, 68, 28, 74, 81,200, 22,174, 88,251,193,235, 99,223, 46,168, 44,204, 28, 65,203,
+ 0,113,251,160, 64,191,184, 53,171, 86, 72,229,169, 87,144,151,159,143, 19, 87,175, 39, 26,129, 20, 0, 11, 93,105, 90, 6,202,
+167, 14, 41,138,122,145, 10,172,205, 25, 62, 47, 47,207, 42,178,162, 0,160,111,223,190, 73, 22,145, 5, 71, 45, 90, 10,133,162,
+242,150, 53, 67, 1,248, 91,159,159,195,225,160,207,167,159, 58, 45,178, 0,176,137,137,137,144,203,229,214,145, 98, 93, 69, 22,
+130,131,131,255,121,254,252,249,128,239,191,255, 94,181,115,231,206, 98,179,217,204,237,212,169, 83, 88,215,174, 93,137, 93,187,
+118, 1, 0, 38, 76,152,128,133, 11, 23,226,206,157, 59,240,240,240, 64,223,190,125,153, 37, 75,150, 4,206,155, 55,111,110, 65,
+ 65,193, 7, 85,246,142,102, 51, 79, 40, 20,158, 3, 48, 56, 53, 53, 21, 0, 46,161,124, 11, 39,171, 21,161,218,107,142,116,190,
+106,181,154,235,233,233, 89,101,104, 8, 94,249,104,200, 89, 11,132,141,243,183,223,126,251,106,205,154, 53,135, 62,250,232,163,
+251,245,228,172,210,162, 53,122,244,104,232,244, 70,100, 23, 40,193, 48, 52,116,198, 66,167,249,236, 45, 90,163, 71,143, 70,105,
+153, 1,153,121,114,208, 52, 3,181,206,225,190, 92,252,234,171,175,158,254,225,135, 31,130, 47, 95,190, 12,134, 97,204,247,238,
+221,123,252,230,155,111, 74, 23, 44, 88,224, 87,143, 69, 70,223,190,253,246,219,227,126,251,237, 55,121,100,100,164,239,213,171,
+ 87, 81, 88, 88, 8,154,166, 49,120,240, 96,240,249,252,204, 21, 43, 86,240, 0,124,235,232,187,177,136, 45,227,245,235,215,223,
+189,114,229,138,175,175,175, 47,223,220,186, 53,242,206,156,193,129, 3, 7,158,250,193,150, 45, 91, 0, 7,163,240, 91, 45, 78,
+215,174, 93,115,137,192,170,208, 83,243,249,117,158,126,124, 89,113,237,218,181,156,247,223,127,191,173, 84, 42, 93,215,175, 95,
+191, 65,126,126,126,164,143,143, 79,124,163, 70,141,254,209,169, 83, 39,135,103, 23,184, 92,238,116, 15, 15,143, 7, 52, 77, 83,
+195,213,223, 10, 0, 0, 32, 0, 73, 68, 65, 84, 26,141, 6, 90,173,182,188,145,166,105, 62, 73,146,104,218,180,169,173, 47,233,
+222,189, 59,130,131,131,153,180,180,180,233,142,242, 23, 21, 21, 85, 88,133, 88, 5,102,245,233,211,135,163,215,235,241,228,201,
+147,139,246, 23,170,210, 34, 47, 9,162,107, 20, 95,214,135,178,127,184, 70,141, 26,101,153, 76, 38, 54, 5, 96,111,221,186,197,
+ 70, 71, 71,215,120,148,149,149,177,129,129,129,121, 85,116,126,176,231,212,235,245, 21,126,167,215,235,217,160,160, 32, 70,167,
+211, 61,197,169,211,233,216,176,176,176,156,154, 56,171,192,180,155, 55,111,110, 90,188,120,113, 15, 39, 50,200,198,201,110,110,
+205,238,216,177,227,175, 44,203, 14,232,215, 54,252,246,248, 78, 65,108,159,150,129,185, 71,246,239,153,200,178,236,128,202,135,
+ 53,192,105, 77,156,173,131, 60,218, 12,105,215,164,228,247, 83,123,217,243,171,255,206,174, 25,211,146,237, 18,230,169,104,237,
+ 47,114,118,143,152, 90,119, 75,111,215,174, 93,186,217,108,102, 13, 6, 3,219,174, 93,187,123,174,224,172, 3,106,226,236,140,
+114, 95,182,183,171,248,174,115, 61,210,249, 59,203,178,172, 92, 46,103, 53, 26, 13,171,215,235, 89,134, 97, 88,123, 0,248,221,
+ 1, 78,214,104, 52,178, 37, 37, 37, 44, 28,247,185,171,146, 51, 36, 36,228,241,195,135, 15,217, 87, 94,121, 37,203, 98,142,159,
+167,213,106,217,202,208,106,181,236,160, 65,131,216,123,247,238,177, 17, 17, 17,101,247,238,221, 99, 67, 66, 66,238,214,146,206,
+102,141, 27, 55, 62,231,239,239, 31, 15,160,165, 19,215,106,204,207,125,251,246, 53,103, 89,118, 38,203,178,209,213, 28, 51, 89,
+150,109,253,188, 57, 45,249, 91,192,178, 44, 91, 90, 90,202,202,229,114, 54, 55, 55,151, 45, 45, 45,101, 53, 26, 13,123,243,230,
+ 77,246,242,229,203,236,237,219,183, 89, 95, 95,223, 2, 71, 56,173,124, 6,131,129, 85,169, 84,108, 97, 97, 33,171,211,233, 88,
+173, 86,203, 38, 39, 39,179, 55,110,220, 96, 83, 83, 83,171,226,123,138,211,207,207,111, 75,126,126,190,230,210,165, 75,165,155,
+ 55,111, 46, 13, 14, 14, 78, 5, 16, 14,160,149,143,143, 79,254,223,255,254,119, 86, 34,145,100,212,177, 30,181,229,114,185, 55,
+ 87,174, 92,121,237,216,177, 99, 5, 71,142, 28, 49,108,219,182, 45,123,206,156, 57, 23, 56, 28,206, 77, 0,109,235, 88,143, 2,
+189,189,189, 47, 93,189,122,149, 46, 41, 41, 97, 21, 10, 5,171, 82,169, 88,173, 86,203,234,116, 58,214, 96, 48,176, 38,147,137,
+189,112,225, 2, 27, 20, 20,100, 63, 45,185,168,134,129,245,124,150,101,255,201,178, 44,199,213,109,157, 29,119, 63, 87,113,186,
+162,173, 35, 73,210,104,105, 59,122,150,159,214,124,254,188,210, 57,100,200,144,207, 39, 78,156,200,142, 24, 49,130,141,138,138,
+122,234,232,210,165, 11, 59,123,246,108,246,216,177, 99,236,215, 95,127,253,185, 11,210,201, 65,249,162,151,229, 67,134, 12, 49,
+ 37, 36, 36,176, 19, 38, 76, 96, 1, 12,175, 73,139,252, 25, 4,151, 53,188, 3, 97,255, 23, 0,140, 70, 99, 86,122,122,122, 72,
+ 36, 77, 83, 0,240,221,119,223, 61,101,153,178, 71, 66, 66, 2, 77, 16,196,131,154,254,187,209,104,204, 58,127,254,124,208,134,
+ 13, 27,184,118, 38, 96,208, 52,109,206,205,205, 37,215,175, 95, 95,225,254,184,184, 56,154,166,233, 76, 39, 31,114, 71,231,206,
+157,119,184, 34,183, 46,220,121,242,143,211, 39,126,246,239,217,163,159, 66,234,235, 91,229, 40,108,223,220,214, 32,222,171,217,
+170, 69,112,200,101, 43,151,199,120, 91,167, 32,127, 76,202, 87,148,233,153, 65,105, 50,221,239,174,126,195, 26,141,230,137,117,
+ 37,160, 86,171,205,124, 1, 11,225, 77,148,199,184,162, 43,125,215, 13,245,116, 58, 53,155,205,240,242,242,178, 89, 67,235, 96,
+ 17,101,173, 22, 86,235,171,171, 79,122, 88,150,253, 45, 57, 57, 57, 98,218,180,105,158, 59,119,238,124,200, 48, 12,119,198,140,
+ 25,198,224,224, 96,222,197,139, 23, 77, 0,136, 1, 3, 6,112,242,243,243,217,156,156, 28,249, 95,254,242, 23,245,187,239,190,
+235,119,235,214, 45,190,217,108,174, 45,104,225,163,172,172,172, 33,117,184, 86, 35,198,143, 31,255, 16,245,223,198,166,193, 57,
+173,144, 43, 84,120,248, 36,199, 18,193,220, 12, 38,163,192,230, 87,101, 50,209,144,171,138,157,182,104, 61,120,156, 99,217, 98,
+140, 1,195,228, 90,248,202, 29,226,217,146,210,218,123, 19, 14,167,239,146, 37, 75, 70,146, 36, 73, 94,185,114, 69,191,106,213,
+170,172,162,162,162, 49, 0, 50, 1,160,164,164,100,224,142, 29, 59,254,235, 64, 40,135,234,144, 98, 50,153,122, 45, 90,180,232,
+ 3, 0,125, 1, 52,177,112, 95,180, 88,178,234, 26,193,188, 80,161, 80, 12, 27, 57,114,228, 25,138,162,154,218,213, 35,127, 0,
+ 50,107,189, 96, 89, 54,176,160,160,224, 53, 71, 8, 9,130, 88,219, 80, 13, 73, 67,114,215,179, 29,122, 41, 86, 50,158, 59,119,
+238,139, 49, 99,198,112,194,195,195,255, 47, 60, 60,156, 44, 41, 41,129, 70,163, 1, 73,146, 8, 14, 14, 70,187,118,237, 16, 28,
+ 28,108, 78, 77, 77, 93,254,241,199, 31,215, 26,147,175, 77,155, 54,205, 77, 38,211, 43, 36, 73, 54, 7,208,156,101,217,230, 4,
+ 65, 52, 7,224, 11, 0, 82,169, 84, 26, 17, 17,193,233,217,179, 39,122,244,232,129,184,184, 56,236,223,191,127, 59,128,211,246,
+214,172,202, 90,228, 69, 64, 74,103,176,109,111,130,184,211, 5, 3, 8, 51,226, 88, 18, 3,219, 37,218,226,236, 85, 22, 89,213,
+111, 42, 93,133,233,111,248,224,193,131,109, 21,206,129, 78,229, 73,109,149,175,168,168,104,248,244,233,211, 43,112, 50, 12,163,
+ 47, 46, 46,126,191,119,239,222, 27, 41,138, 18, 84, 42,176, 25,133,133,133,207,116,175,190,202,113,180,134,143,124, 67, 86, 95,
+ 78, 9,143,124, 37,253,248,127, 80, 80, 40,195,143, 73,249, 37,106, 3, 51,240,158,172, 52,185, 33,210,159,145,145, 49,226, 37,
+ 80,252, 85,137,214,250,110,158, 93,228, 64, 64,210,218,246,168, 35, 44,225, 68, 92, 82,201,243,243,243, 87,127,250,233,167,195,
+150, 47, 95, 30,112,242,228, 73,169,117,128,242,214, 91,111, 21, 38, 39, 39,247, 3, 32, 40, 43, 43, 59,187,124,249,242,128,152,
+152, 24, 63, 0,126, 0, 48,106,212,168,130,130,130,130, 13,112,163, 70,152, 76,166,236,118,109, 34,109, 3, 63,251,144, 14,246,
+159,105,154,206,118,134,175, 42, 30,251,115,134, 97,106,228,163, 40,234,163, 30, 61,122, 80, 31,125,244, 81,193,201,147, 39,173,
+ 27,233,218, 43,180,244, 90,130,146, 58, 2, 61,128, 85,150,195,149,208,202,229,242, 94, 78,254,134,113,151,198, 42, 7,148,206,
+156, 63, 23, 28, 62,124,248,179, 9, 19, 38,236,240,245,245,221,221,188,121,243,200,160,160, 32,169, 72, 36,130, 94,175, 87, 27,
+ 12,134,187,233,233,233,147, 62,251,236,179, 71, 14, 89, 56,118,236,160, 0,240,204,102,179,144, 36, 73, 15, 0, 82,130, 32,124,
+172, 66,139, 32, 8, 24,141, 70, 60,121,242, 4,139, 23, 47,102,206,157, 59,247, 53,128,207,157, 24,184,118, 3, 16, 96,215,142,
+ 7, 0, 48,160, 60,128,109, 17, 65, 16,215, 27, 58,191, 8, 51,226,218,222, 4,145,210, 25, 85,245, 19, 53,111, 42, 93, 93,133,
+ 43, 42, 42,234,229,234, 74, 92, 29,103, 81, 81, 81,248,139, 82, 67,166,234, 87,237,197,150, 85, 21,246, 57,180,138,176,170,206,
+107,131, 82, 71,207,249,246,244,157,213,122,154, 53, 27,105,243,223,238, 21,149,166,184,219, 33,151,227, 85, 87,213, 37, 23,166,
+ 41, 57, 45, 45,173,247,156, 57,115, 62, 19,139,197,221, 1,160,180,180,244, 74,110,110,238,151,176,172, 42,172,237,186, 27,213,
+ 67, 38,147,117,125, 17,249, 12, 6,195, 63,122,247,238,253, 13,195, 48,107,104,154,190,248, 63,240, 42,202,220,165,241,229,197,
+ 79, 63,253,244, 8, 64, 47, 0, 24, 55,110, 28, 5, 0,251,247,239,119, 90, 60, 79,155, 54,141, 97, 89,214,104, 41, 15, 90,148,
+175, 46, 44,177,182,169, 90,173,182, 36, 55, 55, 55,149, 97,152, 84, 0,255,133,243, 43,110, 3, 8,130, 56,198,178,236,104,139,
+112, 59,198,178,236,104,251,239, 26,218,170, 85,203, 45,181, 59,195,187, 81,142,253, 41, 32, 42, 79, 5,214,118, 94, 27,210, 11,
+180,241, 0,186,184,115,247,127, 18, 15,115,115,115,167,214,227,186, 27, 47, 31, 50, 13, 6,195,152,255,161,231, 85,186, 95,249,
+159,164,255,171,131,192,178, 34, 53, 53,181,193, 92, 4,158, 55,218,222,172, 56, 0,175,124,110,135,232,170,132,151, 91,104,185,
+225,134, 27,110,184, 81, 31, 40,220, 89,224,198,159, 25, 86,223, 44,235,121, 53, 62, 90,149,253,179,108,231, 4,170, 95, 57,224,
+204,174,228,117, 89, 37,113,214,205,233,230,116,115,186, 57,221,156,207,157,211, 27, 64, 4,128,149,181,220, 87,121,117, 97, 1,
+ 0, 25, 0,147, 59, 63,221,156,245,208, 15, 14,129,101,217, 81, 53, 77, 29, 18, 4,113,188,161,132,150,205, 25,190, 51,150,180,
+187,137, 37,214,115, 71,133, 86, 67, 99,168,155,211,205,233,230,116,115,186, 57,221,156,110, 78, 55,103, 61,133,214,160,143, 63,
+254,248, 19,148,135,198, 96, 63,254,248,227, 79, 88,150, 29, 85,126,137, 29,213,144,255,251, 78, 23, 12, 72,233, 12,214,122,220,
+233,130, 1,213,220, 26,109,119,216,224,158, 58,116,195, 13, 55,220,112,195, 13, 55, 94,116, 92, 90,177, 98, 69,233,138, 21, 43,
+172,142,239, 69, 0, 8,139,133,171,168, 33,255,177,101,154,208,145,133, 82, 53,111,193,243, 28, 16, 74,114,120,147,185, 60,193,
+ 32,176,230,118, 0, 0,146,186,195, 24,202,126,165,105,227,110, 0,185,117, 37,110, 13,180,105,225, 45, 58,162,103, 24, 94,150,
+218, 48, 46,173,124,155, 3,167, 49, 14,232, 35,224,243,127, 17,120,123,139,170,186,174, 87, 40,116,122,131, 97,216,126,224, 55,
+119, 29,112,195, 13, 55,220,112,227, 37,129,135,143,143,207, 57,146, 36,195,173, 95,216,199, 29,172, 28,131,144, 97,152, 60,185,
+ 92, 62, 12,229, 83,197,207,146,211,254,247, 6,212,177, 47,119, 53,156,157, 58,228, 0, 21,162,176, 62,147, 29,179, 41,174,224,
+ 93, 79, 47,239,101,127,157,254, 15,191,150,173, 34,137,198,141, 27, 1, 44,144,153,149, 29,244,224,254,189, 33, 63,237,252,246,
+ 67,149, 82,190,216,164,215,255,199, 89,238, 54,128, 71, 19,137,224,226,127, 62,126,199,155, 3, 26,111, 47,221,115,138,208, 24,
+ 27,167,150, 47, 55,117, 74,100,121,251,249,157, 94,113,246,172,200,167, 99,199, 10,215, 88,150, 45,223, 95,239,247,223, 69,255,
+ 55,108,216,233,113,114,249,112,183,216,250, 83, 34, 88, 42,149,206,227,114,185, 3,141, 70, 99, 56,159,207,207, 98, 24, 38,190,
+164,164,100, 29,128, 28,119,246,252,185, 17, 25,236,209, 47,178,121,248,158,220,252,130, 36, 85,153, 97, 70,122,174, 70,238,206,
+ 21,167, 81,211,254,154,207,109,239, 77, 0,144, 72, 36, 55, 72,146, 12,179, 23, 1,214, 61,123,173,231,149,255,154,205,230, 71,
+114,185,188,119, 13,180,205,125,125,125, 55, 2,232, 86, 91,192,100, 75,108,182,235,114,185,252,125, 84,191, 90,207,211,199,199,
+231, 11,130, 32,198,147, 36, 73,213,246, 76,102,179,153, 97, 89,118, 95, 73, 73,201,231, 0,212,213,221,231,227,227,115, 54, 45,
+ 45,173, 91, 96, 96, 96,173, 86, 26,154,166,145,153,153, 25,208,189,123,247, 11,114,185,188,117, 67,114, 62,107, 45, 82, 87,212,
+176,234,176,218,130, 14,160,194,254, 66, 13, 26,145,149, 39,148, 28,233,213,127,248,160,217, 31,124,228,113, 51,249, 46,126,137,
+187, 12,149, 86, 15,138, 36,225,237, 41, 70,171, 86,175, 16,107, 99, 15,248,111,223,188,118,205,149,132, 51,163,202,180,202,191,
+ 56, 37,211,197,156,197, 11,223,236,238,225,231,203, 0,102, 6,255, 28,217,201,227,255,142, 37, 45, 70, 41,253,137,211, 34,235,
+220, 57,113, 97, 65, 1, 98, 66, 67,193,161,105, 8, 73, 18, 66,130,128,144, 36,225, 33, 20, 98,196,182,109,248,242,228, 73,241,
+103,175,189,230, 22, 91,127, 50, 72, 36,146,233,161,161,161,171,182,110,221,234,215,172, 89, 51,120,120,120, 64, 46,151,251,167,
+167,167,119,158, 63,127,254,212,188,188,188, 79, 85, 42,213, 22,119, 78,253,121, 97, 54, 99,242,247,203,222,111,148,151,113,191,
+209,172,229,123, 91, 17,126,204,192,187,197,186,124,119,206, 56,140,206, 0,146, 80,245,254,165, 53, 93,171, 22, 66,161,176,160,
+172,172, 44,176,166,123,248,124,126,161,193, 96, 8,170,141,139, 36,201,176,156,156,156, 64,177, 88, 12,134, 97, 44,187, 1,152,
+109, 3,105,251,221, 79, 44,129,106,209,186,117,107, 99, 77,156,158,158,158,223, 21, 22, 22, 14,181,238, 19,104, 39,168,170, 68,
+ 78, 78,206,208,182,109,219,126,167, 86,171,135, 85, 35, 94,190,248,224,131, 15,230,181,111,223,222,106, 5,178,236,130, 80,254,
+ 87, 38,147, 97,206,156, 57,182,255, 97, 54,155,113,230,204,153, 15,166, 79,159,142,146,146,146,249, 53, 60,123,120, 96, 96, 32,
+ 97,217, 80,188, 90, 44, 89,178, 4, 75,150, 44,193,183,223,126, 75,112,185, 92,239, 90,242,211, 37,156,207, 74,139,212,197,130,
+ 85, 75,100,248,227,168,232,155,117,252, 41,161,245, 44, 64,113, 5,127,235,214,123,232,192, 57,243, 22,122,236,253,249, 60,210,
+ 83,127, 71,218,197, 31, 42,220,211,117,216,116,228,203,212,152, 62,251,159, 18,130,226, 12, 76, 56,123,248,111, 38,189,238,123,
+ 7,173, 89, 65,225, 2,254,223,123,118,111,199,205, 17,165, 35,216, 71,132,190, 93, 90,112, 27,159,190,253,119, 45,232,111, 82,
+203, 87,201, 56, 37,178,182,190,243, 14,250,153, 76, 8,164, 40, 80, 4, 1, 10, 0, 73, 16, 40,211,235,113,125,242,100,116,223,
+181, 11,159, 31, 61, 42,254,226,245,215,157, 18, 91, 30, 30, 30, 55, 9,130,240,209,104, 52,163, 80,190,177,244,203,128,182, 18,
+137,228, 56,203,178, 37, 90,173,182,243, 11,148,174, 16,148,207,209, 87, 30, 29,243, 80,190,162,202,169,157,133, 5, 2,193,187,
+227,198,141, 91,187, 97,195, 6,113, 65, 65, 1,114,115,115,193, 48, 12,132, 66, 33, 90,182,108, 73,156, 61,123,214,111,225,194,
+133,171,143, 31, 63, 46, 80,171,213,223, 56, 51,176,225,114,185,177,190,190,190,175, 5, 5, 5,121, 20, 22, 22,150, 42, 20,138,
+ 51,122,189,254, 93,212,125,219, 20,146,203,229, 78,138,136,136,120, 35, 52, 52, 52, 40, 39, 39, 71,150,157,157,125, 68,175,215,
+111, 71, 29, 55,106,182,203,211,142,176, 68,171, 7,144, 23, 17, 17,113,231,201,147, 39,133, 46,228,204,141,136,136, 72,169, 3,
+167, 7,128,159, 0,132,214,114, 95, 46,128, 9,112,210,154,109,203, 88,214,124, 98,233,186,173, 51, 98,166,245, 37,190,159, 63,
+180,229,123,223,158,189, 76,242,216,254,169,121,101, 89,110, 13,229,152,200,178,108,105, 85, 89, 80,213,116,173, 70,232,245,250,
+ 0,163,209, 8,110, 53,155,197,107,181, 90,120,122,122, 6, 56,154, 72,145, 72,132, 31,126,248, 1, 92, 46, 23, 92, 46, 23, 37,
+ 37, 37, 8, 11, 11,179,157,243,120, 60,219,231, 38, 77,154,212,202,199, 48, 76,119,138,162,160,209,104,192, 48,140,237, 80, 40,
+ 20, 96, 89, 22, 2,129, 0, 12, 83,190,157,147,221,245,238,213,241, 17, 4, 49, 62, 52, 52, 20,123,247,238,133,193, 96,120,234,
+186, 84, 42, 69,114,242, 31,155,140, 80, 20,133, 30, 61,122,144, 4, 65,140, 7, 48,191, 6, 94, 22, 0,162,163,163, 65, 81, 20,
+ 40,138, 2, 73,146,182,207,214,131, 97, 24, 44, 89,178, 4,149,182, 38,123,102,156, 47, 26,106,137, 12,159,135,106,124,180,200,
+ 6, 78,151,253, 18,207, 80,177,135,244,171,247,255,241, 79,201,241, 11,183,145,153,149,249,148,200, 2,128, 27,191,108, 71, 94,
+110, 14,146,210,178, 49,233,111,115, 37, 82,169,247, 87,149, 26,212,106,151,141,122,121,242,190,254,120, 66, 95,161,198,148, 11,
+181, 15, 64, 53,231,131, 43,214, 98,225,232,142, 2,169, 39,111,149, 35,233, 20,240,249,191,172, 56,123,214, 38,178,250,232,245,
+ 16, 48, 12,104,134,177,137, 44, 3, 77, 67,103, 48, 32, 68,163,193,131,233,211,193,154, 76,248,244,208, 33,177,128,207,255,197,
+145,116, 2, 0,143,199, 11, 57,114,228, 72,147, 14, 29, 58,196,193,241, 96,166,103, 27,248, 29,213,132, 46,157, 58,117,138,223,
+181,107, 87, 19, 30,143, 23,226, 10, 78,161, 80, 56,214,195,195,163, 72, 40, 20,142,173, 99, 58, 73, 0, 75,103,204,152,145,248,
+202, 43,175,156,183, 8, 43,155,168,121,229,149, 87,206,206,152, 49,227, 38,128, 37,213,148,245,170, 56, 27,133,134,134, 46,219,
+176, 97,131,248,222,189,123,200,201,201,129,201,100,194,219,111,191, 13,134, 97,160,211,233, 96, 48, 24,176,114,229, 74, 15, 63,
+ 63,191,197, 40,223, 40,216,145,103,231,121,121,121,221,219,185,115,231,184,199,143, 31, 75,206,159, 63, 79, 36, 39, 39,123,172,
+ 94,189,122,140,159,159, 95, 58, 0, 65, 29,242,147, 12, 9, 9,249,254,240,225,195,239, 39, 39, 39,135, 29, 60,120,144,123,229,
+202,149,144,205,155, 55,207, 12, 9, 9,217, 5,128,170,227, 59,234, 44, 22,139,135, 44, 88,176,192,124,233,210,165,156, 75,151,
+ 46,229,172, 93,187, 22,253,250,245,235, 19, 19, 19, 19, 85, 71,206, 46,158,158,158,131, 23, 44, 88, 96, 78, 72, 72,200,189,122,
+245,106,246,234,213,171,201,193,131, 7,247, 93,182,108, 89, 71, 39, 57,127,186,116,233,210,128,172,172,172,102,217,217,217, 77,
+179,179,179, 35,178,179,179, 35,114,114,114,194,243,242,242,154,228,231,231, 55, 46, 44, 44,108, 28, 31, 31,223, 23,192, 30, 71,
+ 56, 35,131, 60,222,159,255,246,208,210,197,127, 27,201,126, 50,229, 85,118,225,219, 3,216,215,250,119,248,153,226,112,136,171,
+ 41,153, 8,243, 2,182,207,233, 22,222,216,223, 35,185,157,175,164,213, 11, 86, 55, 95, 52, 78,142, 85, 72,201,229,114, 28, 63,
+126, 28, 22,235, 85,103,123,145,165, 82,169,144,151,151,103,189,198,113, 36,157, 82,169,244,220,214,173, 91,217,178,178, 50, 40,
+149, 74, 20, 22, 22, 34, 43, 43, 11, 15, 30, 60, 64,113,113, 49,238,222,189, 11,177, 88,124,206,145,116, 18, 4, 1,134, 97,108,
+ 66,234,204,153, 51,152, 49, 99, 6,228,114,185,237, 59, 14,135, 99,251,108,253, 77,109,156, 86,203, 19,195, 48,184,122,245, 42,
+102,205,154,133,181,107,215, 98,207,158, 61, 56,118,236, 24,228,114,185, 77,108,209, 52, 93, 43,167, 76, 38,131,217,236,216,152,
+137,101, 89, 40,149, 74,135,223,187,189, 0,226,112, 56, 79,137, 34,235,225, 76, 89,170, 39,231, 11, 11, 7, 34,195, 87, 63,194,
+182,126,176,152,234, 6, 54, 84, 34, 73, 14,111,210,248,105, 31,248,101, 23,170,144, 83,160, 4, 69,254,209,239, 69, 13,157, 6,
+ 14, 69,226,218,233,114,195, 21, 73, 81, 80,106,245, 80,104,140, 24, 55,109,158,239,127,214,254,107, 18,109, 44,171, 49,198, 75,
+123,160,101, 59,137,228,205,182,109,155,144,169,130, 52, 68,189,118, 17,140, 25, 96, 19, 94, 71,231,146, 64,170,245, 47,252, 55,
+181,106,227,178,100,224, 94,141,214, 12,111,111,145, 79,199,142,136, 9, 13, 69,127,147, 9, 60,150,197,171, 5, 5,248,125,222,
+ 60,232, 15, 28, 0, 9,128, 55,118, 44, 6,173, 91,135, 11,161,161, 8,214,233,160,248,240, 67, 4,156, 58, 5,158, 84, 42, 66,
+145, 99,139, 31, 8,130,192,192,129, 3,113,246,236, 89,191, 17, 35, 70,156,190,125,251,246, 91, 52, 77, 95,168, 75,222,122,121,
+121,221,224,112, 56, 97,181,221, 71,211,116,182, 82,169,116,122,155, 17, 14,135,211,191, 71,143, 30,135, 14, 30, 60,232, 99, 52,
+ 26, 93, 50, 10,225,243,249, 35,198,140, 25,179,117,211,166, 77,210,153, 51,103,110, 61,118,236, 88,169,193, 96, 56,229, 76,145,
+ 2,176,116,203,150, 45,239, 69, 71, 71,123,207,156, 57,147,125,240,224,129,189,245, 42,160, 95,191,126,175,108,221,186, 53,184,
+ 91,183,110, 31,204,154, 53,139, 7,224,211,218,172, 60, 18,137,100,246,214,173, 91,253,101, 50, 25, 52, 26,141,173,145,205,206,
+206,134, 72, 36, 2, 73,146, 32, 73, 18, 92, 46, 23, 95,125,245,149,223,236,217,179,231,201,229,242,121, 14, 88,201, 98, 55,110,
+220, 24, 48,108,216, 48,242,241,227,199, 32, 73, 18, 66,161, 16,239,188,243, 14,169,211,233,124, 98, 98, 98,118,104,181,218,137,
+206,228, 33,151,203,157, 20, 27, 27,219,170, 79,159, 62,156,180,180, 52,244,234,213, 11,215,174, 93,195,216,177, 99,185,106,181,
+186,233,194,133, 11,103,232,245,122,103,227,184,132,136,197,226,246,191,254,250,107, 86,227,198,141,109, 13, 75,211,166, 77,153,
+ 81,163, 70,201,211,210,210, 34, 47, 93,186, 84,220,187,119,111,103, 54, 44,111, 36, 22,139, 91,159, 56,113, 34, 47, 38, 38,102,
+200,150, 45, 91,198, 0, 64,247,238,221,143,124,249,229,151,231,229,114,121,187, 11, 23, 46,200,251,247,239,159,237, 32, 95,104,
+ 72, 72, 8, 51,103,206, 28, 73, 77, 55,109,219,182, 77,129,242, 13,151,155, 1,168,113,191,182,200,136,224,197,171,230,141, 23,
+129, 49,130, 53,233, 0, 99, 41, 96,212,192,108, 40, 5,193, 19, 1, 38, 29, 2, 4,114,252, 52, 59, 82,186,104,239,195, 84,230,
+ 46, 49, 42, 77,166, 62, 5, 55,170,108,106, 0, 68, 17, 4,145,116,252,248,113,244,232,209, 3,199,143, 31,199,168, 81,163,146,
+236,197, 64,114,114, 50,250,247,239, 15,139, 69,203, 33, 95, 45,165, 82,249,241,146, 37, 75, 18, 38, 77,154, 36,174,208, 24,144,
+ 36,188,189,189, 49,114,228,200, 50,173, 86,251,177,163, 9,101, 24, 6, 28, 14, 7,217,217,217,216,182,109, 27,150, 47, 95,142,
+150, 45, 91,194,100, 50, 61, 37,182, 44,237,158, 67,141, 31, 77,211,184,126,253, 58,118,239,218,133, 79, 23, 47,134,167,167, 39,
+ 0,192,104, 52, 66, 94, 82, 2,161, 80,104, 19, 99,181, 8,167,125,247,239,223,159, 23, 22, 22, 86, 97,202,208,250,215,210,102,
+193,108, 54,131,166,105,148,149,149, 97,237,218,181, 52,203,178,251,106,235,127,172,162,104,222,188,121,208,235,255, 48,168,119,
+180,248, 36, 71, 68, 68,160, 83,167, 78,182,115,146, 36, 89, 71, 57,255,211,187, 61,116,118,119, 71, 46, 89, 13, 0, 8, 11, 11,
+ 67,100,100, 36, 66, 66, 66,170,229,108,104, 45, 82, 23, 56, 17, 25,190,122,161,245, 44,118,202,230,242,132,131,154,183,104, 69,
+100,230,201,193,225,112,224,225,229,143,222,111,204, 7, 69,145,144,120,251,131, 96,116,127, 40, 98,146, 2,135,226, 64,174,214,
+ 33,162, 89, 11, 82, 32, 20, 13,210,214, 34,180,164, 94,220,141, 11, 38,246, 22, 22,211,217, 16, 53, 17,130,177,118,167,161,124,
+144,126,106,124, 52,162,165, 40,250,200,237,141, 80,154, 6, 59,146, 94,138,166, 17, 72, 81, 48,178, 44,126,159, 55, 15, 81,177,
+177, 72,178, 10,195,216, 88, 36, 69, 71,195,151,203,133,128, 36,193,154, 76, 79,205,233, 59, 34,180, 0, 32, 43, 43, 11, 7, 14,
+ 28,240, 29, 63,126,252,161,228,228,228, 73, 78,138, 13, 43,151,255,213,171, 87, 3,155, 53,107, 86,237, 61,143, 30, 61, 66,215,
+174, 93,157,158,158,226,243,249, 35, 6, 15, 30,188,247,192,129, 3, 94, 41, 41, 41, 8, 12, 12,172,183,208, 18, 8, 4,253,135,
+ 14, 29,186,119,231,206,157,210,162,162, 34,196,198,198, 74, 95,127,253,245, 61,137,137,137,111,232,245,122, 71,196,102, 5,145,
+ 21, 27, 27,171,216,182,109,219,127, 80,113,138, 48,111,219,182,109,223,119,235,214,237,253,232,232,104,111, 0,239, 89,124, 7,
+106, 20, 91, 2,129, 96, 96,243,230,205, 43,140,106, 5,130,114, 99,147,135,135, 7,188,188,188,192,227,241,160,215,235, 17, 21,
+ 21, 69,240,249,252,190,142, 60,179,167,167,231,208, 55,223,124,147,188,120,241, 34,242,243,243,225,237,237, 13,137, 68, 2,134,
+ 97, 48,115,230, 76,106,237,218,181, 3,181, 90,231,102,184, 26, 55,110, 60,102,200,144, 33,156, 59,119,238,224,241,227,199,208,
+235,245, 72, 79, 79,135, 84, 42,197,148, 41, 83,120,171, 86,173,122, 61, 39, 39,199, 89,161,213, 62, 58, 58,186,192, 94,100, 89,
+225,225,225, 65,180,106,213, 74,238,231,231,215, 5,128, 51, 66,171,253,220,185,115, 11, 87,172, 88,209,255,236,217,179,182,160,
+151,103,207,158, 93, 8, 0,223,124,243, 77, 66, 64, 64, 64, 23, 0,142, 10, 45,176, 44,107,254,235, 95,255,154,193,231,243,193,
+229,114,193,231,243, 43, 28, 60, 30, 15, 36, 73,122, 90,171,115,109,124,169,143,243, 87,206, 92,184,122,181,135,144,226,254,227,
+141, 14,104,226,205, 3, 68,190,224,245, 95, 4,194,187,220,104,201,202, 31, 1,191, 44,194,154, 55,229,100,244,127,203,126, 54,
+ 50, 62, 1, 15, 75, 74,212,207,185, 15,232, 6,224,223, 40,223, 92,119, 49,128,171, 47, 72,223,116, 19, 64,212,168, 81,163,108,
+ 98,235,228,201,147, 24, 49, 98, 4, 20, 10, 5,238,220,185, 99, 47,178,156,217, 96,249,166,201,100,186,245,195, 15, 63,244, 30,
+ 63,126, 60, 97, 87,191,144,146,146,130,187,119,239, 38, 57,202, 71,146, 36,204,102, 51,184, 92, 46, 86,175, 94, 13,163,209,136,
+255,254,247,191,216,191,127, 63, 72,146, 4, 65, 16, 32, 8, 2, 82,169, 20,223,126,251,173, 83,237, 30,195, 48,216,177, 99, 7,
+ 22, 45, 92,104, 19, 89,150,153, 12, 4, 7, 5,193,207,223, 31, 15, 31, 62,172, 85,104,149,148,148,124,126,244,232, 81,212,228,
+ 12,127,244,232, 81,219,231, 74,206,240,181,247,115, 20, 5,189, 94,143, 87, 95,253, 99,171,216,185,115,231,218, 62,203,229,114,
+ 80, 20,101,205, 11,194, 81, 78, 29, 11,188, 33,252,227,187,145, 31,125, 84,193, 66, 87, 29,231,179,208, 34,174,178,110, 85, 33,
+182,162, 44,214,217, 16, 0,163, 80,238,163,149, 7, 60, 67, 31, 45,150, 53,183, 14,107, 20,138, 91, 15,146,193,161, 40,240,189,
+252,225,229, 27, 4, 51,109,128,178,240, 49,226, 14,126, 7, 0,216,178, 99, 31, 72,146, 4,135, 67, 65,111, 96,208,178, 73, 40,
+204,102,115,235,154,184,219, 0,189, 7, 6,249,247,104, 28,238, 77,220,241,121,140, 86,129,126,149, 38, 66, 4,104,153, 43, 33,
+122, 73, 68,221, 75,148,170,222,169,192,165, 90,197, 0, 73,130, 36, 8,136,121, 60,232, 15, 28, 40,247,218,140, 45,239,179,146,
+162,163, 65,254,252, 51, 60, 5, 2, 80, 4, 1,142,197, 4, 93, 23,168, 84, 42, 16, 4,129,221,187,119,251, 76,153, 50,101,207,
+157, 59,119,162,203,202,202, 14, 56,195,161, 80, 40, 70,245,233,211,231,252,142, 29, 59, 2,130,131,131,159,186,158,159,159,143,
+105,211,166, 21, 41, 20, 10,167,130,186, 9,133,194,177, 99,198,140,217,186,125,251,118,233,253,251,247,161,209,104, 16, 16, 16,
+ 80,223,162,208,165,103,207,158,135, 14, 28, 56,224,149,159,159, 15,165, 82, 9,189, 94,143,221,187,119,123,143, 28, 57,242, 64,
+ 90, 90,218, 8, 0,137,181,112,124,102, 47,178,102,205,154,117, 27, 64, 32,128,141,149, 53,168,229, 90, 7, 59,177,165, 4,176,
+170,134,145,104,184,135,135, 7, 10, 11, 11, 49,109,218, 52,220,187,247,135, 1, 52, 52, 52,212, 54,210,123,248,240, 33, 2, 2,
+ 2, 64, 16, 68,160, 35, 15, 29, 16, 16, 32, 49, 24, 12,152, 49, 99, 6,178,178,178, 42,112,102,103,103,131, 32, 8,177,179, 25,
+ 25, 20, 20, 20,164,211,233,208,175, 95, 63,148,149,149,239,235, 59, 97,194, 4,112,185, 92, 20, 22, 22,130,203,229,250,215,225,
+253,248,143, 26, 53,170,218,208, 42, 82,169,212,232,227,227,211,198, 73, 78,191,215, 95,127, 61, 39, 54, 54,246,169,133, 45,215,
+174, 93,251,139,175,175,239, 89, 95, 95,223, 86, 78,114,154,237, 69, 21,143,199,171, 32,180,184, 92, 46, 72,146,116,216, 71,237,
+ 94,161,118, 3,135,200,235,180, 98,206,176,105, 77, 2,189,192,106, 10,192, 27,252, 57,110, 21,137,176,122,237, 9, 0,192, 63,
+223,233,138,142, 67,151,194,176,125, 24,230,245,162,248,147,179,245, 11, 0,124,246,156,219,252,175, 1, 88, 87,193,109, 2,208,
+233, 5,234,143,108, 98,235,228,201,147,104,215,174, 29, 74, 74, 74,144,150,150, 86, 87,145,101,109,239, 22,125,241,197, 23,191,
+188,245,214, 91, 30,214, 65,171, 72, 36,194,135, 31,126,168,211,104, 52,139,156, 42, 68,102, 51, 56, 28,142,109,144, 44, 20, 10,
+ 17, 21, 21,101, 19, 89, 4, 65,160,180,180, 20, 28, 14,199,186, 34,145,112, 48,141, 8, 9, 14,134,167,167, 39, 90,180,108,137,
+251,150,118,196,250, 89, 32, 16,128, 32, 8,208,116,173,134, 60,181,197,169,125,190,171,187,100,171, 40,170,209,116, 28, 26, 10,
+179,217,108, 21,153,172, 43, 56,253,253,253,161,209,104, 28,229,124, 33, 81,141, 69,203, 42,180, 70,161,220, 87,235,169,240, 14,
+ 3, 0,196,161, 1,151, 84, 18, 96, 9, 51,203,130, 67,145,150,185, 91, 10, 20, 69, 66, 94,148,135,117,159,191,103, 17, 89,251,
+113, 60, 33, 13, 97,205,219,253, 49,143, 75, 16, 0, 91,115,225, 14,240,226,197,206,126,171,167,168,128,200,131,119,168, 24, 66,
+ 97, 37,253,232,195, 3, 17, 65, 98,206,192, 48,241,245,163,101,177,169, 74, 99,173, 29,133,144, 36,203,157,223, 9,162, 74,231,
+ 30,210,114,141, 34, 8,176, 44, 11,214,236,156,223,177, 85,200,139, 68, 34, 24,141, 70, 80, 20,133,245,235,215,123, 15, 29, 58,
+116,163,179, 66, 11, 64, 74, 65, 65,193,200,153, 51,103,158,220,183,111,159,191,191,191,127,133,209,195,204,153, 51,101, 5, 5,
+ 5, 35,225,164,211, 61,151,203,221,184,105,211, 38,233,147, 39, 79, 80, 90, 90, 10,145, 72,100,107,124,234, 90, 62,187,119,239,
+126,250,212,169, 83, 62, 74,165, 18, 70,163, 17, 34,145, 8, 44,203,130,162, 40,252,248,227,143,126,163, 71,143, 62,145,153,153,
+ 57,184,166,180,138, 68,162, 55, 44,194, 9,209,209,209,222,209,209,209, 3,128,106, 35,245,218, 16, 29, 29,237, 61,127,254,252,
+215,117, 58,221,170, 26,158, 57, 75, 46,151, 7,139, 68, 34, 28, 60,120, 16, 18,137, 4, 98,177, 24,161,161,161,144,203,229, 16,
+139,197, 96, 89, 22, 38,147,201,218, 88, 20, 59,242,224, 69, 69, 69, 26,154,166,189, 78,158, 60,137,226,226, 63,126,210,164, 73,
+ 19, 40, 20, 10,152,205,230, 82,103, 51, 51, 55, 55,183,128, 32,136,198,183,110,221,194,147, 39, 79, 48, 98,196, 8,252,252,243,
+207,232,218,181,124,118,216, 96, 48,212, 37,136, 31, 67, 81, 20, 91, 67,185, 37, 0,248,184,146,211,210,121, 57,197,105, 54,155,
+205, 86,145,101,255,215, 94,124,213,242, 63, 43, 84,231, 54, 65,146,109, 43,102, 15,153, 54,172,157, 63,116, 69,143, 33,244,244,
+ 7,225, 29,129,213,107, 79,224,206,163,242,247,181,122,207, 13,236,141, 25, 9,136,124, 17,233, 37, 67,176, 39,231,205,187,133,
+207, 93,104,121,217,143, 19, 94,212,142,105,196,136, 17,144,203,229,144, 72, 36,174,240,207,185,172,211,233,210, 15, 31, 62,220,
+101,212,168, 81,224,243,249, 72, 79, 79, 71, 98, 98, 98, 26,128,203,206, 10, 45, 46,151,139, 47,190,248, 2,239,189,247, 30,130,
+130,130,176,104,209, 34,112, 56, 28,219, 65, 16,132,205,194,229, 12, 2,131,106, 94,248,104,117,136,175,205, 24,238,229,229,245,
+ 5, 73,146,227, 41, 7, 50,142, 97, 24,198,108, 54,239, 83, 42,149, 53,134,119,176, 58,174, 59,242, 46,236,243,160,150, 62,173,
+222,156,207, 66,139,212, 5,149, 87, 27, 86, 99,209,178,174, 58,124,106, 43, 32,235, 83,198, 89, 76,118,113, 13,149, 80,130,164,
+238,102,231,228,194,207, 71, 98, 17, 89,150,131, 36,209,177, 93,249, 96,246,120, 66, 26,194,154,181, 3,135,162,192,161, 40, 72,
+ 68, 2, 20,228,231,129,195, 33,239, 86,199,219,158,194, 91,111,181,106, 28,225,227,199,133, 44,192,128,144,160,106, 12, 3, 93,
+ 60, 17, 22,194,199,112, 63, 97,120,123, 10,111,213,108,125, 99,109, 66,203, 72,211,224,141, 29,107,155, 46, 76,138,142, 70, 84,
+108, 44,152, 49, 99,160, 53, 26, 43,152,138,235, 42,180, 68, 34, 17,212,106, 53, 38, 77,154, 36, 55,153, 76,239,215, 49,139, 19,
+139,139,139,199, 77,158, 60,185,216, 42, 96,140, 70, 35, 38, 79,158, 92, 92, 92, 92, 60,206, 1, 43,209, 83, 48,153, 76,239,119,
+237,218, 85, 46,147,201,108,233,172, 75,131, 99,133,175,175,239,241,109,219,182,249,234,245,122,208, 52,109,227, 20,137, 68,160,
+ 40, 10, 1, 1, 1,216,187,119,111,128,175,175,111,141,123, 86,233,116,186,195,177,177,177, 10, 0,136,141,141, 85, 16, 4, 17,
+ 79, 16,196,102,130, 32, 54, 85, 58, 54, 19, 4, 17,111,127,175, 78,167, 59, 84, 19,183,193, 96,136, 79, 75, 75, 99,197, 98, 49,
+ 40,138,130,209,104,132, 80, 40,180,153,196, 85, 42, 21,116,186,242,105,238,196,196, 68,152, 76,166,139,142, 60,187, 90,173, 62,
+183, 99,199, 14,115,147, 38, 77,208,174, 93, 59, 68, 69, 69,161,103,207,158, 8, 15, 15,199,151, 95,126,201,104,181, 90,167,235,
+ 94,110,110,238,241,159,126,250,201,212,184,113, 99,116,233,210, 5, 2,129, 0, 29, 59,118, 68,104,104, 40,150, 47, 95,110, 80,
+ 42,149, 39,235,240,154, 50,147,147,147,169, 26, 68,174, 20, 14,172,222,173,132,172,235,215,175, 83, 61,123,246, 60, 82,249, 66,
+247,238,221,143, 72, 36, 18, 47,171,137,221,153, 17,185,189,184, 18, 8, 4,182,195,250, 61,135,195,113,100,244, 67,182, 9,146,
+108,251,234,189, 65,211,134,181,243,193,145,115, 87,193, 51, 42, 0, 67, 13, 51,130,140, 9, 4,207, 3, 65, 94,220,176, 23,160,
+ 15,152, 7,224, 54,202,227, 48, 45,194,139, 5,155,227,123,113,113, 49,210,210,210,144,152,152,136,158, 61,123,226,226,197,139,
+192, 31, 14,242, 78, 67,169, 84, 46,138,137,137,209, 90, 87,242, 45, 94,188, 88,167, 86,171, 23, 57,219, 6,179, 44, 11, 46,151,
+139,200,200, 72,204,159, 63, 31, 39, 78,156, 64,122,122, 58, 76, 38,147, 77, 8, 89,125, 50,157,177,104,241,120, 60, 4, 5, 5,
+193,100, 50,217,172, 89, 0,112,255,222, 61,112, 56, 28,152,205,102, 24, 12,134, 90, 45, 90, 94, 94, 94, 95,108,221,186,245, 3,
+153, 76, 22, 82, 84, 84, 20,104,127, 20, 20, 20, 4,230,229,229, 5,230,228,228, 4,102,101,101, 5,102,100,100, 4, 62,126,252,
+ 56,100,229,202,149, 31,120,121,121,125,225, 72, 58, 41,138, 66,199,142, 29, 49,119,238, 92,219,177, 97,195, 6,219, 17, 23, 23,
+231,180,243, 58, 69, 81,136, 92,178, 26, 35,139, 88,219,113, 34,128,176, 29,119,254, 57,171, 38,206, 6,215, 34,117,210, 47,150,
+213,134,246, 27, 75, 87, 1,235,170, 67,107, 91,102,115,219,168,236, 12,223, 96,160, 13,101,231, 31, 61,184, 55, 40,178,125, 55,
+ 50, 95,166,169,176,252, 51,106,224, 56, 16, 4,129, 70,205,218,129,226,112, 64, 81, 36, 56, 20, 5,111,169, 16,105,183,110,153,
+245, 58,221,249,170, 56, 7, 0, 28,190,136,191,225,157,225, 29,133,185,252, 66, 4,132,120,128,199, 45,215,142,236,163,113,149,
+122, 8, 14,208,222, 19,211,115,252, 68,231, 11,202, 54,248,104,141, 71,226,171, 25, 1,154,205,102, 72, 4, 2,148,233,245,208,
+209, 52, 6,174, 91,103,155, 46, 36, 9, 2, 55, 1,116, 88,183, 14,151, 14, 28,128,148,207, 7, 4, 2,135, 87,133, 84, 37,180,
+100, 50, 25,166, 78,157, 90,156,151,151, 55,165, 46, 62, 90, 86,232,245,250, 11,249,249,249, 83,198,141, 27,183,251,224,193,131,
+190,227,198,141,147,231,231,231, 79,113,208,239,233, 41,148,149,149, 29,200,202,202, 42,157, 58,117,234,174, 61,123,246,248,249,
+251,251,219, 70, 34,117, 42,172, 4, 33, 27, 50,100,136,192,145,251,106,185, 37,198,226,220,254,158,197,178,213, 97,214,172, 89,
+151, 80,238,127,101,143, 37, 91,182,108,153, 96, 55,197,184, 25,192,186,154,136, 85, 42,213,166,249,243,231,255,237,194,133, 11,
+254, 66,161, 16, 4, 65,128,199,227,161, 69,139, 22,182, 85, 52, 92, 46, 23, 44,203,226,163,143, 62,146, 21, 22, 22,126,227,224,
+187,153, 21, 19, 19,211,191,172,172,204,103,234,212,169,148, 80, 40, 68, 65, 65, 1,214,174, 93,203,108,223,190, 93,161,213,106,
+167,213, 65, 8,239,248,215,191,254, 53, 80,163,209, 52,155, 57,115, 38, 79,169, 84, 66,167,211, 97,193,130, 5,134,239,191,255,
+ 62, 91,167,211, 57, 29,240,183, 87,175, 94, 15, 50, 50, 50,250,150,150,150,150,136,197,226,202,214, 62,194,195,195,163, 27,128,
+ 93,206,112, 70, 69, 69, 61,204,204,204,236,185,116,233,210,120,147,201,196,189,118,237,154,205, 25,126,253,250,245,113, 66,161,
+112, 8,156,220,124,149, 32, 8,179, 64, 32,168, 96,193,170,252,153,195,225,212,218,166,181, 14, 22, 47,253,234,221,254,211, 94,
+109,227,133,195,231,110, 32,230,208,163,187, 45,167, 5, 68,190,226, 83, 4,115, 81, 26,254,249, 78, 87,172,222,115, 3, 64,249,
+212,161,185,240, 14,216,146,135, 96, 61, 27,227,246, 78,196,155, 0, 0, 10,184, 73, 68, 65, 84,177, 92,150,251, 2,244, 1,113,
+ 40, 15,153,241,162,161,130,200,186,115,231, 14, 6, 13, 26, 4, 0,184,120,241, 34,250,244,233,131,139, 23, 47,162,111,223,190,
+ 78,199,210,178,224, 87,149, 74,149, 17, 23, 23,215,182,113,227,198,184,124,249,242, 99, 0,191, 58,155, 72,171,208,226,112, 56,
+120,251,237,183, 49,116,232, 80, 52,105,210,164,194,106, 67,235,103,103,196, 6, 77,211,104,223,190, 61,244, 6, 3,120, 60,158,
+109,106,146,195,225, 32, 32, 48, 16, 15, 30, 60,112,200,162, 69,146,228,248, 55,222,120,131, 76, 73, 73,193,196,137, 19,177,123,
+247,238,106,239,157, 60,121, 50,126,248,225, 7,188,241,198, 27,228, 39,159,124, 82, 99,120, 7,171, 19,186, 35,207,100,237,167,
+107,107,247, 93,197,217,208, 90,164, 62,176, 11,237, 80,229,164, 73, 21,223,197, 86, 16, 90,118, 65,194, 26, 70,104,209,198,221,
+ 63,255,247,187,249, 61, 55,246, 13, 8, 9,244,130, 92,169,179,137,173,164,184,253, 0,128,183,102, 45, 3,135, 42,159, 82,148,
+ 74,132, 16,241, 40, 28,216,249,141,204,104, 44,171,178,116,169,185,228,123,159,244,110,225,197,247, 48, 65, 21,204,162, 93,192,
+ 31, 59,229, 16,205,246, 63, 45,184, 58,251,192,255, 78, 9,222,121, 69, 34,253, 38, 69,241, 30, 76,230, 13, 79,117,136, 10,133,
+ 78,113,235,150,104,196,214,173,184, 54,101, 10, 26, 49, 12,226, 67, 67,225,203,229,194, 75, 32, 0, 73, 16,208, 29, 59,134, 75,
+ 7, 15, 34, 72, 32, 0, 60, 61, 65,127,249, 37,244,105,105, 48,169,213,186, 58,140,204, 48, 97,194, 4,153, 76, 38, 27,103, 48,
+ 24, 46,212, 55,159,117, 58,221,169,172,172,172,247,122,245,234,181,209,100, 50,189,175,211,233,234,181, 50,202, 96, 48,156,202,
+207,207, 31, 59, 97,194,132,253,135, 14, 29,242,247,246,246,174, 51, 87,113,113,113, 87, 23, 21, 39, 51,128, 79, 45,206,237,239,
+ 69, 71, 71,123, 95,191,126,253,111,219,182,109,219,104, 55,154, 8,156, 49, 99,198,187,149, 68, 86,173,171, 14, 1,100, 22, 22,
+ 22,126,249,225,135, 31, 46, 91,179,102,141,196,234,248,254,251,239,191,131,166,105,112,185, 92, 48, 12,131, 25, 51,102,104,138,
+139,139, 87,163,250,136,206, 79, 21, 45,149, 74,213, 98,233,210,165,219,214,173, 91, 55,148,162, 40, 15,134, 97,180,165,165,165,
+241,101,101,101,211, 80,183, 56, 90,230,162,162,162,169,159,125,246,217,212,181,107,215,190, 65,146,100, 32, 77,211, 50,181, 90,
+125, 84,167,211,125,143, 58, 76, 37, 93,190,124,185,232,157,119,222,121, 84, 84, 84,212, 58, 44, 44, 76, 41,145, 72, 12, 6,131,
+129, 18,137, 68, 82, 15, 15,143, 40, 0,151, 9,130, 72,117,134, 51, 41, 41, 41,127,230,204,153, 79,244,122,125,228,230,205,155,
+ 19,164, 82,233, 57,130, 32, 8, 30,143,231, 35, 18,137, 6, 1,136, 39, 8,226,190, 51,156, 36, 73,154,237,173, 87,149,253,179,
+248,124,190, 67, 62, 90,205, 2,196,211,135,182,224,224,240,249, 27,136, 57,156,185,131, 97,217,131, 7,147, 74,142, 45,234, 3,
+ 24,247,189,131,142,227,118,149, 79, 23, 2, 48, 23,222,129,113,223,100, 16, 98,127, 36,228,112,161,212, 25,143,195,141,170, 96,
+ 11,239, 32,147,201,144,146,146, 98, 21, 89, 81, 0,208,183,111,223, 36,171,216, 74, 76, 76, 68,151, 46, 93,146, 0,112,157, 45,
+175, 42,149,234,195, 73,147, 38,157,178, 12,142, 63,172,195,192,207, 38,180,172,130,170, 73,147, 38,182,115,251,195,206, 71,203,
+ 33, 48, 12, 3, 30,143, 7, 14,135,131,144,208, 80,219,255, 98, 89, 22, 15, 30, 60,128, 92, 46,119, 72,104, 81, 20, 69, 17, 4,
+129,137, 19, 29, 91,144,252,215,191,254, 21,241,241,241,160, 28, 84,133, 20, 69, 33, 34, 34,162,214,123,172,186,212, 81,206,176,
+176,176, 58,115, 54,180, 22,169,171,192,170,234,115, 85,162,170,186, 10,241,172,144,171,209, 40, 63,221,185,117,253,154, 25,179,
+ 63,146,220,121, 88, 0,165, 70, 15,138, 34,237, 27, 79,112, 56, 20,164, 30, 66, 52, 14,246,194,158,255,252, 91,173, 86, 41, 62,
+ 67, 53,251, 30, 54,241,228,205, 26,210,237, 21, 1, 47, 68,139,200, 14, 19, 64, 9,255, 16, 1,108,126, 53,179,131,125,126,193,
+107,153, 90,225,207,153,218, 89, 55, 75, 12, 79, 11, 45,131, 97,216,226,225,195, 79,199,156, 56, 33,238,190, 99, 7, 30,206,152,
+129, 80,157, 14, 2,203, 84, 34, 73, 16,144,240,120,144,240,120,229, 34,107,237, 90,232,104, 26,235,166, 76, 41,213, 27, 12,195,
+157,169,228,197,197,197, 24, 51,102, 76, 81,110,110,238, 72,212, 97,106,175, 58,104,181,218, 3, 0, 14,184,138, 79,175,215, 95,
+200,206,206,126,109,204,152, 49, 39, 78,157, 58, 21,240,130, 4,153,179,138, 45,227,245,235,215,223, 77, 72, 72,120,136,138, 27,
+139, 42, 18, 18, 18, 30,206,156, 57,147,216,182,109,219,247, 0,254, 5, 7, 3,120,106,181,218,245,103,206,156, 65,255,254,253,
+255,181, 98,197, 10,191,174, 93,187, 34, 48, 48, 16,106,181, 26,137,137,137,152, 55,111,158, 92,165, 82,173, 80, 40, 20,107,156,
+ 76,179, 81,175,215, 79,182, 95, 74,237,138,124,208,235,245,219,243,242,242,182,187,138,112,206,156, 57,191, 63,120,240,160, 56,
+ 32, 32,160, 7,143,199,235,128,114, 63,160,124, 0,223, 59, 43,136,172,152, 61,123,246,173, 7, 15, 30,200, 26, 53,106,212,211,
+194,233,141,242,109,140,182,214,129, 51,247,198,141, 27, 97,221,186,117, 35,185, 92, 46, 75, 81, 20,184, 92, 46,203,225,112, 88,
+139, 95, 13, 11, 0, 71,143, 30, 21, 0,168,113,219,156,135,133,186,165,147,255,253,219, 39,169,249,101, 7,211, 10, 74,231, 3,
+ 96,247,221, 17,255,210, 49,128, 26, 54,172, 85, 54,244,177,125, 65, 72,203, 3, 85,178,154, 60, 16, 30, 65,200, 54, 55,194,146,
+ 35,119,243,105, 16,171,220,154,170,234,113, 53, 44,225, 29,242,242,242,236, 69,150,213,106, 21,213,183,111,223, 36,139,200,178,
+ 94,171,139,127,217, 89,179,217, 92,175, 62,140,101, 89,196,196,196, 96,203,150, 45,168, 45,162,185,101,117, 31, 81, 27,159,213,
+162,197, 48, 12,140, 70, 35,238,220,185, 99,139,217,101,157, 46,180,134,118,160,105,186,198,213,234, 12,195, 48, 6,131, 1, 63,
+254,248,163, 67, 98,107,239,222,189, 40, 43, 43, 3, 83,139,130,179, 15,197,208,169, 83, 39,200,229,114,219, 98,159,168,168, 63,
+ 66,229, 25,141, 70,167,132,171,149, 51, 50, 50, 18, 50,153, 12, 86,127,225,198, 83,254, 48,246,208, 90,237,159,181,220, 87,107,
+209,122,230, 61,166, 64, 44, 61,213,181,247,208, 62, 83,222,157,231,161,209, 51,120,242, 36, 3, 69,133,121, 32, 9, 18, 33,141,
+194, 16, 30, 30, 1, 17,159,196,238,216, 53,218,164, 75,231,126,211,168, 75, 70, 84,199, 53,202,139,119,105,237,216, 62, 61,155,
+ 55,247, 36, 64,155, 0,198, 4,208, 38,192,108,249,107,253,206, 92,177,204,165,164, 40,216, 79,110,202,175, 28, 87, 26,171,220,
+179,106, 28,208,199,219,215,247,244,146,163, 71,197,102,163, 17,197, 31,126, 8, 49, 77, 67,104, 25,149,148, 63,136, 0,244,151,
+ 95,150,139,172,201,147, 75,149, 10,133, 83, 91,240,248,251,251,223, 32, 8,194,191,168,168,232,165,138, 12, 31, 16, 16,112,156,
+101, 89,153, 76, 38,235,250, 2,165, 43, 16,128, 2,128,177,138,129, 68, 0,156,247,255,177, 34, 34, 32, 32,224, 19,146, 36,123,
+177, 44,235, 71,146,100,137,217,108,190, 92, 88, 88,184, 18,192, 3,119,127,250,220, 96,141, 12,223,180,150,251, 10, 1,252, 3,
+229, 78,193, 79, 28, 37,239,232,229,229,165,231,155, 14,253,165,157, 96,224,248, 40, 47, 52, 11,246, 4,151, 39, 68,174,138,198,
+217, 84, 21,182,198,229,103,233, 76,204,232,123, 69,165,201,238, 87, 81, 35, 92,190, 5,143, 43,225,235,235,123,245,244,233,211,
+ 93,155, 53,107, 70,218, 59,188, 91, 99,229, 89,167,183, 56,156,114, 45,119,225,194, 5,122,226,196,137,151, 11, 10, 10,250, 87,
+199,233,233,233,249,203,237,219,183, 95, 85, 42,149, 79, 9, 42,251, 72,241,214,115,173, 86,139,217,179,103,159,169,110, 11, 30,
+ 47, 47,175,181,107,214,172,249,224,173,183,222, 34,173,225, 40,236, 15,235,118, 65,214,195,104, 52, 98,215,174, 93,230,111,190,
+249,230, 91,165, 82, 89,237,212, 97, 72, 72, 72, 86,110,110,110,152, 53,212,130, 35, 65, 69, 35, 34, 34,242, 50, 50, 50, 66,159,
+ 37,231, 75, 44,184, 42, 88,183,158,139,105,130, 43, 18,205,241,148,248,124,254,214,164,185,126, 17,205, 91, 18, 65, 33,141, 64,
+128, 68, 65,126, 14, 50, 30,221, 99, 15,253,247,187, 98,173, 74,254,133, 78,167,253,174, 38,158, 54, 64,243,166, 82,222, 62, 62,
+131, 86,176, 10,160, 74,251, 83, 61, 53,226, 0, 96,228,146,119,159,168, 77, 19, 82,107,152,246,177,138,173, 79, 15, 29, 18,243,
+ 91,181,122, 42, 80,156,217,108,134, 62, 45, 13,235,166, 76,113, 90,100,185,225,134, 27, 46, 65, 51,212, 30, 35,203,132,242,248,
+ 92,206, 90, 76,136,200, 64,143, 9, 44, 48,158,132,185, 61, 73, 16,124,154, 69, 58, 88,252, 34,230,148,110, 76,202,131,206,157,
+253, 14,225,133,221, 84, 26,128,135,175,175,239, 57,138,162,194,173, 22, 25,123,107,125, 21, 27, 74, 63, 41, 40, 40, 24, 2,160,
+166, 21,194,205, 61, 61, 61,191, 99, 24,166,187, 35,155, 74, 83, 20,117, 77,173, 86,207, 65, 13,155, 74, 55,196,170, 67, 63, 63,
+191, 7, 25, 25, 25,205,173,171,168,237,251,202,170, 86,150,223,191,127, 31, 3, 6, 12,200,200,207,207,143,120,150,156, 47, 42,
+170, 89,117,248,226, 88,180,236, 16,202, 19, 72,166,242, 69,194,193,102, 19, 29, 9, 2,224,112,185,119, 13,101,186,243,122,157,
+102, 39,170,153, 46,124,150, 24, 7,244, 17,240,249,191,240,164, 82, 81, 85,162,205,164, 86,235,244, 6,195, 48,183,200,114,195,
+ 13, 55,220,112,227, 37, 66, 43, 95, 95,223,211, 92, 46, 87, 96, 47, 38, 43,127,182,130,166,233,178,162,162,162, 17, 0,210,159,
+ 49,231,255, 38,156,116, 82, 27,234, 40,167,229, 24,240,162,115, 54,224,179,179, 46,228, 28, 96,225, 92,242,146,164,115,192,139,
+202,105,125, 94, 39,120,135, 58, 83,142, 92,149,159,118,233,100, 93,157,206,134,226,116, 85, 61,170, 34,157,108, 3,188,247, 37,
+ 47, 73, 58, 7,188,104,156,149,203,143,131,188, 78,113, 58, 88,166,156, 77, 39,235,234,116, 54, 20,103,125,235, 81, 13,233,100,
+235, 91,150,170,121,247, 75,240, 18, 34,165, 51,216,148,206, 96,239,116,169, 50,110, 99,116,117,191,115,202,145,176,161, 86, 2,
+ 88,195,238, 91,248,137, 23,149,211, 62, 31, 92,185, 85, 64, 3,108, 59, 16,231,106,206, 74,249,233, 42, 44,177,172, 48,137,135,
+ 3, 1, 71,157,121,118, 87,188,247, 74,207,234, 18,222, 58,136, 44,167, 56, 93, 85,238, 27,154,211, 85,117,169, 50,167, 43,202,
+125, 85,239,189, 1,223,145,171,210,233,146,186,212, 16,101,190,138,242, 83,111,222,202,156,174,168, 75,149, 57, 93, 81,238,159,
+ 5,167, 43,234, 82, 85,156,174, 40,247,213,189,251,151,213,208,100,157, 46,180,132,120, 32, 28, 16, 91,177, 0, 64,214, 37,211,
+ 26,208, 82, 54,208,213,156,174, 78,115, 67,136, 77, 39, 44, 48,207,157,211,197,239,104,137,133,211,149,163,155,129,174,122, 71,
+ 13, 81,222,237, 57, 93,197, 95,153,199, 21,239,169, 42,206,250,166,183,154,116,186,252,217,235, 91,238,159, 21,167,139,223,145,
+ 75,234, 82, 37,206,129, 46, 30, 12, 12,180, 59, 95,226, 74, 78, 87,213,165, 42,210, 89,239,247, 84, 21,103,125,211, 91, 77, 58,
+ 93,254,236,174,232, 67, 26,138,247,121, 90,180, 88,178,218, 50, 17, 91,233,120, 38, 66,227,185, 77,201, 57,201,253,167,226,116,
+114,122,102,104, 3,188,251,231,154, 78, 87,114, 86, 78,163, 43,167,123, 26, 50,157,174,228,116, 34,173,127, 58,206,151,237,189,
+191,136,249, 89, 29, 95,125,166,165,170,179,142, 54, 68, 58, 93,201,233, 32,247,159,130,179, 30,239,254, 79, 7,206,139,146, 16,
+107,198,187,120,100, 2, 23, 91, 96, 26,236,185, 93,156,206,129, 13, 97, 33,108, 0,184, 60,157,150,145,242,231, 13,240,236, 47,
+ 75,158,186,235,146,187, 46,189,112,117,169, 82,153, 28,232, 66, 75,145, 75, 45,207,149, 57, 93,241, 63,236, 57, 92, 85, 70, 27,
+250,217, 93, 89,151, 26,226,221,191,108,248,127,192,195,143, 90, 43, 71,167,194, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
0};
diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c
index cad150abc5e..2a1d3a602d8 100644
--- a/source/blender/editors/datafiles/startup.blend.c
+++ b/source/blender/editors/datafiles/startup.blend.c
@@ -1,26 +1,14 @@
/* DataToC output of file <startup_blend> */
-int datatoc_startup_blend_size = 374884;
+int datatoc_startup_blend_size = 375392;
char datatoc_startup_blend[] = {
- 66, 76, 69, 78,
- 68, 69, 82, 45,118, 50, 54, 51, 82, 69, 78, 68, 72, 0, 0, 0, 16,174, 63,189,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 48, 4, 0, 0, 96,170, 63,189,255,127, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 32, 32, 32, 53, 5, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, 8,234, 27, 7, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0,
- 0, 16, 0, 0,128, 32, 4, 0,240,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 54, 51, 82, 69, 78, 68, 72, 0, 0, 0, 0,201,255,255,255,127, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 48, 4, 0, 0, 16,197,255,255,255,127, 0, 0,217, 0, 0, 0,
+ 1, 0, 0, 0, 32, 32, 32, 54, 6, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,104, 63,166, 5, 0, 0, 0, 0,120,184,168, 5,
+ 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40,1152 +28,1161 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 88, 1, 0, 0,168, 22, 27, 7, 0, 0, 0, 0,
-148, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 24, 27, 7, 0, 0, 0, 0, 72, 24, 27, 7, 0, 0, 0, 0, 72, 24, 27, 7, 0, 0, 0, 0, 72, 24, 27, 7, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0,136,203, 87, 8, 0, 0, 0, 0,184,212, 84, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 99,154, 8, 0, 0, 0, 0,168, 35,250, 6, 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,193, 18, 7, 0, 0, 0, 0,216, 86, 19, 7, 0, 0, 0, 0, 40,193, 18, 7, 0, 0, 0, 0,232, 85, 19, 7, 0, 0, 0, 0,
-216, 86, 19, 7, 0, 0, 0, 0,200, 87, 19, 7, 0, 0, 0, 0,200, 87, 19, 7, 0, 0, 0, 0,200, 87, 19, 7, 0, 0, 0, 0,
- 68, 65, 84, 65, 0, 1, 0, 0, 72, 24, 27, 7, 0, 0, 0, 0,149, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,208,125, 19, 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 34, 0, 78, 5,164, 2, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 0, 0, 1, 0, 0, 0,
- 8,244,105, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
-104, 91,106, 7, 0, 0, 0, 0,152,172,157, 8, 0, 0, 0, 0,152,172,157, 8, 0, 0, 0, 0,200, 57,106, 7, 0, 0, 0, 0,
- 88, 55,106, 7, 0, 0, 0, 0,248, 56,106, 7, 0, 0, 0, 0,248, 56,106, 7, 0, 0, 0, 0,200, 52,106, 7, 0, 0, 0, 0,
-232,106,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,125, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200,224, 26, 7, 0, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0,232, 33, 27, 7, 0, 0, 0, 0,
- 40, 46, 27, 7, 0, 0, 0, 0,152, 46, 27, 7, 0, 0, 0, 0,184,115, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-200,224, 26, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,225, 26, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,225, 26, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,232, 26, 27, 7, 0, 0, 0, 0,200,224, 26, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 26, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 88, 27, 27, 7, 0, 0, 0, 0, 56,225, 26, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 88, 27, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0,
-232, 26, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-200, 27, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0, 88, 27, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 24, 29, 27, 7, 0, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0,
-168, 28, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-136, 29, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-216, 30, 27, 7, 0, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0,
-104, 30, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 72, 31, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-192, 1,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-152, 32, 27, 7, 0, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,152, 32, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0,
- 40, 32, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 8, 33, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0,152, 32, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 33, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 88, 34, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,225, 26, 7, 0, 0, 0, 0,232, 26, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 34, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-200, 34, 27, 7, 0, 0, 0, 0,232, 33, 27, 7, 0, 0, 0, 0, 56,225, 26, 7, 0, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 34, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 56, 35, 27, 7, 0, 0, 0, 0, 88, 34, 27, 7, 0, 0, 0, 0,232, 26, 27, 7, 0, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 35, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-168, 35, 27, 7, 0, 0, 0, 0,200, 34, 27, 7, 0, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 35, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 24, 36, 27, 7, 0, 0, 0, 0, 56, 35, 27, 7, 0, 0, 0, 0,200,224, 26, 7, 0, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 36, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-136, 36, 27, 7, 0, 0, 0, 0,168, 35, 27, 7, 0, 0, 0, 0, 88, 27, 27, 7, 0, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 36, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-248, 36, 27, 7, 0, 0, 0, 0, 24, 36, 27, 7, 0, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 36, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-104, 37, 27, 7, 0, 0, 0, 0,136, 36, 27, 7, 0, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 37, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-216, 37, 27, 7, 0, 0, 0, 0,248, 36, 27, 7, 0, 0, 0, 0, 88, 27, 27, 7, 0, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 37, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 72, 38, 27, 7, 0, 0, 0, 0,104, 37, 27, 7, 0, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 38, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-184, 38, 27, 7, 0, 0, 0, 0,216, 37, 27, 7, 0, 0, 0, 0,200,224, 26, 7, 0, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 38, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 40, 39, 27, 7, 0, 0, 0, 0, 72, 38, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 39, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-152, 39, 27, 7, 0, 0, 0, 0,184, 38, 27, 7, 0, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 39, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 8, 40, 27, 7, 0, 0, 0, 0, 40, 39, 27, 7, 0, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 40, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-120, 40, 27, 7, 0, 0, 0, 0,152, 39, 27, 7, 0, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 40, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-232, 40, 27, 7, 0, 0, 0, 0, 8, 40, 27, 7, 0, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 40, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 88, 41, 27, 7, 0, 0, 0, 0,120, 40, 27, 7, 0, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 41, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-200, 41, 27, 7, 0, 0, 0, 0,232, 40, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 41, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 56, 42, 27, 7, 0, 0, 0, 0, 88, 41, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 42, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-168, 42, 27, 7, 0, 0, 0, 0,200, 41, 27, 7, 0, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 42, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 24, 43, 27, 7, 0, 0, 0, 0, 56, 42, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0,152, 32, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 43, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-136, 43, 27, 7, 0, 0, 0, 0,168, 42, 27, 7, 0, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0,152, 32, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 43, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-248, 43, 27, 7, 0, 0, 0, 0, 24, 43, 27, 7, 0, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 43, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-104, 44, 27, 7, 0, 0, 0, 0,136, 43, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 44, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-216, 44, 27, 7, 0, 0, 0, 0,248, 43, 27, 7, 0, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 44, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 72, 45, 27, 7, 0, 0, 0, 0,104, 44, 27, 7, 0, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 45, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-184, 45, 27, 7, 0, 0, 0, 0,216, 44, 27, 7, 0, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 45, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 40, 46, 27, 7, 0, 0, 0, 0, 72, 45, 27, 7, 0, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 46, 27, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,184, 45, 27, 7, 0, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,152, 32, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152, 46, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-104, 50, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 27, 27, 7, 0, 0, 0, 0, 56,225, 26, 7, 0, 0, 0, 0,
-232, 26, 27, 7, 0, 0, 0, 0, 56, 28, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,
-196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248,124, 27, 7, 0, 0, 0, 0,248,124, 27, 7, 0, 0, 0, 0,136, 47, 27, 7, 0, 0, 0, 0,248, 48, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,136, 47, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,248, 48, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65,
- 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4,
- 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,
-196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,248, 48, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 47, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69,
- 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7,
- 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,104, 50, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248, 74, 27, 7, 0, 0, 0, 0,
-152, 46, 27, 7, 0, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0,
- 88, 27, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,
- 4, 4,216, 0, 60, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 73, 27, 7, 0, 0, 0, 0,
-184, 73, 27, 7, 0, 0, 0, 0, 88, 51, 27, 7, 0, 0, 0, 0,200, 52, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 88, 51, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200, 52, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 34, 1, 0, 0, 59, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-200, 52, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 51, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 88, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 71, 67, 1, 0,145,195, 0, 0, 0, 0,
-199, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,216, 0, 34, 1,199, 0, 34, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 54, 27, 7, 0, 0, 0, 0, 24, 72, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56, 54, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 55, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,
-120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,
-120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,199, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 88, 1, 0, 0, 40, 39,147, 5,
+ 0, 0, 0, 0,154, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 40,147, 5, 0, 0, 0, 0,200, 40,147, 5,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
+ 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,216,151, 87, 4, 0, 0, 0, 0,184,153, 87, 4, 0, 0, 0, 0,216,151, 87, 4, 0, 0, 0, 0,200,152, 87, 4,
+ 0, 0, 0, 0,184,153, 87, 4, 0, 0, 0, 0,216,227,132, 5, 0, 0, 0, 0,216,227,132, 5, 0, 0, 0, 0,216,227,132, 5,
+ 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,200, 40,147, 5, 0, 0, 0, 0,155, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,155, 87, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104, 63,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 32, 4, 0, 0, 0, 0, 0, 0,238, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0,120,111,103, 4, 0, 0, 0, 0,104,117,132, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0,216, 88,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,125,123, 5,
+ 0, 0, 0, 0,200,123,123, 5, 0, 0, 0, 0,152,124,123, 5, 0, 0, 0, 0,152,124,123, 5, 0, 0, 0, 0,104,117,132, 5,
+ 0, 0, 0, 0, 40, 68,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,
+ 8, 1, 0, 0, 24, 42,147, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0,
+ 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,137, 95, 4, 0, 0, 0, 0,216, 43,147, 5, 0, 0, 0, 0, 72, 44,147, 5,
+ 0, 0, 0, 0,136, 56,147, 5, 0, 0, 0, 0,248, 56,147, 5, 0, 0, 0, 0,184,125,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,104,137, 95, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 44,140, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 44,140, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 48,137, 5, 0, 0, 0, 0,104,137, 95, 4, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 48,137, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,136,135,137, 5, 0, 0, 0, 0,104, 44,140, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,135,137, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,152,137, 5,
+ 0, 0, 0, 0, 24, 48,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,168,152,137, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0,136,135,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 56,135, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0,168,152,137, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 40, 76,135, 5, 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 76,135, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 88,135, 5,
+ 0, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,184, 88,135, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,104,133, 5, 0, 0, 0, 0, 40, 76,135, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,104,133, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,225,140, 5, 0, 0, 0, 0,184, 88,135, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,225,140, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,152, 68,137, 5, 0, 0, 0, 0,248,104,133, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 68,137, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,164,137, 5,
+ 0, 0, 0, 0, 72,225,140, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,248,164,137, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,144,139, 5, 0, 0, 0, 0,152, 68,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,144,139, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,213,132, 5, 0, 0, 0, 0,248,164,137, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,192, 1,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,213,132, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,168,134,139, 5, 0, 0, 0, 0,216,144,139, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,134,139, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 43,147, 5,
+ 0, 0, 0, 0,152,213,132, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,104, 43,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 43,147, 5, 0, 0, 0, 0,168,134,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 43,147, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 43,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 44,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,184, 44,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 48,137, 5, 0, 0, 0, 0,104, 44,140, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 44,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 40, 45,147, 5, 0, 0, 0, 0, 72, 44,147, 5, 0, 0, 0, 0,168,152,137, 5, 0, 0, 0, 0,104, 44,140, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 45,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,152, 45,147, 5, 0, 0, 0, 0,184, 44,147, 5, 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0, 24, 48,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 45,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 8, 46,147, 5, 0, 0, 0, 0, 40, 45,147, 5, 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0,168,152,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 46,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,120, 46,147, 5, 0, 0, 0, 0,152, 45,147, 5, 0, 0, 0, 0,104,137, 95, 4, 0, 0, 0, 0, 8, 61,135, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 46,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,232, 46,147, 5, 0, 0, 0, 0, 8, 46,147, 5, 0, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0,136,135,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 46,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 88, 47,147, 5, 0, 0, 0, 0,120, 46,147, 5, 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0, 40, 76,135, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 47,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,200, 47,147, 5, 0, 0, 0, 0,232, 46,147, 5, 0, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0,184, 88,135, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 47,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 56, 48,147, 5, 0, 0, 0, 0, 88, 47,147, 5, 0, 0, 0, 0,248,104,133, 5, 0, 0, 0, 0,136,135,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 48,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,168, 48,147, 5, 0, 0, 0, 0,200, 47,147, 5, 0, 0, 0, 0,248,104,133, 5, 0, 0, 0, 0,184, 88,135, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 48,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 24, 49,147, 5, 0, 0, 0, 0, 56, 48,147, 5, 0, 0, 0, 0,104,137, 95, 4, 0, 0, 0, 0, 72,225,140, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 49,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,136, 49,147, 5, 0, 0, 0, 0,168, 48,147, 5, 0, 0, 0, 0, 40, 76,135, 5, 0, 0, 0, 0,152, 68,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 49,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,248, 49,147, 5, 0, 0, 0, 0, 24, 49,147, 5, 0, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0,152, 68,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 49,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,104, 50,147, 5, 0, 0, 0, 0,136, 49,147, 5, 0, 0, 0, 0,152, 68,137, 5, 0, 0, 0, 0, 72,225,140, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 50,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,216, 50,147, 5, 0, 0, 0, 0,248, 49,147, 5, 0, 0, 0, 0,248,164,137, 5, 0, 0, 0, 0, 72,225,140, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 50,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 72, 51,147, 5, 0, 0, 0, 0,104, 50,147, 5, 0, 0, 0, 0,152, 68,137, 5, 0, 0, 0, 0,248,164,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 51,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,184, 51,147, 5, 0, 0, 0, 0,216, 50,147, 5, 0, 0, 0, 0,168,152,137, 5, 0, 0, 0, 0,216,144,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 51,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 40, 52,147, 5, 0, 0, 0, 0, 72, 51,147, 5, 0, 0, 0, 0, 40, 76,135, 5, 0, 0, 0, 0,216,144,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 52,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,152, 52,147, 5, 0, 0, 0, 0,184, 51,147, 5, 0, 0, 0, 0,248,164,137, 5, 0, 0, 0, 0,216,144,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 52,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 8, 53,147, 5, 0, 0, 0, 0, 40, 52,147, 5, 0, 0, 0, 0,152,213,132, 5, 0, 0, 0, 0, 72,225,140, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 53,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,120, 53,147, 5, 0, 0, 0, 0,152, 52,147, 5, 0, 0, 0, 0,248,164,137, 5, 0, 0, 0, 0,168,134,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 53,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,232, 53,147, 5, 0, 0, 0, 0, 8, 53,147, 5, 0, 0, 0, 0,152,213,132, 5, 0, 0, 0, 0,168,134,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 53,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 88, 54,147, 5, 0, 0, 0, 0,120, 53,147, 5, 0, 0, 0, 0,184, 88,135, 5, 0, 0, 0, 0,104, 43,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 54,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,200, 54,147, 5, 0, 0, 0, 0,232, 53,147, 5, 0, 0, 0, 0, 40, 76,135, 5, 0, 0, 0, 0,104, 43,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 54,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 56, 55,147, 5, 0, 0, 0, 0, 88, 54,147, 5, 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0,216, 43,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 55,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,168, 55,147, 5, 0, 0, 0, 0,200, 54,147, 5, 0, 0, 0, 0,248,104,133, 5, 0, 0, 0, 0,216, 43,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 55,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 24, 56,147, 5, 0, 0, 0, 0, 56, 55,147, 5, 0, 0, 0, 0,104, 43,147, 5, 0, 0, 0, 0,216, 43,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 56,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0,136, 56,147, 5, 0, 0, 0, 0,168, 55,147, 5, 0, 0, 0, 0,152,213,132, 5, 0, 0, 0, 0,168,152,137, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 56,147, 5, 0, 0, 0, 0,213, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 56,147, 5, 0, 0, 0, 0,168,134,139, 5, 0, 0, 0, 0,216,144,139, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 56,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0,200, 60,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,152,137, 5, 0, 0, 0, 0,104, 44,140, 5,
+ 0, 0, 0, 0, 24, 48,137, 5, 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 88, 33,140, 5, 0, 0, 0, 0, 88, 33,140, 5, 0, 0, 0, 0,232, 57,147, 5, 0, 0, 0, 0, 88, 59,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 57,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 88, 59,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68,
+ 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 55, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-120, 57, 27, 7, 0, 0, 0, 0, 56, 54, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 59,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,232, 57,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,
+255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4,
+ 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,135,255,199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200, 60,147, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 85,147, 5,
+ 0, 0, 0, 0,248, 56,147, 5, 0, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0,184, 88,135, 5, 0, 0, 0, 0,248,104,133, 5,
+ 0, 0, 0, 0,136,135,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0,
+ 59, 1, 0, 0, 4, 4,216, 0, 60, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 84,147, 5,
+ 0, 0, 0, 0, 24, 84,147, 5, 0, 0, 0, 0,184, 61,147, 5, 0, 0, 0, 0, 40, 63,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,184, 61,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40, 63,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67,
+ 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0,
+ 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 34, 1, 0, 0,
+ 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120, 57, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 59, 27, 7, 0, 0, 0, 0,216, 55, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0, 40, 63,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 61,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 71, 67, 1, 0,145,195,
+ 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,216, 0, 34, 1,199, 0,
+ 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0,
+ 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 64,147, 5, 0, 0, 0, 0,120, 82,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,152, 64,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 66,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,
+111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,
+111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,199, 0, 36, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 66,147, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,216, 67,147, 5, 0, 0, 0, 0,152, 64,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 59, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-184, 60, 27, 7, 0, 0, 0, 0,120, 57, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,135,255,199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140,254,199, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,216, 67,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 69,147, 5, 0, 0, 0, 0, 56, 66,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,
+121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,
+121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184, 60, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 62, 27, 7, 0, 0, 0, 0, 24, 59, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,
-105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,
-105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,199, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,199, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 62, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-248, 63, 27, 7, 0, 0, 0, 0,184, 60, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 69,147, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 24, 71,147, 5, 0, 0, 0, 0,216, 67,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 34,254,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,140,254,199, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248, 63, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 65, 27, 7, 0, 0, 0, 0, 88, 62, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,
-103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0, 24, 71,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 72,147, 5, 0, 0, 0, 0,120, 69,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,
+116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,
+116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,
103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,199, 0, 58, 0, 20, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 72,147, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 88, 74,147, 5, 0, 0, 0, 0, 24, 71,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 65, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
- 56, 67, 27, 7, 0, 0, 0, 0,248, 63, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 34,254,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,242,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0, 88, 74,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 75,147, 5, 0, 0, 0, 0,184, 72,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104,
+ 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104,
+ 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56, 67, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 68, 27, 7, 0, 0, 0, 0,152, 65, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,
-114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,
-114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 68, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-120, 70, 27, 7, 0, 0, 0, 0, 56, 67, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,194,253,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120, 70, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 72, 27, 7, 0, 0, 0, 0,216, 68, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,199, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,199, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 75,147, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,152, 77,147, 5, 0, 0, 0, 0, 88, 74,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 72, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120, 70, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,242,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,152, 77,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 79,147, 5, 0, 0, 0, 0,248, 75,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,
+115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,
+115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,
+105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,199, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-184, 73, 27, 7, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 79,147, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,216, 80,147, 5, 0, 0, 0, 0,152, 77,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,194,253,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 74, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-232, 79, 27, 7, 0, 0, 0, 0,104, 50, 27, 7, 0, 0, 0, 0,200,224, 26, 7, 0, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0,
-216, 30, 27, 7, 0, 0, 0, 0,168, 28, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0,
- 0, 0, 0, 0, 87, 0, 0, 0, 15, 15, 24, 4, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 78, 27, 7, 0, 0, 0, 0,200, 78, 27, 7, 0, 0, 0, 0,232, 75, 27, 7, 0, 0, 0, 0, 88, 77, 27, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,232, 75, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 88, 77, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 39,182,158, 55, 0, 0,131, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,130, 68, 0, 0,200, 65,
- 0,224,130, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 24, 4,
- 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,216, 80,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 82,147, 5, 0, 0, 0, 0, 56, 79,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,
+116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,
+116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,199, 0,130, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 88, 77, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 75, 27, 7, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67,
- 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66,
- 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 24, 4,
- 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0,
- 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 62, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 82,147, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 80,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,208, 0, 0, 0,200, 78, 27, 7, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+248, 0, 0, 0, 24, 84,147, 5, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 79, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-168, 86, 27, 7, 0, 0, 0, 0,248, 74, 27, 7, 0, 0, 0, 0,136, 29, 27, 7, 0, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0,
-120, 33, 27, 7, 0, 0, 0, 0,248, 29, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 61, 1, 0, 0, 59, 2, 0, 0, 3, 3,216, 0,255, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184, 83, 27, 7, 0, 0, 0, 0,184, 83, 27, 7, 0, 0, 0, 0,216, 80, 27, 7, 0, 0, 0, 0, 72, 82, 27, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,216, 80, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 72, 82, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65,
- 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0,
- 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 34, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 72, 82, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 80, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 67,
- 0, 0, 83,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,216, 0,
-229, 0,199, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 61, 1, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,229, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 85,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0, 72, 90,147, 5, 0, 0, 0, 0,200, 60,147, 5, 0, 0, 0, 0,104,137, 95, 4, 0, 0, 0, 0, 72,225,140, 5,
+ 0, 0, 0, 0,152, 68,137, 5, 0, 0, 0, 0, 8, 61,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 4, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 15, 15, 24, 4, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40, 89,147, 5, 0, 0, 0, 0, 40, 89,147, 5, 0, 0, 0, 0, 72, 86,147, 5, 0, 0, 0, 0,184, 87,147, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 86,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184, 87,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 39,182,158, 55,
+ 0, 0,131, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,130, 68,
+ 0, 0,200, 65, 0,224,130, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 24, 4, 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 1, 0, 0,184, 83, 27, 7, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 87,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 72, 86,147, 5, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,
+246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4,
+ 8, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 4, 0, 0, 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 62, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 40, 89,147, 5, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 85, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 24, 85, 27, 7, 0, 0, 0, 0,
-238, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,120, 85, 27, 7, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,
-120, 85, 27, 7, 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0,
- 19, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0,
- 21, 0, 1, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,128, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,152,137, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,192, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,120,151, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,173, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,216,144, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104,123, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,122, 30, 7, 0, 0, 0, 0,
- 21, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 86, 27, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 56,100, 27, 7, 0, 0, 0, 0,232, 79, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0,
-184, 31, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,216, 30, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,194, 2, 0, 0, 1, 1, 87, 2,106, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136, 98, 27, 7, 0, 0, 0, 0,136, 98, 27, 7, 0, 0, 0, 0,152, 87, 27, 7, 0, 0, 0, 0,
- 88, 93, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 87, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 8, 89, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,192, 21, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128, 21, 68, 0, 0,200, 65, 0,128, 21, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 87, 2, 26, 0, 87, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 87, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 89, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-120, 90, 27, 7, 0, 0, 0, 0,152, 87, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 80, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 90, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-232, 91, 27, 7, 0, 0, 0, 0, 8, 89, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0,
- 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 91, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 88, 93, 27, 7, 0, 0, 0, 0,120, 90, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0,
- 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 23, 4, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 93, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 91, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72, 90,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0,168, 96,147, 5, 0, 0, 0, 0, 88, 85,147, 5, 0, 0, 0, 0,184, 88,135, 5, 0, 0, 0, 0,104, 43,147, 5,
+ 0, 0, 0, 0,216, 43,147, 5, 0, 0, 0, 0,248,104,133, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,
+240, 4, 0, 0, 61, 1, 0, 0, 59, 2, 0, 0, 3, 3,216, 0,255, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 94,147, 5, 0, 0, 0, 0, 24, 94,147, 5, 0, 0, 0, 0, 56, 91,147, 5, 0, 0, 0, 0,168, 92,147, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 91,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168, 92,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54,
+ 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67,
+ 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,
+240, 4, 0, 0, 34, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0,
+ 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-193, 1, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 87, 2, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 92,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 91,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 71, 67, 0, 0, 83,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0,
+198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4,
+ 6, 0,216, 0,229, 0,199, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,
+240, 4, 0, 0, 61, 1, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,229, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 94, 27, 7, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,200, 94, 27, 7, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,167,141, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0,
- 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,
-162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,
- 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,
-185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,
-178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,
-145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,
- 99,240,191, 62,110,116, 85, 63, 64,185, 70,188, 0, 0, 82,180, 48,221,185,190, 44, 45, 51, 62, 28, 11, 79, 63, 0, 0, 56,179,
- 67,108,117,194,183,204,216, 65,105,156, 5,194,212,247,159,192,235, 62,114, 66, 59,254,213,193,158,225, 3, 66, 55, 8,160, 64,
- 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,
-162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,
-178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,
-145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 24, 94,147, 5, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,114,137, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,
-236, 15, 72, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 86,152,137, 66,113, 27,126, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,136, 98, 27, 7, 0, 0, 0, 0,
-175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 7, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,168,114,137, 5,
+ 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,120, 95,147, 5, 0, 0, 0, 0, 68, 65, 84, 65,
+224, 0, 0, 0,120, 95,147, 5, 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,184,168, 5,
+ 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5,
+ 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,210,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184,219,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184, 17,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,232,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,255,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,226,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,205,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,204,168, 5,
+ 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 96,147, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56,110,147, 5, 0, 0, 0, 0, 72, 90,147, 5, 0, 0, 0, 0,248,164,137, 5,
+ 0, 0, 0, 0,216,144,139, 5, 0, 0, 0, 0, 40, 76,135, 5, 0, 0, 0, 0,152, 68,137, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,194, 2, 0, 0, 1, 1, 87, 2,106, 2, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,108,147, 5, 0, 0, 0, 0,136,108,147, 5, 0, 0, 0, 0,152, 97,147, 5,
+ 0, 0, 0, 0, 88,103,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 97,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 8, 99,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0,192, 21, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,128, 21, 68, 0, 0,200, 65, 0,128, 21, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 87, 2, 26, 0, 87, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 87, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 99,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,120,100,147, 5, 0, 0, 0, 0,152, 97,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,
+ 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,
+ 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 80, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,100, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-232,108, 27, 7, 0, 0, 0, 0,168, 86, 27, 7, 0, 0, 0, 0,104, 30, 27, 7, 0, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0,
-152, 32, 27, 7, 0, 0, 0, 0, 72, 31, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
- 89, 0, 0, 0, 3, 1, 0, 0, 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,106, 27, 7, 0, 0, 0, 0,232,106, 27, 7, 0, 0, 0, 0, 40,101, 27, 7, 0, 0, 0, 0,120,105, 27, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,100,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,232,101,147, 5, 0, 0, 0, 0, 8, 99,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194,
+ 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,
+119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,
+119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 40,101, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,102, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65,
- 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1,
- 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
- 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,101,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 88,103,147, 5, 0, 0, 0, 0,120,100,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
+147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,
+147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 23, 4, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,152,102, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,104, 27, 7, 0, 0, 0, 0,
- 40,101, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67,
- 0, 0,254,194, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,
-145, 0,200, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,
-115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,145, 0, 0, 0, 2, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,103,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,101,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 8,104, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,120,105, 27, 7, 0, 0, 0, 0,
-152,102, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,191, 1, 0, 0,
-115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0,
- 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 87, 2, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,120,105, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,104, 27, 7, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,111, 18,131, 58,111, 18,131, 58,
- 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,231, 0,
-145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,191, 1, 0, 0,
-115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 0,145, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200,104,147, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,200,104,147, 5, 0, 0, 0, 0,174, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,167,141, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190,
+ 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190,
+ 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193,
+ 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63,
+ 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64,
+ 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62,
+ 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,
+214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 64,185, 70,188, 0, 0, 82,180, 48,221,185,190, 44, 45, 51, 62, 28, 11, 79, 63,
+ 0, 0, 56,179, 67,108,117,194,183,204,216, 65,105,156, 5,194,212,247,159,192,235, 62,114, 66, 59,254,213,193,158,225, 3, 66,
+ 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190,
+ 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193,
+ 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62,
+ 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,
+214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,240, 0, 0, 0,232,106, 27, 7, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0,236, 15, 72, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 86,152,137, 66,
+113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,136,108,147, 5,
+ 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,108, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 40,108, 27, 7, 0, 0, 0, 0, 38, 1, 0, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1,
+ 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,110,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0,232,118,147, 5, 0, 0, 0, 0,168, 96,147, 5, 0, 0, 0, 0, 72,225,140, 5, 0, 0, 0, 0,152,213,132, 5,
+ 0, 0, 0, 0,168,134,139, 5, 0, 0, 0, 0,248,164,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+191, 1, 0, 0, 89, 0, 0, 0, 3, 1, 0, 0, 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,232,116,147, 5, 0, 0, 0, 0,232,116,147, 5, 0, 0, 0, 0, 40,111,147, 5, 0, 0, 0, 0,120,115,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,111,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,112,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67,
+ 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+191, 1, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,108, 27, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,184,115, 27, 7, 0, 0, 0, 0, 56,100, 27, 7, 0, 0, 0, 0, 40, 32, 27, 7, 0, 0, 0, 0,
-200, 27, 27, 7, 0, 0, 0, 0,184, 31, 27, 7, 0, 0, 0, 0,152, 32, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0,194, 2, 0, 0, 12, 12,192, 1,190, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,114, 27, 7, 0, 0, 0, 0, 40,114, 27, 7, 0, 0, 0, 0,216,109, 27, 7, 0, 0, 0, 0,
-184,112, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,109, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 72,111, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 94, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,112,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,114,147, 5,
+ 0, 0, 0, 0, 40,111,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 72, 67, 0, 0,254,194, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0,
+199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4,
+ 6, 0,217, 0,145, 0,200, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216, 0, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,145, 0,
+ 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,111, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-184,112, 27, 7, 0, 0, 0, 0,216,109, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,201,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3,
- 0, 0, 2, 4, 6, 0,200, 0,164, 1,200, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,199, 0, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 0,164, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,114,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,120,115,147, 5,
+ 0, 0, 0, 0,152,112,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,112, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 72,111, 27, 7, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 72,194, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,104, 68, 0, 0,201,195, 0, 0, 0, 0,231, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0,
- 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2,
- 0, 0, 2, 4, 4, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 0, 0, 0,191, 1, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 40,114, 27, 7, 0, 0, 0, 0, 39, 1, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
+191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,115,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8,114,147, 5, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0,
+ 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 18, 0, 0, 0,
+230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,111, 18,131, 58,
+111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
+ 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,
+191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 0,145, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,232,116,147, 5, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,115, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232,108, 27, 7, 0, 0, 0, 0, 8, 33, 27, 7, 0, 0, 0, 0, 24, 29, 27, 7, 0, 0, 0, 0,
- 56, 28, 27, 7, 0, 0, 0, 0,120, 33, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 61, 2, 0, 0,194, 2, 0, 0, 1, 1,216, 0,134, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,123, 27, 7, 0, 0, 0, 0, 72,123, 27, 7, 0, 0, 0, 0,168,116, 27, 7, 0, 0, 0, 0, 24,118, 27, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,168,116, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,118, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67,
- 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65,
- 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1,
- 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 61, 2, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0,
- 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 24,118, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,116, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40,118,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 40,118,147, 5, 0, 0, 0, 0, 38, 1, 0, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,118,147, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,125,147, 5, 0, 0, 0, 0, 56,110,147, 5, 0, 0, 0, 0,152,213,132, 5,
+ 0, 0, 0, 0,168,152,137, 5, 0, 0, 0, 0,216,144,139, 5, 0, 0, 0, 0,168,134,139, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0,194, 2, 0, 0, 12, 12,192, 1,190, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,124,147, 5, 0, 0, 0, 0, 40,124,147, 5, 0, 0, 0, 0,216,119,147, 5,
+ 0, 0, 0, 0,184,122,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,119,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 72,121,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 94, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 61, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,134, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,121,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,184,122,147, 5, 0, 0, 0, 0,216,119,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,201,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,
+163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0,
+ 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,164, 1,200, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200, 0,164, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,119, 27, 7, 0, 0, 0, 0,
- 68, 65, 84, 65,112, 3, 0, 0,136,119, 27, 7, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 56,255, 13, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,100, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 86,126,162,190,
- 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63,
- 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,
-160, 56, 49,188, 0, 0, 0, 0, 88,126,162,190,229,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191,
- 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191,
-244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,136,239, 76, 64,
- 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,149, 70,158, 62, 24,234,167, 62,
-192,214,159,187, 0, 0, 6,181,196,188,181,189, 71,238,178, 61,127, 45,128, 62, 0, 0,226, 51,168,120, 21,194,107, 5, 2, 66,
-203,135,213,193,147,214,159,192,177, 38, 19, 66,124,173,255,193, 96,101,210, 65,128, 40,160, 64,221,149, 47, 63, 86,126,162,190,
- 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63,
- 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191,
-244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,136,239, 76, 64,
- 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,122,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,121,147, 5, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 72,194,
+ 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0,201,195, 0, 0, 0, 0,231, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,
+163, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,
+163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0,
+ 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200, 0, 0, 0,191, 1, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 40,124,147, 5, 0, 0, 0, 0, 39, 1, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190,
- 43, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,191,136, 59, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 1, 2, 0, 0,255,255, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, 99,212, 90, 66, 27,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 72,123, 27, 7, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,
-248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,125,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,118,147, 5, 0, 0, 0, 0,104, 43,147, 5, 0, 0, 0, 0, 40, 76,135, 5,
+ 0, 0, 0, 0, 88, 56,135, 5, 0, 0, 0, 0,216, 43,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,
+240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 1, 1,216, 0,134, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 72,133,147, 5, 0, 0, 0, 0, 72,133,147, 5, 0, 0, 0, 0,168,126,147, 5, 0, 0, 0, 0, 24,128,147, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0,
- 8, 0,128, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,126,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,128,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67,
+ 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,
+240, 4, 0, 0, 61, 2, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 78, 0, 0, 8, 1, 0, 0,136,125, 27, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,
-105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,126, 27, 7, 0, 0, 0, 0,136,132, 27, 7, 0, 0, 0, 0,
-248,132, 27, 7, 0, 0, 0, 0, 40,142, 27, 7, 0, 0, 0, 0,152,142, 27, 7, 0, 0, 0, 0,200,194, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,128,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,168,126,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,216,126, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,127, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 72,127, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,127, 27, 7, 0, 0, 0, 0,216,126, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,127, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 40,128, 27, 7, 0, 0, 0, 0, 72,127, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,128, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-152,128, 27, 7, 0, 0, 0, 0,184,127, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,129, 27, 7, 0, 0, 0, 0,
- 40,128, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 8,129, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,232,129, 27, 7, 0, 0, 0, 0, 8,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,129, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 88,130, 27, 7, 0, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 92, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 88,130, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,130, 27, 7, 0, 0, 0, 0,
-232,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-200,130, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0, 88,130, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,168,131, 27, 7, 0, 0, 0, 0,200,130, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,131, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 24,132, 27, 7, 0, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,140, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 24,132, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,132, 27, 7, 0, 0, 0, 0,
-168,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-136,132, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,132, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,132, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104,133, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,127, 27, 7, 0, 0, 0, 0,
-184,127, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,133, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216,133, 27, 7, 0, 0, 0, 0,248,132, 27, 7, 0, 0, 0, 0, 72,127, 27, 7, 0, 0, 0, 0,
-152,128, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,133, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 72,134, 27, 7, 0, 0, 0, 0,104,133, 27, 7, 0, 0, 0, 0,184,127, 27, 7, 0, 0, 0, 0,
- 8,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,134, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,184,134, 27, 7, 0, 0, 0, 0,216,133, 27, 7, 0, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,
- 8,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,134, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 40,135, 27, 7, 0, 0, 0, 0, 72,134, 27, 7, 0, 0, 0, 0, 40,128, 27, 7, 0, 0, 0, 0,
-232,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,135, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,152,135, 27, 7, 0, 0, 0, 0,184,134, 27, 7, 0, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0,
-232,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,135, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 8,136, 27, 7, 0, 0, 0, 0, 40,135, 27, 7, 0, 0, 0, 0, 8,129, 27, 7, 0, 0, 0, 0,
- 88,130, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,136, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,120,136, 27, 7, 0, 0, 0, 0,152,135, 27, 7, 0, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,
- 88,130, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,136, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,232,136, 27, 7, 0, 0, 0, 0, 8,136, 27, 7, 0, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0,
- 88,130, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,136, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 88,137, 27, 7, 0, 0, 0, 0,120,136, 27, 7, 0, 0, 0, 0, 8,129, 27, 7, 0, 0, 0, 0,
-232,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,137, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,200,137, 27, 7, 0, 0, 0, 0,232,136, 27, 7, 0, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,
-200,130, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,137, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 56,138, 27, 7, 0, 0, 0, 0, 88,137, 27, 7, 0, 0, 0, 0, 88,130, 27, 7, 0, 0, 0, 0,
- 56,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,138, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,168,138, 27, 7, 0, 0, 0, 0,200,137, 27, 7, 0, 0, 0, 0,200,130, 27, 7, 0, 0, 0, 0,
- 56,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,138, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 24,139, 27, 7, 0, 0, 0, 0, 56,138, 27, 7, 0, 0, 0, 0,200,130, 27, 7, 0, 0, 0, 0,
-168,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,139, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,136,139, 27, 7, 0, 0, 0, 0,168,138, 27, 7, 0, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0,
-168,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,139, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,248,139, 27, 7, 0, 0, 0, 0, 24,139, 27, 7, 0, 0, 0, 0,216,126, 27, 7, 0, 0, 0, 0,
- 24,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,139, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104,140, 27, 7, 0, 0, 0, 0,136,139, 27, 7, 0, 0, 0, 0, 24,132, 27, 7, 0, 0, 0, 0,
-136,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,140, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216,140, 27, 7, 0, 0, 0, 0,248,139, 27, 7, 0, 0, 0, 0, 40,128, 27, 7, 0, 0, 0, 0,
-136,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,140, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 72,141, 27, 7, 0, 0, 0, 0,104,140, 27, 7, 0, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0,
-136,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,141, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,184,141, 27, 7, 0, 0, 0, 0,216,140, 27, 7, 0, 0, 0, 0,168,131, 27, 7, 0, 0, 0, 0,
- 24,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,141, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 40,142, 27, 7, 0, 0, 0, 0, 72,141, 27, 7, 0, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0,
-136,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,142, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,141, 27, 7, 0, 0, 0, 0,216,126, 27, 7, 0, 0, 0, 0,
-200,130, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,142, 27, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,104,146, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,
- 72,127, 27, 7, 0, 0, 0, 0,184,127, 27, 7, 0, 0, 0, 0, 8,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120,233, 27, 7, 0, 0, 0, 0,120,233, 27, 7, 0, 0, 0, 0,136,143, 27, 7, 0, 0, 0, 0,
-248,144, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,143, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-248,144, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,144, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,143, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0,
- 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3,
- 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,146, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 88,151, 27, 7, 0, 0, 0, 0,152,142, 27, 7, 0, 0, 0, 0,136,132, 27, 7, 0, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0,
-232,129, 27, 7, 0, 0, 0, 0, 40,128, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,150, 27, 7, 0, 0, 0, 0, 56,150, 27, 7, 0, 0, 0, 0, 88,147, 27, 7, 0, 0, 0, 0,200,148, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 88,147, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200,148, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,115, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65,
- 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1,
- 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,200,148, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88,147, 27, 7, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67,
- 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66,
- 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 94, 1,
- 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 66, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,
+240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,134, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,129,147, 5,
+ 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,136,129,147, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 56,255, 13, 64,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,100, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63,
+ 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188,
+ 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63,
+ 55, 70, 58, 63,160, 56, 49,188, 0, 0, 0, 0, 88,126,162,190,229,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,
+150, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 47,201,194, 63,
+ 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,
+136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,149, 70,158, 62,
+ 24,234,167, 62,192,214,159,187, 0, 0, 6,181,196,188,181,189, 71,238,178, 61,127, 45,128, 62, 0, 0,226, 51,168,120, 21,194,
+107, 5, 2, 66,203,135,213,193,147,214,159,192,177, 38, 19, 66,124,173,255,193, 96,101,210, 65,128, 40,160, 64,221,149, 47, 63,
+ 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188,
+ 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 47,201,194, 63,
+ 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,
+136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,208, 0, 0, 0, 56,150, 27, 7, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,151, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-232,175, 27, 7, 0, 0, 0, 0,104,146, 27, 7, 0, 0, 0, 0,120,129, 27, 7, 0, 0, 0, 0, 88,130, 27, 7, 0, 0, 0, 0,
- 8,129, 27, 7, 0, 0, 0, 0,232,129, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1,141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,174, 27, 7, 0, 0, 0, 0,168,174, 27, 7, 0, 0, 0, 0, 72,152, 27, 7, 0, 0, 0, 0,184,153, 27, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 72,152, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184,153, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65,
- 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1,
- 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
-208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63,
+ 78,162,246,190, 43, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,191,136, 59,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 1, 2, 0, 0,255,255, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, 99,212, 90, 66, 27,183,118, 66, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 72,133,147, 5, 0, 0, 0, 0,175, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,184,153, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,152, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,
-255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,
-115, 3, 77, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,115, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
+ 1, 0, 3, 0, 8, 0,128, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,155, 27, 7, 0, 0, 0, 0, 8,173, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 40,155, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200,156, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,248,134,147, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104, 63,166, 5,
+ 0, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,
+109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,136,147, 5, 0, 0, 0, 0,248,141,147, 5,
+ 0, 0, 0, 0,104,142,147, 5, 0, 0, 0, 0,152,151,147, 5, 0, 0, 0, 0, 8,152,147, 5, 0, 0, 0, 0, 56,204,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,156, 27, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,104,158, 27, 7, 0, 0, 0, 0, 40,155, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,136,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,136,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,184,136,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,137,147, 5, 0, 0, 0, 0, 72,136,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,137,147, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,137,147, 5, 0, 0, 0, 0,184,136,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,137,147, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 8,138,147, 5, 0, 0, 0, 0, 40,137,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,138,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,138,147, 5,
+ 0, 0, 0, 0,152,137,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,120,138,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,138,147, 5, 0, 0, 0, 0, 8,138,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,138,147, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0,120,138,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,200,139,147, 5, 0, 0, 0, 0,232,138,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 92, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,139,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,140,147, 5,
+ 0, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0, 56,140,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,140,147, 5, 0, 0, 0, 0,200,139,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,140,147, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0, 56,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,136,141,147, 5, 0, 0, 0, 0,168,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,140, 1,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,141,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,141,147, 5,
+ 0, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,141,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,142,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,142,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,136,147, 5,
+ 0, 0, 0, 0, 40,137,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,142,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,143,147, 5, 0, 0, 0, 0,104,142,147, 5, 0, 0, 0, 0,184,136,147, 5,
+ 0, 0, 0, 0, 8,138,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,143,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,143,147, 5, 0, 0, 0, 0,216,142,147, 5, 0, 0, 0, 0, 40,137,147, 5,
+ 0, 0, 0, 0,120,138,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,143,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,144,147, 5, 0, 0, 0, 0, 72,143,147, 5, 0, 0, 0, 0, 8,138,147, 5,
+ 0, 0, 0, 0,120,138,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,144,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,144,147, 5, 0, 0, 0, 0,184,143,147, 5, 0, 0, 0, 0,152,137,147, 5,
+ 0, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,144,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,145,147, 5, 0, 0, 0, 0, 40,144,147, 5, 0, 0, 0, 0,232,138,147, 5,
+ 0, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,145,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,145,147, 5, 0, 0, 0, 0,152,144,147, 5, 0, 0, 0, 0,120,138,147, 5,
+ 0, 0, 0, 0,200,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,145,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,145,147, 5, 0, 0, 0, 0, 8,145,147, 5, 0, 0, 0, 0, 8,138,147, 5,
+ 0, 0, 0, 0,200,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,145,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,146,147, 5, 0, 0, 0, 0,120,145,147, 5, 0, 0, 0, 0,232,138,147, 5,
+ 0, 0, 0, 0,200,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,146,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,146,147, 5, 0, 0, 0, 0,232,145,147, 5, 0, 0, 0, 0,120,138,147, 5,
+ 0, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,146,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,147,147, 5, 0, 0, 0, 0, 88,146,147, 5, 0, 0, 0, 0, 8,138,147, 5,
+ 0, 0, 0, 0, 56,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,147,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,147,147, 5, 0, 0, 0, 0,200,146,147, 5, 0, 0, 0, 0,200,139,147, 5,
+ 0, 0, 0, 0,168,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,147,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,148,147, 5, 0, 0, 0, 0, 56,147,147, 5, 0, 0, 0, 0, 56,140,147, 5,
+ 0, 0, 0, 0,168,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,148,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,148,147, 5, 0, 0, 0, 0,168,147,147, 5, 0, 0, 0, 0, 56,140,147, 5,
+ 0, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,148,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,148,147, 5, 0, 0, 0, 0, 24,148,147, 5, 0, 0, 0, 0,168,140,147, 5,
+ 0, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,148,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,149,147, 5, 0, 0, 0, 0,136,148,147, 5, 0, 0, 0, 0, 72,136,147, 5,
+ 0, 0, 0, 0,136,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,149,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,149,147, 5, 0, 0, 0, 0,248,148,147, 5, 0, 0, 0, 0,136,141,147, 5,
+ 0, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,149,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,150,147, 5, 0, 0, 0, 0,104,149,147, 5, 0, 0, 0, 0,152,137,147, 5,
+ 0, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,150,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,150,147, 5, 0, 0, 0, 0,216,149,147, 5, 0, 0, 0, 0,232,138,147, 5,
+ 0, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,150,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,151,147, 5, 0, 0, 0, 0, 72,150,147, 5, 0, 0, 0, 0, 24,141,147, 5,
+ 0, 0, 0, 0,136,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,151,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,151,147, 5, 0, 0, 0, 0,184,150,147, 5, 0, 0, 0, 0,168,140,147, 5,
+ 0, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,151,147, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,151,147, 5, 0, 0, 0, 0, 72,136,147, 5,
+ 0, 0, 0, 0, 56,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,152,147, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,155,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,138,147, 5,
+ 0, 0, 0, 0,184,136,147, 5, 0, 0, 0, 0, 40,137,147, 5, 0, 0, 0, 0,120,138,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,243,146, 5, 0, 0, 0, 0,184,243,146, 5, 0, 0, 0, 0,248,152,147, 5,
+ 0, 0, 0, 0,104,154,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,152,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,104,154,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,154,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,152,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192,
+ 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0,
+ 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216,155,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0,200,160,147, 5, 0, 0, 0, 0, 8,152,147, 5, 0, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0,232,138,147, 5,
+ 0, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0,152,137,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,168,159,147, 5, 0, 0, 0, 0,168,159,147, 5, 0, 0, 0, 0,200,156,147, 5, 0, 0, 0, 0, 56,158,147, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,156,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 56,158,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,115, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67,
+ 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,158,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200,156,147, 5, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,
+154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4,
+ 8, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 66, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,104,158, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,160, 27, 7, 0, 0, 0, 0,
-200,156, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,168,159,147, 5, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,160, 27, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,168,161, 27, 7, 0, 0, 0, 0,104,158, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,160,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0, 88,185,147, 5, 0, 0, 0, 0,216,155,147, 5, 0, 0, 0, 0,232,138,147, 5, 0, 0, 0, 0,200,139,147, 5,
+ 0, 0, 0, 0,120,138,147, 5, 0, 0, 0, 0, 88,139,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1,141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24,184,147, 5, 0, 0, 0, 0, 24,184,147, 5, 0, 0, 0, 0,184,161,147, 5, 0, 0, 0, 0, 40,163,147, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,161,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,163,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67,
+ 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0,
+ 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,168,161, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,163, 27, 7, 0, 0, 0, 0,
- 8,160, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105,
- 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,163,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,184,161,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0, 0, 0, 0, 0,
+255,127,166, 67,255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0,
+ 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
+ 6, 0, 94, 1,115, 3, 77, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,115, 3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,163, 27, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,232,164, 27, 7, 0, 0, 0, 0,168,161, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,164,147, 5, 0, 0, 0, 0,120,182,147, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,164,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,166,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,
+101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,
+ 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,166,147, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,167,147, 5, 0, 0, 0, 0,152,164,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,232,164, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,166, 27, 7, 0, 0, 0, 0,
- 72,163, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,167,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,169,147, 5,
+ 0, 0, 0, 0, 56,166,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,
+114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,
+ 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,166, 27, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 40,168, 27, 7, 0, 0, 0, 0,232,164, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,169,147, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,171,147, 5, 0, 0, 0, 0,216,167,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 40,168, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200,169, 27, 7, 0, 0, 0, 0,
-136,166, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111,
- 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,171,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,172,147, 5,
+ 0, 0, 0, 0,120,169,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105,
+ 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,
+ 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,169, 27, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,104,171, 27, 7, 0, 0, 0, 0, 40,168, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,172,147, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,174,147, 5, 0, 0, 0, 0, 24,171,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,174,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,175,147, 5,
+ 0, 0, 0, 0,184,172,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,
+105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,
+ 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,175,147, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,177,147, 5, 0, 0, 0, 0, 88,174,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,104,171, 27, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,173, 27, 7, 0, 0, 0, 0,
-200,169, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,177,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,179,147, 5,
+ 0, 0, 0, 0,248,175,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116,
+ 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,
+ 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,173, 27, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,171, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,179,147, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,180,147, 5, 0, 0, 0, 0,152,177,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,168,174, 27, 7, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,180,147, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,182,147, 5,
+ 0, 0, 0, 0, 56,179,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,
+117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,
+ 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,182,147, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,180,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,175, 27, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,120,189, 27, 7, 0, 0, 0, 0, 88,151, 27, 7, 0, 0, 0, 0, 24,132, 27, 7, 0, 0, 0, 0,
-168,131, 27, 7, 0, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0,136,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200,187, 27, 7, 0, 0, 0, 0,200,187, 27, 7, 0, 0, 0, 0,216,176, 27, 7, 0, 0, 0, 0,
-152,182, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,176, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 72,178, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,178, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-184,179, 27, 7, 0, 0, 0, 0,216,176, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 24,184,147, 5, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,179, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 40,181, 27, 7, 0, 0, 0, 0, 72,178, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0,
- 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,181, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-152,182, 27, 7, 0, 0, 0, 0,184,179, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0,
- 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,185,147, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,198,147, 5, 0, 0, 0, 0,200,160,147, 5, 0, 0, 0, 0,136,141,147, 5,
+ 0, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0,168,140,147, 5, 0, 0, 0, 0,248,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,197,147, 5, 0, 0, 0, 0, 56,197,147, 5, 0, 0, 0, 0, 72,186,147, 5,
+ 0, 0, 0, 0, 8,192,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,186,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,184,187,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,182, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,181, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,187,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 40,189,147, 5, 0, 0, 0, 0, 72,186,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,
+ 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,
+ 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,189,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,152,190,147, 5, 0, 0, 0, 0,184,187,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194,
+ 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,
+119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,
+119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,190,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 8,192,147, 5, 0, 0, 0, 0, 40,189,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
+129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,
+129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,184, 27, 7, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 8,184, 27, 7, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,
- 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,
-221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,
-191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,
-223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0,
- 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63,
- 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63,
- 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65,
- 25, 25,195, 62,176,249,206, 62,128,238,196,187, 0, 0,192,179, 55, 15,168,189,201,118,165, 61,152, 15,109, 62, 0, 0,152, 51,
-211,120, 21,194,144, 5, 2, 66, 6,136,213,193,193,214,159,192,219, 38, 19, 66,196,173,255,193,154,101,210, 65,173, 40,160, 64,
-221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,
-191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,
- 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63,
- 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,192,147, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,190,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,120,193,147, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,120,193,147, 5, 0, 0, 0, 0,174, 0, 0, 0,
+ 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190,
+ 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191,
+ 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193,
+ 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63,
+ 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64,
+ 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,
+149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,
+152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, 0, 0,192,179, 55, 15,168,189,201,118,165, 61,152, 15,109, 62,
+ 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193,193,214,159,192,219, 38, 19, 66,196,173,255,193,154,101,210, 65,
+173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191,
+ 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193,
+ 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,
+149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,
+152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, 1, 2, 0, 0,255,255, 0, 0, 92, 62, 55, 63,
- 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63,190,133, 65, 66,100,212, 90, 66, 31,183,118, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,200,187, 27, 7, 0, 0, 0, 0,
-175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 7, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,189, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-200,194, 27, 7, 0, 0, 0, 0,232,175, 27, 7, 0, 0, 0, 0,200,130, 27, 7, 0, 0, 0, 0,152,128, 27, 7, 0, 0, 0, 0,
- 88,130, 27, 7, 0, 0, 0, 0, 56,131, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,
-141, 1, 0, 0,233, 3, 0, 0, 16, 16, 32, 6, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,193, 27, 7, 0, 0, 0, 0, 72,193, 27, 7, 0, 0, 0, 0,104,190, 27, 7, 0, 0, 0, 0,216,191, 27, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,104,190, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216,191, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65,
- 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6,
- 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,
-141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, 1, 2, 0, 0,255,255, 0, 0,
+ 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63,190,133, 65, 66,100,212, 90, 66,
+ 31,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 56,197,147, 5,
+ 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,216,191, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,190, 27, 7, 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,192,225,108, 68,
- 96,240,187, 64, 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 32, 6,
- 67, 2, 15, 6, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,
-167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 67, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1,
+ 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,198,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0, 56,204,147, 5, 0, 0, 0, 0, 88,185,147, 5, 0, 0, 0, 0, 56,140,147, 5, 0, 0, 0, 0, 8,138,147, 5,
+ 0, 0, 0, 0,200,139,147, 5, 0, 0, 0, 0,168,140,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 6, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 16, 16, 32, 6, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,184,202,147, 5, 0, 0, 0, 0,184,202,147, 5, 0, 0, 0, 0,216,199,147, 5, 0, 0, 0, 0, 72,201,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,199,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 72,201,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68,
+ 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 6, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 1, 0, 0, 72,193, 27, 7, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,201,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,216,199,147, 5, 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,
+192,225,108, 68, 96,240,187, 64, 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0,
+ 14, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4,
+ 0, 0, 32, 6, 67, 2, 15, 6, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 6, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 67, 2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,184,202,147, 5, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,194, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120,189, 27, 7, 0, 0, 0, 0,216,126, 27, 7, 0, 0, 0, 0,200,130, 27, 7, 0, 0, 0, 0,
-168,131, 27, 7, 0, 0, 0, 0, 24,132, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0,
- 0, 0, 0, 0,139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,200, 27, 7, 0, 0, 0, 0, 8,200, 27, 7, 0, 0, 0, 0,184,195, 27, 7, 0, 0, 0, 0,152,198, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,184,195, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,197, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 65, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 64, 68, 0, 0,200, 65,
- 0,192, 64, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 4, 3,
- 26, 0, 4, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 40,197, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,198, 27, 7, 0, 0, 0, 0,
-184,195, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,204,147, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,198,147, 5, 0, 0, 0, 0, 72,136,147, 5, 0, 0, 0, 0, 56,140,147, 5,
+ 0, 0, 0, 0, 24,141,147, 5, 0, 0, 0, 0,136,141,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 3, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,248, 29,166, 5, 0, 0, 0, 0,248, 29,166, 5, 0, 0, 0, 0, 40,205,147, 5, 0, 0, 0, 0,136, 28,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,205,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,206,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0, 65, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 64, 68,
+ 0, 0,200, 65, 0,192, 64, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 4, 3, 26, 0, 4, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,206,147, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136, 28,166, 5,
+ 0, 0, 0, 0, 40,205,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0,
- 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,152,198, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,197, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,129,191, 0,128, 0, 64,
- 0, 0,100,190, 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0,
- 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,114, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 28,166, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,152,206,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,129,191,
+ 0,128, 0, 64, 0, 0,100,190, 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 33, 0, 0, 8,200, 27, 7, 0, 0, 0, 0,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,114, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0,248, 29,166, 5, 0, 0, 0, 0,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,
+100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1311,10 +1308,10 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1441,3506 +1438,3746 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 83, 78, 0, 0, 8, 1, 0, 0, 8,234, 27, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,
-116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,235, 27, 7, 0, 0, 0, 0, 8,241, 27, 7, 0, 0, 0, 0,
-120,241, 27, 7, 0, 0, 0, 0,232,248, 27, 7, 0, 0, 0, 0, 88,249, 27, 7, 0, 0, 0, 0,104,227, 28, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,153,101, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 88,235, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,235, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-200,235, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,236, 27, 7, 0, 0, 0, 0, 88,235, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,236, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,168,236, 27, 7, 0, 0, 0, 0,200,235, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 5,164, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,236, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 24,237, 27, 7, 0, 0, 0, 0, 56,236, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 5, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,237, 27, 7, 0, 0, 0, 0,
-168,236, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,137, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-136,237, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 5,137, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,104,238, 27, 7, 0, 0, 0, 0,136,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-128, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,238, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-216,238, 27, 7, 0, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4,137, 2, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,216,238, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,239, 27, 7, 0, 0, 0, 0,
-104,238, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 48, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 72,239, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,239, 27, 7, 0, 0, 0, 0,216,238, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 5, 48, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,239, 27, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 40,240, 27, 7, 0, 0, 0, 0, 72,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,240, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-152,240, 27, 7, 0, 0, 0, 0,184,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 88, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,152,240, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,241, 27, 7, 0, 0, 0, 0,
- 40,240, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 8,241, 27, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,240, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 72, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,241, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,232,241, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,235, 27, 7, 0, 0, 0, 0,
- 56,236, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,241, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 88,242, 27, 7, 0, 0, 0, 0,120,241, 27, 7, 0, 0, 0, 0,200,235, 27, 7, 0, 0, 0, 0,
- 24,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,242, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,200,242, 27, 7, 0, 0, 0, 0,232,241, 27, 7, 0, 0, 0, 0, 56,236, 27, 7, 0, 0, 0, 0,
-136,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,242, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 56,243, 27, 7, 0, 0, 0, 0, 88,242, 27, 7, 0, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,
-136,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,243, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,168,243, 27, 7, 0, 0, 0, 0,200,242, 27, 7, 0, 0, 0, 0, 88,235, 27, 7, 0, 0, 0, 0,
-248,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,243, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 24,244, 27, 7, 0, 0, 0, 0, 56,243, 27, 7, 0, 0, 0, 0,168,236, 27, 7, 0, 0, 0, 0,
-248,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,244, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,136,244, 27, 7, 0, 0, 0, 0,168,243, 27, 7, 0, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,
-104,238, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,244, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,248,244, 27, 7, 0, 0, 0, 0, 24,244, 27, 7, 0, 0, 0, 0,136,237, 27, 7, 0, 0, 0, 0,
-104,238, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,244, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104,245, 27, 7, 0, 0, 0, 0,136,244, 27, 7, 0, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0,
-216,238, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,245, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216,245, 27, 7, 0, 0, 0, 0,248,244, 27, 7, 0, 0, 0, 0,104,238, 27, 7, 0, 0, 0, 0,
-216,238, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,245, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 72,246, 27, 7, 0, 0, 0, 0,104,245, 27, 7, 0, 0, 0, 0,136,237, 27, 7, 0, 0, 0, 0,
- 72,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,246, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,184,246, 27, 7, 0, 0, 0, 0,216,245, 27, 7, 0, 0, 0, 0,168,236, 27, 7, 0, 0, 0, 0,
- 72,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,246, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 40,247, 27, 7, 0, 0, 0, 0, 72,246, 27, 7, 0, 0, 0, 0,216,238, 27, 7, 0, 0, 0, 0,
- 72,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,247, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,152,247, 27, 7, 0, 0, 0, 0,184,246, 27, 7, 0, 0, 0, 0, 88,235, 27, 7, 0, 0, 0, 0,
-184,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,247, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 8,248, 27, 7, 0, 0, 0, 0, 40,247, 27, 7, 0, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0,
- 40,240, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,248, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,120,248, 27, 7, 0, 0, 0, 0,152,247, 27, 7, 0, 0, 0, 0,184,239, 27, 7, 0, 0, 0, 0,
- 40,240, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,248, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,232,248, 27, 7, 0, 0, 0, 0, 8,248, 27, 7, 0, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,
-184,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,248, 27, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,248, 27, 7, 0, 0, 0, 0,104,238, 27, 7, 0, 0, 0, 0,
- 40,240, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,249, 27, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 40,253, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,
-200,235, 27, 7, 0, 0, 0, 0, 56,236, 27, 7, 0, 0, 0, 0,136,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 78, 5, 0, 0,138, 2, 0, 0,164, 2, 0, 0, 7, 7, 79, 5, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0,
-184,148,251, 6, 0, 0, 0, 0, 24, 6, 29, 7, 0, 0, 0, 0, 24, 6, 29, 7, 0, 0, 0, 0, 72,250, 27, 7, 0, 0, 0, 0,
-184,251, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 34,250, 6, 0, 0, 0, 0,
-216,101,104, 7, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,250, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-184,251, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,171, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,224,169, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192,169, 68, 0, 0,200, 65, 0,192,169, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 79, 5, 26, 0, 79, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 78, 5, 0, 0,138, 2, 0, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79, 5, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,150,251, 6, 0, 0, 0, 0,232,134, 88, 8, 0, 0, 0, 0,232,134, 88, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216,189,154, 8, 0, 0, 0, 0, 72,108,104, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,251, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 72,250, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0,200, 65,
- 0, 0, 0, 0, 0,192,168, 68, 0, 0,224, 64, 0, 0, 16, 65, 70, 5, 0, 0, 87, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 69, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3,
- 2, 0, 0, 4, 10, 0, 87, 5, 2, 0, 70, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,164, 2, 0, 0,164, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216,149,251, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,109,104, 7, 0, 0, 0, 0,248,111,104, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40,253, 27, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248, 37, 28, 7, 0, 0, 0, 0, 88,249, 27, 7, 0, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0,216,238, 27, 7, 0, 0, 0, 0,
- 72,239, 27, 7, 0, 0, 0, 0,168,236, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 4, 0, 0, 78, 5, 0, 0,
- 0, 0, 0, 0, 47, 2, 0, 0, 4, 4,206, 0, 48, 2, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 88,144,251, 6, 0, 0, 0, 0,
-184, 36, 28, 7, 0, 0, 0, 0,184, 36, 28, 7, 0, 0, 0, 0, 24,254, 27, 7, 0, 0, 0, 0,136,255, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,197,105, 7, 0, 0, 0, 0, 72,174,105, 7, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 24,254, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136,255, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 78, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 77, 67, 0, 0,200, 65,
- 0, 0, 77, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,206, 0,
- 26, 0,206, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 4, 0, 0, 78, 5, 0, 0,
- 22, 2, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,206, 0, 26, 0, 4, 0, 1, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,147,251, 6, 0, 0, 0, 0,
- 88,117, 88, 8, 0, 0, 0, 0, 88,117, 88, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,103,104, 7, 0, 0, 0, 0,232, 60,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,136,255, 27, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24,254, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 61, 67,
- 1,128, 5,196, 0, 0, 0, 0,189, 0, 0, 0,206, 0, 0, 0, 0, 0, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,188, 0, 0, 0, 0, 0, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,206, 0,
- 22, 2,189, 0, 22, 2, 0, 0, 88,148,156, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,129, 4, 0, 0, 78, 5, 0, 0,
- 0, 0, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,206, 0, 22, 2, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,145,251, 6, 0, 0, 0, 0,
-216, 54, 84, 8, 0, 0, 0, 0, 72, 96,155, 8, 0, 0, 0, 0,248, 0, 28, 7, 0, 0, 0, 0, 24, 35, 28, 7, 0, 0, 0, 0,
-232,114,104, 7, 0, 0, 0, 0, 56, 66,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,248, 0, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 2, 28, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104,146,251, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,189, 0, 36, 0,
- 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 2, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 56, 4, 28, 7, 0, 0, 0, 0,248, 0, 28, 7, 0, 0, 0, 0,248,122,240, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,104, 63,166, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184, 90,167, 5,
+ 0, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,
+102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 64,166, 5, 0, 0, 0, 0,104, 70,166, 5,
+ 0, 0, 0, 0,216, 70,166, 5, 0, 0, 0, 0, 72, 78,166, 5, 0, 0, 0, 0,184, 78,166, 5, 0, 0, 0, 0, 8,208,147, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 22,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 64,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 65,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0, 40, 65,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 65,166, 5, 0, 0, 0, 0,184, 64,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 65,166, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 66,166, 5, 0, 0, 0, 0, 40, 65,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,128, 7, 32, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 66,166, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,120, 66,166, 5, 0, 0, 0, 0,152, 65,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 66,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 66,166, 5,
+ 0, 0, 0, 0, 8, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 3, 1, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,232, 66,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 67,166, 5, 0, 0, 0, 0,120, 66,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,248, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 67,166, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0,232, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 96, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 56, 68,166, 5, 0, 0, 0, 0, 88, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 6,248, 3,
+ 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 68,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 68,166, 5,
+ 0, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 6,108, 3, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 69,166, 5, 0, 0, 0, 0, 56, 68,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,108, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 69,166, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,140, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,248, 69,166, 5, 0, 0, 0, 0, 24, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 6,140, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 69,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 70,166, 5,
+ 0, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 3, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,104, 70,166, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 69,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 6,144, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 70,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72, 71,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 65,166, 5,
+ 0, 0, 0, 0,152, 65,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 71,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184, 71,166, 5, 0, 0, 0, 0,216, 70,166, 5, 0, 0, 0, 0, 40, 65,166, 5,
+ 0, 0, 0, 0,120, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 71,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 72,166, 5, 0, 0, 0, 0, 72, 71,166, 5, 0, 0, 0, 0,152, 65,166, 5,
+ 0, 0, 0, 0,232, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 72,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 72,166, 5, 0, 0, 0, 0,184, 71,166, 5, 0, 0, 0, 0,120, 66,166, 5,
+ 0, 0, 0, 0,232, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 72,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 73,166, 5, 0, 0, 0, 0, 40, 72,166, 5, 0, 0, 0, 0,184, 64,166, 5,
+ 0, 0, 0, 0, 88, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 73,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 73,166, 5, 0, 0, 0, 0,152, 72,166, 5, 0, 0, 0, 0, 8, 66,166, 5,
+ 0, 0, 0, 0, 88, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 73,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 73,166, 5, 0, 0, 0, 0, 8, 73,166, 5, 0, 0, 0, 0,120, 66,166, 5,
+ 0, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 73,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 74,166, 5, 0, 0, 0, 0,120, 73,166, 5, 0, 0, 0, 0,232, 66,166, 5,
+ 0, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 74,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 74,166, 5, 0, 0, 0, 0,232, 73,166, 5, 0, 0, 0, 0, 88, 67,166, 5,
+ 0, 0, 0, 0, 56, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 74,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56, 75,166, 5, 0, 0, 0, 0, 88, 74,166, 5, 0, 0, 0, 0,200, 67,166, 5,
+ 0, 0, 0, 0, 56, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 75,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 75,166, 5, 0, 0, 0, 0,200, 74,166, 5, 0, 0, 0, 0,232, 66,166, 5,
+ 0, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 75,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 76,166, 5, 0, 0, 0, 0, 56, 75,166, 5, 0, 0, 0, 0, 8, 66,166, 5,
+ 0, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 76,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 76,166, 5, 0, 0, 0, 0,168, 75,166, 5, 0, 0, 0, 0, 56, 68,166, 5,
+ 0, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 76,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248, 76,166, 5, 0, 0, 0, 0, 24, 76,166, 5, 0, 0, 0, 0,184, 64,166, 5,
+ 0, 0, 0, 0, 24, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 76,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104, 77,166, 5, 0, 0, 0, 0,136, 76,166, 5, 0, 0, 0, 0, 88, 67,166, 5,
+ 0, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 77,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216, 77,166, 5, 0, 0, 0, 0,248, 76,166, 5, 0, 0, 0, 0, 24, 69,166, 5,
+ 0, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 77,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72, 78,166, 5, 0, 0, 0, 0,104, 77,166, 5, 0, 0, 0, 0,120, 66,166, 5,
+ 0, 0, 0, 0, 24, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 78,166, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 77,166, 5, 0, 0, 0, 0,200, 67,166, 5,
+ 0, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184, 78,166, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136, 82,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 66,166, 5,
+ 0, 0, 0, 0, 40, 65,166, 5, 0, 0, 0, 0,152, 65,166, 5, 0, 0, 0, 0,232, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,249, 3, 0, 0, 32, 4, 0, 0, 7, 7,129, 7, 40, 0, 1, 0, 0, 0, 0, 0,
+ 7, 0, 8, 0,248, 19, 64, 4, 0, 0, 0, 0, 40, 90,167, 5, 0, 0, 0, 0, 40, 90,167, 5, 0, 0, 0, 0,168, 79,166, 5,
+ 0, 0, 0, 0, 24, 81,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,127, 98, 4,
+ 0, 0, 0, 0,184,193,117, 5, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 79,166, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 24, 81,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,171, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0, 0,240, 68, 0, 0,200, 65, 0, 0,240, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 22, 64, 4, 0, 0, 0, 0,136,237,100, 4, 0, 0, 0, 0,136,237,100, 4, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,242,148, 5, 0, 0, 0, 0, 56,129,123, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 81,166, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 79,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0,
+ 0, 0,200, 65, 0, 0, 0, 0, 0, 0,238, 68, 0, 0,128, 63, 0, 0,112, 65,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0,
+ 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 14, 0,112, 7, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 19, 4, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,129, 7, 14, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24, 21, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 60,133, 5, 0, 0, 0, 0, 56,132,123, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136, 82,166, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0, 88,123,166, 5, 0, 0, 0, 0,184, 78,166, 5, 0, 0, 0, 0, 88, 67,166, 5, 0, 0, 0, 0, 56, 68,166, 5,
+ 0, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0, 8, 66,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 6, 0, 0,
+128, 7, 0, 0, 0, 0, 0, 0,107, 3, 0, 0, 4, 4, 32, 1,108, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,120, 15, 64, 4,
+ 0, 0, 0, 0, 24,122,166, 5, 0, 0, 0, 0, 24,122,166, 5, 0, 0, 0, 0,120, 83,166, 5, 0, 0, 0, 0,232, 84,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 75,118, 5, 0, 0, 0, 0,120, 60,135, 5,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 83,166, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,232, 84,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,144, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,143, 67,
+ 0, 0,200, 65, 0,128,143, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 32, 1, 26, 0, 32, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 6, 0, 0,
+128, 7, 0, 0, 82, 3, 0, 0,107, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 26, 0,
+ 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 18, 64, 4,
+ 0, 0, 0, 0, 24,214,139, 5, 0, 0, 0, 0, 24,214,139, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,232, 93,137, 5, 0, 0, 0, 0,120,135,123, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 84,166, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,120, 83,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0,128, 84,196, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2,128,135, 67, 3,128, 84,196, 0, 0, 0, 0, 15, 1, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0, 0, 0, 0, 0,
+ 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
+ 6, 0, 32, 1, 82, 3, 15, 1, 82, 3, 0, 0,136, 69,115, 5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 97, 6, 0, 0,
+128, 7, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 82, 3,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 16, 64, 4,
+ 0, 0, 0, 0, 88,174,149, 5, 0, 0, 0, 0,152,144, 99, 4, 0, 0, 0, 0, 88, 86,166, 5, 0, 0, 0, 0,120,120,166, 5,
+ 0, 0, 0, 0,200,126,123, 5, 0, 0, 0, 0, 72,139,123, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 86,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 87,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 17, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,
+101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,
+ 15, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,189, 0, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 11, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 87,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 89,166, 5, 0, 0, 0, 0, 88, 86,166, 5, 0, 0, 0, 0,136,175,227, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 56, 4, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 5, 28, 7, 0, 0, 0, 0,
-152, 2, 28, 7, 0, 0, 0, 0,104,125,240, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 15, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,189, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 89,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 91,166, 5,
+ 0, 0, 0, 0,248, 87,166, 5, 0, 0, 0, 0,136,178,227, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,
+114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,
+ 15, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 5, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,120, 7, 28, 7, 0, 0, 0, 0, 56, 4, 28, 7, 0, 0, 0, 0,216,127,240, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 91,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 92,166, 5, 0, 0, 0, 0,152, 89,166, 5, 0, 0, 0, 0,152,181,227, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,189, 0,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 15, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
+ 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,120, 7, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 9, 28, 7, 0, 0, 0, 0,
-216, 5, 28, 7, 0, 0, 0, 0, 72,130,240, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105,
- 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,189, 0, 58, 0,
- 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 92,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 94,166, 5,
+ 0, 0, 0, 0, 56, 91,166, 5, 0, 0, 0, 0,168,184,227, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105,
+ 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,
+ 15, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 9, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,184, 10, 28, 7, 0, 0, 0, 0,120, 7, 28, 7, 0, 0, 0, 0,184,132,240, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 94,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 96,166, 5, 0, 0, 0, 0,216, 92,166, 5, 0, 0, 0, 0,120,187,227, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 15, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,189, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 96,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 97,166, 5,
+ 0, 0, 0, 0,120, 94,166, 5, 0, 0, 0, 0, 8,204,185, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,
+105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,
+ 15, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 97,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 99,166, 5, 0, 0, 0, 0, 24, 96,166, 5, 0, 0, 0, 0, 72,198,227, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,184, 10, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 12, 28, 7, 0, 0, 0, 0,
- 24, 9, 28, 7, 0, 0, 0, 0,200,118,193, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 15, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,189, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 99,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,100,166, 5,
+ 0, 0, 0, 0,184, 97,166, 5, 0, 0, 0, 0, 24,201,227, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116,
+ 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,
+ 15, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 12, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,248, 13, 28, 7, 0, 0, 0, 0,184, 10, 28, 7, 0, 0, 0, 0, 72,142,240, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,100,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,102,166, 5, 0, 0, 0, 0, 88, 99,166, 5, 0, 0, 0, 0, 40,204,227, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,189, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 15, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0,
+ 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,248, 13, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 15, 28, 7, 0, 0, 0, 0,
- 88, 12, 28, 7, 0, 0, 0, 0,184,144,240, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111,
- 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,189, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,102,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,104,166, 5,
+ 0, 0, 0, 0,248,100,166, 5, 0, 0, 0, 0, 40,207,227, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,
+117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253,
+ 15, 1,134, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 15, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 56, 17, 28, 7, 0, 0, 0, 0,248, 13, 28, 7, 0, 0, 0, 0, 40,147,240, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,104,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,105,166, 5, 0, 0, 0, 0,152,102,166, 5, 0, 0, 0, 0, 56,213,227, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,189, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 19, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253, 15, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0,
+ 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,105,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,107,166, 5,
+ 0, 0, 0, 0, 56,104,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78,
+ 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78,
+ 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,
+ 41, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 56, 17, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 18, 28, 7, 0, 0, 0, 0,
-152, 15, 28, 7, 0, 0, 0, 0,152,149,240, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253,189, 0,134, 0,
- 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,107,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,109,166, 5, 0, 0, 0, 0,216,105,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 18, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,120, 20, 28, 7, 0, 0, 0, 0, 56, 17, 28, 7, 0, 0, 0, 0,120,154,240, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,255, 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253,189, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,109,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,110,166, 5,
+ 0, 0, 0, 0,120,107,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78,
+ 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78,
+ 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,
+110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254,
+ 41, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,110,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,112,166, 5, 0, 0, 0, 0, 24,109,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,120, 20, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 22, 28, 7, 0, 0, 0, 0,
-216, 18, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84,
- 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84,
- 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 22, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,184, 23, 28, 7, 0, 0, 0, 0,120, 20, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,112,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,113,166, 5,
+ 0, 0, 0, 0,184,110,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78,
+ 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78,
+ 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,
+108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254,
+ 41, 1, 80, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,113,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,115,166, 5, 0, 0, 0, 0, 88,112,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,
+115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,
+115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,255, 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,115,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,117,166, 5,
+ 0, 0, 0, 0,248,113,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
+ 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
+ 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,184, 23, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 25, 28, 7, 0, 0, 0, 0,
- 24, 22, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84,
- 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84,
- 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,
-101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254, 41, 1, 69, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 25, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,248, 26, 28, 7, 0, 0, 0, 0,184, 23, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,255,
+187, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,117,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,118,166, 5, 0, 0, 0, 0,152,115,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,254,187, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,248, 26, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 28, 28, 7, 0, 0, 0, 0,
- 88, 25, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84,
- 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84,
- 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,108,105,102,121,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,118,166, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,120,166, 5,
+ 0, 0, 0, 0, 56,117,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
+ 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
+ 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,110,102,108,
+117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,252,
+187, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 41, 1, 80, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,120,166, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,118,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,
+115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,
+115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 67,111,110,115,116,114, 97,105,110,116,115, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 28, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 56, 30, 28, 7, 0, 0, 0, 0,248, 26, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,255,187, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 24,122,166, 5, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 40,235,139, 5, 0, 0, 0, 0,255, 21, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,123,166, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72,128,166, 5, 0, 0, 0, 0,136, 82,166, 5, 0, 0, 0, 0,184, 64,166, 5,
+ 0, 0, 0, 0, 24, 69,166, 5, 0, 0, 0, 0,136, 69,166, 5, 0, 0, 0, 0, 88, 67,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0, 0, 0, 0, 0,139, 0, 0, 0, 15, 15, 96, 6,140, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40,226, 63, 4, 0, 0, 0, 0, 40,127,166, 5, 0, 0, 0, 0, 40,127,166, 5, 0, 0, 0, 0, 72,124,166, 5,
+ 0, 0, 0, 0,184,125,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 75,135, 5,
+ 0, 0, 0, 0,200,159,139, 5, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,124,166, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,184,125,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,143, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0,204, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,224,203, 68, 0, 0,200, 65, 0,224,203, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 96, 6, 26, 0, 96, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 96, 6, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 72,228, 63, 4, 0, 0, 0, 0,120, 14,135, 5, 0, 0, 0, 0,120, 14,135, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,130,123, 5, 0, 0, 0, 0,184,144,123, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,125,166, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,124,166, 5, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0,
+ 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0, 18, 0, 0, 0,
+113, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0,
+ 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 96, 6,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0, 26, 0, 0, 0,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 96, 6,114, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 72,227, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,145,123, 5, 0, 0, 0, 0,168,217,126, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 40,127,166, 5, 0, 0, 0, 0,191, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72,128,166, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 8,208,147, 5, 0, 0, 0, 0, 88,123,166, 5, 0, 0, 0, 0, 56, 68,166, 5,
+ 0, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0,232, 66,166, 5, 0, 0, 0, 0,168, 68,166, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 97, 6, 0, 0,128, 7, 0, 0,109, 3, 0, 0,247, 3, 0, 0, 3, 3, 32, 1,139, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 8, 0, 8,223, 63, 4, 0, 0, 0, 0, 24,132,166, 5, 0, 0, 0, 0, 24,132,166, 5, 0, 0, 0, 0, 56,129,166, 5,
+ 0, 0, 0, 0,168,130,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,148,118, 5,
+ 0, 0, 0, 0,248,243,119, 5, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,129,166, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,168,130,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0,144, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,128,143, 67, 0, 0,200, 65, 0,128,143, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 1, 26, 0, 32, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 97, 6, 0, 0,128, 7, 0, 0,222, 3, 0, 0,247, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 1, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40,225, 63, 4, 0, 0, 0, 0, 40,236,141, 5, 0, 0, 0, 0, 40,236,141, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,133,123, 5, 0, 0, 0, 0, 24,223,126, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,130,166, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,129,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,135, 67, 0, 0,190,194, 0, 0, 0, 0, 15, 1, 0, 0, 32, 1, 0, 0, 18, 0, 0, 0,
+112, 0, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 18, 0, 0, 0,
+112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0,
+ 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 32, 1,113, 0, 15, 1, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 97, 6, 0, 0,128, 7, 0, 0,109, 3, 0, 0,221, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 1,113, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40,224, 63, 4, 0, 0, 0, 0, 88, 20,140, 5, 0, 0, 0, 0, 88, 20,140, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,136,123, 5, 0, 0, 0, 0,136,225,126, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 24,132,166, 5, 0, 0, 0, 0,184, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 56, 30, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 31, 28, 7, 0, 0, 0, 0,
-152, 28, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 89,170, 5, 0, 0, 0, 0,168, 89,170, 5, 0, 0, 0, 0,232,209,134, 5,
+ 0, 0, 0, 0, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,
+ 16, 0, 0, 0,232,209,134, 5, 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,120,133,166, 5,
+ 0, 0, 0, 0, 68, 65, 84, 65,160,178, 0, 0,120,133,166, 5, 0, 0, 0, 0,237, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0,
+ 2, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 20, 0, 0, 0,
+ 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 72,210,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184,219,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0,184, 17,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,232,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 8,255,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,226,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0,232,205,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0,216,204,168, 5, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 0, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 2, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 4, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 6, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 8, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 10, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 12, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 14, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 16, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 18, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 20, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 22, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 24, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 26, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 28, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 30, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 32, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 34, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 36, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 38, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 40, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 42, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 44, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 46, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 48, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 50, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 52, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 54, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 56, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 58, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 60, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 62, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 64, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 66, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 68, 0,
+ 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 3, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 30, 0,255,255,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 31, 0, 0, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 2, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 4, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 6, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 8, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 10, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 12, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 14, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 16, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 18, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 20, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 22, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 24, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 26, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 28, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 30, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 32, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 34, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 36, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 38, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 40, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 42, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 44, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 46, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 48, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 50, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 52, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 54, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 56, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 58, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 60, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 62, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 64, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 66, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 68, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 70, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 72, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 74, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 76, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 78, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 80, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 82, 0,
+ 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 31, 0, 0, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 2, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 4, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 6, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 8, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 10, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 12, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 14, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 16, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 18, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 20, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 22, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 24, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 26, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 28, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 30, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 32, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 34, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 36, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 38, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 40, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 42, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 44, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 46, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 48, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 50, 0,
+ 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 31, 0, 0, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 2, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 4, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 6, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 8, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 10, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 12, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 14, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 16, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 18, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 20, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 22, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 24, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 26, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 28, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 30, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 32, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 34, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 36, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 38, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 40, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 42, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 44, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 46, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 48, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 50, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 52, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 54, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 56, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 58, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 60, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 62, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 64, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 66, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 68, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 70, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 72, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 74, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 76, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 78, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 80, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 82, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 84, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 86, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 88, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 90, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 92, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 94, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 96, 0,
+ 1, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 21, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 23, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 25, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 27, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 29, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 31, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 33, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 35, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 37, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 39, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 41, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 43, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 45, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 47, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 49, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 51, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 53, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 55, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 57, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 59, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 61, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 63, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 65, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 67, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 69, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 71, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 73, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 75, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 77, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 79, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 81, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 83, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 85, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 87, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 89, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 91, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 93, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 95, 0,
+ 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 31, 0, 0, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 2, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 4, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 6, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 8, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 10, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 12, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 14, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 16, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 18, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 20, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 22, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 24, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 26, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 28, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 30, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 32, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 34, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 36, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 38, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 40, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 42, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 44, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 46, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 48, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 50, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 52, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 54, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 56, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 58, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 60, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 62, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 64, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 66, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 68, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 70, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 72, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 74, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 76, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 78, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 80, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 82, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 84, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 86, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 88, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 90, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 92, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 94, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 96, 0,
+ 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 24, 42,147, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,248,134,147, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 31, 0, 0, 0,
+ 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 2, 0,
+ 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 4, 0,
+ 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 6, 0,
+ 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 8, 0,
+ 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 10, 0,
+ 1, 0, 0, 0, 40, 39,147, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 1, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 3, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 5, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 7, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 9, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 11, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 13, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 15, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 17, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 19, 0,
+ 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0, 8,208,147, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,128,166, 5,
+ 0, 0, 0, 0, 24, 69,166, 5, 0, 0, 0, 0,120, 66,166, 5, 0, 0, 0, 0,200, 67,166, 5, 0, 0, 0, 0,136, 69,166, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0,141, 0, 0, 0,247, 3, 0, 0, 1, 1, 96, 6,
+107, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 72,229, 63, 4, 0, 0, 0, 0,120, 88,167, 5, 0, 0, 0, 0,120, 88,167, 5,
+ 0, 0, 0, 0,104, 56,167, 5, 0, 0, 0, 0, 72, 83,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,232, 31,125, 5, 0, 0, 0, 0,184,167,126, 5, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 56,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216, 57,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,192,108, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,204, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 95, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,203, 68, 0, 0,200, 65, 0,224,203, 68, 0, 0,200, 65, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 96, 6, 26, 0, 96, 6, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0,141, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 6, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,239, 63, 4, 0, 0, 0, 0,200, 6,182, 5, 0, 0, 0, 0,200, 6,182, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,223,126, 5, 0, 0, 0, 0, 24, 50,127, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 57,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200, 78,167, 5, 0, 0, 0, 0,104, 56,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,128,178, 67, 0, 64, 30,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 30,196, 0, 0, 0, 0,143, 0, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0,120, 2, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 0, 0, 0, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,121, 2,143, 0,121, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,127, 1, 0, 0,247, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,121, 2, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,236, 63, 4, 0, 0, 0, 0,232, 30,140, 5, 0, 0, 0, 0,232, 30,140, 5,
+ 0, 0, 0, 0, 72, 59,167, 5, 0, 0, 0, 0, 40, 77,167, 5, 0, 0, 0, 0,216, 46,127, 5, 0, 0, 0, 0,104,206,129, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 59,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 60,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,165,231, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101,
+ 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101,
+ 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0,
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,255,187, 0,204, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 31, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,120, 33, 28, 7, 0, 0, 0, 0, 56, 30, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 60,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 62,167, 5,
+ 0, 0, 0, 0, 72, 59,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,114,117,115,
+104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,254,
+143, 0,115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 62,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 64,167, 5, 0, 0, 0, 0,232, 60,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,
+104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,
+104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,254,143, 0, 61, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 64,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 65,167, 5,
+ 0, 0, 0, 0,136, 62,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114,111,
+107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,254,
+143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 65,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104, 67,167, 5, 0, 0, 0, 0, 40, 64,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,
+104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,
+104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,254,187, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 67,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 69,167, 5,
+ 0, 0, 0, 0,200, 65,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,112,112,101,
+ 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,253,
+143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 69,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168, 70,167, 5, 0, 0, 0, 0,104, 67,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,
+101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,
+101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,253,143, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,120, 33, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 35, 28, 7, 0, 0, 0, 0,
-216, 31, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
- 80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
- 80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,110,102,108,117,101,110, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,252,187, 0, 86, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 70,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 72,167, 5,
+ 0, 0, 0, 0, 8, 69,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,
+117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,254,
+143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 35, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 33, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 72,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 73,167, 5, 0, 0, 0, 0,168, 70,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,
+105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,
+105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 67,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,255,187, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 73,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 75,167, 5,
+ 0, 0, 0, 0, 72, 72,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,121,109,109,
+101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,253,
+143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 75,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 77,167, 5, 0, 0, 0, 0,232, 73,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,
+101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,
+101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,184, 36, 28, 7, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,252,143, 0, 68, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 77,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,136, 75,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
+ 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104,
+ 32, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,251,
+143, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 40,235,156, 8, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 37, 28, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,232, 42, 28, 7, 0, 0, 0, 0, 40,253, 27, 7, 0, 0, 0, 0, 88,235, 27, 7, 0, 0, 0, 0,
-184,239, 27, 7, 0, 0, 0, 0, 40,240, 27, 7, 0, 0, 0, 0,248,237, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 15, 15,128, 4, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,100,251, 6, 0, 0, 0, 0,200, 41, 28, 7, 0, 0, 0, 0,200, 41, 28, 7, 0, 0, 0, 0,232, 38, 28, 7, 0, 0, 0, 0,
- 88, 40, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 62,106, 7, 0, 0, 0, 0,
-200,112,104, 7, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 38, 28, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 88, 40, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,143, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,144, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,143, 68, 0, 0,200, 65, 0,224,143, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,128, 4, 26, 0,128, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-128, 4, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,102,251, 6, 0, 0, 0, 0,136,229,156, 8, 0, 0, 0, 0,136,229,156, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 69,106, 7, 0, 0, 0, 0,152, 71,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 40, 28, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 38, 28, 7, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,
- 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,127, 4, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2,
- 4, 0, 0, 4, 8, 0,128, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,127, 4, 0, 0, 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-128, 4, 62, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,101,251, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 72,106, 7, 0, 0, 0, 0, 40, 80,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,200, 41, 28, 7, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 78,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216, 81,167, 5, 0, 0, 0, 0,216, 57,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,128,178, 67, 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,167, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,237, 63, 4, 0, 0, 0, 0,200, 86,170, 5, 0, 0, 0, 0,200, 86,170, 5,
+ 0, 0, 0, 0, 56, 80,167, 5, 0, 0, 0, 0, 56, 80,167, 5, 0, 0, 0, 0,232, 50,127, 5, 0, 0, 0, 0, 56,210,129, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 80,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,238, 63, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,
+116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,
+116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,105,116,109,111,100,101, 0,101, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 81,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 72, 83,167, 5,
+ 0, 0, 0, 0,200, 78,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,
+162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
+ 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 6, 0, 0,
+ 95, 6, 0, 0,167, 0, 0, 0,247, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,231, 63, 4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 42, 28, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,104,227, 28, 7, 0, 0, 0, 0,248, 37, 28, 7, 0, 0, 0, 0,216,238, 27, 7, 0, 0, 0, 0,
-104,238, 27, 7, 0, 0, 0, 0,136,237, 27, 7, 0, 0, 0, 0, 72,239, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-129, 4, 0, 0, 78, 5, 0, 0, 49, 2, 0, 0,136, 2, 0, 0, 3, 3,206, 0, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,
- 40, 97,251, 6, 0, 0, 0, 0,184, 46, 28, 7, 0, 0, 0, 0,184, 46, 28, 7, 0, 0, 0, 0,216, 43, 28, 7, 0, 0, 0, 0,
- 72, 45, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,113,104, 7, 0, 0, 0, 0,
- 8, 67,106, 7, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 43, 28, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 72, 45, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 78, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 77, 67, 0, 0,200, 65, 0, 0, 77, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,206, 0, 26, 0,206, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-129, 4, 0, 0, 78, 5, 0, 0,111, 2, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-206, 0, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56, 99,251, 6, 0, 0, 0, 0, 72,208, 87, 8, 0, 0, 0, 0, 72,208, 87, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 83,106, 7, 0, 0, 0, 0,136, 85,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 45, 28, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 43, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0,
- 0, 0,184, 65, 0, 0, 84, 67, 0, 0, 48,194, 0, 0, 0, 0,189, 0, 0, 0,206, 0, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0,
- 0, 0, 0, 0,188, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,188, 0, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3,
- 0, 0, 12, 4, 6, 0,206, 0, 62, 0,189, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-129, 4, 0, 0, 78, 5, 0, 0, 49, 2, 0, 0,110, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-206, 0, 62, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 98,251, 6, 0, 0, 0, 0,152, 9, 68, 8, 0, 0, 0, 0,152, 9, 68, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200, 86,106, 7, 0, 0, 0, 0, 56, 89,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,184, 46, 28, 7, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 83,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,216, 81,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,
+ 95, 6, 0, 0,167, 0, 0, 0,247, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 5, 81, 3,
+ 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,230, 63, 4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216,185, 89, 8, 0, 0, 0, 0,216,185, 89, 8, 0, 0, 0, 0, 24, 48, 28, 7, 0, 0, 0, 0,
- 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,
- 24, 48, 28, 7, 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,120, 48, 28, 7, 0, 0, 0, 0,
- 68, 65, 84, 65,160,178, 0, 0,120, 48, 28, 7, 0, 0, 0, 0,237, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,
-120,101, 30, 7, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,
-120,101, 30, 7, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,152,137, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,120,151, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-136,173, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,144, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-104,123, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,
-184,212, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 3, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152, 25, 27, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-168, 6, 29, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,158, 29, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 22, 27, 7, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248,222, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56,249, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56, 28, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248, 36, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56, 63, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248, 71, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56, 98, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248,106, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56,133, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248,141, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56,168, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248,176, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
- 56,203, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-248,211, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,220, 31, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
- 88,122, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,123, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,
- 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,
-248,130, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,
-216,144, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-152, 25, 27, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,125, 27, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,125, 27, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,125, 27, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,125, 27, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,125, 27, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-136,125, 27, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 8,234, 27, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-168, 6, 29, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,158, 29, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-152,158, 29, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,158, 29, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-152,158, 29, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,158, 29, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-152,158, 29, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,158, 29, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-152,158, 29, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,158, 29, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-152,158, 29, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 40, 53, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
-168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,
-168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,
-168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,
-168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
-168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,
-168, 22, 27, 7, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,
- 40,128, 30, 7, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-104,227, 28, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 42, 28, 7, 0, 0, 0, 0,
-184,239, 27, 7, 0, 0, 0, 0, 24,237, 27, 7, 0, 0, 0, 0,104,238, 27, 7, 0, 0, 0, 0, 40,240, 27, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 4, 0, 0, 89, 0, 0, 0,136, 2, 0, 0, 1, 1,128, 4, 48, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 8, 0, 40,103,251, 6, 0, 0, 0, 0,104, 4, 29, 7, 0, 0, 0, 0,104, 4, 29, 7, 0, 0, 0, 0,
- 88,228, 28, 7, 0, 0, 0, 0, 56,255, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 67,106, 7, 0, 0, 0, 0,216, 90,106, 7, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,228, 28, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,200,229, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,144, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 4, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,224,143, 68, 0, 0,200, 65, 0,224,143, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,128, 4, 26, 0,128, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 4, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,113,251, 6, 0, 0, 0, 0,136, 39, 68, 8, 0, 0, 0, 0,136, 39, 68, 8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 94,106, 7, 0, 0, 0, 0,184, 98,106, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,229, 28, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,184,250, 28, 7, 0, 0, 0, 0, 88,228, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0,192, 5,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 1, 0,159,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 62, 1,143, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 75, 1, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 62, 1, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 72,110,251, 6, 0, 0, 0, 0,216,107,154, 8, 0, 0, 0, 0,216,107,154, 8, 0, 0, 0, 0,
- 56,231, 28, 7, 0, 0, 0, 0, 24,249, 28, 7, 0, 0, 0, 0,248, 99,106, 7, 0, 0, 0, 0,104,102,106, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,231, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,216,232, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,190,243, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,
-100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,
-100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,216,232, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,234, 28, 7, 0, 0, 0, 0,
- 56,231, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,114,117,115,104, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,254,143, 0,115, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,234, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 24,236, 28, 7, 0, 0, 0, 0,216,232, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,
-111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,
-111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,254,143, 0, 61, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 24,236, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,237, 28, 7, 0, 0, 0, 0,
-120,234, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114,111,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,254,143, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,237, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 88,239, 28, 7, 0, 0, 0, 0, 24,236, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117,
-114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117,
-114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 88,239, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,240, 28, 7, 0, 0, 0, 0,
-184,237, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,112,112,101, 97,114, 97,110,
- 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,253,143, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200,229,129, 5, 0, 0, 0, 0,248,228,129, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 84,167, 5,
+ 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,184, 84,167, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142,187,242, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,142, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62,
+ 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,
+166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62,
+ 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63,
+ 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, 51,120,173,192,115,208,213, 64, 0, 0,128, 63,178,157,229, 62,
+ 53, 8, 67,191,116,169, 81,191,184,158, 81,191,117, 90,127, 63,194, 3,188, 62,158, 53,185, 62, 35, 44,185, 62,145,180,109,188,
+174, 65,217, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65,100,240,191, 62,
+110,116, 85, 63, 64,185, 70,188, 0, 0, 82,180, 51,239, 88,190, 2, 33,209, 61,210,167,241, 62, 0, 0, 88, 51,197,112,117,194,
+178,208,216, 65,220,158, 5,194,231,251,159,192,221, 54,114, 66, 29,247,213,193, 58,221, 3, 66, 25, 4,160, 64, 68,239,209, 62,
+ 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,
+166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,178,157,229, 62,
+ 53, 8, 67,191,116,169, 81,191,184,158, 81,191,117, 90,127, 63,194, 3,188, 62,158, 53,185, 62, 35, 44,185, 62,145,180,109,188,
+174, 65,217, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,240, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,152,242, 28, 7, 0, 0, 0, 0, 88,239, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,101,120,112, 97,
-105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,101,120,112, 97,
-105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,253,143, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,152,242, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,244, 28, 7, 0, 0, 0, 0,
-248,240, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,117,114,101, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,254,143, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,191,178, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,191,178, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,154,191,178, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63,
+ 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,134,210,162, 58,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 85,152,137, 66,113, 27,126, 66, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,120, 88,167, 5, 0, 0, 0, 0,175, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,244, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,216,245, 28, 7, 0, 0, 0, 0,152,242, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0,
+ 1, 0, 3, 0, 8, 24,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,184, 90,167, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104,170,167, 5,
+ 0, 0, 0, 0,104, 63,166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,
+109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 92,167, 5, 0, 0, 0, 0,184, 97,167, 5,
+ 0, 0, 0, 0, 40, 98,167, 5, 0, 0, 0, 0,232,106,167, 5, 0, 0, 0, 0, 88,107,167, 5, 0, 0, 0, 0,120,163,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 92,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 92,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,120, 92,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 92,167, 5, 0, 0, 0, 0, 8, 92,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 92,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 93,167, 5, 0, 0, 0, 0,120, 92,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 93,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,200, 93,167, 5, 0, 0, 0, 0,232, 92,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 93,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 94,167, 5,
+ 0, 0, 0, 0, 88, 93,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0, 56, 94,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 94,167, 5, 0, 0, 0, 0,200, 93,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 94,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 95,167, 5, 0, 0, 0, 0, 56, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 95,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0,168, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 95,167, 5,
+ 0, 0, 0, 0, 24, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,248, 95,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 96,167, 5, 0, 0, 0, 0,136, 95,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 96,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0,248, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 72, 97,167, 5, 0, 0, 0, 0,104, 96,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,234, 3,
+ 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 97,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 97,167, 5,
+ 0, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,140, 1, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,184, 97,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 97,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 98,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 98,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 92,167, 5,
+ 0, 0, 0, 0,232, 92,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 98,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 99,167, 5, 0, 0, 0, 0, 40, 98,167, 5, 0, 0, 0, 0,120, 92,167, 5,
+ 0, 0, 0, 0,200, 93,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 99,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 99,167, 5, 0, 0, 0, 0,152, 98,167, 5, 0, 0, 0, 0,232, 92,167, 5,
+ 0, 0, 0, 0, 56, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 99,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 99,167, 5, 0, 0, 0, 0, 8, 99,167, 5, 0, 0, 0, 0,200, 93,167, 5,
+ 0, 0, 0, 0, 56, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 99,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,100,167, 5, 0, 0, 0, 0,120, 99,167, 5, 0, 0, 0, 0,200, 93,167, 5,
+ 0, 0, 0, 0,168, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,100,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,100,167, 5, 0, 0, 0, 0,232, 99,167, 5, 0, 0, 0, 0,168, 94,167, 5,
+ 0, 0, 0, 0, 24, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,100,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,101,167, 5, 0, 0, 0, 0, 88,100,167, 5, 0, 0, 0, 0, 88, 93,167, 5,
+ 0, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,101,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,101,167, 5, 0, 0, 0, 0,200,100,167, 5, 0, 0, 0, 0, 24, 95,167, 5,
+ 0, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,101,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,102,167, 5, 0, 0, 0, 0, 56,101,167, 5, 0, 0, 0, 0, 8, 92,167, 5,
+ 0, 0, 0, 0,168, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,102,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,102,167, 5, 0, 0, 0, 0,168,101,167, 5, 0, 0, 0, 0, 8, 92,167, 5,
+ 0, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,102,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,102,167, 5, 0, 0, 0, 0, 24,102,167, 5, 0, 0, 0, 0, 56, 94,167, 5,
+ 0, 0, 0, 0,248, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,102,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,103,167, 5, 0, 0, 0, 0,136,102,167, 5, 0, 0, 0, 0, 88, 93,167, 5,
+ 0, 0, 0, 0,248, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,103,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,103,167, 5, 0, 0, 0, 0,248,102,167, 5, 0, 0, 0, 0, 24, 95,167, 5,
+ 0, 0, 0, 0,248, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,103,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,104,167, 5, 0, 0, 0, 0,104,103,167, 5, 0, 0, 0, 0,104, 96,167, 5,
+ 0, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,104,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,104,167, 5, 0, 0, 0, 0,216,103,167, 5, 0, 0, 0, 0, 56, 94,167, 5,
+ 0, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,104,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,105,167, 5, 0, 0, 0, 0, 72,104,167, 5, 0, 0, 0, 0,248, 95,167, 5,
+ 0, 0, 0, 0,104, 96,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,105,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,105,167, 5, 0, 0, 0, 0,184,104,167, 5, 0, 0, 0, 0,168, 94,167, 5,
+ 0, 0, 0, 0, 72, 97,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,105,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,106,167, 5, 0, 0, 0, 0, 40,105,167, 5, 0, 0, 0, 0,104, 96,167, 5,
+ 0, 0, 0, 0, 72, 97,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,106,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,106,167, 5, 0, 0, 0, 0,152,105,167, 5, 0, 0, 0, 0,200, 93,167, 5,
+ 0, 0, 0, 0,184, 97,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,106,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,106,167, 5, 0, 0, 0, 0, 8,106,167, 5, 0, 0, 0, 0,216, 96,167, 5,
+ 0, 0, 0, 0,184, 97,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,106,167, 5,
+ 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,106,167, 5, 0, 0, 0, 0, 72, 97,167, 5,
+ 0, 0, 0, 0,184, 97,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,107,167, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40,111,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 93,167, 5,
+ 0, 0, 0, 0,120, 92,167, 5, 0, 0, 0, 0,232, 92,167, 5, 0, 0, 0, 0, 56, 94,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,169,167, 5, 0, 0, 0, 0,216,169,167, 5, 0, 0, 0, 0, 72,108,167, 5,
+ 0, 0, 0, 0,184,109,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,108,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,184,109,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,109,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,108,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0,
+ 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,216,245, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,247, 28, 7, 0, 0, 0, 0,
- 56,244, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,121,109,109,101,116,114,121,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40,111,167, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0,184,135,167, 5, 0, 0, 0, 0, 88,107,167, 5, 0, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0, 24, 95,167, 5,
+ 0, 0, 0, 0,248, 95,167, 5, 0, 0, 0, 0, 88, 93,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,120,134,167, 5, 0, 0, 0, 0,120,134,167, 5, 0, 0, 0, 0, 24,112,167, 5, 0, 0, 0, 0,136,113,167, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,253,143, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,112,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136,113,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67,
+ 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0,114, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0,
+ 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,247, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 24,249, 28, 7, 0, 0, 0, 0,216,245, 28, 7, 0, 0, 0, 0, 8,193,243, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,113,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 24,112,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,
+255,127,166, 67,255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,
+ 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
+ 6, 0, 94, 1,114, 1, 77, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,
+126, 7, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,114, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,114,167, 5, 0, 0, 0, 0,216,132,167, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,114,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,116,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,
+101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,
+ 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,252,143, 0, 68, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,116,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,118,167, 5, 0, 0, 0, 0,248,114,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 24,249, 28, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,247, 28, 7, 0, 0, 0, 0,120,195,243, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,251,143, 0,161, 0,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,250, 28, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,200,253, 28, 7, 0, 0, 0, 0,200,229, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,115, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,111,251, 6, 0, 0, 0, 0, 8, 95, 68, 8, 0, 0, 0, 0, 8, 95, 68, 8, 0, 0, 0, 0,
- 40,252, 28, 7, 0, 0, 0, 0, 40,252, 28, 7, 0, 0, 0, 0,168,103,106, 7, 0, 0, 0, 0, 24,106,106, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,252, 28, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,112,251, 6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,118,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,119,167, 5,
+ 0, 0, 0, 0,152,116,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,
+114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,
+ 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84,111,103,103,108,101, 32, 69,100,105,116,109,111,100,101, 0,101, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,119,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,121,167, 5, 0, 0, 0, 0, 56,118,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,200,253, 28, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 56,255, 28, 7, 0, 0, 0, 0,
-184,250, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0, 96,158,196, 0,128,142,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,
-214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 4, 0, 0,127, 4, 0, 0,
-115, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0,
- 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,105,251, 6, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 56,255, 28, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,253, 28, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,121,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,123,167, 5,
+ 0, 0, 0, 0,216,119,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105,
+ 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,
+ 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,123,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,124,167, 5, 0, 0, 0, 0,120,121,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,127, 4, 0, 0,
-115, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 3, 22, 2, 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,104,251, 6, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216,139,106, 7, 0, 0, 0, 0, 8,139,106, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 0, 29, 7, 0, 0, 0, 0,
- 68, 65, 84, 65,112, 3, 0, 0,168, 0, 29, 7, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 9, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-142, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,
-184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63,
- 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,
-176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190,
- 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, 51,120,173,192,115,208,213, 64, 0, 0,128, 63,178,157,229, 62, 95,247, 80,191,
-116,169, 81,191,184,158, 81,191,117, 90,127, 63,147,114,201, 62,158, 53,185, 62, 35, 44,185, 62,145,180,109,188, 85,199,232, 63,
-218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 39,240,191, 62,124,116, 85, 63,
- 96,189, 70,188, 0, 0,185,180,248,119, 74,190, 7, 47,195, 61,166,138,225, 62, 0, 0,132, 51,197,112,117,194,178,208,216, 65,
-221,158, 5,194,231,251,159,192,221, 54,114, 66, 29,247,213,193, 59,221, 3, 66, 25, 4,160, 64, 68,239,209, 62, 51,177,205,190,
-184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63,
- 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,178,157,229, 62, 95,247, 80,191,
-116,169, 81,191,184,158, 81,191,117, 90,127, 63,147,114,201, 62,158, 53,185, 62, 35, 44,185, 62,145,180,109,188, 85,199,232, 63,
-218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,124,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,126,167, 5,
+ 0, 0, 0, 0, 24,123,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,
+105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,
+ 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,126,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,127,167, 5, 0, 0, 0, 0,184,124,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
+101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,127,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,129,167, 5,
+ 0, 0, 0, 0, 88,126,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116,
+ 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,
+ 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,158, 4, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,158, 4, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-171,158, 4, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,
-237,203,148,190, 3,236,234,190, 33,210,111, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,125,155,241, 58, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 84,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,104, 4, 29, 7, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,
-248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,129,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,131,167, 5, 0, 0, 0, 0,248,127,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0,
- 8, 24,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 78, 0, 0, 8, 1, 0, 0,168, 6, 29, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184, 86, 29, 7, 0, 0, 0, 0,
- 8,234, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,
-111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 7, 29, 7, 0, 0, 0, 0,168, 13, 29, 7, 0, 0, 0, 0,
- 24, 14, 29, 7, 0, 0, 0, 0,216, 22, 29, 7, 0, 0, 0, 0, 72, 23, 29, 7, 0, 0, 0, 0,104, 79, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,248, 7, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 8, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-104, 8, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 8, 29, 7, 0, 0, 0, 0,248, 7, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 8, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 72, 9, 29, 7, 0, 0, 0, 0,104, 8, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 9, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-184, 9, 29, 7, 0, 0, 0, 0,216, 8, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 10, 29, 7, 0, 0, 0, 0,
- 72, 9, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 40, 10, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 10, 29, 7, 0, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 10, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 8, 11, 29, 7, 0, 0, 0, 0, 40, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 11, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-120, 11, 29, 7, 0, 0, 0, 0,152, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,120, 11, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 11, 29, 7, 0, 0, 0, 0,
- 8, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-232, 11, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 12, 29, 7, 0, 0, 0, 0,120, 11, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 12, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,200, 12, 29, 7, 0, 0, 0, 0,232, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 12, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 56, 13, 29, 7, 0, 0, 0, 0, 88, 12, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,234, 3, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 56, 13, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 13, 29, 7, 0, 0, 0, 0,
-200, 12, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-168, 13, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 13, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 14, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,136, 14, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 8, 29, 7, 0, 0, 0, 0,
-216, 8, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 14, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,248, 14, 29, 7, 0, 0, 0, 0, 24, 14, 29, 7, 0, 0, 0, 0,104, 8, 29, 7, 0, 0, 0, 0,
-184, 9, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 14, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104, 15, 29, 7, 0, 0, 0, 0,136, 14, 29, 7, 0, 0, 0, 0,216, 8, 29, 7, 0, 0, 0, 0,
- 40, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 15, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216, 15, 29, 7, 0, 0, 0, 0,248, 14, 29, 7, 0, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,
- 40, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 15, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 72, 16, 29, 7, 0, 0, 0, 0,104, 15, 29, 7, 0, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,
-152, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 16, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,184, 16, 29, 7, 0, 0, 0, 0,216, 15, 29, 7, 0, 0, 0, 0,152, 10, 29, 7, 0, 0, 0, 0,
- 8, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 16, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 40, 17, 29, 7, 0, 0, 0, 0, 72, 16, 29, 7, 0, 0, 0, 0, 72, 9, 29, 7, 0, 0, 0, 0,
-120, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 17, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,152, 17, 29, 7, 0, 0, 0, 0,184, 16, 29, 7, 0, 0, 0, 0, 8, 11, 29, 7, 0, 0, 0, 0,
-120, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 17, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 8, 18, 29, 7, 0, 0, 0, 0, 40, 17, 29, 7, 0, 0, 0, 0,248, 7, 29, 7, 0, 0, 0, 0,
-152, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 18, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,120, 18, 29, 7, 0, 0, 0, 0,152, 17, 29, 7, 0, 0, 0, 0,248, 7, 29, 7, 0, 0, 0, 0,
-120, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 18, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,232, 18, 29, 7, 0, 0, 0, 0, 8, 18, 29, 7, 0, 0, 0, 0, 40, 10, 29, 7, 0, 0, 0, 0,
-232, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 18, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 88, 19, 29, 7, 0, 0, 0, 0,120, 18, 29, 7, 0, 0, 0, 0, 72, 9, 29, 7, 0, 0, 0, 0,
-232, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 19, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,200, 19, 29, 7, 0, 0, 0, 0,232, 18, 29, 7, 0, 0, 0, 0, 8, 11, 29, 7, 0, 0, 0, 0,
-232, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 19, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 56, 20, 29, 7, 0, 0, 0, 0, 88, 19, 29, 7, 0, 0, 0, 0, 88, 12, 29, 7, 0, 0, 0, 0,
-200, 12, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 20, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,168, 20, 29, 7, 0, 0, 0, 0,200, 19, 29, 7, 0, 0, 0, 0, 40, 10, 29, 7, 0, 0, 0, 0,
-200, 12, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 20, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 24, 21, 29, 7, 0, 0, 0, 0, 56, 20, 29, 7, 0, 0, 0, 0,232, 11, 29, 7, 0, 0, 0, 0,
- 88, 12, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 21, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,136, 21, 29, 7, 0, 0, 0, 0,168, 20, 29, 7, 0, 0, 0, 0,152, 10, 29, 7, 0, 0, 0, 0,
- 56, 13, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 21, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,248, 21, 29, 7, 0, 0, 0, 0, 24, 21, 29, 7, 0, 0, 0, 0, 88, 12, 29, 7, 0, 0, 0, 0,
- 56, 13, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 21, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104, 22, 29, 7, 0, 0, 0, 0,136, 21, 29, 7, 0, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,
-168, 13, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 22, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216, 22, 29, 7, 0, 0, 0, 0,248, 21, 29, 7, 0, 0, 0, 0,200, 12, 29, 7, 0, 0, 0, 0,
-168, 13, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 22, 29, 7, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 22, 29, 7, 0, 0, 0, 0, 56, 13, 29, 7, 0, 0, 0, 0,
-168, 13, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72, 23, 29, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 24, 27, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,
-104, 8, 29, 7, 0, 0, 0, 0,216, 8, 29, 7, 0, 0, 0, 0, 40, 10, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 86, 29, 7, 0, 0, 0, 0, 40, 86, 29, 7, 0, 0, 0, 0, 56, 24, 29, 7, 0, 0, 0, 0,
-168, 25, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 24, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-168, 25, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 25, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 24, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3,
- 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24, 27, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-168, 51, 29, 7, 0, 0, 0, 0, 72, 23, 29, 7, 0, 0, 0, 0,120, 11, 29, 7, 0, 0, 0, 0, 8, 11, 29, 7, 0, 0, 0, 0,
-232, 11, 29, 7, 0, 0, 0, 0, 72, 9, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 50, 29, 7, 0, 0, 0, 0,104, 50, 29, 7, 0, 0, 0, 0, 8, 28, 29, 7, 0, 0, 0, 0,120, 29, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 8, 28, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,120, 29, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65,
- 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1,
- 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
-114, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,131,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,132,167, 5,
+ 0, 0, 0, 0,152,129,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,
+117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,
+ 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,120, 29, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 28, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,
-255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,
-114, 1, 77, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,114, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,132,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,131,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 30, 29, 7, 0, 0, 0, 0,200, 48, 29, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,232, 30, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 32, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120,134,167, 5, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 32, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 40, 34, 29, 7, 0, 0, 0, 0,232, 30, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,135,167, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40,143,167, 5, 0, 0, 0, 0, 40,111,167, 5, 0, 0, 0, 0, 8, 92,167, 5,
+ 0, 0, 0, 0,168, 94,167, 5, 0, 0, 0, 0, 24, 95,167, 5, 0, 0, 0, 0,136, 95,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 17, 17, 32, 6,140, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,142,167, 5, 0, 0, 0, 0,152,142,167, 5, 0, 0, 0, 0,168,136,167, 5,
+ 0, 0, 0, 0, 40,141,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,136,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 24,138,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 40, 34, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 35, 29, 7, 0, 0, 0, 0,
-136, 32, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,138,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 40,141,167, 5, 0, 0, 0, 0,168,136,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,185,195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,
+113, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,
+113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,139,167, 5,
+ 0, 0, 0, 0,136,139,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,139,167, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 35, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,104, 37, 29, 7, 0, 0, 0, 0, 40, 34, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0, 40,141,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,138,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,224,198,182,194,
+184,177,165, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70,
+ 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,114, 1, 51, 5,
+ 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,
+139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 72, 0, 0, 0,152,142,167, 5, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0, 40,143,167, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,149,167, 5, 0, 0, 0, 0,184,135,167, 5,
+ 0, 0, 0, 0,104, 96,167, 5, 0, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0, 56, 94,167, 5, 0, 0, 0, 0,248, 95,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 9, 9, 62, 2,
+ 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,146,167, 5, 0, 0, 0, 0,248,146,167, 5,
+ 0, 0, 0, 0, 24,144,167, 5, 0, 0, 0, 0,136,145,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,144,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136,145,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 61, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, 0, 0,200, 65, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,104, 37, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 39, 29, 7, 0, 0, 0, 0,
-200, 35, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105,
- 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,145,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,144,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, 86, 26, 3, 68, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 39, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,168, 40, 29, 7, 0, 0, 0, 0,104, 37, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
+ 61, 2, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60,
+ 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,248,146,167, 5,
+ 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,168, 40, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 42, 29, 7, 0, 0, 0, 0,
- 8, 39, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 42, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,232, 43, 29, 7, 0, 0, 0, 0,168, 40, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,232, 43, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 45, 29, 7, 0, 0, 0, 0,
- 72, 42, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111,
- 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 45, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 40, 47, 29, 7, 0, 0, 0, 0,232, 43, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,149,167, 5, 0, 0, 0, 0,215, 0, 0, 0,
+ 1, 0, 0, 0,120,163,167, 5, 0, 0, 0, 0, 40,143,167, 5, 0, 0, 0, 0, 72, 97,167, 5, 0, 0, 0, 0,184, 97,167, 5,
+ 0, 0, 0, 0,216, 96,167, 5, 0, 0, 0, 0,104, 96,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0,
+ 63, 5, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200,161,167, 5, 0, 0, 0, 0,200,161,167, 5, 0, 0, 0, 0,216,150,167, 5, 0, 0, 0, 0,152,156,167, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,150,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 72,152,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,126, 68,
+ 0, 0,200, 65, 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
+ 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0,
+ 63, 5, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0,
+ 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,152,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184,153,167, 5,
+ 0, 0, 0, 0,216,150,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0,
+ 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0,
+ 69, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 2,
+ 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,153,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,155,167, 5,
+ 0, 0, 0, 0, 72,152,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,
+231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
+ 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0,
+ 63, 5, 0, 0,167, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,155,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,156,167, 5,
+ 0, 0, 0, 0,184,153,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0,
+162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
+ 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 5, 0, 0,
+ 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 40, 47, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 48, 29, 7, 0, 0, 0, 0,
-136, 45, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,156,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40,155,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 48, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 47, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0,
+ 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 67, 2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,158,167, 5,
+ 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 8,158,167, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,104, 50, 29, 7, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, 0, 0, 5, 0,251,251, 0, 0, 92, 62, 55, 63, 56,186,224,190,
+237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,200,161,167, 5, 0, 0, 0, 0,175, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 51, 29, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 24, 59, 29, 7, 0, 0, 0, 0, 24, 27, 29, 7, 0, 0, 0, 0,248, 7, 29, 7, 0, 0, 0, 0,
-152, 10, 29, 7, 0, 0, 0, 0, 8, 11, 29, 7, 0, 0, 0, 0,120, 11, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 17, 17, 32, 6,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136, 58, 29, 7, 0, 0, 0, 0,136, 58, 29, 7, 0, 0, 0, 0,152, 52, 29, 7, 0, 0, 0, 0,
- 24, 57, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 52, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 8, 54, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0,
+ 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 54, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 24, 57, 29, 7, 0, 0, 0, 0,152, 52, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,185,195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0,
- 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 55, 29, 7, 0, 0, 0, 0,
-120, 55, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 55, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,163,167, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,232,149,167, 5, 0, 0, 0, 0,168, 94,167, 5, 0, 0, 0, 0,200, 93,167, 5, 0, 0, 0, 0,184, 97,167, 5,
+ 0, 0, 0, 0, 72, 97,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,
+233, 3, 0, 0, 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,167,167, 5,
+ 0, 0, 0, 0, 72,167,167, 5, 0, 0, 0, 0,104,164,167, 5, 0, 0, 0, 0,216,165,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,104,164,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216,165,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67,
+ 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1,
+ 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,
+166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,216,165,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,164,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196,
+ 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1,
+ 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,
+233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 24, 1, 0, 0, 72,167,167, 5, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 24, 57, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 54, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,224,198,182,194,184,177,165, 67,
- 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,
- 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,114, 1, 51, 5, 96, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,
-136, 58, 29, 7, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 24, 59, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 65, 29, 7, 0, 0, 0, 0,168, 51, 29, 7, 0, 0, 0, 0,
- 88, 12, 29, 7, 0, 0, 0, 0,200, 12, 29, 7, 0, 0, 0, 0, 40, 10, 29, 7, 0, 0, 0, 0,232, 11, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 9, 9, 62, 2, 93, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 62, 29, 7, 0, 0, 0, 0,232, 62, 29, 7, 0, 0, 0, 0,
- 8, 60, 29, 7, 0, 0, 0, 0,120, 61, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 60, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,120, 61, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 61, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 60, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67,
- 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, 86, 26, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0,
- 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68,
- 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 82,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,120, 82,137, 5, 0, 0, 0, 0,238, 0, 0, 0,
+ 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,168,168,167, 5, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,168,168,167, 5,
+ 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 19, 0, 0, 0,
+ 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 21, 0, 1, 0,
+ 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,210,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0,184,219,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184, 17,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0,248,232,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,255,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 88,226,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,205,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,204,168, 5, 0, 0, 0, 0, 21, 0, 0, 0,
+ 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,104,170,167, 5, 0, 0, 0, 0,211, 0, 0, 0,
+ 1, 0, 0, 0, 72,242,167, 5, 0, 0, 0, 0,184, 90,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83, 82, 77,111,116,105,111,110, 32, 84,114, 97, 99,107,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,171,167, 5,
+ 0, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0,216,177,167, 5, 0, 0, 0, 0, 72,185,167, 5, 0, 0, 0, 0,184,185,167, 5,
+ 0, 0, 0, 0,248,225,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,171,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 40,172,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,172,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,172,167, 5,
+ 0, 0, 0, 0,184,171,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 4, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,152,172,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,173,167, 5, 0, 0, 0, 0, 40,172,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 98, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,173,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0,152,172,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0, 8,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,174,167, 5,
+ 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 64, 4, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0, 88,174,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,174,167, 5, 0, 0, 0, 0,232,173,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,174,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0, 88,174,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 88, 5, 64, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0,200,174,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,176,167, 5,
+ 0, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6,108, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0,168,175,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,176,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 6,120, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2,120, 3,
+ 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 64, 4, 1, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,216,177,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,178,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40,172,167, 5, 0, 0, 0, 0,152,172,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 72,178,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,178,167, 5, 0, 0, 0, 0,216,177,167, 5,
+ 0, 0, 0, 0, 40,172,167, 5, 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,184,178,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,179,167, 5, 0, 0, 0, 0, 72,178,167, 5,
+ 0, 0, 0, 0,152,172,167, 5, 0, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 40,179,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,179,167, 5, 0, 0, 0, 0,184,178,167, 5,
+ 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,152,179,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,180,167, 5, 0, 0, 0, 0, 40,179,167, 5,
+ 0, 0, 0, 0,184,171,167, 5, 0, 0, 0, 0, 8,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 8,180,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,180,167, 5, 0, 0, 0, 0,152,179,167, 5,
+ 0, 0, 0, 0,184,171,167, 5, 0, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,120,180,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,180,167, 5, 0, 0, 0, 0, 8,180,167, 5,
+ 0, 0, 0, 0, 8,173,167, 5, 0, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,232,180,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,181,167, 5, 0, 0, 0, 0,120,180,167, 5,
+ 0, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 88,181,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,181,167, 5, 0, 0, 0, 0,232,180,167, 5,
+ 0, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,200,181,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,182,167, 5, 0, 0, 0, 0, 88,181,167, 5,
+ 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 56,182,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,182,167, 5, 0, 0, 0, 0,200,181,167, 5,
+ 0, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,168,182,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,183,167, 5, 0, 0, 0, 0, 56,182,167, 5,
+ 0, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 24,183,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,183,167, 5, 0, 0, 0, 0,168,182,167, 5,
+ 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,136,183,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,183,167, 5, 0, 0, 0, 0, 24,183,167, 5,
+ 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,248,183,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,184,167, 5, 0, 0, 0, 0,136,183,167, 5,
+ 0, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,104,184,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,184,167, 5, 0, 0, 0, 0,248,183,167, 5,
+ 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,216,184,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,185,167, 5, 0, 0, 0, 0,104,184,167, 5,
+ 0, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 72,185,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,184,167, 5,
+ 0, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0,184,185,167, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136,189,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0, 40,172,167, 5, 0, 0, 0, 0,152,172,167, 5, 0, 0, 0, 0,232,173,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 65, 4, 0, 0, 98, 4, 0, 0, 7, 7, 63, 6,
+ 34, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,241,167, 5, 0, 0, 0, 0,184,241,167, 5,
+ 0, 0, 0, 0,168,186,167, 5, 0, 0, 0, 0, 24,188,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,186,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,188,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,163, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 65, 4, 0, 0, 90, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,188,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,186,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,192,239, 68, 0, 0, 0, 0, 0, 0,200, 65, 0, 0, 0, 0, 0,192,197, 68, 0, 0,128, 64, 0, 0, 64, 65, 46, 6, 0, 0,
+ 63, 6, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+ 45, 6, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0, 63, 6, 8, 0, 46, 6, 8, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 91, 4, 0, 0, 98, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,189,167, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120,194,167, 5, 0, 0, 0, 0,184,185,167, 5, 0, 0, 0, 0,184,171,167, 5,
+ 0, 0, 0, 0, 56,175,167, 5, 0, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0, 8,173,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0,107, 0, 0, 0, 15, 15, 63, 6,108, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,193,167, 5, 0, 0, 0, 0, 88,193,167, 5, 0, 0, 0, 0,120,190,167, 5,
+ 0, 0, 0, 0,232,191,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,190,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,232,191,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,191,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,190,167, 5, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0,
+ 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 18, 0, 0, 0,
+ 81, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0,
+ 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 63, 6, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 26, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 6, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 88,193,167, 5, 0, 0, 0, 0,191, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,194,167, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56,210,167, 5, 0, 0, 0, 0,136,189,167, 5, 0, 0, 0, 0, 56,175,167, 5,
+ 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0,136,176,167, 5, 0, 0, 0, 0,168,175,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,109, 0, 0, 0,119, 3, 0, 0, 20, 20, 63, 6, 11, 3, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,208,167, 5, 0, 0, 0, 0,184,208,167, 5, 0, 0, 0, 0,104,195,167, 5,
+ 0, 0, 0, 0, 72,207,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,195,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,216,196,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 19, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 0, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,109, 0, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,196,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 72,198,167, 5, 0, 0, 0, 0,104,195,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 64, 30,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 30,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
+120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,
+120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,121, 2,143, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,255, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,160, 0,121, 2, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,198,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 88,201,167, 5, 0, 0, 0, 0,216,196,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
+119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,
+119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,135, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,199,167, 5,
+ 0, 0, 0, 0,184,199,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,199,167, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,232, 62, 29, 7, 0, 0, 0, 0,
-187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0, 88,201,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,104,204,167, 5, 0, 0, 0, 0, 72,198,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 64, 60,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 60,196,
+ 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,241, 2,143, 0,
+241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 5, 0, 0, 62, 6, 0, 0,135, 0, 0, 0,
+119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,241, 2, 0, 0, 4, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,202,167, 5, 0, 0, 0, 0,200,202,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,200,202,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110,
+ 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110,
+ 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,
+108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,204,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,216,205,167, 5, 0, 0, 0, 0, 88,201,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64,110,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,192,105,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,
+184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0,
+ 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,185, 3,160, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,205,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 72,207,167, 5, 0, 0, 0, 0,104,204,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193,
+ 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,207,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,205,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 0, 0, 0, 0, 0, 0,
+241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0,
+ 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,255, 4,241, 2,255, 4,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,160, 0, 0, 0,158, 5, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,255, 4,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,184,208,167, 5, 0, 0, 0, 0,197, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216, 65, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-104, 79, 29, 7, 0, 0, 0, 0, 24, 59, 29, 7, 0, 0, 0, 0, 56, 13, 29, 7, 0, 0, 0, 0,168, 13, 29, 7, 0, 0, 0, 0,
-200, 12, 29, 7, 0, 0, 0, 0, 88, 12, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,
-141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184, 77, 29, 7, 0, 0, 0, 0,184, 77, 29, 7, 0, 0, 0, 0,200, 66, 29, 7, 0, 0, 0, 0,136, 72, 29, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0, 56,210,167, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248,225,167, 5, 0, 0, 0, 0,120,194,167, 5,
+ 0, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0,104,177,167, 5, 0, 0, 0, 0,232,173,167, 5, 0, 0, 0, 0,136,176,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 62, 6, 0, 0,121, 3, 0, 0, 63, 4, 0, 0, 20, 20,110, 3,
+199, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,224,167, 5, 0, 0, 0, 0,120,224,167, 5,
+ 0, 0, 0, 0, 40,211,167, 5, 0, 0, 0, 0, 8,223,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,211,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,212,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 91, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+109, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 91, 68, 0, 0,200, 65, 0, 64, 91, 68, 0, 0,200, 65, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,110, 3, 26, 0,110, 3, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 62, 6, 0, 0,121, 3, 0, 0,146, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,212,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,214,167, 5, 0, 0, 0, 0, 40,211,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,128,178, 67, 0, 0, 84,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 84,194, 0, 0, 0, 0,143, 0, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 53, 0,143, 0, 53, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,214,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,217,167, 5, 0, 0, 0, 0,152,212,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,
+160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,120,215,167, 5, 0, 0, 0, 0,120,215,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,215,167, 5,
+ 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,
+114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,217,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,220,167, 5,
+ 0, 0, 0, 0, 8,214,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 45,195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0,
+ 6, 0,160, 0,173, 0,143, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,
+209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,218,167, 5, 0, 0, 0, 0,136,218,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,218,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80,
+ 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80,
+ 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,
+115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,
+143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,220,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152,221,167, 5, 0, 0, 0, 0, 24,217,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 27,195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+159, 0, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,160, 0,173, 0,160, 0,155, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,112, 3, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,173, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,221,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,223,167, 5, 0, 0, 0, 0, 40,220,167, 5, 0, 0, 0, 0, 0, 0, 32,193,
+ 0,128, 91, 68,171,170,132,194, 0, 0, 0, 0, 0, 0, 32,193, 0,128, 91, 68, 0, 0, 27,195, 0, 0, 0, 0,189, 2, 0, 0,
+206, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0,188, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+188, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72,255,255,127,127, 10,215, 35, 60,
+ 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 16, 0, 2, 4, 4, 0,206, 2,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 62, 6, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,206, 2,173, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,223,167, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,221,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 46, 2, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60,
+ 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0, 46, 2,173, 0, 46, 2,173, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,120,224,167, 5,
+ 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,200, 66, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 56, 68, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,126, 68, 0, 0,200, 65,
- 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,251, 3,
- 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,
-141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 56, 68, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168, 69, 29, 7, 0, 0, 0, 0,
-200, 66, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
-255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,
- 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,
-167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 2, 0, 0, 5, 0,
- 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,168, 69, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24, 71, 29, 7, 0, 0, 0, 0,
- 56, 68, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67,
- 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,
-120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,
-167, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0,
- 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,225,167, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56,210,167, 5, 0, 0, 0, 0, 24,176,167, 5, 0, 0, 0, 0,120,173,167, 5, 0, 0, 0, 0,104,177,167, 5,
+ 0, 0, 0, 0,248,176,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,121, 3, 0, 0,
+ 63, 4, 0, 0, 20, 20,208, 2,199, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,240,167, 5,
+ 0, 0, 0, 0, 56,240,167, 5, 0, 0, 0, 0,232,226,167, 5, 0, 0, 0, 0,200,238,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,232,226,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 88,228,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 52, 68, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 51, 68, 0, 0,200, 65, 0,192, 51, 68,
+ 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,208, 2, 26, 0,208, 2,
+ 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,121, 3, 0, 0,
+146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 24, 71, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136, 72, 29, 7, 0, 0, 0, 0,
-168, 69, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0, 0,109,196, 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,
-145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 5, 0, 0, 63, 5, 0, 0,
-167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0,
- 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0, 88,228,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200,229,167, 5, 0, 0, 0, 0,232,226,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 84,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 84,194,
+ 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 53, 0,143, 0,
+ 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0,
+ 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,136, 72, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 71, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,200,229,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216,232,167, 5, 0, 0, 0, 0, 88,228,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194,
+ 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,120, 0,143, 0,
+120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0,
+ 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,231,167, 5, 0, 0, 0, 0, 56,231,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0, 56,231,167, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116,
+ 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116,
+ 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,232,167, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,232,235,167, 5, 0, 0, 0, 0,200,229,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 45,195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
+172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,
+172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,173, 0,143, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,234,167, 5,
+ 0, 0, 0, 0, 72,234,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,234,167, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,
-167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 67, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 73, 29, 7, 0, 0, 0, 0,
- 68, 65, 84, 65,112, 3, 0, 0,248, 73, 29, 7, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,232,235,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 88,237,167, 5, 0, 0, 0, 0,216,232,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64,110,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,192,105,196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,185, 3,160, 0,
+167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0,
+ 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0, 88,237,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200,238,167, 5, 0, 0, 0, 0,232,235,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193,
+ 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 18, 0, 0, 0,207, 2, 0, 0, 0, 0, 0, 0,
+ 17, 0, 0, 0, 18, 0, 0, 0,207, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,
+255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,208, 2,173, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,147, 3, 0, 0,
+ 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2,173, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 1, 0, 0,200,238,167, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,237,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255,
+ 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0,144, 1,173, 0,144, 1,
+173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 56, 1, 0, 0, 56,240,167, 5, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 1, 0, 20, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, 0, 0, 5, 0,251,251, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190,
- 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,184, 77, 29, 7, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,
-248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0,
- 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, 72,242,167, 5, 0, 0, 0, 0,211, 0, 0, 0,
+ 1, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0,104,170,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,104, 79, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 65, 29, 7, 0, 0, 0, 0,152, 10, 29, 7, 0, 0, 0, 0,184, 9, 29, 7, 0, 0, 0, 0,168, 13, 29, 7, 0, 0, 0, 0,
- 56, 13, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,233, 3, 0, 0,
- 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 83, 29, 7, 0, 0, 0, 0,
- 56, 83, 29, 7, 0, 0, 0, 0, 88, 80, 29, 7, 0, 0, 0, 0,200, 81, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 88, 80, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200, 81, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,243,167, 5,
+ 0, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0,184,249,167, 5, 0, 0, 0, 0,232, 2,168, 5, 0, 0, 0, 0, 88, 3,168, 5,
+ 0, 0, 0, 0,184, 57,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,166, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,243,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 8,244,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,244,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,244,167, 5,
+ 0, 0, 0, 0,152,243,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,120,244,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,244,167, 5, 0, 0, 0, 0, 8,244,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,244,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0,120,244,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,200,245,167, 5, 0, 0, 0, 0,232,244,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,245,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,246,167, 5,
+ 0, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0,200,245,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,246,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 1,
+ 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,247,167, 5,
+ 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0, 68, 65, 84, 65,
+ 32, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0,136,247,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,248,167, 5,
+ 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 5,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0,212, 0, 0, 0,
+ 1, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,236, 2,
+ 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,184,249,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,250,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8,244,167, 5, 0, 0, 0, 0,120,244,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 40,250,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,250,167, 5, 0, 0, 0, 0,184,249,167, 5,
+ 0, 0, 0, 0, 8,244,167, 5, 0, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,152,250,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,251,167, 5, 0, 0, 0, 0, 40,250,167, 5,
+ 0, 0, 0, 0,120,244,167, 5, 0, 0, 0, 0,200,245,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 8,251,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,251,167, 5, 0, 0, 0, 0,152,250,167, 5,
+ 0, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0,200,245,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,120,251,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,251,167, 5, 0, 0, 0, 0, 8,251,167, 5,
+ 0, 0, 0, 0,200,245,167, 5, 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,232,251,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,252,167, 5, 0, 0, 0, 0,120,251,167, 5,
+ 0, 0, 0, 0,232,244,167, 5, 0, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 88,252,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,252,167, 5, 0, 0, 0, 0,232,251,167, 5,
+ 0, 0, 0, 0,152,243,167, 5, 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,200,252,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,253,167, 5, 0, 0, 0, 0, 88,252,167, 5,
+ 0, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 56,253,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,253,167, 5, 0, 0, 0, 0,200,252,167, 5,
+ 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,168,253,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,254,167, 5, 0, 0, 0, 0, 56,253,167, 5,
+ 0, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 24,254,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,254,167, 5, 0, 0, 0, 0,168,253,167, 5,
+ 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,136,254,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,254,167, 5, 0, 0, 0, 0, 24,254,167, 5,
+ 0, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,248,254,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,255,167, 5, 0, 0, 0, 0,136,254,167, 5,
+ 0, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,104,255,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,255,167, 5, 0, 0, 0, 0,248,254,167, 5,
+ 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,216,255,167, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72, 0,168, 5, 0, 0, 0, 0,104,255,167, 5,
+ 0, 0, 0, 0,200,245,167, 5, 0, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 72, 0,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184, 0,168, 5, 0, 0, 0, 0,216,255,167, 5,
+ 0, 0, 0, 0,232,244,167, 5, 0, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,184, 0,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 1,168, 5, 0, 0, 0, 0, 72, 0,168, 5,
+ 0, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 40, 1,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 1,168, 5, 0, 0, 0, 0,184, 0,168, 5,
+ 0, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,152, 1,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 2,168, 5, 0, 0, 0, 0, 40, 1,168, 5,
+ 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0, 8, 2,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 2,168, 5, 0, 0, 0, 0,152, 1,168, 5,
+ 0, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,120, 2,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 2,168, 5, 0, 0, 0, 0, 8, 2,168, 5,
+ 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,232, 2,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 2,168, 5,
+ 0, 0, 0, 0,152,243,167, 5, 0, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0, 88, 3,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 7,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 88,245,167, 5, 0, 0, 0, 0, 8,244,167, 5, 0, 0, 0, 0,120,244,167, 5, 0, 0, 0, 0,200,245,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7,
+ 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 64,168, 5, 0, 0, 0, 0,120, 64,168, 5,
+ 0, 0, 0, 0, 72, 4,168, 5, 0, 0, 0, 0,184, 5,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 4,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184, 5,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 5,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 4,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,192,239, 68, 0, 0, 0, 0, 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,110, 7, 0, 0,
+127, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+109, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40, 7,168, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184, 31,168, 5, 0, 0, 0, 0, 88, 3,168, 5, 0, 0, 0, 0,168,246,167, 5,
+ 0, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0,232,244,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 30,168, 5, 0, 0, 0, 0,120, 30,168, 5, 0, 0, 0, 0, 24, 8,168, 5,
+ 0, 0, 0, 0,136, 9,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 8,168, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,136, 9,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 9,168, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 8,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67, 0, 0, 61,196,
+ 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0,
+209, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,
+209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0,
+ 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 10,168, 5,
+ 0, 0, 0, 0,216, 28,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 10,168, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,152, 12,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-200, 81, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 80, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196, 0, 0, 0, 0,
- 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1, 49, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,
- 56, 83, 29, 7, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 84, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,152, 84, 29, 7, 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0,
- 14, 0, 0, 0, 14, 0, 0, 0,248, 84, 29, 7, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,248, 84, 29, 7, 0, 0, 0, 0,
-237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,
-120,101, 30, 7, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,
-120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,128, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-152,137, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,192, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-120,151, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,173, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-216,144, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104,123, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,122, 30, 7, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,
-120,101, 30, 7, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,184, 86, 29, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,
-152,158, 29, 7, 0, 0, 0, 0,168, 6, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 82, 77,111,116,105,111,110, 32, 84,114, 97, 99,107,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 88, 29, 7, 0, 0, 0, 0,
-184, 93, 29, 7, 0, 0, 0, 0, 40, 94, 29, 7, 0, 0, 0, 0,152,101, 29, 7, 0, 0, 0, 0, 8,102, 29, 7, 0, 0, 0, 0,
- 72,142, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 88, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-120, 88, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,120, 88, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 88, 29, 7, 0, 0, 0, 0,
- 8, 88, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-232, 88, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 89, 29, 7, 0, 0, 0, 0,120, 88, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 98, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 89, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,200, 89, 29, 7, 0, 0, 0, 0,232, 88, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 62, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 89, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 56, 90, 29, 7, 0, 0, 0, 0, 88, 89, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 56, 90, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 90, 29, 7, 0, 0, 0, 0,
-200, 89, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 64, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-168, 90, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 91, 29, 7, 0, 0, 0, 0, 56, 90, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 91, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,136, 91, 29, 7, 0, 0, 0, 0,168, 90, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88, 5, 64, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 91, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-248, 91, 29, 7, 0, 0, 0, 0, 24, 91, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,248, 91, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 92, 29, 7, 0, 0, 0, 0,
-136, 91, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6,108, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-104, 92, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0,248, 91, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 72, 93, 29, 7, 0, 0, 0, 0,104, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 62, 6,120, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 93, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-184, 93, 29, 7, 0, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2,120, 3, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,184, 93, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 64, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40, 94, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 94, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, 88, 29, 7, 0, 0, 0, 0,232, 88, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152, 94, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 95, 29, 7, 0, 0, 0, 0, 40, 94, 29, 7, 0, 0, 0, 0,
-120, 88, 29, 7, 0, 0, 0, 0,200, 89, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 8, 95, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 95, 29, 7, 0, 0, 0, 0,152, 94, 29, 7, 0, 0, 0, 0,
-232, 88, 29, 7, 0, 0, 0, 0, 56, 90, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120, 95, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 95, 29, 7, 0, 0, 0, 0, 8, 95, 29, 7, 0, 0, 0, 0,
-200, 89, 29, 7, 0, 0, 0, 0, 56, 90, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232, 95, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 96, 29, 7, 0, 0, 0, 0,120, 95, 29, 7, 0, 0, 0, 0,
- 8, 88, 29, 7, 0, 0, 0, 0, 88, 89, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 88, 96, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 96, 29, 7, 0, 0, 0, 0,232, 95, 29, 7, 0, 0, 0, 0,
- 8, 88, 29, 7, 0, 0, 0, 0,136, 91, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200, 96, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56, 97, 29, 7, 0, 0, 0, 0, 88, 96, 29, 7, 0, 0, 0, 0,
- 88, 89, 29, 7, 0, 0, 0, 0,248, 91, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 56, 97, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 97, 29, 7, 0, 0, 0, 0,200, 96, 29, 7, 0, 0, 0, 0,
-136, 91, 29, 7, 0, 0, 0, 0,248, 91, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-168, 97, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 98, 29, 7, 0, 0, 0, 0, 56, 97, 29, 7, 0, 0, 0, 0,
-136, 91, 29, 7, 0, 0, 0, 0,104, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 24, 98, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 98, 29, 7, 0, 0, 0, 0,168, 97, 29, 7, 0, 0, 0, 0,
-200, 89, 29, 7, 0, 0, 0, 0,104, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-136, 98, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248, 98, 29, 7, 0, 0, 0, 0, 24, 98, 29, 7, 0, 0, 0, 0,
- 56, 90, 29, 7, 0, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-248, 98, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104, 99, 29, 7, 0, 0, 0, 0,136, 98, 29, 7, 0, 0, 0, 0,
-248, 91, 29, 7, 0, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-104, 99, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216, 99, 29, 7, 0, 0, 0, 0,248, 98, 29, 7, 0, 0, 0, 0,
-104, 92, 29, 7, 0, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216, 99, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,100, 29, 7, 0, 0, 0, 0,104, 99, 29, 7, 0, 0, 0, 0,
-104, 92, 29, 7, 0, 0, 0, 0, 72, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 72,100, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,100, 29, 7, 0, 0, 0, 0,216, 99, 29, 7, 0, 0, 0, 0,
-216, 92, 29, 7, 0, 0, 0, 0, 72, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-184,100, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,101, 29, 7, 0, 0, 0, 0, 72,100, 29, 7, 0, 0, 0, 0,
-200, 89, 29, 7, 0, 0, 0, 0,184, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40,101, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,101, 29, 7, 0, 0, 0, 0,184,100, 29, 7, 0, 0, 0, 0,
- 56, 90, 29, 7, 0, 0, 0, 0,184, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152,101, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,101, 29, 7, 0, 0, 0, 0,
- 72, 93, 29, 7, 0, 0, 0, 0,184, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 8,102, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,105, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 89, 29, 7, 0, 0, 0, 0,120, 88, 29, 7, 0, 0, 0, 0,232, 88, 29, 7, 0, 0, 0, 0, 56, 90, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 65, 4, 0, 0, 98, 4, 0, 0, 7, 7, 63, 6, 34, 0, 1, 0,
- 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,158, 29, 7, 0, 0, 0, 0, 8,158, 29, 7, 0, 0, 0, 0,
-248,102, 29, 7, 0, 0, 0, 0,104,104, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,102, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,104,104, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 65, 4, 0, 0, 90, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,104, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,102, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68,
- 0, 0, 0, 0, 0, 0,200, 65, 0, 0, 0, 0, 0,192,197, 68, 0, 0,128, 64, 0, 0, 64, 65, 46, 6, 0, 0, 63, 6, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0, 63, 6, 8, 0, 46, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 91, 4, 0, 0, 98, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216,105, 29, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,200,110, 29, 7, 0, 0, 0, 0, 8,102, 29, 7, 0, 0, 0, 0, 8, 88, 29, 7, 0, 0, 0, 0,
-136, 91, 29, 7, 0, 0, 0, 0,248, 91, 29, 7, 0, 0, 0, 0, 88, 89, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0,107, 0, 0, 0, 15, 15, 63, 6,108, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168,109, 29, 7, 0, 0, 0, 0,168,109, 29, 7, 0, 0, 0, 0,200,106, 29, 7, 0, 0, 0, 0,
- 56,108, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,106, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 56,108, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,108, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200,106, 29, 7, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,
- 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 18, 0, 0, 0, 81, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2,
- 4, 0, 0, 4, 8, 0, 63, 6, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0, 26, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 63, 6, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,152, 12,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 14,168, 5, 0, 0, 0, 0,248, 10,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,
+110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,
+110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,168,109, 29, 7, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 14,168, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,216, 15,168, 5, 0, 0, 0, 0,152, 12,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,110, 29, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,136,126, 29, 7, 0, 0, 0, 0,216,105, 29, 7, 0, 0, 0, 0,136, 91, 29, 7, 0, 0, 0, 0,
-104, 92, 29, 7, 0, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0,248, 91, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0,109, 0, 0, 0,119, 3, 0, 0, 20, 20, 63, 6, 11, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8,125, 29, 7, 0, 0, 0, 0, 8,125, 29, 7, 0, 0, 0, 0,184,111, 29, 7, 0, 0, 0, 0,
-152,123, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,111, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 40,113, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 19, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 0, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0,109, 0, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,113, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-152,114, 29, 7, 0, 0, 0, 0,184,111, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 64, 30,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 30,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,120, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,120, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,160, 0,121, 2,143, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,159, 0, 0, 0,255, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 0,121, 2, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,216, 15,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 17,168, 5, 0, 0, 0, 0, 56, 14,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,
+109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,
+109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,114, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-168,117, 29, 7, 0, 0, 0, 0, 40,113, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,159, 0, 0, 0,135, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,116, 29, 7, 0, 0, 0, 0,
- 8,116, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,116, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 17,168, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 24, 19,168, 5, 0, 0, 0, 0,216, 15,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-168,117, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184,120, 29, 7, 0, 0, 0, 0,152,114, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 64, 60,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 60,196, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,241, 2,143, 0,241, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 5, 0, 0, 62, 6, 0, 0,135, 0, 0, 0,119, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,241, 2, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24,119, 29, 7, 0, 0, 0, 0, 24,119, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 24,119, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0, 24, 19,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 20,168, 5, 0, 0, 0, 0,120, 17,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,
+116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,
+116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,
+111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0, 20, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184, 20,168, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0, 88, 22,168, 5, 0, 0, 0, 0, 24, 19,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,120, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 40,122, 29, 7, 0, 0, 0, 0,168,117, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64,110,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 67, 0,192,105,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,184, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3,
- 0, 0, 2, 0, 6, 0,160, 0,185, 3,160, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 0, 0, 0,160, 0, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0, 88, 22,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 23,168, 5, 0, 0, 0, 0,184, 20,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,
+114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,
+114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,122, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-152,123, 29, 7, 0, 0, 0, 0,184,120, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,124, 1, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 0, 0, 0,160, 0, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 23,168, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,152, 25,168, 5, 0, 0, 0, 0, 88, 22,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,123, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,122, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0,
- 0, 0, 0, 4, 10, 0,255, 4,241, 2,255, 4,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 0, 0, 0,158, 5, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 4,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 8,125, 29, 7, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 17,200, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,152, 25,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 27,168, 5, 0, 0, 0, 0,248, 23,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116,
+ 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116,
+ 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0, 20, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 27,168, 5, 0, 0, 0, 0,214, 0, 0, 0,
+ 1, 0, 0, 0,216, 28,168, 5, 0, 0, 0, 0,152, 25,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-136,126, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72,142, 29, 7, 0, 0, 0, 0,200,110, 29, 7, 0, 0, 0, 0,
- 72, 93, 29, 7, 0, 0, 0, 0,184, 93, 29, 7, 0, 0, 0, 0, 56, 90, 29, 7, 0, 0, 0, 0,216, 92, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 62, 6, 0, 0,121, 3, 0, 0, 63, 4, 0, 0, 20, 20,110, 3,199, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,140, 29, 7, 0, 0, 0, 0,200,140, 29, 7, 0, 0, 0, 0,
-120,127, 29, 7, 0, 0, 0, 0, 88,139, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,127, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,232,128, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 91, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 91, 68, 0, 0,200, 65, 0, 64, 91, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,110, 3, 26, 0,110, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 62, 6, 0, 0,121, 3, 0, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,110, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,128, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 88,130, 29, 7, 0, 0, 0, 0,120,127, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0, 0, 84,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 84,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 53, 0,143, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,130, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,104,133, 29, 7, 0, 0, 0, 0,232,128, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,131, 29, 7, 0, 0, 0, 0,200,131, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,131, 29, 7, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0,
+ 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0,
+ 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 40,253,124, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 88, 1, 0, 0,216, 28,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 27,168, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,
+107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,
+107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,104,133, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,120,136, 29, 7, 0, 0, 0, 0,
- 88,130, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 45,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 0, 45,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,
-173, 0,143, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,
-147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,134, 29, 7, 0, 0, 0, 0,216,134, 29, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,216,134, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,
-103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,
-103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,
-101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120, 30,168, 5, 0, 0, 0, 0,180, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,136, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,232,137, 29, 7, 0, 0, 0, 0,104,133, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 0, 45,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 27,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,
- 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,160, 0,173, 0,160, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,112, 3, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0,173, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,137, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 88,139, 29, 7, 0, 0, 0, 0,120,136, 29, 7, 0, 0, 0, 0, 0, 0, 32,193, 0,128, 91, 68,
-171,170,132,194, 0, 0, 0, 0, 0, 0, 32,193, 0,128, 91, 68, 0, 0, 27,195, 0, 0, 0, 0,189, 2, 0, 0,206, 2, 0, 0,
- 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0,188, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,188, 2, 0, 0,
- 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72,255,255,127,127, 10,215, 35, 60, 0, 0, 72, 66,
- 74, 0, 0, 0, 0, 0, 0, 2, 16, 0, 2, 4, 4, 0,206, 2,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 62, 6, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,206, 2,173, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,139, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,137, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 2, 0, 0,
- 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68,
- 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0, 46, 2,173, 0, 46, 2,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200,140, 29, 7, 0, 0, 0, 0,
-197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0,184, 31,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72, 45,168, 5, 0, 0, 0, 0, 40, 7,168, 5,
+ 0, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0,136,247,167, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 1, 1,247, 2,
+ 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 43,168, 5, 0, 0, 0, 0,152, 43,168, 5,
+ 0, 0, 0, 0,168, 32,168, 5, 0, 0, 0, 0,104, 38,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 32,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24, 34,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 34,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136, 35,168, 5, 0, 0, 0, 0,168, 32,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,
+160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 35,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,248, 36,168, 5, 0, 0, 0, 0, 24, 34,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,
+160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 36,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,104, 38,168, 5, 0, 0, 0, 0,136, 35,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,
+180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0, 72,142, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,126, 29, 7, 0, 0, 0, 0,104, 92, 29, 7, 0, 0, 0, 0,200, 89, 29, 7, 0, 0, 0, 0,184, 93, 29, 7, 0, 0, 0, 0,
- 72, 93, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,121, 3, 0, 0, 63, 4, 0, 0,
- 20, 20,208, 2,199, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,156, 29, 7, 0, 0, 0, 0,
-136,156, 29, 7, 0, 0, 0, 0, 56,143, 29, 7, 0, 0, 0, 0, 24,155, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 56,143, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168,144, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 52, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,207, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 51, 68, 0, 0,200, 65, 0,192, 51, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,208, 2, 26, 0,208, 2, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,121, 3, 0, 0,146, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-168,144, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,146, 29, 7, 0, 0, 0, 0, 56,143, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 0, 84,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 84,194, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 53, 0,143, 0, 53, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 24,146, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,149, 29, 7, 0, 0, 0, 0,168,144, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,147, 29, 7, 0, 0, 0, 0,136,147, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-136,147, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,
-114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,
-114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,149, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 56,152, 29, 7, 0, 0, 0, 0, 24,146, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 45,195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,160, 0,173, 0,143, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,150, 29, 7, 0, 0, 0, 0,
-152,150, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,150, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 38,168, 5,
+ 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 36,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 56,152, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168,153, 29, 7, 0, 0, 0, 0, 40,149, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 64,110,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,192,105,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,185, 3,160, 0,167, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-168,153, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,155, 29, 7, 0, 0, 0, 0, 56,152, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 18, 0, 0, 0,207, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0,207, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,255,255,127,127,
- 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,208, 2,173, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2,173, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 39,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,216, 39,168, 5,
+ 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 74,141,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0,
+ 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,
+143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,
+142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,
+111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63,
+166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0,
+ 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182,252, 5,136,190,
+ 43, 33, 3, 62,235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,
+158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,
+143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63,
+166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0,
+ 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 24,155, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,153, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,144, 1, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0,144, 1,173, 0,144, 1,173, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-136,156, 29, 7, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 1, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,152,158, 29, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,
- 8,238, 29, 7, 0, 0, 0, 0,184, 86, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,159, 29, 7, 0, 0, 0, 0,
-152,165, 29, 7, 0, 0, 0, 0, 8,166, 29, 7, 0, 0, 0, 0, 56,175, 29, 7, 0, 0, 0, 0,168,175, 29, 7, 0, 0, 0, 0,
-184,230, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,159, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 88,160, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 88,160, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,160, 29, 7, 0, 0, 0, 0,
-232,159, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-200,160, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,161, 29, 7, 0, 0, 0, 0, 88,160, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,161, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,168,161, 29, 7, 0, 0, 0, 0,200,160, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,161, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 24,162, 29, 7, 0, 0, 0, 0, 56,161, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 24,162, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,162, 29, 7, 0, 0, 0, 0,
-168,161, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-136,162, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0, 24,162, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,104,163, 29, 7, 0, 0, 0, 0,136,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,163, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-216,163, 29, 7, 0, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 1, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,164, 29, 7, 0, 0, 0, 0,
-104,163, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 72,164, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,164, 29, 7, 0, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,164, 29, 7, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0, 72,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-152,165, 29, 7, 0, 0, 0, 0,184,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,236, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,152,165, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 8,166, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,166, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88,160, 29, 7, 0, 0, 0, 0,200,160, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120,166, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,166, 29, 7, 0, 0, 0, 0, 8,166, 29, 7, 0, 0, 0, 0,
- 88,160, 29, 7, 0, 0, 0, 0,168,161, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232,166, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,167, 29, 7, 0, 0, 0, 0,120,166, 29, 7, 0, 0, 0, 0,
-200,160, 29, 7, 0, 0, 0, 0, 24,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 88,167, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,167, 29, 7, 0, 0, 0, 0,232,166, 29, 7, 0, 0, 0, 0,
-168,161, 29, 7, 0, 0, 0, 0, 24,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200,167, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,168, 29, 7, 0, 0, 0, 0, 88,167, 29, 7, 0, 0, 0, 0,
- 24,162, 29, 7, 0, 0, 0, 0,136,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 56,168, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,168, 29, 7, 0, 0, 0, 0,200,167, 29, 7, 0, 0, 0, 0,
- 56,161, 29, 7, 0, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-168,168, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,169, 29, 7, 0, 0, 0, 0, 56,168, 29, 7, 0, 0, 0, 0,
-232,159, 29, 7, 0, 0, 0, 0,104,163, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 24,169, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,169, 29, 7, 0, 0, 0, 0,168,168, 29, 7, 0, 0, 0, 0,
-168,161, 29, 7, 0, 0, 0, 0,104,163, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-136,169, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,169, 29, 7, 0, 0, 0, 0, 24,169, 29, 7, 0, 0, 0, 0,
-136,162, 29, 7, 0, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-248,169, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,170, 29, 7, 0, 0, 0, 0,136,169, 29, 7, 0, 0, 0, 0,
-248,162, 29, 7, 0, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-104,170, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,170, 29, 7, 0, 0, 0, 0,248,169, 29, 7, 0, 0, 0, 0,
-104,163, 29, 7, 0, 0, 0, 0, 72,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216,170, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,171, 29, 7, 0, 0, 0, 0,104,170, 29, 7, 0, 0, 0, 0,
-216,163, 29, 7, 0, 0, 0, 0, 72,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 72,171, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,171, 29, 7, 0, 0, 0, 0,216,170, 29, 7, 0, 0, 0, 0,
-248,162, 29, 7, 0, 0, 0, 0,184,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-184,171, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,172, 29, 7, 0, 0, 0, 0, 72,171, 29, 7, 0, 0, 0, 0,
-136,162, 29, 7, 0, 0, 0, 0,184,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40,172, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,172, 29, 7, 0, 0, 0, 0,184,171, 29, 7, 0, 0, 0, 0,
- 24,162, 29, 7, 0, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152,172, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,173, 29, 7, 0, 0, 0, 0, 40,172, 29, 7, 0, 0, 0, 0,
- 56,161, 29, 7, 0, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 8,173, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,173, 29, 7, 0, 0, 0, 0,152,172, 29, 7, 0, 0, 0, 0,
-184,164, 29, 7, 0, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120,173, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,173, 29, 7, 0, 0, 0, 0, 8,173, 29, 7, 0, 0, 0, 0,
-168,161, 29, 7, 0, 0, 0, 0,152,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232,173, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,174, 29, 7, 0, 0, 0, 0,120,173, 29, 7, 0, 0, 0, 0,
-136,162, 29, 7, 0, 0, 0, 0,152,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 88,174, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,174, 29, 7, 0, 0, 0, 0,232,173, 29, 7, 0, 0, 0, 0,
- 72,164, 29, 7, 0, 0, 0, 0,152,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200,174, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,175, 29, 7, 0, 0, 0, 0, 88,174, 29, 7, 0, 0, 0, 0,
-104,163, 29, 7, 0, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 56,175, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,174, 29, 7, 0, 0, 0, 0,
-232,159, 29, 7, 0, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-168,175, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120,179, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,161, 29, 7, 0, 0, 0, 0, 88,160, 29, 7, 0, 0, 0, 0,200,160, 29, 7, 0, 0, 0, 0, 24,162, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 93, 0, 1, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,237, 29, 7, 0, 0, 0, 0,120,237, 29, 7, 0, 0, 0, 0,
-152,176, 29, 7, 0, 0, 0, 0, 8,178, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,176, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 8,178, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,178, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,176, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68,
- 0, 0, 0, 0, 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,110, 7, 0, 0,127, 7, 0, 0,
- 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0,
- 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,179, 29, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 8,204, 29, 7, 0, 0, 0, 0,168,175, 29, 7, 0, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0,
-184,164, 29, 7, 0, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0, 56,161, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200,202, 29, 7, 0, 0, 0, 0,200,202, 29, 7, 0, 0, 0, 0,104,180, 29, 7, 0, 0, 0, 0,
-216,181, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,180, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-216,181, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,181, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104,180, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67, 0, 0, 61,196, 0, 0, 0, 0,
- 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,
- 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,183, 29, 7, 0, 0, 0, 0,
- 40,201, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,183, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-232,184, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-232,184, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,186, 29, 7, 0, 0, 0, 0, 72,183, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,
+214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 96, 1, 0, 0,152, 43,168, 5, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,
+205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,
+ 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,186, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
- 40,188, 29, 7, 0, 0, 0, 0,232,184, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72, 45,168, 5,
+ 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 51,168, 5, 0, 0, 0, 0,184, 31,168, 5, 0, 0, 0, 0,152,243,167, 5,
+ 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0,136,247,167, 5, 0, 0, 0, 0,168,246,167, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5,104, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 49,168, 5, 0, 0, 0, 0,136, 49,168, 5, 0, 0, 0, 0, 56, 46,168, 5,
+ 0, 0, 0, 0,168, 47,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 46,168, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0,168, 47,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67, 0, 0, 0, 0,
+ 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 47,168, 5, 0, 0, 0, 0,216, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 46,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0,
+ 0, 0, 51, 67, 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0,240, 5, 0, 0, 0, 0, 0, 0,
+ 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0,
+ 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0,
+ 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 49,168, 5, 0, 0, 0, 0,194, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88,220,132, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 88,220,132, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,136, 49,168, 5, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 40,188, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200,189, 29, 7, 0, 0, 0, 0,136,186, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0,
+ 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 49,168, 5, 0, 0, 0, 0, 24, 49,168, 5, 0, 0, 0, 0,
+ 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,189, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-104,191, 29, 7, 0, 0, 0, 0, 40,188, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 4, 0, 0, 8, 4, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 51,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
+184, 57,168, 5, 0, 0, 0, 0, 72, 45,168, 5, 0, 0, 0, 0,104,248,167, 5, 0, 0, 0, 0, 56,246,167, 5, 0, 0, 0, 0,
+200,245,167, 5, 0, 0, 0, 0,216,248,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,
+237, 2, 0, 0,167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 55,168, 5, 0, 0, 0, 0, 40, 55,168, 5, 0, 0, 0, 0, 72, 52,168, 5, 0, 0, 0, 0,184, 53,168, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-104,191, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,193, 29, 7, 0, 0, 0, 0,200,189, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,
-108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0, 72, 52,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184, 53,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65,
+ 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1,
+ 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,
+237, 2, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,193, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-168,194, 29, 7, 0, 0, 0, 0,104,191, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,184, 53,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 52,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,190, 67,
+ 0, 0, 15,195, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,142, 1,
+161, 0,125, 1,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,
+ 7, 3, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,161, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 24, 1, 0, 0, 40, 55,168, 5, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-168,194, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,196, 29, 7, 0, 0, 0, 0, 8,193, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,196, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
-232,197, 29, 7, 0, 0, 0, 0,168,194, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 52,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,216, 52,137, 5, 0, 0, 0, 0,
+238, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,136, 56,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,
+136, 56,168, 5, 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0,
+ 19, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0,
+ 21, 0, 1, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,210,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,184,219,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184, 17,169, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,248,232,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,255,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 88,226,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,205,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,204,168, 5, 0, 0, 0, 0,
+ 21, 0, 0, 0, 1, 0, 1, 0,120,184,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184, 57,168, 5, 0, 0, 0, 0,
+215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 51,168, 5, 0, 0, 0, 0, 24,247,167, 5, 0, 0, 0, 0,
+ 88,245,167, 5, 0, 0, 0, 0, 72,249,167, 5, 0, 0, 0, 0,248,247,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136, 61,168, 5, 0, 0, 0, 0,136, 61,168, 5, 0, 0, 0, 0,168, 58,168, 5, 0, 0, 0, 0,
+ 24, 60,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 58,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 24, 60,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0, 0, 62, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0,192, 61, 68, 0, 0,200, 65, 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 0, 10, 0,248, 2, 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 60,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,168, 58,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,
+248,150, 23, 68, 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 36, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0,
+ 0, 0, 0, 4, 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,136, 61,168, 5, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0,243, 1, 0, 0,
+ 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-232,197, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,199, 29, 7, 0, 0, 0, 0, 72,196, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,199, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
- 40,201, 29, 7, 0, 0, 0, 0,232,197, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40,253,124, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 40,201, 29, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,199, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 78, 0, 0, 8, 1, 0, 0, 8, 65,168, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,136,168, 5, 0, 0, 0, 0,
+ 72,242,167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,
+116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 66,168, 5, 0, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0,
+216, 69,168, 5, 0, 0, 0, 0, 56, 74,168, 5, 0, 0, 0, 0,168, 74,168, 5, 0, 0, 0, 0,200,118,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,200,202, 29, 7, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 88, 66,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 66,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+200, 66,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 67,168, 5, 0, 0, 0, 0, 88, 66,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 67,168, 5, 0, 0, 0, 0,
+212, 0, 0, 0, 1, 0, 0, 0,168, 67,168, 5, 0, 0, 0, 0,200, 66,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 67,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
+ 24, 68,168, 5, 0, 0, 0, 0, 56, 67,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0,
+168, 67,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+136, 68,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0,
+212, 0, 0, 0, 1, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+200, 3,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216, 69,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72, 70,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200, 66,168, 5, 0, 0, 0, 0, 56, 67,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72, 70,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184, 70,168, 5, 0, 0, 0, 0,
+216, 69,168, 5, 0, 0, 0, 0,200, 66,168, 5, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184, 70,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 71,168, 5, 0, 0, 0, 0,
+ 72, 70,168, 5, 0, 0, 0, 0, 56, 67,168, 5, 0, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40, 71,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 71,168, 5, 0, 0, 0, 0,
+184, 70,168, 5, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152, 71,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 72,168, 5, 0, 0, 0, 0,
+ 40, 71,168, 5, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8, 72,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 72,168, 5, 0, 0, 0, 0,
+152, 71,168, 5, 0, 0, 0, 0, 88, 66,168, 5, 0, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120, 72,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 72,168, 5, 0, 0, 0, 0,
+ 8, 72,168, 5, 0, 0, 0, 0, 88, 66,168, 5, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232, 72,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 73,168, 5, 0, 0, 0, 0,
+120, 72,168, 5, 0, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88, 73,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 73,168, 5, 0, 0, 0, 0,
+232, 72,168, 5, 0, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200, 73,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56, 74,168, 5, 0, 0, 0, 0,
+ 88, 73,168, 5, 0, 0, 0, 0,168, 67,168, 5, 0, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56, 74,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+200, 73,168, 5, 0, 0, 0, 0,168, 67,168, 5, 0, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,168, 74,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120, 78,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0,200, 66,168, 5, 0, 0, 0, 0, 56, 67,168, 5, 0, 0, 0, 0,
+136, 68,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0,
+ 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,135,168, 5, 0, 0, 0, 0,
+152,135,168, 5, 0, 0, 0, 0,152, 75,168, 5, 0, 0, 0, 0, 8, 77,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+152, 75,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8, 77,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+ 8, 77,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 75,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,
+112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 8,204, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,217, 29, 7, 0, 0, 0, 0,120,179, 29, 7, 0, 0, 0, 0,
- 72,164, 29, 7, 0, 0, 0, 0,152,165, 29, 7, 0, 0, 0, 0,136,162, 29, 7, 0, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 1, 1,247, 2, 63, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,215, 29, 7, 0, 0, 0, 0,232,215, 29, 7, 0, 0, 0, 0,
-248,204, 29, 7, 0, 0, 0, 0,184,210, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,204, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,104,206, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246, 2, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,206, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,216,207, 29, 7, 0, 0, 0, 0,248,204, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,207, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 72,209, 29, 7, 0, 0, 0, 0,104,206, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67,
- 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,209, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,184,210, 29, 7, 0, 0, 0, 0,216,207, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0,
- 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0,
- 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+120, 78,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200,118,168, 5, 0, 0, 0, 0,168, 74,168, 5, 0, 0, 0, 0,
+ 88, 66,168, 5, 0, 0, 0, 0, 24, 68,168, 5, 0, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,234, 3, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 85,168, 5, 0, 0, 0, 0, 88, 85,168, 5, 0, 0, 0, 0,
+104, 79,168, 5, 0, 0, 0, 0,232, 83,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 79,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0,216, 80,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 80,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0,232, 83,168, 5, 0, 0, 0, 0,104, 79,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67,
+ 0,192,115,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0,
+ 0, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0,
+ 0, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
+ 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 82,168, 5, 0, 0, 0, 0, 72, 82,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 82,168, 5, 0, 0, 0, 0,
+214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,210, 29, 7, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,209, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,232, 83,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216, 80,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 51, 51, 43,191,154,153,213, 63,
+ 51, 51,131,191,154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,199, 3, 0, 0,
+ 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2,208, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,212, 29, 7, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 40,212, 29, 7, 0, 0, 0, 0,
-174, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,141,193, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62,
- 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,
-166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,
-248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63,166,235,149, 62,
- 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,
- 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182,252, 5,136,190, 43, 33, 3, 62,
-235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,158, 87,135,195,
-205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62,
- 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63,166,235,149, 62,
- 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,
- 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 33, 0, 0, 88, 85,168, 5, 0, 0, 0, 0,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65,
- 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
-255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66,
- 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,
-232,215, 29, 7, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62,
- 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60,
- 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,217, 29, 7, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,248,223, 29, 7, 0, 0, 0, 0, 8,204, 29, 7, 0, 0, 0, 0,232,159, 29, 7, 0, 0, 0, 0,
-104,163, 29, 7, 0, 0, 0, 0,216,163, 29, 7, 0, 0, 0, 0,248,162, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5,104, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,222, 29, 7, 0, 0, 0, 0, 40,222, 29, 7, 0, 0, 0, 0,136,218, 29, 7, 0, 0, 0, 0,
-248,219, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,218, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-248,219, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,219, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,218, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0, 0, 51, 67,
- 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3,
- 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,221, 29, 7, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,221, 29, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,216,221, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, 40,222, 29, 7, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,221, 29, 7, 0, 0, 0, 0,104,221, 29, 7, 0, 0, 0, 0, 62, 62, 62, 32,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4948,84 +5185,23 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,
-111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0,
- 8, 4, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,223, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,230, 29, 7,
- 0, 0, 0, 0,152,217, 29, 7, 0, 0, 0, 0,184,164, 29, 7, 0, 0, 0, 0,136,162, 29, 7, 0, 0, 0, 0, 24,162, 29, 7,
- 0, 0, 0, 0, 40,165, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0,
-167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,227, 29, 7,
- 0, 0, 0, 0,200,227, 29, 7, 0, 0, 0, 0,232,224, 29, 7, 0, 0, 0, 0, 88,226, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,232,224, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 88,226, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0,
- 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0, 88,226, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,224, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,190, 67, 0, 0, 15,195,
- 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,142, 1,161, 0,125, 1,
-143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 7, 3, 0, 0,
-167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 1, 0, 0,200,227, 29, 7, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,229, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 40,229, 29, 7, 0, 0, 0, 0,238, 0, 0, 0,
- 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,136,229, 29, 7, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,136,229, 29, 7,
- 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 19, 0, 0, 0,
- 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 21, 0, 1, 0,
- 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,128, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0,152,137, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,192, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0,120,151, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,173, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0,216,144, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104,123, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,122, 30, 7, 0, 0, 0, 0, 21, 0, 0, 0,
- 1, 0, 1, 0,120,101, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,230, 29, 7, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,223, 29, 7, 0, 0, 0, 0,104,163, 29, 7, 0, 0, 0, 0,168,161, 29, 7,
- 0, 0, 0, 0,152,165, 29, 7, 0, 0, 0, 0, 72,164, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,234, 29, 7, 0, 0, 0, 0,136,234, 29, 7, 0, 0, 0, 0,168,231, 29, 7, 0, 0, 0, 0, 24,233, 29, 7,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,231, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24,233, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 62, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 61, 68,
- 0, 0,200, 65, 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
- 10, 0,248, 2, 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-247, 2, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0,
- 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,233, 29, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168,231, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68,
- 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4,
- 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 37, 2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,136,234, 29, 7, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,
-124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5041,130 +5217,18 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,
- 8, 1, 0, 0, 8,238, 29, 7, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40, 53, 30, 7, 0, 0, 0, 0,152,158, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,239, 29, 7, 0, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0,216,242, 29, 7,
- 0, 0, 0, 0, 56,247, 29, 7, 0, 0, 0, 0,168,247, 29, 7, 0, 0, 0, 0,200, 35, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0, 88,239, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,239, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,239, 29, 7,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,240, 29, 7, 0, 0, 0, 0, 88,239, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,240, 29, 7, 0, 0, 0, 0,212, 0, 0, 0,
- 1, 0, 0, 0,168,240, 29, 7, 0, 0, 0, 0,200,239, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,240, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,241, 29, 7,
- 0, 0, 0, 0, 56,240, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0,168,240, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,241, 29, 7,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0,212, 0, 0, 0,
- 1, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3,234, 3,
- 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216,242, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,243, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200,239, 29, 7, 0, 0, 0, 0, 56,240, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 72,243, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,243, 29, 7, 0, 0, 0, 0,216,242, 29, 7,
- 0, 0, 0, 0,200,239, 29, 7, 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,184,243, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,244, 29, 7, 0, 0, 0, 0, 72,243, 29, 7,
- 0, 0, 0, 0, 56,240, 29, 7, 0, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 40,244, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,244, 29, 7, 0, 0, 0, 0,184,243, 29, 7,
- 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,152,244, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,245, 29, 7, 0, 0, 0, 0, 40,244, 29, 7,
- 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 8,245, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,245, 29, 7, 0, 0, 0, 0,152,244, 29, 7,
- 0, 0, 0, 0, 88,239, 29, 7, 0, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,120,245, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,245, 29, 7, 0, 0, 0, 0, 8,245, 29, 7,
- 0, 0, 0, 0, 88,239, 29, 7, 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,232,245, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,246, 29, 7, 0, 0, 0, 0,120,245, 29, 7,
- 0, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 88,246, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,246, 29, 7, 0, 0, 0, 0,232,245, 29, 7,
- 0, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,200,246, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,247, 29, 7, 0, 0, 0, 0, 88,246, 29, 7,
- 0, 0, 0, 0,168,240, 29, 7, 0, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 56,247, 29, 7, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,246, 29, 7,
- 0, 0, 0, 0,168,240, 29, 7, 0, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0,168,247, 29, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120,251, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0,200,239, 29, 7, 0, 0, 0, 0, 56,240, 29, 7, 0, 0, 0, 0,136,241, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7,
- 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 52, 30, 7, 0, 0, 0, 0,152, 52, 30, 7,
- 0, 0, 0, 0,152,248, 29, 7, 0, 0, 0, 0, 8,250, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,248, 29, 7,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,250, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,250, 29, 7,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,248, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,
-129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,251, 29, 7,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200, 35, 30, 7, 0, 0, 0, 0,168,247, 29, 7, 0, 0, 0, 0, 88,239, 29, 7,
- 0, 0, 0, 0, 24,241, 29, 7, 0, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,234, 3, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 2, 30, 7, 0, 0, 0, 0, 88, 2, 30, 7, 0, 0, 0, 0,104,252, 29, 7,
- 0, 0, 0, 0,232, 0, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,252, 29, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0,216,253, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,253, 29, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0,232, 0, 30, 7, 0, 0, 0, 0,104,252, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67, 0,192,115,196,
- 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,
-207, 3, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,
-207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,255, 29, 7,
- 0, 0, 0, 0, 72,255, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,255, 29, 7, 0, 0, 0, 0,214, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,232, 0, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,253, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 51, 51, 43,191,154,153,213, 63, 51, 51,131,191,
-154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,199, 3, 0, 0, 26, 0, 0, 0,
-233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2,208, 3, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 33, 0, 0, 88, 2, 30, 7, 0, 0, 0, 0,185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5230,6 +5294,7 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5294,7 +5359,6 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5360,27 +5424,102 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,200,118,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120, 78,168, 5, 0, 0, 0, 0,104, 69,168, 5, 0, 0, 0, 0,248, 68,168, 5, 0, 0, 0, 0,136, 68,168, 5, 0, 0, 0, 0,
+168, 67,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,233, 3, 0, 0,
+ 1, 1,182, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,133,168, 5, 0, 0, 0, 0,
+232,133,168, 5, 0, 0, 0, 0,184,119,168, 5, 0, 0, 0, 0,184,128,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+184,119,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,121,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0, 0, 0,208, 65,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,181, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+ 40,121,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 56,124,168, 5, 0, 0, 0, 0,184,119,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 86,196, 0, 0, 0, 0,
+143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 88, 3,143, 0, 88, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0,146, 0, 0, 0,233, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,152,122,168, 5, 0, 0, 0, 0,152,122,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
+152,122,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,124,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 72,127,168, 5, 0, 0, 0, 0, 40,121,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0,
+ 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0,
+ 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
+ 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+201, 3, 0, 0,104, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,125,168, 5, 0, 0, 0, 0,
+168,125,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,125,168, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+ 72,127,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184,128,168, 5, 0, 0, 0, 0, 56,124,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,
+163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+184,128,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,127,168, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,130,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,
+ 40,130,168, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191,
+ 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0,
+ 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0,
+ 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,
+188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,
+189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190,
+ 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63,192,214, 32,188, 0, 0, 40,180,
+195, 15,188,190,132, 75, 53, 62,216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,203,247,159,192,
+233, 74, 87, 65,247, 46,190,192, 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0,
+ 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,
+189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190,
+ 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5388,986 +5527,848 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,
+ 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 96, 1, 0, 0,232,133,168, 5, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 24,213,168, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66,
+ 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,
+ 40,136,168, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 65,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120,137,168, 5, 0, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0,184,142,168, 5, 0, 0, 0, 0,
+ 40,150,168, 5, 0, 0, 0, 0,152,150,168, 5, 0, 0, 0, 0,248,175,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+120,137,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,137,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,137,168, 5, 0, 0, 0, 0,
+212, 0, 0, 0, 1, 0, 0, 0, 88,138,168, 5, 0, 0, 0, 0,120,137,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,138,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
+200,138,168, 5, 0, 0, 0, 0,232,137,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,200,138,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,139,168, 5, 0, 0, 0, 0,
+ 88,138,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 56,139,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0,200,138,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0,
+212, 0, 0, 0, 1, 0, 0, 0, 24,140,168, 5, 0, 0, 0, 0, 56,139,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,140,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
+136,140,168, 5, 0, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 92, 1, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,136,140,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,140,168, 5, 0, 0, 0, 0,
+ 24,140,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+248,140,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0,136,140,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 2,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0,
+212, 0, 0, 0, 1, 0, 0, 0,216,141,168, 5, 0, 0, 0, 0,248,140,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,141,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
+ 72,142,168, 5, 0, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 92, 1, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184,142,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,143,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232,137,168, 5, 0, 0, 0, 0, 88,138,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40,143,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,143,168, 5, 0, 0, 0, 0,184,142,168, 5, 0, 0, 0, 0,
+232,137,168, 5, 0, 0, 0, 0, 56,139,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+152,143,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,144,168, 5, 0, 0, 0, 0, 40,143,168, 5, 0, 0, 0, 0,
+ 88,138,168, 5, 0, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 8,144,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,144,168, 5, 0, 0, 0, 0,152,143,168, 5, 0, 0, 0, 0,
+ 56,139,168, 5, 0, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+120,144,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,144,168, 5, 0, 0, 0, 0, 8,144,168, 5, 0, 0, 0, 0,
+168,139,168, 5, 0, 0, 0, 0, 24,140,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+232,144,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,145,168, 5, 0, 0, 0, 0,120,144,168, 5, 0, 0, 0, 0,
+120,137,168, 5, 0, 0, 0, 0,136,140,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 88,145,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,145,168, 5, 0, 0, 0, 0,232,144,168, 5, 0, 0, 0, 0,
+ 56,139,168, 5, 0, 0, 0, 0,248,140,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+200,145,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,146,168, 5, 0, 0, 0, 0, 88,145,168, 5, 0, 0, 0, 0,
+136,140,168, 5, 0, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 56,146,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,146,168, 5, 0, 0, 0, 0,200,145,168, 5, 0, 0, 0, 0,
+104,141,168, 5, 0, 0, 0, 0,216,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+168,146,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,147,168, 5, 0, 0, 0, 0, 56,146,168, 5, 0, 0, 0, 0,
+248,140,168, 5, 0, 0, 0, 0,216,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 24,147,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,147,168, 5, 0, 0, 0, 0,168,146,168, 5, 0, 0, 0, 0,
+ 24,140,168, 5, 0, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+136,147,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,147,168, 5, 0, 0, 0, 0, 24,147,168, 5, 0, 0, 0, 0,
+200,138,168, 5, 0, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+248,147,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,148,168, 5, 0, 0, 0, 0,136,147,168, 5, 0, 0, 0, 0,
+136,140,168, 5, 0, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104,148,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,148,168, 5, 0, 0, 0, 0,248,147,168, 5, 0, 0, 0, 0,
+120,137,168, 5, 0, 0, 0, 0,200,138,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216,148,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,149,168, 5, 0, 0, 0, 0,104,148,168, 5, 0, 0, 0, 0,
+168,139,168, 5, 0, 0, 0, 0,248,140,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72,149,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,149,168, 5, 0, 0, 0, 0,216,148,168, 5, 0, 0, 0, 0,
+ 24,140,168, 5, 0, 0, 0, 0,216,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184,149,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,150,168, 5, 0, 0, 0, 0, 72,149,168, 5, 0, 0, 0, 0,
+ 56,139,168, 5, 0, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40,150,168, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,149,168, 5, 0, 0, 0, 0,
+ 24,140,168, 5, 0, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+152,150,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,154,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56,139,168, 5, 0, 0, 0, 0,232,137,168, 5, 0, 0, 0, 0, 88,138,168, 5, 0, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,183,168, 5, 0, 0, 0, 0,232,183,168, 5, 0, 0, 0, 0,
+136,151,168, 5, 0, 0, 0, 0,248,152,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,151,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0,248,152,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,152,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,151,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69,
+ 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0,
+ 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0,
+ 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,154,168, 5, 0, 0, 0, 0,
+215, 0, 0, 0, 1, 0, 0, 0, 88,159,168, 5, 0, 0, 0, 0,152,150,168, 5, 0, 0, 0, 0,120,137,168, 5, 0, 0, 0, 0,
+136,140,168, 5, 0, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0,200,138,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 15, 15,241, 4, 68, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,158,168, 5, 0, 0, 0, 0, 56,158,168, 5, 0, 0, 0, 0, 88,155,168, 5, 0, 0, 0, 0,
+200,156,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,155,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+200,156,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,156,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 88,155,168, 5, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,
+112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 18, 0, 0, 0, 41, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2,
+ 4, 0, 0, 4, 8, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 0, 0, 26, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 56,158,168, 5, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,159,168, 5, 0, 0, 0, 0,
+215, 0, 0, 0, 1, 0, 0, 0, 72,167,168, 5, 0, 0, 0, 0,104,154,168, 5, 0, 0, 0, 0,136,140,168, 5, 0, 0, 0, 0,
+104,141,168, 5, 0, 0, 0, 0, 24,140,168, 5, 0, 0, 0, 0, 72,142,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 91, 1, 0, 0, 8, 8,241, 4, 23, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,166,168, 5, 0, 0, 0, 0, 8,166,168, 5, 0, 0, 0, 0, 72,160,168, 5, 0, 0, 0, 0,
+152,164,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,160,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+184,161,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,161,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 40,163,168, 5, 0, 0, 0, 0, 72,160,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,125,195, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 75, 67, 1, 0,125,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0,
+ 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
+ 18, 0, 0, 4, 6, 0,220, 0,253, 0,203, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,240, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+220, 0,253, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,163,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+152,164,168, 5, 0, 0, 0, 0,184,161,168, 5, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68,
+ 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 4, 0, 0, 91, 1, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,164,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 40,163,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
+ 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,252, 0, 0, 0,
+ 18, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 18, 0, 0, 0,252, 0, 0, 0,
+ 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4, 8, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 8,166,168, 5, 0, 0, 0, 0,181, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72,167,168, 5, 0, 0, 0, 0,
+215, 0, 0, 0, 1, 0, 0, 0,248,175,168, 5, 0, 0, 0, 0, 88,159,168, 5, 0, 0, 0, 0,104,141,168, 5, 0, 0, 0, 0,
+ 56,139,168, 5, 0, 0, 0, 0,248,140,168, 5, 0, 0, 0, 0,216,141,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 2, 2, 48, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248,173,168, 5, 0, 0, 0, 0,248,173,168, 5, 0, 0, 0, 0, 56,168,168, 5, 0, 0, 0, 0,
+136,172,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,168,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+168,169,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65,
+154,216, 65, 55, 0, 0, 12, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0,192, 11, 68, 0, 0,200, 65, 0,192, 11, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 0, 10, 0, 48, 2, 26, 0, 48, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,169,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 24,171,168, 5, 0, 0, 0, 0, 56,168,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0,
+ 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3,
+ 0, 0, 0, 4, 6, 0,217, 0, 76, 1,200, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,216, 0, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+217, 0, 76, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,171,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+136,172,168, 5, 0, 0, 0, 0,168,169,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 2, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0,200, 35, 30, 7, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,251, 29, 7,
- 0, 0, 0, 0,104,242, 29, 7, 0, 0, 0, 0,248,241, 29, 7, 0, 0, 0, 0,136,241, 29, 7, 0, 0, 0, 0,168,240, 29, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 1, 1,182, 3,
-234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 50, 30, 7, 0, 0, 0, 0,232, 50, 30, 7,
- 0, 0, 0, 0,184, 36, 30, 7, 0, 0, 0, 0,184, 45, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 36, 30, 7,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40, 38, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-181, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,172,168, 5, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 24,171,168, 5, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64,
+ 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0,
+ 18, 0, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0,
+111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+217, 0, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 38, 30, 7,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 56, 41, 30, 7, 0, 0, 0, 0,184, 36, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 67, 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 86,196, 0, 0, 0, 0,143, 0, 0, 0,
-160, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-142, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 88, 3,143, 0, 88, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0,146, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,248,173,168, 5, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 39, 30, 7, 0, 0, 0, 0,152, 39, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 39, 30, 7,
- 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101,
- 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101,
- 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 41, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 72, 44, 30, 7,
- 0, 0, 0, 0, 40, 38, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,
-231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,
-142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
- 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,
-104, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0,
- 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 42, 30, 7, 0, 0, 0, 0,168, 42, 30, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,175,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 56,175,168, 5, 0, 0, 0, 0,
+ 38, 1, 0, 0, 1, 0, 0, 0,120,184,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 42, 30, 7, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114,
- 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,
-144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 44, 30, 7,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184, 45, 30, 7, 0, 0, 0, 0, 56, 41, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,
-180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+248,175,168, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,167,168, 5, 0, 0, 0, 0,
+216,141,168, 5, 0, 0, 0, 0,248,140,168, 5, 0, 0, 0, 0,168,139,168, 5, 0, 0, 0, 0, 24,140,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 8, 8,192, 2,102, 1, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,182,168, 5, 0, 0, 0, 0,168,182,168, 5, 0, 0, 0, 0,
+232,176,168, 5, 0, 0, 0, 0, 56,181,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,176,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0, 88,178,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 67,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 48, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 47, 68, 0, 0,200, 65, 0,192, 47, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 2, 26, 0,192, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 45, 30, 7,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 44, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,178,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0,200,179,168, 5, 0, 0, 0, 0,232,176,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 47, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 40, 47, 30, 7,
- 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,
-143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,
-142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,
-136, 95,161,191,147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,
-140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63,192,214, 32,188, 0, 0, 40,180,195, 15,188,190,
-132, 75, 53, 62,216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,
-247, 46,190,192, 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,
-143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,
-140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,179,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0, 56,181,168, 5, 0, 0, 0, 0, 88,178,168, 5, 0, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67,
+ 0, 0,135,195, 0, 0,135, 67,238, 33,143,196,238, 33,143, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0,
+ 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71,
+ 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0,192, 2, 76, 1,192, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 76, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,181,168, 5, 0, 0, 0, 0,
+216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,179,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67,
+ 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0,
+ 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0,
+ 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,
+105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,168,182,168, 5, 0, 0, 0, 0,
+181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64,
- 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 1, 0, 0,232, 50, 30, 7, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,
-205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,
-205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,216, 11, 0, 0,
+120,184,168, 5, 0, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, 40, 53, 30, 7,
- 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,238, 29, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+152,196,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 72,210,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,104,197,168, 5, 0, 0, 0, 0, 72,198,168, 5, 0, 0, 0, 0,104,197,168, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120, 54, 30, 7, 0, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0,184, 59, 30, 7, 0, 0, 0, 0, 40, 67, 30, 7,
- 0, 0, 0, 0,152, 67, 30, 7, 0, 0, 0, 0,248, 92, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 54, 30, 7,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 54, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 54, 30, 7, 0, 0, 0, 0,212, 0, 0, 0,
- 1, 0, 0, 0, 88, 55, 30, 7, 0, 0, 0, 0,120, 54, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 55, 30, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 55, 30, 7,
- 0, 0, 0, 0,232, 54, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,200, 55, 30, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 56, 30, 7, 0, 0, 0, 0, 88, 55, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 56, 30, 7,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0,200, 55, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0,212, 0, 0, 0,
- 1, 0, 0, 0, 24, 57, 30, 7, 0, 0, 0, 0, 56, 56, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,195, 2,
- 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 57, 30, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 57, 30, 7,
- 0, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,136, 57, 30, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 57, 30, 7, 0, 0, 0, 0, 24, 57, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 57, 30, 7,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0,136, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 2,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0,212, 0, 0, 0,
- 1, 0, 0, 0,216, 58, 30, 7, 0, 0, 0, 0,248, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 58, 30, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 59, 30, 7,
- 0, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 58, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 59, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 60, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 54, 30, 7,
- 0, 0, 0, 0, 88, 55, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 60, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 60, 30, 7, 0, 0, 0, 0,184, 59, 30, 7, 0, 0, 0, 0,232, 54, 30, 7,
- 0, 0, 0, 0, 56, 56, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 60, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 61, 30, 7, 0, 0, 0, 0, 40, 60, 30, 7, 0, 0, 0, 0, 88, 55, 30, 7,
- 0, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 61, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 61, 30, 7, 0, 0, 0, 0,152, 60, 30, 7, 0, 0, 0, 0, 56, 56, 30, 7,
- 0, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 61, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 61, 30, 7, 0, 0, 0, 0, 8, 61, 30, 7, 0, 0, 0, 0,168, 56, 30, 7,
- 0, 0, 0, 0, 24, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 61, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 62, 30, 7, 0, 0, 0, 0,120, 61, 30, 7, 0, 0, 0, 0,120, 54, 30, 7,
- 0, 0, 0, 0,136, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 62, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 62, 30, 7, 0, 0, 0, 0,232, 61, 30, 7, 0, 0, 0, 0, 56, 56, 30, 7,
- 0, 0, 0, 0,248, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 62, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56, 63, 30, 7, 0, 0, 0, 0, 88, 62, 30, 7, 0, 0, 0, 0,136, 57, 30, 7,
- 0, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 63, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 63, 30, 7, 0, 0, 0, 0,200, 62, 30, 7, 0, 0, 0, 0,104, 58, 30, 7,
- 0, 0, 0, 0,216, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 63, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 64, 30, 7, 0, 0, 0, 0, 56, 63, 30, 7, 0, 0, 0, 0,248, 57, 30, 7,
- 0, 0, 0, 0,216, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 64, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 64, 30, 7, 0, 0, 0, 0,168, 63, 30, 7, 0, 0, 0, 0, 24, 57, 30, 7,
- 0, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 64, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248, 64, 30, 7, 0, 0, 0, 0, 24, 64, 30, 7, 0, 0, 0, 0,200, 55, 30, 7,
- 0, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 64, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104, 65, 30, 7, 0, 0, 0, 0,136, 64, 30, 7, 0, 0, 0, 0,136, 57, 30, 7,
- 0, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 65, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216, 65, 30, 7, 0, 0, 0, 0,248, 64, 30, 7, 0, 0, 0, 0,120, 54, 30, 7,
- 0, 0, 0, 0,200, 55, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 65, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72, 66, 30, 7, 0, 0, 0, 0,104, 65, 30, 7, 0, 0, 0, 0,168, 56, 30, 7,
- 0, 0, 0, 0,248, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 66, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184, 66, 30, 7, 0, 0, 0, 0,216, 65, 30, 7, 0, 0, 0, 0, 24, 57, 30, 7,
- 0, 0, 0, 0,216, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 66, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 67, 30, 7, 0, 0, 0, 0, 72, 66, 30, 7, 0, 0, 0, 0, 56, 56, 30, 7,
- 0, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 67, 30, 7,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 66, 30, 7, 0, 0, 0, 0, 24, 57, 30, 7,
- 0, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152, 67, 30, 7,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 71, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 30, 7,
- 0, 0, 0, 0,232, 54, 30, 7, 0, 0, 0, 0, 88, 55, 30, 7, 0, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,100, 30, 7, 0, 0, 0, 0,232,100, 30, 7, 0, 0, 0, 0,136, 68, 30, 7,
- 0, 0, 0, 0,248, 69, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 68, 30, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0,248, 69, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 69, 30, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 68, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0,
- 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,198,168, 5, 0, 0, 0, 0,
+ 56,143,132, 5, 0, 0, 0, 0, 17, 2, 24, 0, 90, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104, 71, 30, 7, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 88, 76, 30, 7, 0, 0, 0, 0,152, 67, 30, 7, 0, 0, 0, 0,120, 54, 30, 7, 0, 0, 0, 0,136, 57, 30, 7,
- 0, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0,200, 55, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 15, 15,241, 4, 68, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 75, 30, 7, 0, 0, 0, 0, 56, 75, 30, 7, 0, 0, 0, 0, 88, 72, 30, 7, 0, 0, 0, 0,200, 73, 30, 7,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 72, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200, 73, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68,
- 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
- 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0,
- 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+192, 0, 0, 0, 68,172, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0, 81, 0, 0, 0,
+ 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200,202,168, 5, 0, 0, 0, 0,200,202,168, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 73, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 88, 72, 30, 7, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,
-246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 18, 0, 0, 0, 41, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4,
- 8, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 26, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 42, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 56, 75, 30, 7, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 76, 30, 7, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 72, 84, 30, 7, 0, 0, 0, 0,104, 71, 30, 7, 0, 0, 0, 0,136, 57, 30, 7, 0, 0, 0, 0,104, 58, 30, 7,
- 0, 0, 0, 0, 24, 57, 30, 7, 0, 0, 0, 0, 72, 59, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 69, 0, 0, 0, 91, 1, 0, 0, 8, 8,241, 4, 23, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 83, 30, 7, 0, 0, 0, 0, 8, 83, 30, 7, 0, 0, 0, 0, 72, 77, 30, 7, 0, 0, 0, 0,152, 81, 30, 7,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 77, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,184, 78, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68,
- 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
- 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0,
- 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 78, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40, 80, 30, 7,
- 0, 0, 0, 0, 72, 77, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,125,195, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 75, 67, 1, 0,125,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0,
-202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
- 6, 0,220, 0,253, 0,203, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,
-240, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,253, 0,
- 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 80, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152, 81, 30, 7,
- 0, 0, 0, 0,184, 78, 30, 7, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196,
- 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 4, 0, 0, 91, 1, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 81, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 40, 80, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
- 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,252, 0, 0, 0, 18, 0, 0, 0,
- 20, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 18, 0, 0, 0,252, 0, 0, 0, 0, 0, 32, 65,
- 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 8, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4,253, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 8, 83, 30, 7, 0, 0, 0, 0,181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72, 84, 30, 7, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0,248, 92, 30, 7, 0, 0, 0, 0, 88, 76, 30, 7, 0, 0, 0, 0,104, 58, 30, 7, 0, 0, 0, 0, 56, 56, 30, 7,
- 0, 0, 0, 0,248, 57, 30, 7, 0, 0, 0, 0,216, 58, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 2, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 2, 2, 48, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248, 90, 30, 7, 0, 0, 0, 0,248, 90, 30, 7, 0, 0, 0, 0, 56, 85, 30, 7, 0, 0, 0, 0,136, 89, 30, 7,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 85, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168, 86, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65,154,216, 65, 55,
- 0, 0, 12, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 11, 68,
- 0, 0,200, 65, 0,192, 11, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
- 10, 0, 48, 2, 26, 0, 48, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 2, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 26, 0,
- 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 86, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24, 88, 30, 7,
- 0, 0, 0, 0, 56, 85, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 67, 0, 0,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0,
-199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4,
- 6, 0,217, 0, 76, 1,200, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 0, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 76, 1,
- 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 88, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,136, 89, 30, 7,
- 0, 0, 0, 0,168, 86, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0,
- 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 89, 30, 7, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 24, 88, 30, 7, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0,
- 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,
- 86, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0,111, 18,131, 58,
-111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,
- 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 1, 76, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,248, 90, 30, 7, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 92, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 56, 92, 30, 7, 0, 0, 0, 0, 38, 1, 0, 0,
- 1, 0, 0, 0,120,101, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 92, 30, 7,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 84, 30, 7, 0, 0, 0, 0,216, 58, 30, 7,
- 0, 0, 0, 0,248, 57, 30, 7, 0, 0, 0, 0,168, 56, 30, 7, 0, 0, 0, 0, 24, 57, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 8, 8,192, 2,102, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 99, 30, 7, 0, 0, 0, 0,168, 99, 30, 7, 0, 0, 0, 0,232, 93, 30, 7,
- 0, 0, 0, 0, 56, 98, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 93, 30, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0, 88, 95, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 48, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,192, 47, 68, 0, 0,200, 65, 0,192, 47, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 2, 26, 0,192, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,192, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 95, 30, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0,200, 96, 30, 7, 0, 0, 0, 0,232, 93, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 4, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 96, 30, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0, 56, 98, 30, 7, 0, 0, 0, 0, 88, 95, 30, 7, 0, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195,
- 0, 0,135, 67,238, 33,143,196,238, 33,143, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0,
- 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0,
- 0, 0, 6, 0, 0, 0, 0, 4, 0, 0,192, 2, 76, 1,192, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,192, 2, 76, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48,194,132, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 38,140, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200,104, 99, 4, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 98, 30, 7, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 96, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0,
- 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,
- 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0,
- 75, 1, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 5, 0,205,204,204, 61,154,153,153, 62,205,204, 76, 62,219, 15, 73, 63,102,102,102, 63, 0, 0, 0, 64,154,153, 25, 63,
+ 0, 0, 64, 65,102,102,166, 63, 0, 0, 0, 65, 0, 0,160, 65, 6, 0, 0, 0, 0, 0,192, 64, 0, 0,128, 63, 0, 0, 0, 0,
+205,204, 28, 65, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 1, 0,128, 0, 5, 0,218, 0, 0, 0, 60, 0, 5, 0, 1, 0, 5, 0,
+ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,152,196,168, 5, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,168, 99, 30, 7, 0, 0, 0, 0,181, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,197,168, 5, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0,216,197,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,224, 2,168, 1,184,219,168, 5, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,197,168, 5, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0, 72,198,168, 5, 0, 0, 0, 0,
+104,197,168, 5, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,183, 3,241, 2, 88,226,168, 5, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,198,168, 5, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216,197,168, 5, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,162, 0, 12, 2, 24,213,168, 5, 0, 0, 0, 0,
+ 68, 65, 84, 65,248, 1, 0, 0,184,198,168, 5, 0, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,248,200,168, 5, 0, 0, 0, 0,
+136,201,168, 5, 0, 0, 0, 0, 24,202,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0,
+205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0,
+ 32, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+232, 25,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255,
+ 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66,
+ 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66,
+ 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66,
+ 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,
+102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, 35, 0, 0, 0,204,197,121, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 49, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 0, 0, 0,248,200,168, 5, 0, 0, 0, 0,
+165, 0, 0, 0, 1, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 0, 0, 0,136,201,168, 5, 0, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0,
+168,115,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,255,128, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,104, 0, 0, 0, 24,202,168, 5, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0,155, 9, 25, 67,190, 23,237, 64, 75, 1,147, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,128, 0, 0, 0,200,202,168, 5, 0, 0, 0, 0,150, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,255,127, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0,
+216,204,168, 5, 0, 0, 0, 0, 22, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48,
+ 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,216, 11, 0, 0,120,101, 30, 7,
- 0, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,113, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 40,128, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,104,114, 30, 7, 0, 0, 0, 0, 72,115, 30, 7, 0, 0, 0, 0,104,114, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,115, 30, 7, 0, 0, 0, 0,136, 5, 84, 8,
- 0, 0, 0, 0, 17, 2, 24, 0, 90, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,
- 68,172, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0, 81, 0, 0, 0, 23, 0, 33, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168,119, 30, 7, 0, 0, 0, 0,168,119, 30, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0,
- 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66,
+ 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 66, 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,
+232,205,168, 5, 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 72,208,168, 5, 0, 0, 0, 0,
+ 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,209,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0, 72,208,168, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,
+242, 4, 53,191,243, 4, 53, 63, 24, 73,137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
+ 24, 73,137, 5, 0, 0, 0, 0,125, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,209,168, 5, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0, 24, 2, 0, 0, 72,210,168, 5, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,168,212,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+168,212,168, 5, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,
+ 24,213,168, 5, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48,
+ 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,204,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 42,254,141, 63,192, 57, 49, 60,
+ 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0,
+ 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,
+110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0,
+ 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0,
+ 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0,
+ 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0,
+ 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
+ 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
+ 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0,128, 63, 0, 0,128, 63,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216,218,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,
-205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78,
- 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0,
- 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,225, 26, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 22,157, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,232,248,247, 6, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,152, 0, 0, 0,216,218,168, 5, 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,
-205,204,204, 61,154,153,153, 62,205,204, 76, 62,219, 15, 73, 63,102,102,102, 63, 0, 0, 0, 64,154,153, 25, 63, 0, 0, 64, 65,
-102,102,166, 63, 0, 0, 0, 65, 0, 0,160, 65, 6, 0, 0, 0, 0, 0,192, 64, 0, 0,128, 63, 0, 0, 0, 0,205,204, 28, 65,
- 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 1, 0,128, 0, 5, 0,218, 0, 0, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 64, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,152,113, 30, 7, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,184,219,168, 5, 0, 0, 0, 0,
+130, 0, 0, 0, 1, 0, 0, 0, 88,226,168, 5, 0, 0, 0, 0, 24,213,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,104,114, 30, 7, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0,216,114, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,240, 1, 11, 1,152,137, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216,114, 30, 7, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0, 72,115, 30, 7, 0, 0, 0, 0,104,114, 30, 7,
- 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,129, 2,233, 1,216,144, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 72,115, 30, 7, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,114, 30, 7,
- 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,109, 0, 78, 1,248,130, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65,
-240, 1, 0, 0,184,115, 30, 7, 0, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,248,117, 30, 7, 0, 0, 0, 0,120,118, 30, 7,
- 0, 0, 0, 0,248,118, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0,205,204, 76, 63,
- 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 56,203, 31, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65,
- 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, 0, 0,128, 63, 49, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,248,117, 30, 7, 0, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0,248, 36, 31, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,120,118, 30, 7,
- 0, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,255,128,
- 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,248,118, 30, 7, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,184,150, 31, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0,155, 9, 25, 67,190, 23,237, 64, 75, 1,147, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-128, 0, 0, 0,168,119, 30, 7, 0, 0, 0, 0,150, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,127, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0, 88,122, 30, 7,
- 0, 0, 0, 0, 22, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,
-161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 66, 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,104,123, 30, 7,
- 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65,
- 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,200,125, 30, 7, 0, 0, 0, 0, 2, 0, 0, 0,
- 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,127, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,200,125, 30, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,
-243, 4, 53, 63, 88,127, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,127, 30, 7,
- 0, 0, 0, 0,119, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,127, 30, 7, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 87, 79, 0, 0, 24, 2, 0, 0, 40,128, 30, 7, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,
-114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,
- 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,
-205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,130, 30, 7,
- 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,248,130, 30, 7,
- 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0,152,137, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,171,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 17,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0,
+ 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,122, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,
-227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,
-150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51,
- 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53,
- 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,
-225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,
- 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201,
- 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,136, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-152, 0, 0, 0,184,136, 30, 7, 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,152,137, 30, 7, 0, 0, 0, 0,130, 0, 0, 0,
- 1, 0, 0, 0,216,144, 30, 7, 0, 0, 0, 0,248,130, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,213,134, 5, 0, 0, 0, 0,136, 83,135, 5, 0, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0,
+ 0, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,
+169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,133, 88, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,192, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,143, 30, 7, 0, 0, 0, 0,168,143, 30, 7, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,225,168, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120,247,139, 5, 0, 0, 0, 0, 24,149,132, 5, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 7, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,
+ 40,213,134, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,
+136, 83,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,120,225,168, 5,
+ 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 88,226,168, 5, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,184,219,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,
+109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,143, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 77, 68, 8,
- 0, 0, 0, 0, 56,150, 68, 8, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 88,143, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,168,143, 30, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,248,143, 30, 7, 0, 0, 0, 0,
-133, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0,
- 79, 66, 0, 0,112, 5, 0, 0,216,144, 30, 7, 0, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152,137, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,232,205,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
+ 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,123, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,
-112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,
-236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,
-164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,
+183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50,
- 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,221,102, 69,191,
- 38,255, 16, 63, 0, 0, 0, 0, 24,134,116, 63, 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,
-166,111, 75, 63, 0, 0, 0, 0,209, 19, 13, 63,241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190,
+ 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,
+241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,
+221,102, 69,191, 38,255, 16, 63, 0, 0, 0, 0, 24,134,116, 63, 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189,
+ 35,194, 26, 63,166,111, 75, 63, 0, 0, 0, 0,209, 19, 13, 63,241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62,
- 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,
+229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152,150, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,232,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,152,150, 30, 7, 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 0, 0,
- 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 24,232,168, 5, 0, 0, 0, 0,133, 0, 0, 0,
+ 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62,
- 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0,
-120,151, 30, 7, 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 8, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,
+205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0,
+128, 3, 0, 0,248,232,168, 5, 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4, 8, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63,205,204, 76, 63,
+205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63,
- 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63,
- 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 3,
- 67, 0, 64, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6,
+ 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0,
+ 67, 0, 64, 3, 67, 0, 64, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,
-205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 72,155, 30, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64,
+ 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,200,236,168, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,156, 30, 7, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,
-102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 72,155, 30, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,173, 30, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 72,238,168, 5, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,
+205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,200,236,168, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,255,168, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 40, 0, 0, 0,200,156, 30, 7, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 53, 0, 53, 0, 56,157, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 0, 16, 0, 0, 56,157, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102,
- 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51,
- 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255,
- 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255,
- 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255,
- 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255,
- 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255,
- 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255,
- 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255,
- 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255,
- 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255,
- 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255,
- 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255,
- 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255,
- 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255,
- 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255,
- 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255,
- 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255,
- 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255,
- 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255,
- 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255,
- 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255,
- 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255,
- 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102,
- 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255,
- 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255,
- 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255,
- 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204,
- 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255,
- 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255,
- 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255,
- 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255,
- 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,
-101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255,
- 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255,
- 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255,
- 93, 93, 93,255,100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,
-107,107,107,255,106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255,
- 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255,
- 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,
-100,100,100,255,107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,
-114,114,114,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255,
- 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255,
- 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,
-107,107,107,255,114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,
-122,122,122,255,120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255,
- 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255,
- 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,
-113,113,113,255,120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,
-131,131,131,255,131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255,
- 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255,
- 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,
-118,118,118,255,126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,
-147,147,147,255,149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,
-102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255,
- 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,
-123,123,123,255,131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,
-168,168,168,255,176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,
-107,107,107,255,101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255,
- 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,
-127,127,127,255,136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,
-195,195,195,255,212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,
-112,112,112,255,106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255,
- 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,
-130,130,130,255,140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,
-219,219,219,255,246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,
-117,117,117,255,110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255,
- 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,
-129,129,129,255,142,142,142,255,149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,
-232,232,232,255,255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,
-121,121,121,255,113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255,
- 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,
-127,127,127,255,143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,
-227,227,227,255,253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,
-124,124,124,255,117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255,
- 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 93, 93, 93,204,141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,
-209,209,209,255,228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,
-127,127,127,255,119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255,
- 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 20, 20, 51,134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,
-189,189,189,255,200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,
-129,129,129,255,121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255,
- 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,
-176,176,176,255,180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,
-130,130,130,255,122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255,
- 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,
-170,170,170,255,169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,
-130,130,130,255,123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255,
- 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,
-167,167,167,255,166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,
-129,129,129,255,121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255,
- 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,
-163,163,163,255,162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,
-127,127,127,255,119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153,
- 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,
-154,154,154,255,155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,
-122,122,122,255,114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,
-103,103,103,204,137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,
-113,113,113,255,102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204,
- 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,168, 1, 0, 0,
-136,173, 30, 7, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64,
- 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, 72,238,168, 5, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0,
+ 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 53, 0, 53, 0,184,238,168, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,184,238,168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153,
+ 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255,
+ 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153,
+ 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255,
+ 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255,
+ 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255,
+ 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
+ 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255,
+ 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255,
+ 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255,
+ 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255,
+ 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255,
+ 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255,
+ 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255,
+ 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255,
+ 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255,
+ 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255,
+ 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255,
+ 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255,
+ 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255,
+ 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255,
+ 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255,
+ 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255,
+ 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255,
+ 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255,
+ 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0,
+ 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255,
+ 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255,
+ 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255,
+ 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0,
+ 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255,
+ 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255,
+ 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255,
+ 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102,
+ 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,
+102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255,
+ 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255,
+ 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102,
+ 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,
+109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255,
+ 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255,
+ 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102,
+ 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,
+115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255,
+ 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255,
+ 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153,
+ 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,
+122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255,
+ 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255,
+ 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,
+101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,
+131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,
+103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255,
+ 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,
+106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,
+142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,
+108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255,
+ 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,
+109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,
+156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,
+114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255,
+ 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,
+110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,
+174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,
+121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255,
+ 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,
+107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,
+191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,
+127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255,
+ 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0,
+ 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,
+199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,
+132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255,
+ 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,
+198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,
+135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255,
+ 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,
+188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,
+136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255,
+ 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,
+178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,
+137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255,
+ 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,
+172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,
+137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255,
+ 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,
+169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,
+137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255,
+ 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,
+167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,
+137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255,
+ 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,
+161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,
+135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255,
+ 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,
+148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,
+130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,
+120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204,
+ 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,
+168, 1, 0, 0, 8,255,168, 5, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,175, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120,175, 30, 7, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 16, 0, 15, 0,232,175, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,
-232,175, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,248, 0,169, 5, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 16, 0, 15, 0,104, 1,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 0, 16, 0, 0,104, 1,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6495,54 +6496,53 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 0, 0, 16, 5, 0, 0, 56,192, 30, 7, 0, 0, 0, 0,
- 50, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 0, 0, 16, 5, 0, 0,184, 17,169, 5,
+ 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152,197, 30, 7, 0, 0, 0, 0,232, 12, 88, 8, 0, 0, 0, 0,184,127,248, 6, 0, 0, 0, 0,200, 47, 68, 8, 0, 0, 0, 0,
-120, 28,155, 8, 0, 0, 0, 0,184,129,154, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,177, 84, 8, 0, 0, 0, 0,104, 66,154, 8, 0, 0, 0, 0,
+ 0, 0, 0, 0,168,106,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 37,169, 5, 0, 0, 0, 0,168, 36,169, 5,
+ 0, 0, 0, 0, 72, 33,169, 5, 0, 0, 0, 0,216, 31,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 25,169, 5, 0, 0, 0, 0,168, 28,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 65, 68, 8, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 23,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 10,155, 8, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
+255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 88, 26,169, 5, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
+ 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,197, 30, 7, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 34,169, 5, 0, 0, 0, 0,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216,111,154, 8, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 29,169, 5, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 2, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51,
- 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,
-152,197, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,151, 30, 7, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,
- 56, 65, 68, 8, 0, 0, 0, 0,126, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 8, 0, 0, 0,168,106,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248,232,168, 5, 0, 0, 0, 0, 68, 65, 84, 65,
+ 8, 2, 0, 0, 24, 23,169, 5, 0, 0, 0, 0,132, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,177, 84, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 25,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6554,18 +6554,18 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-216,177, 84, 8, 0, 0, 0, 0, 56, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73,
- 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,253,255,127,191,
- 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0,
- 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 1, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,
-230, 73, 26,182,230, 73, 1, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,255,255,127,191,
- 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65, 8, 2, 0, 0,152, 10,155, 8, 0, 0, 0, 0,
-126, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+160, 0, 0, 0,104, 25,169, 5, 0, 0, 0, 0, 56, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,
+230, 73,230, 73, 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,
+253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73,
+ 26,182, 1, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 1, 0,245,255,127, 63, 5, 0,128,191,
+ 0, 0,128, 63,230, 73, 26,182,230, 73, 1, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,
+255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65, 8, 2, 0, 0, 88, 26,169, 5,
+ 0, 0, 0, 0,132, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104, 66,154, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 28,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6577,20 +6577,20 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,104, 66,154, 8, 0, 0, 0, 0,
- 53, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0,
- 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0,
- 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-216,111,154, 8, 0, 0, 0, 0,126, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 77, 97,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,129,154, 8, 0, 0, 0, 0, 26, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 28,155, 8, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,168, 28,169, 5,
+ 0, 0, 0, 0, 53, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,
+ 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0,
+ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,
+ 8, 2, 0, 0,136, 29,169, 5, 0, 0, 0, 0,132, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 77, 97,112, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 31,169, 5, 0, 0, 0, 0, 26, 0, 0, 0,
+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110,
+ 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 33,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6599,32 +6599,32 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,
-184,129,154, 8, 0, 0, 0, 0, 61, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0,120, 28,155, 8, 0, 0, 0, 0,
- 59, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0,
- 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0,
- 3, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0,
- 7, 0, 0, 0, 9, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,232,197, 30, 7, 0, 0, 0, 0,126, 1, 0, 0, 5, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 85, 86, 77, 97,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 47, 68, 8, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 32, 1, 0, 0,216, 31,169, 5, 0, 0, 0, 0, 61, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0, 72, 33,169, 5,
+ 0, 0, 0, 0, 59, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0,
+ 5, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0,
+ 10, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0,
+ 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0,
+ 6, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0,
+ 7, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0,
+ 7, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 88, 34,169, 5, 0, 0, 0, 0,132, 1, 0, 0,
+ 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 85, 86, 77, 97,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,184,127,248, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,168, 36,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 37,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6633,29 +6633,30 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,200, 47, 68, 8, 0, 0, 0, 0, 60, 0, 0, 0, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,168, 36,169, 5, 0, 0, 0, 0, 60, 0, 0, 0,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 72, 0, 0, 0,184,127,248, 6, 0, 0, 0, 0, 58, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 2, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 12, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,184,212, 30, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100,100, 0,104, 46,
- 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2,
+ 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 88, 37,169, 5, 0, 0, 0, 0, 58, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0,
+ 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 2, 0, 66, 82, 0, 0, 96, 6, 0, 0,232, 37,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168, 47,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100,
+100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232,220, 30, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 46,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6688,49 +6689,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
- 80,213, 30, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 56, 1, 0, 0,128, 38,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,220, 30, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120,222, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24, 46,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,184,181,132, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120,222, 30, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248,222, 30, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184,231, 30, 7, 0, 0, 0, 0,184,212, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,181,132, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168, 47,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,232, 55,169, 5, 0, 0, 0, 0,232, 37,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,229, 30, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 54,169, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6763,49 +6764,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63,
- 68, 65, 84, 65, 56, 1, 0, 0,144,223, 30, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
+ 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 64, 48,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,229, 30, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,231, 30, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 54,169, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,200, 66,140, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,231, 30, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184,231, 30, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120,240, 30, 7, 0, 0, 0, 0,248,222, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,200, 66,140, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232, 55,169, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0,168, 47,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,238, 30, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152, 62,169, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6838,49 +6839,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80,232, 30, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,128, 56,169, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104,238, 30, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
-248,239, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0,152, 62,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191,
+ 46,189,194, 61,216,145,132, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,239, 30, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0,184,231, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,145,132, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40, 64,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0,232, 55,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40,247, 30, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216, 70,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6913,50 +6915,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 20,174,199, 62,
- 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 16,241, 30, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 30, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192, 64,169, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40,247, 30, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,184,248, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216, 70,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191,
+ 46, 95,255,186,224,255,127,191,114, 97,255,186, 8, 3,135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184,248, 30, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56,249, 30, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248, 1, 31, 7, 0, 0, 0, 0,
-120,240, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48,
- 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0, 8, 3,135, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 72,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168, 80,169, 5,
+ 0, 0, 0, 0, 40, 64,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,
+ 97,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232,255, 30, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 79,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6989,49 +6990,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-208,249, 30, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65,
+ 56, 1, 0, 0, 0, 73,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,255, 30, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,120, 1, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 24, 79,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56, 35,135, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120, 1, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248, 1, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184, 10, 31, 7, 0, 0, 0, 0, 56,249, 30, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 67,108, 97,121, 32, 83,116,114,105,112,115, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56, 35,135, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168, 80,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104, 89,169, 5, 0, 0, 0, 0,104, 72,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 67,108, 97,121, 32, 83,116,114,105,112,115, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168, 8, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 87,169, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7064,49 +7065,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63,
- 68, 65, 84, 65, 56, 1, 0, 0,144, 2, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
+ 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 64, 81,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168, 8, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56, 10, 31, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 87,169, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232, 88,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56, 10, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184, 10, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120, 19, 31, 7, 0, 0, 0, 0,248, 1, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 88,169, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 89,169, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0,168, 80,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104, 17, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 96,169, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7139,49 +7140,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80, 11, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0, 90,169, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104, 17, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
-248, 18, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24, 96,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191,
+ 46,189,194, 61,168, 97,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248, 18, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0,184, 10, 31, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 97,169, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40, 98,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0,104, 89,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101, 0, 48, 48, 49,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40, 26, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216,104,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7214,50 +7216,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62,
- 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 16, 20, 31, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63,
+ 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192, 98,169, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40, 26, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,228, 97,175,190, 50,131,112, 63,
-218,243,127,191, 10,183,157,188,184, 27, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,104,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,228, 97,175,190,
+ 50,131,112, 63,218,243,127,191, 10,183,157,188,104,106,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184, 27, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0,
-120, 19, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,114,107,101,110,
- 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0,104,106,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232,106,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,115,169, 5,
+ 0, 0, 0, 0, 40, 98,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,
+114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232, 34, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,113,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7290,49 +7291,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-208, 28, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 56, 1, 0, 0,128,107,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232, 34, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120, 36, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,113,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 40,115,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120, 36, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248, 36, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184, 45, 31, 7, 0, 0, 0, 0, 56, 28, 31, 7, 0, 0, 0, 0, 0, 20, 1,160,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168, 43, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,115,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,115,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104,124,169, 5, 0, 0, 0, 0,232,106,169, 5, 0, 0, 0, 0, 0, 20, 1,160,255,255,255,255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,122,169, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7365,49 +7366,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 63, 35, 0, 0, 0, 0, 4, 0, 8, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63,
- 68, 65, 84, 65, 56, 1, 0, 0,144, 37, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 63, 35, 0, 0, 0, 0, 4, 0, 8,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
+ 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 64,116,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168, 43, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56, 45, 31, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,122,169, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232,123,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56, 45, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184, 45, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120, 54, 31, 7, 0, 0, 0, 0,248, 36, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101,110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,123,169, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,124,169, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0,168,115,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101,110, 0, 48, 48, 49, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104, 52, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,131,169, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7440,49 +7441,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 80, 46, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62,
+ 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,125,169, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104, 52, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-248, 53, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24,131,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,
+114, 97,255,186,168,132,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248, 53, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0,184, 45, 31, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,110, 47, 67,111,110,116,114, 97,
-115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40, 61, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,132,169, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40,133,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0,104,124,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,110, 47, 67,111,
+110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216,139,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7515,50 +7517,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 16, 55, 31, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63,
+ 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192,133,169, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40, 61, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,184, 62, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,139,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191,
+ 46, 95,255,186,224,255,127,191,114, 97,255,186,104,141,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184, 62, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0,
-120, 54, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48,
- 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0,104,141,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232,141,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,150,169, 5,
+ 0, 0, 0, 0, 40,133,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114,
+ 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232, 69, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,148,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7591,49 +7592,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-208, 63, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 56, 1, 0, 0,128,142,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232, 69, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,120, 71, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,148,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,150,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120, 71, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248, 71, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184, 80, 31, 7, 0, 0, 0, 0, 56, 63, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 73,110,102,108, 97,116,101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168, 78, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,150,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,150,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104,159,169, 5, 0, 0, 0, 0,232,141,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,157,169, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7666,49 +7667,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62,
- 68, 65, 84, 65, 56, 1, 0, 0,144, 72, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62,
+ 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0, 64,151,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168, 78, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56, 80, 31, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,157,169, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232,158,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56, 80, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184, 80, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120, 89, 31, 7, 0, 0, 0, 0,248, 71, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,158,169, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,159,169, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0,168,150,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104, 87, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,166,169, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7741,49 +7742,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80, 81, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0,160,169, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104, 87, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-248, 88, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24,166,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,
+114, 97,255,186,168,167,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248, 88, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0,184, 80, 31, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,167,169, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40,168,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0,104,159,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40, 96, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216,174,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7816,50 +7818,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16, 90, 31, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,168,169, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40, 96, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,184, 97, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,174,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191,
+ 54,189,194, 61, 14,215,126,191, 46,189,194, 61,104,176,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184, 97, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0,
-120, 89, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,120, 0,104, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0,104,176,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232,176,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,185,169, 5,
+ 0, 0, 0, 0, 40,168,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,
+120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232,104, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,183,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7892,49 +7893,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-208, 98, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 56, 1, 0, 0,128,177,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,104, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,120,106, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,183,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 40,185,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120,106, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248,106, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184,115, 31, 7, 0, 0, 0, 0, 56, 98, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,113, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,185,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,185,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104,194,169, 5, 0, 0, 0, 0,232,176,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,192,169, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7967,49 +7968,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0,144,107, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 64,186,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,113, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,115, 31, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,192,169, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232,193,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,115, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184,115, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120,124, 31, 7, 0, 0, 0, 0,248,106, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,193,169, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+ 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,194,169, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0,168,185,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,122, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,201,169, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8042,49 +8043,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80,116, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0,195,169, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104,122, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-248,123, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24,201,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,
+114, 97,255,186,168,202,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,123, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0,184,115, 31, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105,110, 99,104, 47, 77, 97,103,110,105,102,121, 0,
- 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40,131, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,202,169, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40,203,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0,104,194,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105,110, 99,104, 47, 77, 97,103,110,
+105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216,209,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8117,50 +8119,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63,
- 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0, 16,125, 31, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63,
+ 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0,192,203,169, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40,131, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,184,132, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,209,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191,
+ 46, 95,255,186,224,255,127,191,114, 97,255,186,104,211,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184,132, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56,133, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0,
-120,124, 31, 7, 0, 0, 0, 0,253, 21,192, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111,108,105,115,104,
- 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0,104,211,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232,211,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,220,169, 5,
+ 0, 0, 0, 0, 40,203,169, 5, 0, 0, 0, 0,253, 21,192, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111,
+108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232,139, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,218,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8193,49 +8194,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-208,133, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 1, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 56, 1, 0, 0,128,212,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,139, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,120,141, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,218,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,220,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120,141, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248,141, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184,150, 31, 7, 0, 0, 0, 0, 56,133, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 83, 99,114, 97,112,101, 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,148, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,220,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,220,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104,229,169, 5, 0, 0, 0, 0,232,211,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101, 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,227,169, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8268,49 +8269,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 56, 1, 0, 0,144,142, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 64,221,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,148, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,150, 31, 7, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,227,169, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232,228,169, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,150, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184,150, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120,159, 31, 7, 0, 0, 0, 0,248,141, 31, 7, 0, 0, 0, 0,168,205,210, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,228,169, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,229,169, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0,168,220,169, 5, 0, 0, 0, 0,168,205,210, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,157, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,236,169, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8343,49 +8344,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
- 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 80,151, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62,
+ 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,230,169, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104,157, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-248,158, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24,236,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,
+114, 97,255,186,168,237,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,158, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0,184,150, 31, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,237,169, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40,238,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0,104,229,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40,166, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216,244,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8418,50 +8420,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16,160, 31, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,238,169, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40,166, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,184,167, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216,244,169, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191,
+ 54,189,194, 61, 14,215,126,191, 46,189,194, 61,104,246,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184,167, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56,168, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0,
-120,159, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104,
- 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0,104,246,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232,246,169, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,255,169, 5,
+ 0, 0, 0, 0, 40,238,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,
+111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232,174, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152,253,169, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8494,49 +8495,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-208,168, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 56, 1, 0, 0,128,247,169, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,174, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,120,176, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,253,169, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,255,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120,176, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248,176, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184,185, 31, 7, 0, 0, 0, 0, 56,168, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,183, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,255,169, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,255,169, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104, 8,170, 5, 0, 0, 0, 0,232,246,169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 6,170, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8569,49 +8570,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0,144,177, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 64, 0,170, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,183, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,185, 31, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 6,170, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232, 7,170, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,185, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184,185, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0,120,194, 31, 7, 0, 0, 0, 0,248,176, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 7,170, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 8,170, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0,168,255,169, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,192, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 15,170, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8644,49 +8645,50 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80,186, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63,
+ 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0, 9,170, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104,192, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
-248,193, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24, 15,170, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191,
+ 46,189,194, 61,168, 16,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,193, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0,184,185, 31, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 16,170, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
+ 96, 6, 0, 0, 40, 17,170, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0,104, 8,170, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 40,201, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0,216, 23,170, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8719,50 +8721,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16,195, 31, 7, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192, 17,170, 5,
+ 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0, 40,201, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,184,202, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,216, 23,170, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191,
+ 54,189,194, 61, 14,215,126,191, 46,189,194, 61,104, 25,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184,202, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0, 56,203, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0,
-120,194, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,
-119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 48, 0, 0, 0,104, 25,170, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,232, 25,170, 5, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168, 34,170, 5,
+ 0, 0, 0, 0, 40, 17,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,
+120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,232,209, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,152, 32,170, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8795,49 +8796,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-208,203, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65,
+ 56, 1, 0, 0,128, 26,170, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,232,209, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,120,211, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152, 32,170, 5, 0, 0, 0, 0,127, 1, 0, 0,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40, 34,170, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,120,211, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,248,211, 31, 7, 0, 0, 0, 0,125, 1, 0, 0, 1, 0, 0, 0,
-184,220, 31, 7, 0, 0, 0, 0, 56,203, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 84,104,117,109, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,168,218, 31, 7, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40, 34,170, 5, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168, 34,170, 5, 0, 0, 0, 0,131, 1, 0, 0,
+ 1, 0, 0, 0,104, 43,170, 5, 0, 0, 0, 0,232, 25,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 41,170, 5, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8870,49 +8871,49 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0,144,212, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 64, 35,170, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,218, 31, 7, 0, 0, 0, 0,
-121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 56,220, 31, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 41,170, 5,
+ 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
+ 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232, 42,170, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,220, 31, 7, 0, 0, 0, 0,119, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,184,220, 31, 7, 0, 0, 0, 0,
-125, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,211, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 42,170, 5, 0, 0, 0, 0,125, 1, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,
+143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 43,170, 5,
+ 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 34,170, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,227, 31, 7, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 50,170, 5,
+ 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8945,36 +8946,37 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80,221, 31, 7, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63,
+ 75, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0, 44,170, 5, 0, 0, 0, 0, 25, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
-104,227, 31, 7, 0, 0, 0, 0,121, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-248,228, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
+ 64, 1, 0, 0, 24, 50,170, 5, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,
+114, 97,255,186,168, 51,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,228, 31, 7, 0, 0, 0, 0,
-119, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82,112, 38, 0, 0,
-160,219,222, 4, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 1, 8, 17, 1, 63, 6, 0, 0, 5, 0, 0, 0, 47,116,109,112,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 51,170, 5,
+ 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63,
+ 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82,
+112, 38, 0, 0,192,113, 10, 4, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 1, 8, 17, 1, 63, 6, 0, 0, 5, 0, 0, 0,
+ 47,116,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8997,9 +8999,8 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,
-115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,
-108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0,
+ 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,
+105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 99,101,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9021,8 +9022,8 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9053,8 +9054,8 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9149,8 +9150,8 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9237,1696 +9238,1705 @@ char datatoc_startup_blend[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 8, 0, 0,
- 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0,
- 56, 12, 32, 7, 0, 0, 0, 0, 56, 12, 32, 7, 0, 0, 0, 0,184,243, 31, 7, 0, 0, 0, 0,184,243, 31, 7, 0, 0, 0, 0,
- 40, 54, 32, 7, 0, 0, 0, 0, 40, 54, 32, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,219, 30, 7, 0, 0, 0, 0,136, 53, 32, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,
-205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,
-102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,
-205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 1, 0, 25, 0, 15, 0,
-120, 0, 60, 0, 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 25, 0, 8, 0, 10, 0,200, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 4, 0, 10, 0, 50, 0, 20, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 60, 0, 0, 0, 0, 0, 2, 0,
- 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0,
- 68, 65, 84, 65,168, 36, 0, 0, 56, 12, 32, 7, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255,
- 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255,
- 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255,
- 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255,
- 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255,
- 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255,
- 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255,
- 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255,
- 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,172,172,172,128,255,255,255,255, 0, 0, 0,255,
- 1, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,255,255,255,255,255,255,255,255,
- 0, 0, 25, 0,236,255, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255,
- 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255,190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,255,255,255,255,
- 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,170, 64,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, 32,255,255,255,
- 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,200,
-255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,
-250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,130,130,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255, 0, 0, 0, 0,250,250,250,255,
-250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 79,101, 73,255,
-135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255,153, 64, 48,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,240,175,144,255,
- 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,
-255,133, 0,255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 79,101, 73,255,
-135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,
-255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 79,101, 73,255,
-135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,
-255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255, 32, 32,143,255,109, 88,129,255,
- 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 18, 66,176, 38,255,133, 0,178,
-255,133, 0,127, 0,255, 0,255,255, 0, 0,255,225,210,195, 35, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
-100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,127, 51, 76,130,135,140, 76,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 5,
-155,155,155,160,100,104,111,255,111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,170, 64,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, 32,255,255,255,
- 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,
-255,255, 0,255, 4, 0, 0, 0,255,127,127, 0,255,255,255,255,255,255,255, 0,255,127, 0, 0,255,127,127,127,255,200,200,200,
-255,255, 0, 0,255, 0, 0,255,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,
-247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,
-131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,
-240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,
-111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,
-243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,
-211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,
-222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255,
- 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 80, 0, 0, 0,104,219, 30, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0, 8,220, 30, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 8,220, 30, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,
- 40, 49, 32, 7, 0, 0, 0, 0,104,219, 30, 7, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 40, 49, 32, 7, 0, 0, 0, 0,
-208, 0, 0, 0, 1, 0, 0, 0,200, 49, 32, 7, 0, 0, 0, 0, 8,220, 30, 7, 0, 0, 0, 0,105,111, 95, 97,110,105,109, 95,
- 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,
-200, 49, 32, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,104, 50, 32, 7, 0, 0, 0, 0, 40, 49, 32, 7, 0, 0, 0, 0,
-105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 80, 0, 0, 0,104, 50, 32, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0, 8, 51, 32, 7, 0, 0, 0, 0,
-200, 49, 32, 7, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 8, 51, 32, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,
-168, 51, 32, 7, 0, 0, 0, 0,104, 50, 32, 7, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,168, 51, 32, 7, 0, 0, 0, 0,
-208, 0, 0, 0, 1, 0, 0, 0, 72, 52, 32, 7, 0, 0, 0, 0, 8, 51, 32, 7, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,
-115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,
- 72, 52, 32, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,232, 52, 32, 7, 0, 0, 0, 0,168, 51, 32, 7, 0, 0, 0, 0,
-105,111, 95,109,101,115,104, 95,117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 80, 0, 0, 0,232, 52, 32, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,136, 53, 32, 7, 0, 0, 0, 0,
- 72, 52, 32, 7, 0, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,136, 53, 32, 7, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 52, 32, 7, 0, 0, 0, 0, 99,121, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0, 40, 54, 32, 7, 0, 0, 0, 0,
-200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 32,
- 83,116,121,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 12, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 11, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, 0, 4, 0, 0, 0, 68, 78, 65, 49,160, 6, 1, 0,216,191, 73, 8, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 80, 13, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0,
- 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,120,109,105,110, 0,120,109,
- 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,
-118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 54, 52, 93, 0,
-115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,
-108,105, 98, 0,110, 97,109,101, 91, 54, 54, 93, 0,112, 97,100, 0,117,115, 0,105, 99,111,110, 95,105,100, 0,112, 97,100, 50,
- 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,
-116, 97, 0,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,102,105,108,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42,112, 97,
-114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0, 99,104, 97,110,103,101,
-100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,
-107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,
-116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,
-105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,
-115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,
-117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,112, 97,100, 49, 0,114,101,108, 97,
-116,105,118,101, 0,116,111,116,101,108,101,109, 0,117,105,100, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112,
- 91, 54, 52, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,
-101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107,
- 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 99,116,105,109,101, 0,
-117,105,100,103,101,110, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111,
- 0,115,116, 97,114,116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93,
- 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0,
- 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111,
- 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,
-122,101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,
-116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,
-115,105,122,101, 0,115,101,110,115,111,114, 95,120, 0,115,101,110,115,111,114, 95,121, 0,115,104,105,102,116,120, 0,115,104,
-105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0,115,101,110,115,111,114, 95,102,
-105,116, 0,112, 97,100, 91, 55, 93, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,
-111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,
-105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,
-116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,
-114, 95,115,108,111,116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108,
- 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,
-121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,
-110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,
-116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,
-121, 0,103,101,110, 95,116,121,112,101, 0,103,101,110, 95,102,108, 97,103, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,
-120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,
-106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,106,120, 0,112,114,111,106,121,
- 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,
-116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,
-116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,
-114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,
-108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102,
- 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,
-105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114,
- 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,
-105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,
-115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,
-108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102,
- 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99,
- 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97,
- 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0,
- 98,108,101,110,100,102, 97, 99, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115,
- 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,
-114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101,
- 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97,
- 0,116,111,116, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91,
- 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,
-108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108,
- 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,
-116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,
-110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,
-111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,
-116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,
-105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51,
- 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,108,108,111,102,
-102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,102, 97,108,108,
-111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,
-105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,
-116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,
-112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 0,
-111, 99,101, 97,110,109,111,100, 91, 54, 52, 93, 0,111,117,116,112,117,116, 0,110,111,105,115,101,115,105,122,101, 0,116,117,
-114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, 97,116,105,111,110, 0,
-114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,
-103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,
-116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,
-101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,
-112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104,
- 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115,
- 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,
-120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,
-101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,
-105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100,
- 0, 42,118,100, 0, 42,111,116, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93,
- 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0, 99,111, 98, 97, 0, 98,108,
-101,110,100, 95, 99,111,108,111,114, 91, 51, 93, 0, 98,108,101,110,100, 95,102, 97, 99,116,111,114, 0, 98,108,101,110,100, 95,
-116,121,112,101, 0,112, 97,100, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,
-119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,
-116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0,
- 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,
-102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0, 98,108,101,101,100, 98,105, 97,115, 0,112, 97,100, 53,
- 91, 50, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,114,116,
-121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121,
- 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,
-114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,
-114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,
-109,101,116,104,111,100, 0,115,104, 97,100,111,119,109, 97,112, 95,116,121,112,101, 0,116,101,120, 97, 99,116, 0,115,104, 97,
-100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,
-110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100,
- 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,
-116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,
-117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114,
- 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,
-110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,
-117,114,101, 0,115,104, 97,100,111,119, 95,102,114,117,115,116,117,109, 95,115,105,122,101, 0,115,107,121, 95, 99,111,108,111,
-114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 50, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,
-117,114,101, 0,112, 97,100, 54, 91, 52, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,
-116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91,
- 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,
-110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,
-111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,
-101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,
-116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,
-116,121, 0,109,115, 95,115,112,114,101, 97,100, 0, 97,108,112,104, 97, 95, 98,108,101,110,100, 0,102, 97, 99,101, 95,111,114,
-105,101,110,116, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,
-101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109,
- 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121,
- 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100,
- 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,103, 97,109,101, 0,102,114,101,115,110,101,108, 95,109,
-105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,
-115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,
-108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,
-114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114,
- 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0,
- 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114,
- 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,
-111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,
-116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,
-101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,
-115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,
-114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,
-101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 54, 52, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,
-115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101,
- 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104,
- 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97,
- 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,
-108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,
-112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99,
- 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,
-102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,
-101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,
-114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,
-115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,
-116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108,
- 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,115,104, 97,
-100,111,119,111,110,108,121, 95,102,108, 97,103, 0,105,110,100,101,120, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0, 42,
- 98, 98, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,
-101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,
-101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103,
- 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,
-101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,
-103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109,
- 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,
-111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,
-117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,
-101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,101,121,105,
-110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,
-111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104,
- 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,116,119,
-105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,116,104,108,
-101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,
-108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108,
- 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,
-114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116,
- 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,
-115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,
-102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0,116,
-111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100,
- 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 98,101,118,102, 97, 99, 49, 0, 98,101,118,102, 97, 99,
- 50, 0, 42,109,115,101,108,101, 99,116, 0, 42,109,112,111,108,121, 0, 42,109,116,112,111,108,121, 0, 42,109,108,111,111,112,
- 0, 42,109,108,111,111,112,117,118, 0, 42,109,108,111,111,112, 99,111,108, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97,
- 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,
-109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,101,100,105,116, 95, 98,
-116,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,112,100, 97,116, 97, 0,108,100,
- 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0,116,111,
-116,112,111,108,121, 0,116,111,116,108,111,111,112, 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,104,114,101,115,
-104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0,101,100,105,
-116,102,108, 97,103, 0, 42,109,114, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93,
- 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,
-101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119,
- 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,108,111,111,112,115,116, 97,114,116,
- 0,118, 0,101, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,
-105,115,112, 0,108,101,118,101,108, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0, 42,104,105,100,100,101,110, 0,118, 91, 52,
- 93, 0,109,105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,
-101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,
-117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,
-108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0,
- 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,114,111,114, 0,
-109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,
-108, 97,121,101,114, 95,110, 97,109,101, 91, 54, 52, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0,116,101,120,109, 97,
-112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,
-109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,115,116,114,101,110,103,116,104, 0,100,101,102, 97,120,105,115, 0,
-112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98,
- 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,
-111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93,
- 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101,
- 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98,
- 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115,
- 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,
-101,102,103,114,112, 95,110, 97,109,101, 91, 54, 52, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,
-108,108, 0,116,105,109,101, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0, 42,112,114,111,106,
-101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115,
- 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,
-101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,
-101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110,
- 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,
-115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,
-118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 54, 52, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91,
- 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114,
- 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108,
- 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0,
- 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,
-110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115,
- 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105,109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,
-114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120,
- 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,105,110,102,108,
-117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115,
- 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,
-110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101,
- 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,
-109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0,
- 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,
-116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,
-109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,
-116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,
-115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,
-101, 91, 54, 52, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107,
- 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,
-103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,111,
-102,102,115,101,116, 95,102, 97, 99, 0,111,102,102,115,101,116, 95,102, 97, 99, 95,118,103, 0, 99,114,101, 97,115,101, 95,105,
-110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116,
- 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,
-114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,
-101, 0, 42,111, 99,101, 97,110, 0, 42,111, 99,101, 97,110, 99, 97, 99,104,101, 0,114,101,115,111,108,117,116,105,111,110, 0,
-115,112, 97,116,105, 97,108, 95,115,105,122,101, 0,119,105,110,100, 95,118,101,108,111, 99,105,116,121, 0,115,109, 97,108,108,
-101,115,116, 95,119, 97,118,101, 0,119, 97,118,101, 95, 97,108,105,103,110,109,101,110,116, 0,119, 97,118,101, 95,100,105,114,
-101, 99,116,105,111,110, 0,119, 97,118,101, 95,115, 99, 97,108,101, 0, 99,104,111,112, 95, 97,109,111,117,110,116, 0,102,111,
- 97,109, 95, 99,111,118,101,114, 97,103,101, 0, 98, 97,107,101,115,116, 97,114,116, 0, 98, 97,107,101,101,110,100, 0, 99, 97,
- 99,104,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,102,111, 97,109,108, 97,121,101,114,110, 97,109,101, 91, 54, 52, 93, 0,
- 99, 97, 99,104,101,100, 0,103,101,111,109,101,116,114,121, 95,109,111,100,101, 0,114,101,102,114,101,115,104, 0,114,101,112,
-101, 97,116, 95,120, 0,114,101,112,101, 97,116, 95,121, 0,102,111, 97,109, 95,102, 97,100,101, 0, 42,111, 98,106,101, 99,116,
- 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102,102, 95,114, 97,100,105,117,115, 0,
-101,100,105,116, 95,102,108, 97,103,115, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 0, 42, 99,109, 97,112, 95,
- 99,117,114,118,101, 0, 97,100,100, 95,116,104,114,101,115,104,111,108,100, 0,114,101,109, 95,116,104,114,101,115,104,111,108,
-100, 0,109, 97,115,107, 95, 99,111,110,115,116, 97,110,116, 0,109, 97,115,107, 95,100,101,102,103,114,112, 95,110, 97,109,101,
- 91, 54, 52, 93, 0,109, 97,115,107, 95,116,101,120, 95,117,115,101, 95, 99,104, 97,110,110,101,108, 0, 42,109, 97,115,107, 95,
-116,101,120,116,117,114,101, 0, 42,109, 97,115,107, 95,116,101,120, 95,109, 97,112, 95,111, 98,106, 0,109, 97,115,107, 95,116,
-101,120, 95,109, 97,112,112,105,110,103, 0,109, 97,115,107, 95,116,101,120, 95,117,118,108, 97,121,101,114, 95,110, 97,109,101,
- 91, 54, 52, 93, 0,112, 97,100, 95,105, 49, 0,100,101,102,103,114,112, 95,110, 97,109,101, 95, 97, 91, 54, 52, 93, 0,100,101,
-102,103,114,112, 95,110, 97,109,101, 95, 98, 91, 54, 52, 93, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 95, 97,
- 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 95, 98, 0,109,105,120, 95,109,111,100,101, 0,109,105,120, 95,115,
-101,116, 0,112, 97,100, 95, 99, 49, 91, 54, 93, 0,112,114,111,120,105,109,105,116,121, 95,109,111,100,101, 0,112,114,111,120,
-105,109,105,116,121, 95,102,108, 97,103,115, 0, 42,112,114,111,120,105,109,105,116,121, 95,111, 98, 95,116, 97,114,103,101,116,
- 0,109,105,110, 95,100,105,115,116, 0,109, 97,120, 95,100,105,115,116, 0,112, 97,100, 95,115, 49, 0, 42, 99, 97,110,118, 97,
-115, 0, 42, 98,114,117,115,104, 0,116,104,114,101,115,104,111,108,100, 0,115, 99, 97,108,101, 0,104,101,114,109,105,116,101,
- 95,110,117,109, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,
-112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119,
- 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109,
- 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,
-117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,
-117, 98,115,116,114, 91, 54, 52, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,
-114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105,
- 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116,114, 97,105,
-110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,
-101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108,
- 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,115, 99, 97,108,101,
- 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,
-100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111,
- 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,
-101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0,112, 97,100, 54, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,
-108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103,
- 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,
-108, 97,103, 0,112, 97,100, 53, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,
-101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,
-102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,
-105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,
-111,108,100, 0,111, 98,115,116, 97, 99,108,101, 82, 97,100, 0,114,111,116,109,111,100,101, 0, 98,111,117,110,100,116,121,112,
-101, 0, 99,111,108,108,105,115,105,111,110, 95, 98,111,117,110,100,116,121,112,101, 0,114,101,115,116,114,105, 99,116,102,108,
- 97,103, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,101,109,112,116,121, 95,100,114, 97,119,115,
-105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,
-114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,
-101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,
-116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,
-115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,
-101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0, 98,111,100,121, 95,116,121,
-112,101, 0,115,104, 97,112,101,102,108, 97,103, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,
-100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116,
- 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,
-110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,
-105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,
-114,105,103,108, 97,121, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,110,111, 95,100,114, 97,
-119, 0, 97,110,105,109, 97,116,101,100, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104,
- 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114,
- 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101,
- 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114,
- 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,
-114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,
-114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110,
- 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,
-102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113,
- 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,
-120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,
-103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,
-109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0,
- 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,
-115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,
-115,116, 95,101,120, 97, 99,116, 0,108, 97,115,116, 95,118, 97,108,105,100, 0, 99,111,109,112,114,101,115,115,105,111,110, 0,
-112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 49, 48, 50, 52,
- 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116,
- 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,
-102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115,
- 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67,
- 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,
-107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80,
- 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75,
- 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,
-108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,
-110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103,
- 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 54, 52, 93,
- 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115,
- 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,
-111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,
-109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 54, 52, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,
-112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 54,
- 52, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,
-103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,
-110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98,
- 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,
-115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,
-112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,
-115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115,
- 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93,
- 0,108, 97,115,116, 95,102,114, 97,109,101, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118,
- 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,
-101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101,
- 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,
-101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,
-116, 0,103,114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101,
- 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,102,114, 97,109,101, 79,102,102,115,101,116, 0,103,115,116, 97,114, 0,
-109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,
-122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91,
- 49, 48, 50, 52, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,
-108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,
-112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115,
- 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,
-105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,
-122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101,
- 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,
-115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101,
- 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111,
- 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82,
- 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0, 97,110,105,109, 82, 97,116,101, 0,109,105,115,
-116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,
-110, 98, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,
-110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82,
- 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105,
- 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,
-121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97,
- 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,
-114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116,
- 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,
-100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99,
- 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,
-111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95,
- 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0,
- 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116,
- 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111,
- 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112,
- 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,
-111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,
-108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98,
- 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,
-114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,
-116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,
-101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,
-115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,
-111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,
-101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,
-109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,
-109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0,
- 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,
-108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,
-108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0,
- 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,
- 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95, 99,104, 97,110,
-110,101,108,115, 0, 97,117,100,105,111, 95,112, 97,100, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,
-115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95,
- 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,
-114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100,
- 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,
-109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121,
- 95,122,109, 97,115,107, 0,108, 97,121, 95,101,120, 99,108,117,100,101, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,
-108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0,115, 97,109,112,108,101,115, 0,105,109,116,121,112,101, 0,112,108, 97,110,
-101,115, 0,113,117, 97,108,105,116,121, 0, 99,111,109,112,114,101,115,115, 0,101,120,114, 95, 99,111,100,101, 99, 0, 99,105,
-110,101,111,110, 95,102,108, 97,103, 0, 99,105,110,101,111,110, 95,119,104,105,116,101, 0, 99,105,110,101,111,110, 95, 98,108,
- 97, 99,107, 0, 99,105,110,101,111,110, 95,103, 97,109,109, 97, 0,106,112, 50, 95,102,108, 97,103, 0,105,109, 95,102,111,114,
-109, 97,116, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,
-116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114,
- 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,
-116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,
-100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,
-121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,
-114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,
-122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,115,117, 98,105,109,
-116,121,112,101, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,
-101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,111, 99,114,
-101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,
-103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,
-101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,
-115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,
-102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,
-105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,
-108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,
-114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,
-109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0,112,
-105, 99, 91, 49, 48, 50, 52, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,
-109,112, 95,117,100, 97,116, 97, 91, 55, 54, 56, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,
-109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,
-101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103,
- 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,
-119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,
-108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97,
- 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,
-112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,
-110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,
-120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,110, 97,109,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,
-112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109,
- 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,
-116, 0, 99,111,108, 91, 51, 93, 0, 99,101,108,108,115,105,122,101, 0, 99,101,108,108,104,101,105,103,104,116, 0, 97,103,101,
-110,116,109, 97,120,115,108,111,112,101, 0, 97,103,101,110,116,109, 97,120, 99,108,105,109, 98, 0, 97,103,101,110,116,104,101,
-105,103,104,116, 0, 97,103,101,110,116,114, 97,100,105,117,115, 0,101,100,103,101,109, 97,120,108,101,110, 0,101,100,103,101,
-109, 97,120,101,114,114,111,114, 0,114,101,103,105,111,110,109,105,110,115,105,122,101, 0,114,101,103,105,111,110,109,101,114,
-103,101,115,105,122,101, 0,118,101,114,116,115,112,101,114,112,111,108,121, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,
-100,105,115,116, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,109, 97,120,101,114,114,111,114, 0,102,114, 97,109,105,110,
-103, 0,112,108, 97,121,101,114,102,108, 97,103, 0,114,116, 49, 0,114,116, 50, 0, 97, 97,115, 97,109,112,108,101,115, 0,112,
- 97,100, 52, 91, 51, 93, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,
-116,105,111,110, 0,114,101, 99, 97,115,116, 68, 97,116, 97, 0,109, 97,116,109,111,100,101, 0,101,120,105,116,107,101,121, 0,
-111, 98,115,116, 97, 99,108,101, 83,105,109,117,108, 97,116,105,111,110, 0,108,101,118,101,108, 72,101,105,103,104,116, 0, 42,
- 99, 97,109,101,114, 97, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,
-114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108,
- 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,
-116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,
-121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116,
- 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102,
- 97,100,101, 95,102,114, 97,109,101,115, 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120,
- 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100,
- 0, 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110,
- 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114,
- 97,119, 95,112,114,101,115,115,117,114,101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105,
- 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116,
- 95,112,114,101,118, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,
-117,115, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0, 42,117,118,115, 99,117,108,112,116, 0,118,103,114,
-111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,106,111,105,110,116,114,105,108,105,109,
-105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116,
- 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,
-105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114,
- 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,
-103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,
-110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,
-111,100,101, 0,117,118, 95,115,117, 98,115,117,114,102, 95,108,101,118,101,108, 0,103,112,101,110, 99,105,108, 95,102,108, 97,
-103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,
-105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,
-114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,
-117,116,111,107,101,121, 95,102,108, 97,103, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101,
- 0,112, 97,100, 50, 91, 53, 93, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,
-116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,
-108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,
-107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,
-109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,
-110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,
- 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,
-116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,
-101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,
-116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,
-115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,
-108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103,
- 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117,
- 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,
-111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,
-110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,
-103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108,105,118,101, 95,117,110,
-119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,
-114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,112,114,111,112,
-111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0,112, 97,100, 91, 53, 93, 0, 97,117,116,111, 95,110,111,114,
-109, 97,108,105,122,101, 0,109,117,108,116,105,112, 97,105,110,116, 0,117,115,101, 95,117,118, 95,115, 99,117,108,112,116, 0,
-117,118, 95,115, 99,117,108,112,116, 95,115,101,116,116,105,110,103,115, 0,117,118, 95,115, 99,117,108,112,116, 95,116,111,111,
-108, 0,117,118, 95,114,101,108, 97,120, 95,109,101,116,104,111,100, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,
-101,116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,
-101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,
-101,100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,
-108,112,104, 97, 0,117,110,105,102,105,101,100, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,116,111,116,111,
- 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,
-116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,
-121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93,
- 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,
-115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,
-101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,
-108, 97,121, 95,117,112,100, 97,116,101,100, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,
-116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,
-110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,
-117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101,
-115, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100,
- 97,103,102,108, 97,103,115, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,
-101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 42, 99,108,
-105,112, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 99,117,115,101,114, 0, 98,
-108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52,
- 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93,
- 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,
-101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,
-111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0,
- 42,114,101,110,100,101,114, 95,101,110,103,105,110,101, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,
-111,116,104, 95,116,105,109,101,114, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52,
- 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,
-111,109, 0,105,115, 95,112,101,114,115,112, 0,112,101,114,115,112, 0,118,105,101,119,108,111, 99,107, 0,116,119,100,114, 97,
-119,102,108, 97,103, 0,114,102,108, 97,103, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,
-108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,114,111,116, 95, 97,110,
-103,108,101, 0,114,111,116, 95, 97,120,105,115, 91, 51, 93, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,
-116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,
- 98,117,110,100,108,101, 95,115,105,122,101, 0, 98,117,110,100,108,101, 95,100,114, 97,119,116,121,112,101, 0,108, 97,121, 95,
-117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99,
- 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 54, 52, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95,
- 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,
-114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,
-115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,
-111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,
-110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,
-121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,112, 97,100, 51, 91, 50, 93, 0, 42,112,114,111,112,101,
-114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91,
- 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108,
- 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,
-111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,
-105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,
-114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,
-116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,
-105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101,
- 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,
-100, 0, 42,116,101,120,117,115,101,114, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110,
- 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 49, 48, 53, 54, 93, 0,
-102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,
-101,100,105,116, 91, 50, 53, 54, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101,
- 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,
-115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,
-101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0,
- 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,
-116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,
-114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,
-104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,
-105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112,
- 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91,
- 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,108,111, 99,107, 0,112,105,110, 0,
-100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,
-116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,
-100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115,
- 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,
-116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,
-110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,
-108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50,
- 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121,
- 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,
-114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,
-115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,115, 99,114,105,112,116, 97,
-114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121,
- 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0, 42,105,100, 0, 97,115,112,101, 99,116,
- 0,112, 97,100,102, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,
-101,120,102,114,111,109, 0,115,104, 97,100,101,114,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,108,101,110, 95, 97,
-108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,
-114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,
-116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0,120,108,111, 99,107,111,102, 0,121,108,111,
- 99,107,111,102, 0,117,115,101,114, 0,112, 97,116,104, 95,108,101,110,103,116,104, 0,108,111, 99, 91, 50, 93, 0,115,116, 97,
- 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,117,110,105,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,116,
-112,114,111, 99, 95,102,108, 97,103, 0, 42,100,114, 97,119, 95, 99,111,110,116,101,120,116, 0,100,111,112,101, 95,115,111,114,
-116, 0,100,111,112,101, 95,102,108, 97,103, 0,102,105,108,101,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0, 98,108,102, 95,105,
-100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,
-103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121,
- 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,
-116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,
-116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,
-103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97,
- 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,
-112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,111,117,116,108,
-105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,
-109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,
-115,104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,
-110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,
-110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,
-101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93,
- 0,104,101, 97,100,101,114, 91, 52, 93, 0,115,104,111,119, 95,104,101, 97,100,101,114, 0,119, 99,111,108, 95,114,101,103,117,
-108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,
-105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,
-110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,
-108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,
-101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95,116,111,111,108,116,105,112, 0,119, 99,111,108, 95, 98,111,120, 0,119,
- 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,
-115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,112, 97,110,101,108, 0,105, 99,111,110,102,105,108,
-101, 91, 50, 53, 54, 93, 0,105, 99,111,110, 95, 97,108,112,104, 97, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91,
- 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101,
- 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,
-117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,
-116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52,
- 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,
-116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,
-101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105,
- 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52,
- 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112,
- 91, 52, 93, 0,115,112,101, 97,107,101,114, 91, 52, 93, 0,101,109,112,116,121, 91, 52, 93, 0, 99, 97,109,101,114, 97, 91, 52,
- 93, 0,112, 97,100, 91, 56, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,
-112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91,
- 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101,
- 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,
-114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,
-101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101,
- 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,
-102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93,
- 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108,
- 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,
-116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52,
- 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,
-116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,
-114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93,
- 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104,
- 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,
-110,100,108,101, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,
-102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,
-101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52,
- 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0,100,115, 95,
- 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,
-111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,
-111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0,
- 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,
-116,108,105,110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0,110,111,111,100,108,101, 95,
- 99,117,114,118,105,110,103, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,
-110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,
-111,118,105,101, 91, 52, 93, 0,109,111,118,105,101, 99,108,105,112, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,
-101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110,
- 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,
-115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,
-110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,
-116,101,120, 95,115,105,122,101, 0,109, 97,114,107,101,114, 95,111,117,116,108,105,110,101, 91, 52, 93, 0,109, 97,114,107,101,
-114, 91, 52, 93, 0, 97, 99,116, 95,109, 97,114,107,101,114, 91, 52, 93, 0,115,101,108, 95,109, 97,114,107,101,114, 91, 52, 93,
- 0,100,105,115, 95,109, 97,114,107,101,114, 91, 52, 93, 0,108,111, 99,107, 95,109, 97,114,107,101,114, 91, 52, 93, 0, 98,117,
-110,100,108,101, 95,115,111,108,105,100, 91, 52, 93, 0,112, 97,116,104, 95, 98,101,102,111,114,101, 91, 52, 93, 0,112, 97,116,
-104, 95, 97,102,116,101,114, 91, 52, 93, 0, 99, 97,109,101,114, 97, 95,112, 97,116,104, 91, 52, 93, 0,104,112, 97,100, 91, 55,
- 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104,
- 95,102, 97, 99,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,101,100,103,101, 91, 52, 93, 0,
-112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,118,101,114,116, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,
-116,105,116, 99,104, 95,115,116,105,116, 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116,
- 99,104, 95,117,110,115,116,105,116, 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,
-104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,109, 97,116, 99,104, 91, 52, 93, 0,115,101,108,101, 99,116,101,100, 95,104,105,
-103,104,108,105,103,104,116, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118,
- 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,
-101,113, 0,116,105,109, 97, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,
-108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 99,108,105,112, 0,116,
- 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101,
- 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,
-109,112,100,105,114, 91, 55, 54, 56, 93, 0,102,111,110,116,100,105,114, 91, 55, 54, 56, 93, 0,114,101,110,100,101,114,100,105,
-114, 91, 49, 48, 50, 52, 93, 0,116,101,120,116,117,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,116,101,120,100,105,114,
- 91, 55, 54, 56, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 55, 54, 56, 93, 0,112,121,116,104,111,110,100,105,114, 91,
- 55, 54, 56, 93, 0,115,111,117,110,100,100,105,114, 91, 55, 54, 56, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91,
- 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,
-121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101,
- 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,
-109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,
-108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,
-105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0,
- 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110,
- 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,
-109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,
-115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0,117,115,101,114, 95,107,101,121,109, 97,112,115, 0, 97,100,100,111,
-110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,
-100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,
-108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115,
- 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,
-116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,
-101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,
-101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,
-108,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,
-102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98,
- 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,
-101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,
-105,116, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,
-111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,
-115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,
-112,105, 99, 95,102,105,108,116,101,114, 0,117,115,101, 95, 49, 54, 98,105,116, 95,116,101,120,116,117,114,101,115, 0,112, 97,
-100, 56, 0,110,100,111,102, 95,115,101,110,115,105,116,105,118,105,116,121, 0,110,100,111,102, 95,102,108, 97,103, 0,103,108,
- 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,
-119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91,
- 51, 93, 0,116,119,101, 97,107, 95,116,104,114,101,115,104,111,108,100, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0, 99,111,
-109,112,117,116,101, 95,100,101,118,105, 99,101, 95,116,121,112,101, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101,
- 95,105,100, 0,102, 99,117, 95,105,110, 97, 99,116,105,118,101, 95, 97,108,112,104, 97, 0,118,101,114,116, 98, 97,115,101, 0,
-101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114,
- 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119,
- 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,
-114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,
-112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,
-114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0,
- 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110,
- 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,
-105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103,
- 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97,
- 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,
-105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101,
- 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,
-117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97,
- 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,
-119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116,
- 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115,
- 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91,
- 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,
-110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,
-117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,
-111,110, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,
-103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91,
- 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 55, 54, 56, 93, 0,116, 99, 0,
- 98,117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103,115, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103,115, 0,
-100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100,
- 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,
-110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,
-114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,
-101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112,
- 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0,115,
-116,114,101, 97,109,105,110,100,101,120, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0, 99,108,105,112, 95,
-102,108, 97,103, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116,
- 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,
-115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100,
- 0,112,105,116, 99,104, 0,112, 97,110, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,
-105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,
-100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,
-101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0,
- 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 49, 48, 50, 52, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91,
- 49, 48, 50, 52, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108,
- 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100,
- 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,
-105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83,
- 99, 97,108,101,121, 73,110,105, 0,120, 73,110,105, 0,121, 73,110,105, 0,114,111,116, 73,110,105, 0,105,110,116,101,114,112,
-111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,
-103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,
-112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111,
- 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114,
- 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,
-109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,
-116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,
-105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,
-117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 54, 52, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118,
- 91, 54, 52, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,
-101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,
-101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 54, 52, 93, 0,116,111,103,
-103,108,101, 78, 97,109,101, 91, 54, 52, 93, 0,118, 97,108,117,101, 91, 54, 52, 93, 0,109, 97,120,118, 97,108,117,101, 91, 54,
- 52, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 54,
- 52, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 54, 52, 93, 0,109, 97,116,110, 97,109,
-101, 91, 54, 52, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 54, 52, 93, 0, 99,
-111,110,115,116,114, 97,105,110,116, 91, 54, 52, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,
-116, 91, 54, 52, 93, 0, 98,111,100,121, 91, 54, 52, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,
-116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,
-105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,
-112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115,
- 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109,
- 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 54, 52, 93, 0, 98,108,101,110,100,105,110, 0,112,
-114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,
-105,100,101,108,101,110,103,116,104, 0,108, 97,121,101,114, 95,119,101,105,103,104,116, 0,109,105,110, 95,103, 97,105,110, 0,
-109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,
-100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,
-101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,
-117,116,101,114, 95,103, 97,105,110, 0,115,110,100,110,114, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0,
- 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51,
- 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,
-111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,112, 97,100, 49, 91, 51, 93, 0,108,105,110,101, 97,114,
-118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,
-114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99,
- 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51,
- 93, 0,109, 97,116,112,114,111,112, 91, 54, 52, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,
-114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111,
- 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91,
- 54, 52, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91,
- 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,
-116, 95, 97,114,103, 0,105,110,102,108,117,101,110, 99,101, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,102, 97, 99,105,110,
-103, 97,120,105,115, 0,118,101,108,111, 99,105,116,121, 0, 97, 99, 99,101,108,101,114, 97,116,105,111,110, 0,116,117,114,110,
-115,112,101,101,100, 0,117,112,100, 97,116,101, 84,105,109,101, 0, 42,110, 97,118,109,101,115,104, 0,103,111, 0, 42,110,101,
-119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101,
- 0, 42, 99, 97, 99,104,101, 0, 42,119, 97,118,101,102,111,114,109, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,
-108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93,
- 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,
-105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93,
- 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,
-111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,
-100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0,112, 97,100, 91, 49, 93, 0, 98,111,110,101, 98, 97,115,101, 0,
- 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,
-100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,103,101,118,101,114,116,100,101,102,111,114,109,101,114, 0,108, 97,121,
-101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,
-103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,
-115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98,
- 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100,
- 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98,
- 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112,
- 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,
-112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104,
- 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0,105,107,102,108,
- 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 99,111,110,115,116,102,108, 97,103, 0,115,101,108,101, 99,116,102,108,
- 97,103, 0,112, 97,100, 48, 91, 54, 93, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0,115,
-105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93,
- 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,
-111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,
-110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,
-115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0,
- 42,116,101,109,112, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108,
- 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,
-115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,
-108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95,
- 98,111,110,101, 91, 54, 52, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112,
- 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,
-100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,
-111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,
-114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,
-114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0,114,101,110, 97,109,101, 73,110,100,101,
-120, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,
-110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108,
- 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120,
- 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,
-103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,
-116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 54, 52, 93,
- 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,
-101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101,
- 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,
-108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,
-111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,
-117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,
-109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,
-105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111,
- 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91,
- 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, 97,120, 0,112,
- 97,100, 91, 57, 93, 0,116,114, 97, 99,107, 91, 54, 52, 93, 0,111, 98,106,101, 99,116, 91, 54, 52, 93, 0, 42,100,101,112,116,
-104, 95,111, 98, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,
-105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0,
- 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,
-101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,
-112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,
-101, 0,105,115, 95, 99,111,112,121, 0,101,120,116,101,114,110, 97,108, 0, 42,110,101,119, 95,115,111, 99,107, 0, 42,115,116,
-111,114, 97,103,101, 0,108,105,109,105,116, 0,108,111, 99,120, 0,108,111, 99,121, 0, 42,100,101,102, 97,117,108,116, 95,118,
- 97,108,117,101, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,115,116, 97, 99,107, 95,116,121,112,101, 0,111,119,110, 95,
-105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0, 42,108,105,110,107, 0,
-110,115, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108,
- 97,115,116,121, 0,111,117,116,112,117,116,115, 0,109,105,110,105,119,105,100,116,104, 0,117,112,100, 97,116,101, 0,108, 97,
- 98,101,108, 91, 54, 52, 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0,
- 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,
-116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,
-102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,
-116,111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0,105,110,105,116, 0, 99,117,114, 95,105,110,100,101,
-120, 0,110,111,100,101,116,121,112,101, 0, 42,101,120,101, 99,100, 97,116, 97, 0, 40, 42,112,114,111,103,114,101,115,115, 41,
+ 1, 0, 0, 0, 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, 0, 0, 0, 0, 1, 0, 2, 0,
+ 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0,
+ 5, 0, 2, 0,232, 90,170, 5, 0, 0, 0, 0,232, 90,170, 5, 0, 0, 0, 0, 8, 79,133, 5, 0, 0, 0, 0, 8, 79,133, 5,
+ 0, 0, 0, 0,216,132,170, 5, 0, 0, 0, 0,216,132,170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 44,169, 5, 0, 0, 0, 0, 56,132,170, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,
+205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,
+154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63,
+ 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 1, 0,
+ 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 25, 0, 8, 0, 10, 0,
+200, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 10, 0, 50, 0, 20, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 60, 0, 0, 0,
+ 0, 0, 2, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62,
+ 0, 0, 0, 0, 68, 65, 84, 65,168, 36, 0, 0,232, 90,170, 5, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,
+255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,
+255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,
+255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255,
+ 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,
+255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,
+255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,
+255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,
+255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,
+204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,
+255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,172,172,172,128,255,255,255,255,
+ 0, 0, 0,255, 1, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,255,255,255,255,
+255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,
+255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,
+255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255,190,190,190,255,100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,
+255,255,255,255, 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,
+153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,114,114,114,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,170, 64,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+ 32,255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255,
+ 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,200,200,200,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255,
+ 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,130,130,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255, 0, 0, 0, 0,
+250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255,153, 64, 48,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+240,175,144,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0,255,255,133, 0,255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255, 32, 32,143,255,
+109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 18, 66,176, 38,
+255,133, 0,178,255,133, 0,127, 0,255, 0,255,255, 0, 0,255,225,210,195, 35, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,127, 51, 76,130,135,140, 76,114,114,114,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+255,255,255,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 5,155,155,155,160,100,104,111,255,111,106,100,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255,
+ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255,
+ 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127,
+ 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 94, 94, 94,255, 0, 0, 0,255,
+241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,170, 64,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+ 32,255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255,
+ 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 0, 0, 0,255,255,255, 0,255, 4, 0, 0, 0,255,127,127, 0,255,255,255,255,255,255,255, 0,255,127, 0, 0,255,127,127,127,
+255,200,200,200,255,255, 0, 0,255, 0, 0,255,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,
+189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255,
+ 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,
+193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255,
+ 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,
+238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,
+152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,
+176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255,
+ 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152, 44,169, 5, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0, 56, 45,169, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 56, 45,169, 5, 0, 0, 0, 0,208, 0, 0, 0,
+ 1, 0, 0, 0,216,127,170, 5, 0, 0, 0, 0,152, 44,169, 5, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,216,127,170, 5,
+ 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,120,128,170, 5, 0, 0, 0, 0, 56, 45,169, 5, 0, 0, 0, 0,105,111, 95, 97,
+110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 80, 0, 0, 0,120,128,170, 5, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0, 24,129,170, 5, 0, 0, 0, 0,216,127,170, 5,
+ 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 24,129,170, 5, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,184,129,170, 5,
+ 0, 0, 0, 0,120,128,170, 5, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,184,129,170, 5, 0, 0, 0, 0,208, 0, 0, 0,
+ 1, 0, 0, 0, 88,130,170, 5, 0, 0, 0, 0, 24,129,170, 5, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 88,130,170, 5,
+ 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,248,130,170, 5, 0, 0, 0, 0,184,129,170, 5, 0, 0, 0, 0,105,111, 95,109,
+101,115,104, 95,115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 80, 0, 0, 0,248,130,170, 5, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0,152,131,170, 5, 0, 0, 0, 0, 88,130,170, 5,
+ 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152,131,170, 5, 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0, 56,132,170, 5,
+ 0, 0, 0, 0,248,130,170, 5, 0, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 56,132,170, 5, 0, 0, 0, 0,208, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,131,170, 5, 0, 0, 0, 0, 99,121, 99,108,101,115, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0,216,132,170, 5,
+ 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,
+117,108,116, 32, 83,116,121,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 12, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 11, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 11, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, 0, 4, 0, 0, 0, 68, 78, 65, 49,124, 8, 1, 0,120,177,144, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 99, 13, 0, 0, 42,110,101,120,116, 0, 42,112,
+114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,120,109,105,
+110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,
+118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91,
+ 54, 52, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,
+105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 54, 54, 93, 0,112, 97,100, 0,117,115, 0,105, 99,111,110, 95,105,100, 0,
+112, 97,100, 50, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,
+108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,102,105,108,101,112, 97,116,104, 91, 49, 48, 50, 52, 93,
+ 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0, 99,104,
+ 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0,
+ 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0,
+ 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,
+101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,
+109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,
+118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,112, 97,100, 49, 0,
+114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,117,105,100, 0, 42,119,101,105,103,104,116,115, 0,118,103,
+114,111,117,112, 91, 54, 52, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,
+116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,
+108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 99,116,
+105,109,101, 0,117,105,100,103,101,110, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,
+110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,
+100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,
+101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,
+117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,
+101, 0,115,105,122,101, 0,115,101,101,107, 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,
+108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,
+100,114, 97,119,115,105,122,101, 0,115,101,110,115,111,114, 95,120, 0,115,101,110,115,111,114, 95,121, 0,115,104,105,102,116,
+120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0,115,101,110,115,
+111,114, 95,102,105,116, 0,112, 97,100, 91, 55, 93, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,
+109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,
+109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,
+117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,
+101,110,100,101,114, 95,115,108,111,116, 0,108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114,
+ 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,
+114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,
+101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,
+117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,
+103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0,103,101,110, 95,102,108, 97,103, 0, 97,115,112,120, 0, 97,115,112,
+121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101,
+ 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,106,120, 0,112,
+114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51,
+ 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,
+112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,
+117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,
+114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119,
+ 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102,
+ 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102,
+ 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,
+111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99,
+ 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,
+102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,
+105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,
+121,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,
+108,100,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,
+102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110,
+ 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116,
+ 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116,
+ 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,
+111,110, 0, 97, 0,116,111,116, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,
+109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,
+119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,
+108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102,
+ 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,
+116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112,
+ 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,
+112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,
+104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,
+112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,
+108,108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,
+102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,
+112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,
+101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,
+114, 99,101, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114,
+ 97,109,101, 0,111, 99,101, 97,110,109,111,100, 91, 54, 52, 93, 0,111,117,116,112,117,116, 0,110,111,105,115,101,115,105,122,
+101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, 97,116,
+105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103,
+ 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,
+102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,
+115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110,
+ 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,
+101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98,
+ 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0,
+ 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,
+120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97,
+ 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118,
+ 0, 42,112,100, 0, 42,118,100, 0, 42,111,116, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,
+116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0, 99,111, 98,
+ 97, 0, 98,108,101,110,100, 95, 99,111,108,111,114, 91, 51, 93, 0, 98,108,101,110,100, 95,102, 97, 99,116,111,114, 0, 98,108,
+101,110,100, 95,116,121,112,101, 0,112, 97,100, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114,
+ 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116,
+ 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,
+116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,
+115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0, 98,108,101,101,100, 98,105, 97,115, 0,
+112, 97,100, 53, 91, 50, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,
+116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112,
+ 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,
+112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,
+101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115,
+ 97,109,112, 95,109,101,116,104,111,100, 0,115,104, 97,100,111,119,109, 97,112, 95,116,121,112,101, 0,116,101,120, 97, 99,116,
+ 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,
+121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,
+114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,
+107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,
+116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97,
+ 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,
+105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,
+120,112,111,115,117,114,101, 0,115,104, 97,100,111,119, 95,102,114,117,115,116,117,109, 95,115,105,122,101, 0,115,107,121, 95,
+ 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 50, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,
+116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 52, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110,
+ 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95,
+ 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101,
+ 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104,
+ 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,
+115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,
+115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,
+101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0, 97,108,112,104, 97, 95, 98,108,101,110,100, 0,102, 97, 99,
+101, 95,111,114,105,101,110,116, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,
+114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,
+114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97,
+ 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115,
+ 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,103, 97,109,101, 0,102,114,101,115,110,
+101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97,
+ 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,
+120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114,
+ 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,
+115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,
+116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,
+104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102,
+ 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,
+101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,
+101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,
+115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,
+100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,
+104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 54, 52, 93, 0,115, 98,105, 97,115, 0,108, 98,
+105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,
+116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,
+102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,
+101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,
+112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,
+105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,
+115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,
+114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,
+114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,
+115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,
+111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,
+115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,
+115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100,
+ 0,115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,105,110,100,101,120, 0,103,112,117,109, 97,116,101,114,105,
+ 97,108, 0, 42, 98, 98, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,
+120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,
+109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,
+102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101,
+ 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97,
+ 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91,
+ 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,
+111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,
+110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115,
+ 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,
+107,101,121,105,110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0,
+ 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,
+112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,
+101, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112,
+ 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,
+114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,
+116,115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,
+115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,
+105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108,
+ 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,
+116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104,
+ 97,114, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,
+108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 98,101,118,102, 97, 99, 49, 0, 98,101,
+118,102, 97, 99, 50, 0, 42,109,115,101,108,101, 99,116, 0, 42,109,112,111,108,121, 0, 42,109,116,112,111,108,121, 0, 42,109,
+108,111,111,112, 0, 42,109,108,111,111,112,117,118, 0, 42,109,108,111,111,112, 99,111,108, 0, 42,109,102, 97, 99,101, 0, 42,
+109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,
+114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,101,100,
+105,116, 95, 98,116,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,112,100, 97,116,
+ 97, 0,108,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,
+116, 0,116,111,116,112,111,108,121, 0,116,111,116,108,111,111,112, 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,
+104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101,
+ 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,
+108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51,
+ 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114,
+ 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,108,111,111,112,115,
+116, 97,114,116, 0,118, 0,101, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,
+116,111,116,100,105,115,112, 0,108,101,118,101,108, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0, 42,104,105,100,100,101,110,
+ 0,118, 91, 52, 93, 0,109,105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,
+108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,
+108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,
+105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108,
+ 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,
+114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,109, 97,112, 95,111, 98,106,101, 99,
+116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 54, 52, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0,116,
+101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,
+115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,115,116,114,101,110,103,116,104, 0,100,101,102, 97,
+120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100,
+ 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,
+114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,
+101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,
+116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,
+114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,
+108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,
+108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 54, 52, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119,
+ 0, 42, 99,111,108,108, 0,116,105,109,101, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0, 42,
+112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,
+116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97,108,
+101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0,
+ 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,
+104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,
+101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0,
+ 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 54, 52, 93, 0,112, 97,114,101,110,116,105,110,118,
+ 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120,
+ 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42,
+ 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115,
+ 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,
+117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,
+101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105,109,101, 95,120,110,101,119, 0, 42,
+ 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,
+114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,
+105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, 0, 42, 98,105,110,100, 99, 97,103,
+101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,
+102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,
+115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0,
+ 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100,
+ 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,
+116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114,
+ 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,
+111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,
+101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112,
+ 95,110, 97,109,101, 91, 54, 52, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,
+114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0,
+ 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,
+116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0,111,102,102,115,101,116, 95,102, 97, 99, 95,118,103, 0, 99,114,101, 97,
+115,101, 95,105,110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109,
+ 0,109, 97,116, 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,
+101,112,115, 0,114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0,
+ 97,110,103,108,101, 0, 42,111, 99,101, 97,110, 0, 42,111, 99,101, 97,110, 99, 97, 99,104,101, 0,114,101,115,111,108,117,116,
+105,111,110, 0,115,112, 97,116,105, 97,108, 95,115,105,122,101, 0,119,105,110,100, 95,118,101,108,111, 99,105,116,121, 0,115,
+109, 97,108,108,101,115,116, 95,119, 97,118,101, 0,119, 97,118,101, 95, 97,108,105,103,110,109,101,110,116, 0,119, 97,118,101,
+ 95,100,105,114,101, 99,116,105,111,110, 0,119, 97,118,101, 95,115, 99, 97,108,101, 0, 99,104,111,112, 95, 97,109,111,117,110,
+116, 0,102,111, 97,109, 95, 99,111,118,101,114, 97,103,101, 0, 98, 97,107,101,115,116, 97,114,116, 0, 98, 97,107,101,101,110,
+100, 0, 99, 97, 99,104,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,102,111, 97,109,108, 97,121,101,114,110, 97,109,101, 91,
+ 54, 52, 93, 0, 99, 97, 99,104,101,100, 0,103,101,111,109,101,116,114,121, 95,109,111,100,101, 0,114,101,102,114,101,115,104,
+ 0,114,101,112,101, 97,116, 95,120, 0,114,101,112,101, 97,116, 95,121, 0,102,111, 97,109, 95,102, 97,100,101, 0, 42,111, 98,
+106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,108,108,111,102,102, 95,114, 97,100,
+105,117,115, 0,101,100,105,116, 95,102,108, 97,103,115, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 0, 42, 99,
+109, 97,112, 95, 99,117,114,118,101, 0, 97,100,100, 95,116,104,114,101,115,104,111,108,100, 0,114,101,109, 95,116,104,114,101,
+115,104,111,108,100, 0,109, 97,115,107, 95, 99,111,110,115,116, 97,110,116, 0,109, 97,115,107, 95,100,101,102,103,114,112, 95,
+110, 97,109,101, 91, 54, 52, 93, 0,109, 97,115,107, 95,116,101,120, 95,117,115,101, 95, 99,104, 97,110,110,101,108, 0, 42,109,
+ 97,115,107, 95,116,101,120,116,117,114,101, 0, 42,109, 97,115,107, 95,116,101,120, 95,109, 97,112, 95,111, 98,106, 0,109, 97,
+115,107, 95,116,101,120, 95,109, 97,112,112,105,110,103, 0,109, 97,115,107, 95,116,101,120, 95,117,118,108, 97,121,101,114, 95,
+110, 97,109,101, 91, 54, 52, 93, 0,112, 97,100, 95,105, 49, 0,100,101,102,103,114,112, 95,110, 97,109,101, 95, 97, 91, 54, 52,
+ 93, 0,100,101,102,103,114,112, 95,110, 97,109,101, 95, 98, 91, 54, 52, 93, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,
+104,116, 95, 97, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 95, 98, 0,109,105,120, 95,109,111,100,101, 0,109,
+105,120, 95,115,101,116, 0,112, 97,100, 95, 99, 49, 91, 54, 93, 0,112,114,111,120,105,109,105,116,121, 95,109,111,100,101, 0,
+112,114,111,120,105,109,105,116,121, 95,102,108, 97,103,115, 0, 42,112,114,111,120,105,109,105,116,121, 95,111, 98, 95,116, 97,
+114,103,101,116, 0,109,105,110, 95,100,105,115,116, 0,109, 97,120, 95,100,105,115,116, 0,112, 97,100, 95,115, 49, 0, 42, 99,
+ 97,110,118, 97,115, 0, 42, 98,114,117,115,104, 0,116,104,114,101,115,104,111,108,100, 0,115, 99, 97,108,101, 0,104,101,114,
+109,105,116,101, 95,110,117,109, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,
+115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,
+118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,
+108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93,
+ 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,
+112, 97,114,115,117, 98,115,116,114, 91, 54, 52, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,
+120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,
+115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,
+116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,
+100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,
+116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,115,
+ 99, 97,108,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115,
+ 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,
+108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109,
+ 97,116, 95,114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0,112, 97,100, 54, 0, 99,111,108, 98,105,116,115, 0,116,114,
+ 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,
+102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,
+118,105,115,102,108, 97,103, 0,112, 97,100, 53, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97,
+ 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,
+102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,
+101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,
+114,101,115,104,111,108,100, 0,111, 98,115,116, 97, 99,108,101, 82, 97,100, 0,114,111,116,109,111,100,101, 0, 98,111,117,110,
+100,116,121,112,101, 0, 99,111,108,108,105,115,105,111,110, 95, 98,111,117,110,100,116,121,112,101, 0,114,101,115,116,114,105,
+ 99,116,102,108, 97,103, 0,100,116, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,101,109,112,116,121, 95,100,
+114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0,
+ 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0,
+ 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116,
+ 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93,
+ 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,
+116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0, 98,111,100,
+121, 95,116,121,112,101, 0,115,104, 97,112,101,102,108, 97,103, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,
+103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,
+108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,
+116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,
+112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,
+118,101, 0,111,114,105,103,108, 97,121, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,110,111,
+ 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,
+100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,
+122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,
+115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,
+111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,
+100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,
+100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,
+116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102,
+ 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,
+102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,
+100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91,
+ 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97,
+ 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97,
+ 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114,
+ 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,
+101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,108, 97,115,116, 95,118, 97,108,105,100, 0, 99,111,109,112,114,101,115,115,
+105,111,110, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91,
+ 49, 48, 50, 52, 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,
+101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103,
+ 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,
+105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82,
+ 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84,
+ 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70,
+ 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72,
+ 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,
+110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,
+115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107,
+ 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115,
+ 91, 54, 52, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,
+115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,
+109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,
+112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 54, 52, 93, 0,102,117,122,122,121,110,101,115,115,
+ 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103,
+ 95, 75, 91, 54, 52, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,
+114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,
+115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,
+102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,
+108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,
+114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,
+105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,
+103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51,
+ 93, 91, 51, 93, 0,108, 97,115,116, 95,102,114, 97,109,101, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119,
+ 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,
+114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121,
+ 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121,
+ 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,
+111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0,
+ 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,102,114, 97,109,101, 79,102,102,115,101,116, 0,103,115,
+116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,
+105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80,
+ 97,116,104, 91, 49, 48, 50, 52, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,
+121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,
+105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97,
+ 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,
+111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,
+110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100,
+ 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,
+116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,
+111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,
+118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,
+114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0, 97,110,105,109, 82, 97,116,101,
+ 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,
+103, 0,122,101,110, 98, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,
+101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121,
+ 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,
+104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,
+112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,
+116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103,
+ 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,
+116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,
+111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,
+116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,
+109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104,
+ 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,
+114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,
+114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100,
+ 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,
+115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95,
+ 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,
+115, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,
+115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,
+110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,
+100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,
+108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100,
+ 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50,
+ 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121,
+ 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,
+101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,
+105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82,
+ 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111,
+ 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104,
+ 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82,
+ 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,
+100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,
+ 99,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 95,112, 97,100, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,
+103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101,
+ 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,
+109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,
+111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,
+101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101,
+ 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121, 95,101,120, 99,108,117,100,101, 0,108, 97,121,102,108, 97,103, 0,112,
+ 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0,115, 97,109,112,108,101,115, 0,105,109,116,121,112,101, 0,
+112,108, 97,110,101,115, 0,113,117, 97,108,105,116,121, 0, 99,111,109,112,114,101,115,115, 0,101,120,114, 95, 99,111,100,101,
+ 99, 0, 99,105,110,101,111,110, 95,102,108, 97,103, 0, 99,105,110,101,111,110, 95,119,104,105,116,101, 0, 99,105,110,101,111,
+110, 95, 98,108, 97, 99,107, 0, 99,105,110,101,111,110, 95,103, 97,109,109, 97, 0,106,112, 50, 95,102,108, 97,103, 0,105,109,
+ 95,102,111,114,109, 97,116, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,
+116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,
+117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,
+112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,
+101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,
+121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112,
+ 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,
+105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,115,
+117, 98,105,109,116,121,112,101, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,
+116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101,
+ 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101,
+ 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116,
+ 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,
+112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,
+109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115,
+ 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,
+101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,
+101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98,
+ 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112,
+ 97,100, 0,112,105, 99, 91, 49, 48, 50, 52, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100,
+ 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 55, 54, 56, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103,
+ 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100,
+ 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,
+102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,
+104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,
+115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,
+110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112,
+ 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,
+111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,
+109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,110, 97,109,101, 91, 51, 50, 93, 0,112, 97,114,116,105,
+ 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,
+108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,
+112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0, 99,101,108,108,115,105,122,101, 0, 99,101,108,108,104,101,105,103,104,116,
+ 0, 97,103,101,110,116,109, 97,120,115,108,111,112,101, 0, 97,103,101,110,116,109, 97,120, 99,108,105,109, 98, 0, 97,103,101,
+110,116,104,101,105,103,104,116, 0, 97,103,101,110,116,114, 97,100,105,117,115, 0,101,100,103,101,109, 97,120,108,101,110, 0,
+101,100,103,101,109, 97,120,101,114,114,111,114, 0,114,101,103,105,111,110,109,105,110,115,105,122,101, 0,114,101,103,105,111,
+110,109,101,114,103,101,115,105,122,101, 0,118,101,114,116,115,112,101,114,112,111,108,121, 0,100,101,116, 97,105,108,115, 97,
+109,112,108,101,100,105,115,116, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,109, 97,120,101,114,114,111,114, 0,102,114,
+ 97,109,105,110,103, 0,112,108, 97,121,101,114,102,108, 97,103, 0,114,116, 49, 0,114,116, 50, 0, 97, 97,115, 97,109,112,108,
+101,115, 0,112, 97,100, 52, 91, 51, 93, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,
+112, 97,114, 97,116,105,111,110, 0,114,101, 99, 97,115,116, 68, 97,116, 97, 0,109, 97,116,109,111,100,101, 0,101,120,105,116,
+107,101,121, 0,111, 98,115,116, 97, 99,108,101, 83,105,109,117,108, 97,116,105,111,110, 0,108,101,118,101,108, 72,101,105,103,
+104,116, 0, 42, 99, 97,109,101,114, 97, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,
+117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,110,117,109, 95,105,110,112,117,116, 95,115, 97,109,112,108,101,115, 0,112,
+ 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,
+101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,
+118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,
+101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,
+101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115,
+ 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,
+115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,
+115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,
+101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,
+101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,
+110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0,109, 97,116, 91,
+ 51, 93, 91, 51, 93, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, 42,118,112, 97,105,110,116,
+ 0, 42,119,112, 97,105,110,116, 0, 42,117,118,115, 99,117,108,112,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116,
+ 0, 99,111,114,110,101,114,116,121,112,101, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,
+114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,
+101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105,
+ 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,
+108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99,
+ 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,
+108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,115,117, 98,
+115,117,114,102, 95,108,101,118,101,108, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95,
+ 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,
+114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110,
+ 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,
+103, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,112, 97,100, 50, 91, 53, 93, 0,115,
+107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,
+105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,
+108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,
+104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,
+ 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121,
+ 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,
+104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,
+115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,
+107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110,
+ 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,
+110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,
+101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116,
+ 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,
+110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,
+103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,
+105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,
+109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,
+109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,
+114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111,
+ 98,106,101, 99,116,115, 0,112, 97,100, 91, 53, 93, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,109,117,108,
+116,105,112, 97,105,110,116, 0,117,115,101, 95,117,118, 95,115, 99,117,108,112,116, 0,117,118, 95,115, 99,117,108,112,116, 95,
+115,101,116,116,105,110,103,115, 0,117,118, 95,115, 99,117,108,112,116, 95,116,111,111,108, 0,117,118, 95,114,101,108, 97,120,
+ 95,109,101,116,104,111,100, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,
+117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112,
+ 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,
+115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,117,110,105,102,105,
+101,100, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112,
+ 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,
+114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,115,121,115,116,
+101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0,113,117,105, 99,107, 95, 99, 97, 99,
+104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116,
+ 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,
+105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, 97,121, 95,117,112,100, 97,116,101,
+100, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111,
+ 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,
+115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,
+104, 97,110,100,108,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101,115, 0, 42,102,112,115, 95,105,110,102,
+111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0, 97, 99,
+116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,
+116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 42, 99,108,105,112, 0, 99,117,115,116,111,109,100,
+ 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 99,117,115,101,114, 0, 98,108,101,110,100, 0,118,105,101,119, 0,
+119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,
+110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52,
+ 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52,
+ 93, 91, 52, 93, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93,
+ 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,110,100,101,114, 95,101,110,
+103,105,110,101, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,
+116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,
+100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,105,115, 95,112,101,114,115,
+112, 0,112,101,114,115,112, 0,118,105,101,119,108,111, 99,107, 0,116,119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,
+103, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,
+118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,114,111,116, 95, 97,110,103,108,101, 0,114,111,116, 95, 97,120,
+105,115, 91, 51, 93, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,
+115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0, 98,117,110,100,108,101, 95,115,105,122,
+101, 0, 98,117,110,100,108,101, 95,100,114, 97,119,116,121,112,101, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,
+101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101,
+ 95, 98,111,110,101, 91, 54, 52, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,
+115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102,
+ 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,
+105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103,
+ 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,
+114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,
+117,102, 0,120,114, 97,121, 0,112, 97,100, 51, 91, 50, 93, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114,
+ 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,
+109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105,
+ 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,
+119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,
+102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118,
+ 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,
+115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101,
+ 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110,116,101,120,116, 0,112,
+ 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0, 42,116,101,120,117,115,101,114,
+ 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,
+109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 49, 48, 53, 54, 93, 0,102,105,108,101, 91, 50, 53, 54, 93, 0,
+114,101,110, 97,109,101,102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 50, 53, 54, 93, 0,
+102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,
+102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112,
+ 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115,
+ 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,
+101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,
+111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114,
+ 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51,
+ 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108,
+ 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,
+109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,
+101,110,116,121, 0, 99,117,114,116,105,108,101, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,
+107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,
+110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,
+115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114,
+ 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116,
+101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,
+108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,
+100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110,
+ 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,
+101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108,
+ 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,
+114,105,112,116,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115,
+ 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97,
+ 99,104,101, 95,100,105,115,112,108, 97,121, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0,112, 97,100,102, 0,109,120, 0,109,
+121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,115,104, 97,
+100,101,114,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,
+114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93,
+ 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,
+102,105,108,116,101,114, 91, 54, 52, 93, 0,120,108,111, 99,107,111,102, 0,121,108,111, 99,107,111,102, 0,117,115,101,114, 0,
+112, 97,116,104, 95,108,101,110,103,116,104, 0,108,111, 99, 91, 50, 93, 0,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93,
+ 0,117,110,105,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,116,112,114,111, 99, 95,102,108, 97,103, 0,
+ 42,100,114, 97,119, 95, 99,111,110,116,101,120,116, 0,100,111,112,101, 95,115,111,114,116, 0,100,111,112,101, 95,102,108, 97,
+103, 0,102,105,108,101,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,
+100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,
+111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,
+104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108,
+ 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,
+109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,
+111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,
+101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,
+108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,
+101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91,
+ 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,
+104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91,
+ 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52,
+ 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91,
+ 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93,
+ 0,115,104,111,119, 95,104,101, 97,100,101,114, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,
+111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,
+116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,
+117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110,
+ 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119,
+ 99,111,108, 95,116,111,111,108,116,105,112, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108,
+ 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,
+111,108, 95,115,116, 97,116,101, 0,112, 97,110,101,108, 0,105, 99,111,110,102,105,108,101, 91, 50, 53, 54, 93, 0,105, 99,111,
+110, 95, 97,108,112,104, 97, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105,
+ 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91,
+ 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,
+117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,
+116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,
+108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91,
+ 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108,
+ 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49,
+ 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,
+119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0,115,112,101, 97,107,101,
+114, 91, 52, 93, 0,101,109,112,116,121, 91, 52, 93, 0, 99, 97,109,101,114, 97, 91, 52, 93, 0,112, 97,100, 91, 56, 93, 0, 97,
+ 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52,
+ 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,
+115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93,
+ 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101,
+ 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91,
+ 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,
+116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101,
+ 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,
+111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,
+111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,
+114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,
+110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52,
+ 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,
+110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,
+101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116,
+ 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 95,
+ 99,108, 97,109,112,101,100, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,
+110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116,
+ 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,
+101,108, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93,
+ 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116,
+ 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,
+111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,
+114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,
+104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0,110,111,111,100,108,101, 95, 99,117,114,118,105,110,103, 0,115,121,
+110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,
+121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,109,111,
+118,105,101, 99,108,105,112, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,
+105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,
+116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91,
+ 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,
+120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,109,
+ 97,114,107,101,114, 95,111,117,116,108,105,110,101, 91, 52, 93, 0,109, 97,114,107,101,114, 91, 52, 93, 0, 97, 99,116, 95,109,
+ 97,114,107,101,114, 91, 52, 93, 0,115,101,108, 95,109, 97,114,107,101,114, 91, 52, 93, 0,100,105,115, 95,109, 97,114,107,101,
+114, 91, 52, 93, 0,108,111, 99,107, 95,109, 97,114,107,101,114, 91, 52, 93, 0, 98,117,110,100,108,101, 95,115,111,108,105,100,
+ 91, 52, 93, 0,112, 97,116,104, 95, 98,101,102,111,114,101, 91, 52, 93, 0,112, 97,116,104, 95, 97,102,116,101,114, 91, 52, 93,
+ 0, 99, 97,109,101,114, 97, 95,112, 97,116,104, 91, 52, 93, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95,
+ 98, 97, 99,107, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,102, 97, 99,101, 91, 52, 93, 0,112,
+114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,101,100,103,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,
+105,116, 99,104, 95,118,101,114,116, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,115,116,105,116,
+ 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,117,110,115,116,105,116, 99,
+104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95, 97, 99,116,105,118,101, 91, 52,
+ 93, 0,109, 97,116, 99,104, 91, 52, 93, 0,115,101,108,101, 99,116,101,100, 95,104,105,103,104,108,105,103,104,116, 91, 52, 93,
+ 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,
+105,112,111, 0,116,105,110,102,111, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,101,
+120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,
+114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 99,108,105,112, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,
+116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91,
+ 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 55, 54, 56, 93,
+ 0,102,111,110,116,100,105,114, 91, 55, 54, 56, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 48, 50, 52, 93, 0,116,101,
+120,116,117,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,
+115,101,113,100,105,114, 91, 55, 54, 56, 93, 0,112,121,116,104,111,110,100,105,114, 91, 55, 54, 56, 93, 0,115,111,117,110,100,
+100,105,114, 91, 55, 54, 56, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109,
+ 95,112,108, 97,121,101,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116,
+ 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101,
+ 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,
+103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,
+103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0,
+ 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,
+116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,
+110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,
+111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,
+109, 97,112,115, 0,117,115,101,114, 95,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,
+105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,
+112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116,
+ 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,
+117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,
+116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,
+105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,
+100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,
+101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,
+114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97,
+ 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,
+115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0, 99,117,114,115,115,105,122,
+101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104,
+ 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,
+116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114,
+ 0,117,115,101, 95, 49, 54, 98,105,116, 95,116,101,120,116,117,114,101,115, 0,112, 97,100, 56, 0,110,100,111,102, 95,115,101,
+110,115,105,116,105,118,105,116,121, 0,110,100,111,102, 95,102,108, 97,103, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,
+116,101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,
+108,112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0,116,119,101, 97,107, 95,116,
+104,114,101,115,104,111,108,100, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0, 99,111,109,112,117,116,101, 95,100,101,118,105,
+ 99,101, 95,116,121,112,101, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95,105,100, 0,102, 99,117, 95,105,110,
+ 97, 99,116,105,118,101, 95, 97,108,112,104, 97, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,
+114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,
+117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,
+104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,
+117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,
+115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116,
+ 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,
+121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114,
+ 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121,
+ 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,
+110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100,
+ 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108,
+ 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114,
+ 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,
+101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0,
+ 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,
+100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,
+118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,
+114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,
+105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,
+110, 0,119,105,110,112,111,115, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,
+108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,110, 97,109,101, 91, 50, 53,
+ 54, 93, 0,111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109,
+ 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51,
+ 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 55, 54, 56, 93, 0,116, 99, 0, 98,117,105,108,100, 95,115,105,122,101,
+ 95,102,108, 97,103,115, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103,115, 0,100,111,110,101, 0,115,116, 97,114,116,
+115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0,
+ 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,
+110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,
+116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,
+104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104,
+ 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0,115,116,114,101, 97,109,105,110,100,101,120,
+ 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0, 99,108,105,112, 95,102,108, 97,103, 0, 42,115,116,114,105,
+112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,
+101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,
+115,101, 0, 42,115,111,117,110,100, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,112,105,116, 99,104, 0,112, 97,110,
+ 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,
+115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,
+112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,
+101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,
+105,114, 91, 49, 48, 50, 52, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 49, 48, 50, 52, 93, 0,111,118,101,114,
+ 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,
+114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,
+102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,
+116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0,120,
+ 73,110,105, 0,121, 73,110,105, 0,114,111,116, 73,110,105, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,
+105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,
+100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116,
+ 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102,
+ 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,
+115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,
+102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,
+109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,
+101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,
+112,110, 97,109,101, 91, 54, 52, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 54, 52, 93, 0, 42,107,101,121,115,
+ 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,
+101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117,
+ 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 54, 52, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 54, 52,
+ 93, 0,118, 97,108,117,101, 91, 54, 52, 93, 0,109, 97,120,118, 97,108,117,101, 91, 54, 52, 93, 0,100,101,108, 97,121, 0,100,
+117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 54, 52, 93, 0,100, 97,109,112,116,105,109,
+101,114, 0,112,114,111,112,110, 97,109,101, 91, 54, 52, 93, 0,109, 97,116,110, 97,109,101, 91, 54, 52, 93, 0, 97,120,105,115,
+102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 54, 52, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91,
+ 54, 52, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 54, 52, 93, 0, 98,111,100,121,
+ 91, 54, 52, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42,
+ 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0,
+ 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,
+115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115,
+ 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,
+114, 97,109,101, 80,114,111,112, 91, 54, 52, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,
+100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,
+108, 97,121,101,114, 95,119,101,105,103,104,116, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,
+101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,
+111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,
+111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,
+115,110,100,110,114, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,
+111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,
+103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,
+101,114,111,116, 91, 51, 93, 0,112, 97,100, 49, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51,
+ 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,
+109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99,
+ 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91,
+ 54, 52, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,
+110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,
+108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 54, 52, 93, 0, 42,116,111, 79, 98,106,
+101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,
+105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0,105,110,102,108,
+117,101,110, 99,101, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,102, 97, 99,105,110,103, 97,120,105,115, 0,118,101,108,111,
+ 99,105,116,121, 0, 97, 99, 99,101,108,101,114, 97,116,105,111,110, 0,116,117,114,110,115,112,101,101,100, 0,117,112,100, 97,
+116,101, 84,105,109,101, 0, 42,110, 97,118,109,101,115,104, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,
+101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,119,
+ 97,118,101,102,111,114,109, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,
+110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,
+108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101,
+ 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91,
+ 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104,
+ 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100,
+ 95,116, 97,105,108, 0,112, 97,100, 91, 49, 93, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0,
+ 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,
+116, 99,104, 0,103,101,118,101,114,116,100,101,102,111,114,109,101,114, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,
+121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,
+103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,
+101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,
+112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,
+115,116, 95,115,102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99,
+ 0,103,104,111,115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,
+103, 0,112, 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,
+108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,
+102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0,105,107,102,108, 97,103, 0, 97,103,114,112, 95,105,110,
+100,101,120, 0, 99,111,110,115,116,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0,112, 97,100, 48, 91, 54, 93,
+ 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0,115,105,107,116,114,101,101, 0, 42, 99,117,
+115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91,
+ 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51,
+ 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,
+109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,
+114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42,116,101,109,112, 0, 99,104, 97,110,
+ 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,
+101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,
+111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,
+116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 54, 52, 93, 0,110,
+117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,
+111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,
+109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,
+101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,
+115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93,
+ 0,102,105,108,116,101,114,102,108, 97,103, 0,114,101,110, 97,109,101, 73,110,100,101,120, 0, 97,100,115, 0,116,105,109,101,
+115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,
+115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114,
+ 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97,
+ 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,
+116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,
+101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 54, 52, 93, 0,112,111,108,101, 97,110,103,108,101,
+ 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,
+111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,
+118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0,
+ 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,
+109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,
+112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54,
+ 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91,
+ 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91,
+ 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91,
+ 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0,116,114, 97, 99,
+107, 91, 54, 52, 93, 0,111, 98,106,101, 99,116, 91, 54, 52, 93, 0, 42,100,101,112,116,104, 95,111, 98, 0, 99,104, 97,110,110,
+101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,
+117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,
+114,105,100,101,108,101,110, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51,
+ 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,
+112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0,105,115, 95, 99,111,112,121, 0,
+101,120,116,101,114,110, 97,108, 0, 42,110,101,119, 95,115,111, 99,107, 0, 42,115,116,111,114, 97,103,101, 0,108,105,109,105,
+116, 0,108,111, 99,120, 0,108,111, 99,121, 0, 42,100,101,102, 97,117,108,116, 95,118, 97,108,117,101, 0,115,116, 97, 99,107,
+ 95,105,110,100,101,120, 0,115,116, 97, 99,107, 95,116,121,112,101, 0,114,101,115,105,122,101,109,111,100,101, 0,111,119,110,
+ 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0, 42,108,105,110,107,
+ 0,110,115, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,
+108, 97,115,116,121, 0, 99,111,108,111,114, 91, 51, 93, 0,111,117,116,112,117,116,115, 0,109,105,110,105,119,105,100,116,104,
+ 0,111,102,102,115,101,116,120, 0,111,102,102,115,101,116,121, 0,117,112,100, 97,116,101, 0,108, 97, 98,101,108, 91, 54, 52,
+ 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109,
+ 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,
+114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,
+111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107,
+ 0,110,111,100,101,115, 0,108,105,110,107,115, 0,105,110,105,116, 0, 99,117,114, 95,105,110,100,101,120, 0,110,111,100,101,
+116,121,112,101, 0,101,100,105,116, 95,113,117, 97,108,105,116,121, 0,114,101,110,100,101,114, 95,113,117, 97,108,105,116,121,
+ 0, 99,104,117,110,107,115,105,122,101, 0, 42,101,120,101, 99,100, 97,116, 97, 0, 40, 42,112,114,111,103,114,101,115,115, 41,
40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41,
40, 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,115,100,104, 0,118, 97,108,117,101, 91, 51, 93, 0,118, 97,108,117,101,
- 91, 52, 93, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,108, 97,121,101,114, 95,105,110,100,101,120, 0,112, 97,115,
-115, 95,105,110,100,101,120, 0,112, 97,115,115, 95,102,108, 97,103, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,
-101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,
-101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110,
- 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,
-114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,
- 98, 97,115,101, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,102,111,114,109, 97,116, 0, 97, 99,116,105,118,101, 95,105,110,
-112,117,116, 0,117,115,101, 95,114,101,110,100,101,114, 95,102,111,114,109, 97,116, 0,117,115,101, 95,110,111,100,101, 95,102,
-111,114,109, 97,116, 0,108, 97,121,101,114, 91, 51, 48, 93, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,
-116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,
-101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99,
- 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 54, 52, 93, 0, 98,107,116,121,112,101, 0,112, 97,
-100, 95, 99, 49, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114,
- 0, 98,116,104,114,101,115,104, 0,114,111,116, 97,116,105,111,110, 0,112, 97,100, 95,102, 49, 0, 42,100,105, 99,116, 0, 42,
-110,111,100,101, 0, 99,111,108,109,111,100, 0,109,105,120, 0,102, 97,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0,109,
- 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51,
- 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108,105,109, 99,104,
- 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0,117,115,112,105,
-108,108,103, 0,117,115,112,105,108,108, 98, 0,116,101,120, 95,109, 97,112,112,105,110,103, 0, 99,111,108,111,114, 95,109, 97,
-112,112,105,110,103, 0,115,117,110, 95,100,105,114,101, 99,116,105,111,110, 91, 51, 93, 0,116,117,114, 98,105,100,105,116,121,
- 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0,112,114,111,106,101, 99,116,105,111,110, 0,103,114, 97,100,105,101,110,116,
- 95,116,121,112,101, 0, 99,111,108,111,114,105,110,103, 0,109,117,115,103,114, 97,118,101, 95,116,121,112,101, 0,119, 97,118,
-101, 95,116,121,112,101, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,
-101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,
-108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,
-105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91,
- 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120,
- 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50,
- 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115,
- 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121,
- 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,
-102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101,
- 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93,
- 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50,
- 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,
-116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0, 42,116,111,103,103,108,101,
- 95, 98,114,117,115,104, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104,
- 91, 49, 48, 50, 52, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,
-116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,
-115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116,
- 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,
-118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108,
- 0,109, 97,115,107, 95,116,111,111,108, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101,
- 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,120,116,
-117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,121, 95,
- 97,108,112,104, 97, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,
-118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0,
- 42,108, 97,121,101,114,115, 0,116,121,112,101,109, 97,112, 91, 51, 54, 93, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,
-108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,114,111,
-116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,114,101,
-115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,108,101,
-116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,
-118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,
-111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,
-101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,
-115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108,
- 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,101,
-103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,116,
-105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121, 97,
-110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,
-100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,
-116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,
-112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110,
- 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95,
- 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,
-111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0,
- 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,
-116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, 98, 95,115,105,122,101, 91, 50, 93, 0, 98, 98, 95,
-118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105,108, 0, 99,111,108,111,114, 95,118,101, 99, 95,109,
- 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,
-101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,
-105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0, 99,111,117,114, 97,110,116, 95,116, 97,114,103,101,116,
- 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110,100, 0,112,115, 95,111,102,
-102,115,101,116, 91, 49, 93, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116,
- 0,116,105,109,101, 95,102,108, 97,103, 0,116,105,109,101, 95,112, 97,100, 91, 51, 93, 0,112, 97,114,116,102, 97, 99, 0,116,
- 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51,
- 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,
-100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97,
- 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,
-114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0,
- 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116,
- 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, 95, 99,108,117,
-109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,
-103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,
-114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,
-116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105,110, 0,112, 97,
-114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101,
- 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,
-117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,
-102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,
-116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100,
- 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,
-102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,
-109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101,
- 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111,116,117,110,101,
-120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100,
- 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,
-112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 54, 52, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93,
- 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,
-114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115,112,114,105,110,
-103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, 42,112,100,100,
- 0, 42,102,114, 97,110,100, 0,100,116, 95,102,114, 97, 99, 0, 95,112, 97,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,
-114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,
-114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,
-109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100,
- 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,
-111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0,118,101,108, 95,100, 97,109,112,105,110,
-103, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,
-103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,
-111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101,121, 95,
-114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,
-115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,
-105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101,108, 0,
-115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,
-117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42,
- 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114,
- 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108,105,115,
-116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114,116,116,
-105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,
-100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, 95,117,
-110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,
-115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,111,110,
-102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0, 42, 97,100,100,111,110, 99,111,110,102, 0, 42,117,115,
-101,114, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,
-111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,
-114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 54, 52, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,
-110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,111,100,
- 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,
-101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,
-119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117,
- 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,
-118, 97,108,117,101, 95,115,116,114, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,
-114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101,
- 0, 42,112,116,114, 0, 42,114,101,109,111,118,101, 95,105,116,101,109, 0, 42, 97,100,100, 95,105,116,101,109, 0,105,116,101,
-109,115, 0,100,105,102,102, 95,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,
-109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,
-101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0,
- 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109,
- 0, 42,101,100, 97,116, 97, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,
-112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,
-112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,
-109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,
-102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104,
- 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,
-112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,
-116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, 97,114,105,
- 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112,
- 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111,114, 95,109,
-111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109,
- 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,
-114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0, 42,115,
-112,101, 97,107,101,114, 95,104, 97,110,100,108,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,
-101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,100,101,115, 99,114,105,112,116,105,111,110, 91, 50,
- 52, 48, 93, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,
-112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,
-115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,
-116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,
-111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,
-104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,
-108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,
-101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,
-112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,
-108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,
-115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,
-100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,
-114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,
-100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,
-120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,
-116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95,103,114,
-111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120,
- 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,
-109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121,
- 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,
-112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,
-119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95,
- 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93,
- 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0,118,111,
-114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0,118,103,
-114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,
-111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,
-111,108,100, 0, 42,118,101,108, 0, 42,116,114,105,100,105,118,115, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0,
-110,117,109,116,114,105,115, 0,118,111,108,117,109,101, 95,109, 97,120, 0,118,111,108,117,109,101, 95,109,105,110, 0,100,105,
-115,116, 97,110, 99,101, 95,109, 97,120, 0,100,105,115,116, 97,110, 99,101, 95,114,101,102,101,114,101,110, 99,101, 0, 99,111,
-110,101, 95, 97,110,103,108,101, 95,111,117,116,101,114, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,105,110,110,101,114, 0,
- 99,111,110,101, 95,118,111,108,117,109,101, 95,111,117,116,101,114, 0,114,101,110,100,101,114, 95,102,108, 97,103, 0, 98,117,
-105,108,100, 95,115,105,122,101, 95,102,108, 97,103, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103, 0,108, 97,115,116,
-115,105,122,101, 91, 50, 93, 0,116,114, 97, 99,107,105,110,103, 0, 42,116,114, 97, 99,107,105,110,103, 95, 99,111,110,116,101,
-120,116, 0,112,114,111,120,121, 0,116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 95,104,101,105,103,104,116, 0, 42,116,
-114, 97, 99,107, 95,112,114,101,118,105,101,119, 0,116,114, 97, 99,107, 95,112,111,115, 91, 50, 93, 0,116,114, 97, 99,107, 95,
-100,105,115, 97, 98,108,101,100, 0, 42,109, 97,114,107,101,114, 0,115,108,105,100,101, 95,115, 99, 97,108,101, 91, 50, 93, 0,
-101,114,114,111,114, 0, 42,105,110,116,114,105,110,115,105, 99,115, 0,115,101,110,115,111,114, 95,119,105,100,116,104, 0,112,
-105,120,101,108, 95, 97,115,112,101, 99,116, 0,102,111, 99, 97,108, 0,117,110,105,116,115, 0,112,114,105,110, 99,105,112, 97,
-108, 91, 50, 93, 0,107, 49, 0,107, 50, 0,107, 51, 0,112,111,115, 91, 50, 93, 0,112, 97,116, 95,109,105,110, 91, 50, 93, 0,
-112, 97,116, 95,109, 97,120, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109,105,110, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,
-109, 97,120, 91, 50, 93, 0,109, 97,114,107,101,114,115,110,114, 0,108, 97,115,116, 95,109, 97,114,107,101,114, 0, 42,109, 97,
-114,107,101,114,115, 0, 98,117,110,100,108,101, 95,112,111,115, 91, 51, 93, 0,112, 97,116, 95,102,108, 97,103, 0,115,101, 97,
-114, 99,104, 95,102,108, 97,103, 0,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,112, 97,116,116,101,114,110, 95,109, 97,
-116, 99,104, 0,116,114, 97, 99,107,101,114, 0,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,109,105,110,105,109,
-117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,116,114, 97, 99,107,101,114, 0,100,
-101,102, 97,117,108,116, 95,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,100,101,102, 97,117,108,116, 95,109,105,
-110,105,109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114,
-110, 95,115,105,122,101, 0,100,101,102, 97,117,108,116, 95,115,101, 97,114, 99,104, 95,115,105,122,101, 0,100,101,102, 97,117,
-108,116, 95,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,100,101,102, 97,117,108,116, 95,109, 97,114,103,105,110, 0,100,
-101,102, 97,117,108,116, 95,112, 97,116,116,101,114,110, 95,109, 97,116, 99,104, 0,100,101,102, 97,117,108,116, 95,102,108, 97,
-103, 0,109,111,116,105,111,110, 95,102,108, 97,103, 0,107,101,121,102,114, 97,109,101, 49, 0,107,101,121,102,114, 97,109,101,
- 50, 0,114,101,102,105,110,101, 95, 99, 97,109,101,114, 97, 95,105,110,116,114,105,110,115,105, 99,115, 0, 99,108,101, 97,110,
- 95,102,114, 97,109,101,115, 0, 99,108,101, 97,110, 95, 97, 99,116,105,111,110, 0, 99,108,101, 97,110, 95,101,114,114,111,114,
- 0,111, 98,106,101, 99,116, 95,100,105,115,116, 97,110, 99,101, 0,116,111,116, 95,116,114, 97, 99,107, 0, 97, 99,116, 95,116,
-114, 97, 99,107, 0,109, 97,120,115, 99, 97,108,101, 0, 42,114,111,116, 95,116,114, 97, 99,107, 0,108,111, 99,105,110,102, 0,
-115, 99, 97,108,101,105,110,102, 0,114,111,116,105,110,102, 0, 42,115, 99, 97,108,101,105, 98,117,102, 0,108, 97,115,116, 95,
- 99, 97,109,101,114, 97, 0, 99, 97,109,110,114, 0, 42, 99, 97,109,101,114, 97,115, 0,116,114, 97, 99,107,115, 0,114,101, 99,
-111,110,115,116,114,117, 99,116,105,111,110, 0,109,101,115,115, 97,103,101, 91, 50, 53, 54, 93, 0,116,111,116, 95,115,101,103,
-109,101,110,116, 0, 42,115,101,103,109,101,110,116,115, 0,109, 97,120, 95,115,101,103,109,101,110,116, 0,116,111,116, 97,108,
- 95,102,114, 97,109,101,115, 0,116,111,116, 95, 99,104, 97,110,110,101,108, 0,115,111,114,116, 95,109,101,116,104,111,100, 0,
-115,111,114,116, 95,105,110,118,101,114,115,101, 0,115,101,116,116,105,110,103,115, 0, 99, 97,109,101,114, 97, 0,115,116, 97,
- 98,105,108,105,122, 97,116,105,111,110, 0, 42, 97, 99,116, 95,116,114, 97, 99,107, 0,111, 98,106,101, 99,116,115, 0,111, 98,
-106,101, 99,116,110,114, 0,116,111,116, 95,111, 98,106,101, 99,116, 0,100,111,112,101,115,104,101,101,116, 0, 42, 98,114,117,
-115,104, 95,103,114,111,117,112, 0, 99,117,114,114,101,110,116, 95,102,114, 97,109,101, 0,100,105,115,112, 95,116,121,112,101,
- 0,105,109, 97,103,101, 95,102,105,108,101,102,111,114,109, 97,116, 0,101,102,102,101, 99,116, 95,117,105, 0,112,114,101,118,
-105,101,119, 95,105,100, 0,105,110,105,116, 95, 99,111,108,111,114, 95,116,121,112,101, 0,112, 97,100, 95,115, 0,105,109, 97,
-103,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,117, 98,115,116,101,112,115, 0,105,110,105,116, 95, 99,111,108,111,
-114, 91, 52, 93, 0, 42,105,110,105,116, 95,116,101,120,116,117,114,101, 0,105,110,105,116, 95,108, 97,121,101,114,110, 97,109,
-101, 91, 54, 52, 93, 0,100,114,121, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,100,114,121, 95,116,104,114,101,115,104,
-111,108,100, 0,100,101,112,116,104, 95, 99,108, 97,109,112, 0,100,105,115,112, 95,102, 97, 99,116,111,114, 0,115,112,114,101,
- 97,100, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,115,104,114,105,
-110,107, 95,115,112,101,101,100, 0,100,114,105,112, 95,118,101,108, 0,100,114,105,112, 95, 97, 99, 99, 0,105,110,102,108,117,
-101,110, 99,101, 95,115, 99, 97,108,101, 0,114, 97,100,105,117,115, 95,115, 99, 97,108,101, 0,119, 97,118,101, 95,100, 97,109,
-112,105,110,103, 0,119, 97,118,101, 95,115,112,101,101,100, 0,119, 97,118,101, 95,116,105,109,101,115, 99, 97,108,101, 0,119,
- 97,118,101, 95,115,112,114,105,110,103, 0,105,109, 97,103,101, 95,111,117,116,112,117,116, 95,112, 97,116,104, 91, 49, 48, 50,
- 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 91, 54, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 50, 91,
- 54, 52, 93, 0, 42,112,109,100, 0,115,117,114,102, 97, 99,101,115, 0, 97, 99,116,105,118,101, 95,115,117,114, 0,101,114,114,
-111,114, 91, 54, 52, 93, 0, 99,111,108,108,105,115,105,111,110, 0,119,101,116,110,101,115,115, 0,112, 97,114,116,105, 99,108,
-101, 95,114, 97,100,105,117,115, 0,112, 97,114,116,105, 99,108,101, 95,115,109,111,111,116,104, 0,112, 97,105,110,116, 95,100,
-105,115,116, 97,110, 99,101, 0, 42,112, 97,105,110,116, 95,114, 97,109,112, 0, 42,118,101,108, 95,114, 97,109,112, 0,112,114,
-111,120,105,109,105,116,121, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,105,114, 0,119, 97,118,101, 95,102, 97, 99,
-116,111,114, 0,119, 97,118,101, 95, 99,108, 97,109,112, 0,109, 97,120, 95,118,101,108,111, 99,105,116,121, 0,115,109,117,100,
-103,101, 95,115,116,114,101,110,103,116,104, 0, 84, 89, 80, 69, 20, 2, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,
-104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116,
- 0,100,111,117, 98,108,101, 0,105,110,116, 54, 52, 95,116, 0,117,105,110,116, 54, 52, 95,116, 0,118,111,105,100, 0, 76,105,
-110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102,
- 0,118,101, 99, 51,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0,
- 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,
-114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111,
- 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,
-111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,
-114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,
-101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,
-109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,
-120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0,
- 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68,
- 97,116, 97, 0, 79, 99,101, 97,110, 84,101,120, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,
-103, 0, 67,111,108,111,114, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,
-103,115, 0, 71, 97,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86,
- 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120,
- 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0,
- 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120,
- 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 83,101,108,101, 99,116, 0, 77, 80,111,108,121, 0, 77, 84,101,
-120, 80,111,108,121, 0, 77, 76,111,111,112, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70, 97,
- 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,
-111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 66, 77, 69,100,105,116, 77,101,115,104, 0,
- 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,
-116, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,
-116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 79,114,105,103,
- 83,112, 97, 99,101, 76,111,111,112, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,
-116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,
-101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77, 82,101, 99, 97,115,116, 0, 71,114,105,
-100, 80, 97,105,110,116, 77, 97,115,107, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,
-110,102,111, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107,
- 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,
-105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,
-105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,
-111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,
-110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,
-100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
- 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,
-100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
- 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,
-114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,
-111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115,
- 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,
-114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,
-110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102,
- 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,
-105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,
-121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,
-116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
- 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,
-101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 0, 79, 99,101, 97,110, 67, 97, 99,104,101,
- 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 69,100,105,116, 77,111,
-100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 77,105,120, 77,111,100,105,102,105,101,114, 68, 97,
-116, 97, 0, 87,101,105,103,104,116, 86, 71, 80,114,111,120,105,109,105,116,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
- 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105,
- 99, 80, 97,105,110,116, 67, 97,110,118, 97,115, 83,101,116,116,105,110,103,115, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,
-116, 66,114,117,115,104, 83,101,116,116,105,110,103,115, 0, 82,101,109,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0,
- 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100,
- 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, 97,116,104,
- 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116,
- 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101,
- 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, 99,104,101,
- 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,
-110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, 86,101,114,
-116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68,
- 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101,
- 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,
-100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 73,109, 97,103,101, 70,111,
-114,109, 97,116, 68, 97,116, 97, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,
-101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 82,101, 99, 97,115,116, 68, 97,116,
- 97, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,
-104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,
-115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 83, 99,117,108,
-112,116, 0, 85,118, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,
-110,116, 97,116,105,111,110, 0, 85,110,105,102,105,101,100, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 84,111,111,
-108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,
-121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115,
- 0, 68, 97,103, 70,111,114,101,115,116, 0, 77,111,118,105,101, 67,108,105,112, 0, 66, 71,112,105, 99, 0, 77,111,118,105,101,
- 67,108,105,112, 85,115,101,114, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111,
- 0, 82,101,110,100,101,114, 69,110,103,105,110,101, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,
-105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,
-107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,
-101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,
-108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109,
- 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,
-101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101,
- 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101,
- 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,
-101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101,
- 76,111,103,105, 99, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,
-112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, 97, 99,101, 67,108,105,112, 0, 77,111,118,105,101, 67,108,105,112,
- 83, 99,111,112,101,115, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,
-101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,
-108,111,114,115, 0,117,105, 80, 97,110,101,108, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101,
- 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, 65,100,100,
-111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, 0, 83, 99,
-114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105,
- 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110,
- 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,
-109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112,
- 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,
-117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 77,101,116, 97, 83,116, 97, 99,
-107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,
-115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,
-115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,
-108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114,
- 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,
-111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117,
- 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,
-111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,
-115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98,
- 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,
-114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,
-116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101,
- 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100,
- 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,
-117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,
-116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,
-116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65,
- 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,
-116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,
-117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,
-105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,
-116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 98,
- 83,116,101,101,114,105,110,103, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,
-101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,
-101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110,
- 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108,
- 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0,
- 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101,
- 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0,
- 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,
-101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0,
- 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,
-116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119,
- 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,
-108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67,
-111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,
-111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,
-116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,
-105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 84,114, 97, 99,107, 67,111,
-110,115,116,114, 97,105,110,116, 0, 98, 67, 97,109,101,114, 97, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116,
- 0, 98, 79, 98,106,101, 99,116, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110,
- 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107,
- 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,
-105,101,119, 0, 98, 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 98, 78,111,100,
-101, 84,114,101,101, 69,120,101, 99, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 73,110,116, 0, 98, 78,
-111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 70,108,111, 97,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86,
- 97,108,117,101, 66,111,111,108,101, 97,110, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 86,101, 99,116,
-111,114, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 82, 71, 66, 65, 0, 78,111,100,101, 73,109, 97,103,
-101, 65,110,105,109, 0, 78,111,100,101, 73,109, 97,103,101, 76, 97,121,101,114, 0, 78,111,100,101, 66,108,117,114, 68, 97,116,
- 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,
-114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,
-111,100,101, 73,109, 97,103,101, 77,117,108,116,105, 70,105,108,101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,105,
- 70,105,108,101, 83,111, 99,107,101,116, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115,
- 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101,
- 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116,
- 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,
-101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67,111,108,
-111,114,115,112,105,108,108, 0, 78,111,100,101, 84,101,120, 66, 97,115,101, 0, 78,111,100,101, 84,101,120, 83,107,121, 0, 78,
-111,100,101, 84,101,120, 73,109, 97,103,101, 0, 78,111,100,101, 84,101,120, 67,104,101, 99,107,101,114, 0, 78,111,100,101, 84,
-101,120, 69,110,118,105,114,111,110,109,101,110,116, 0, 78,111,100,101, 84,101,120, 71,114, 97,100,105,101,110,116, 0, 78,111,
-100,101, 84,101,120, 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 86,111,114,111,110,111,105, 0, 78,111,100,101, 84,101,
-120, 77,117,115,103,114, 97,118,101, 0, 78,111,100,101, 84,101,120, 87, 97,118,101, 0, 78,111,100,101, 84,101,120, 77, 97,103,
-105, 99, 0, 78,111,100,101, 83,104, 97,100,101,114, 65,116,116,114,105, 98,117,116,101, 0, 84,101,120, 78,111,100,101, 79,117,
-116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,
-104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116,
- 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,
-105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,
-110,103, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0,
- 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97,
- 0, 83, 80, 72, 70,108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,
-103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121,
- 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,
-101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,
-101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77,
- 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,
-101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77,
- 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 68,105,102,102, 73,116,
-101,109, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,
-102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,
-110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100,
- 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,
-110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,116,
-101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104, 97,
-110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112,
- 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,
-107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101,
- 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101,
- 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110,
- 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,
-101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,
-116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 83,112,101, 97,107,101,114, 0,
- 77,111,118,105,101, 67,108,105,112, 80,114,111,120,121, 0, 77,111,118,105,101, 67,108,105,112, 67, 97, 99,104,101, 0, 77,111,
-118,105,101, 84,114, 97, 99,107,105,110,103, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 84,114, 97, 99,107, 0, 77,
-111,118,105,101, 84,114, 97, 99,107,105,110,103, 77, 97,114,107,101,114, 0, 77,111,118,105,101, 82,101, 99,111,110,115,116,114,
-117, 99,116,101,100, 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 67, 97,109,101,114, 97, 0,
- 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,101,116,116,105,110,103,115, 0, 77,111,118,105,101, 84,114, 97, 99,107,
-105,110,103, 83,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 82,101,
- 99,111,110,115,116,114,117, 99,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 79, 98,106,101, 99,116,
- 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,116, 97,116,115, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,
-103, 68,111,112,101,115,104,101,101,116, 67,104, 97,110,110,101,108, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 68,
-111,112,101,115,104,101,101,116, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 0, 80, 97,105,
-110,116, 83,117,114,102, 97, 99,101, 68, 97,116, 97, 0, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0,
+ 91, 52, 93, 0,108, 97, 98,101,108, 95,115,105,122,101, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,103, 97,109,109,
+ 97, 0,103, 97,105,110, 0,108,105,102,116, 0,109, 97,115,116,101,114, 0,115,104, 97,100,111,119,115, 0,109,105,100,116,111,
+110,101,115, 0,104,105,103,104,108,105,103,104,116,115, 0,115,116, 97,114,116,109,105,100,116,111,110,101,115, 0,101,110,100,
+109,105,100,116,111,110,101,115, 0,102,108, 97,112,115, 0,114,111,117,110,100,105,110,103, 0, 99, 97,116, 97,100,105,111,112,
+116,114,105, 99, 0,108,101,110,115,115,104,105,102,116, 0,114,111,116, 97,116,105,111,110, 0,112, 97,115,115, 95,105,110,100,
+101,120, 0,112, 97,115,115, 95,102,108, 97,103, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, 99,
+117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,105,109,
+ 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,
+116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,
+111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0, 98, 97,115,101, 95,112, 97,116,104, 91, 49,
+ 48, 50, 52, 93, 0,102,111,114,109, 97,116, 0, 97, 99,116,105,118,101, 95,105,110,112,117,116, 0,117,115,101, 95,114,101,110,
+100,101,114, 95,102,111,114,109, 97,116, 0,117,115,101, 95,110,111,100,101, 95,102,111,114,109, 97,116, 0,108, 97,121,101,114,
+ 91, 51, 48, 93, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,
+101,121, 91, 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49,
+ 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0,
+ 99,111,108,110, 97,109,101, 91, 54, 52, 93, 0, 98,107,116,121,112,101, 0,112, 97,100, 95, 99, 49, 0,103, 97,109, 99,111, 0,
+110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0,112, 97,
+100, 95,102, 49, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 99,111,108,109,111,100, 0,109,105,120, 0,102, 97,100,101,
+ 0, 97,110,103,108,101, 95,111,102,115, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112,
+101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,
+105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,
+117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,116,101,120, 95,109, 97,112,112,
+105,110,103, 0, 99,111,108,111,114, 95,109, 97,112,112,105,110,103, 0,115,117,110, 95,100,105,114,101, 99,116,105,111,110, 91,
+ 51, 93, 0,116,117,114, 98,105,100,105,116,121, 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0,112,114,111,106,101, 99,116,
+105,111,110, 0,103,114, 97,100,105,101,110,116, 95,116,121,112,101, 0, 99,111,108,111,114,105,110,103, 0,109,117,115,103,114,
+ 97,118,101, 95,116,121,112,101, 0,119, 97,118,101, 95,116,121,112,101, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,
+108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93,
+ 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,
+101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0,
+ 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93,
+ 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50,
+ 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97,
+ 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,
+110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,
+109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,
+103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,
+104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49,
+ 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,
+112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,
+109,116,101,120, 0, 42,116,111,103,103,108,101, 95, 98,114,117,115,104, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105,
+ 99,111,110, 95,102,105,108,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116,
+ 0,111, 98, 95,109,111,100,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,
+100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,
+103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,
+115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,
+103,101,112, 97,105,110,116, 95,116,111,111,108, 0,109, 97,115,107, 95,116,111,111,108, 0, 97,117,116,111,115,109,111,111,116,
+104, 95,102, 97, 99,116,111,114, 0, 99,114,101, 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,
+110,101, 95,116,114,105,109, 0,116,101,120,116,117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,
+117,114,101, 95,111,118,101,114,108, 97,121, 95, 97,108,112,104, 97, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98,
+ 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0,
+ 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,121,112,101,109, 97,112, 91, 51, 54, 93, 0,
+116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,
+ 42,101,120,116,101,114,110, 97,108, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,
+119, 97,110,100,101,114, 91, 51, 93, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,
+110,100,101,120, 91, 50, 93, 0,100,101,108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112,
+ 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,112,114,101,118, 95,115,116,
+ 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97,
+ 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108,
+ 97,115,116,105, 99,105,116,121, 95, 99,111,110,115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108,
+ 97,115,116,105, 99,105,116,121, 95, 98, 97,108, 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,
+105,115, 99,111,115,105,116,121, 95,111,109,101,103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,
+105,102,102,110,101,115,115, 95,107, 0,115,116,105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,
+101,110,115,105,116,121, 0, 98,117,111,121, 97,110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,
+111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,
+100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,
+115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,
+100,114, 97,119, 95, 99,111,108, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115,
+ 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,
+114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,
+108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,
+105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, 98,
+ 95,115,105,122,101, 91, 50, 93, 0, 98, 98, 95,118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105,108,
+ 0, 99,111,108,111,114, 95,118,101, 99, 95,109, 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,
+115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,
+110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0, 99,111,
+117,114, 97,110,116, 95,116, 97,114,103,101,116, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,
+100, 95,114, 97,110,100, 0,112,115, 95,111,102,102,115,101,116, 91, 49, 93, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,
+101, 99,116,111,114, 95, 97,109,111,117,110,116, 0,116,105,109,101, 95,102,108, 97,103, 0,116,105,109,101, 95,112, 97,100, 91,
+ 51, 93, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,
+102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,
+110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97,
+ 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,
+104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,
+115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114,
+ 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,
+107,105,110,107, 95, 97,109,112, 95, 99,108,117,109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,
+101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,
+115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,
+103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,
+114,116,105,110,103, 95,109,105,110, 0,112, 97,114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,
+101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,
+101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,
+105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,
+111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99,
+ 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0,
+ 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109,
+ 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,
+101, 0,116,114,101,101, 95,102,114, 97,109,101, 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100,
+ 95,115,101,101,100, 0,116,111,116,117,110,101,120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,
+104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,
+116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 54, 52,
+ 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100,
+ 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,
+116, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,
+115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0,100,116, 95,102,114, 97, 99, 0, 95,112, 97,100,
+ 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120,
+ 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,
+112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99,
+ 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,
+118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,
+110, 0,118,101,108, 95,100, 97,109,112,105,110,103, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,
+111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,
+111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117,
+ 99,116, 0,115,104, 97,112,101,107,101,121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42,
+ 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,
+116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,
+116, 97,110, 99,101, 95,114,101,112,101,108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112,
+ 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,
+115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91,
+ 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0,
+ 42,115, 98,117,102,102,101,114, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,
+118,101,108, 0, 42,114,101,112,111,114,116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,
+105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,
+101, 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,
+113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,
+100,114, 97,103,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0, 42, 97,
+100,100,111,110, 99,111,110,102, 0, 42,117,115,101,114, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115,
+ 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,115,
+ 99,114,101,101,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 54, 52, 93, 0,
+112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,
+115,116, 99,117,114,115,111,114, 0,109,111,100, 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,
+101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114,
+ 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,
+108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110,
+ 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 95,115,116,114, 91, 54, 52, 93, 0,112,114,111,112,118, 97,
+108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,
+102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0, 42,114,101,109,111,118,101, 95,105,116,101,109, 0, 42,
+ 97,100,100, 95,105,116,101,109, 0,105,116,101,109,115, 0,100,105,102,102, 95,105,116,101,109,115, 0,115,112, 97, 99,101,105,
+100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100,
+ 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0,
+ 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,
+115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,
+115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101,
+ 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118,
+ 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,
+102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121,
+ 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,
+112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,
+116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,
+116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54,
+ 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,
+110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56,
+ 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115,
+ 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101,
+ 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,
+109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,100,101,115, 99,114,105,112,116,105,111,
+110, 91, 50, 52, 48, 93, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0,
+ 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,
+118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116,
+ 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,
+112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,
+107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,
+114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,
+114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116,
+ 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,
+105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,
+103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,
+112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114,
+ 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,
+108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100,
+ 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,
+100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100,
+ 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,
+116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,
+120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,
+105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,
+115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,
+100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,
+103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115,
+ 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101,
+ 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105,
+ 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,
+118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,
+116,115, 95,111,108,100, 0, 42,118,101,108, 0, 42,116,114,105,100,105,118,115, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91,
+ 52, 93, 0,110,117,109,116,114,105,115, 0,118,111,108,117,109,101, 95,109, 97,120, 0,118,111,108,117,109,101, 95,109,105,110,
+ 0,100,105,115,116, 97,110, 99,101, 95,109, 97,120, 0,100,105,115,116, 97,110, 99,101, 95,114,101,102,101,114,101,110, 99,101,
+ 0, 99,111,110,101, 95, 97,110,103,108,101, 95,111,117,116,101,114, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,105,110,110,
+101,114, 0, 99,111,110,101, 95,118,111,108,117,109,101, 95,111,117,116,101,114, 0,114,101,110,100,101,114, 95,102,108, 97,103,
+ 0, 98,117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103, 0,108,
+ 97,115,116,115,105,122,101, 91, 50, 93, 0,116,114, 97, 99,107,105,110,103, 0, 42,116,114, 97, 99,107,105,110,103, 95, 99,111,
+110,116,101,120,116, 0,112,114,111,120,121, 0,116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 95,104,101,105,103,104,116,
+ 0, 42,116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 0,116,114, 97, 99,107, 95,112,111,115, 91, 50, 93, 0,116,114, 97,
+ 99,107, 95,100,105,115, 97, 98,108,101,100, 0, 42,109, 97,114,107,101,114, 0,115,108,105,100,101, 95,115, 99, 97,108,101, 91,
+ 50, 93, 0,101,114,114,111,114, 0, 42,105,110,116,114,105,110,115,105, 99,115, 0,115,101,110,115,111,114, 95,119,105,100,116,
+104, 0,112,105,120,101,108, 95, 97,115,112,101, 99,116, 0,102,111, 99, 97,108, 0,117,110,105,116,115, 0,112,114,105,110, 99,
+105,112, 97,108, 91, 50, 93, 0,107, 49, 0,107, 50, 0,107, 51, 0,112,111,115, 91, 50, 93, 0,112, 97,116, 95,109,105,110, 91,
+ 50, 93, 0,112, 97,116, 95,109, 97,120, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109,105,110, 91, 50, 93, 0,115,101, 97,114,
+ 99,104, 95,109, 97,120, 91, 50, 93, 0,109, 97,114,107,101,114,115,110,114, 0,108, 97,115,116, 95,109, 97,114,107,101,114, 0,
+ 42,109, 97,114,107,101,114,115, 0, 98,117,110,100,108,101, 95,112,111,115, 91, 51, 93, 0,112, 97,116, 95,102,108, 97,103, 0,
+115,101, 97,114, 99,104, 95,102,108, 97,103, 0,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,112, 97,116,116,101,114,110,
+ 95,109, 97,116, 99,104, 0,116,114, 97, 99,107,101,114, 0,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,109,105,
+110,105,109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,116,114, 97, 99,107,101,
+114, 0,100,101,102, 97,117,108,116, 95,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,100,101,102, 97,117,108,116,
+ 95,109,105,110,105,109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,
+116,101,114,110, 95,115,105,122,101, 0,100,101,102, 97,117,108,116, 95,115,101, 97,114, 99,104, 95,115,105,122,101, 0,100,101,
+102, 97,117,108,116, 95,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,100,101,102, 97,117,108,116, 95,109, 97,114,103,105,
+110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114,110, 95,109, 97,116, 99,104, 0,100,101,102, 97,117,108,116, 95,
+102,108, 97,103, 0,109,111,116,105,111,110, 95,102,108, 97,103, 0,107,101,121,102,114, 97,109,101, 49, 0,107,101,121,102,114,
+ 97,109,101, 50, 0,114,101,102,105,110,101, 95, 99, 97,109,101,114, 97, 95,105,110,116,114,105,110,115,105, 99,115, 0, 99,108,
+101, 97,110, 95,102,114, 97,109,101,115, 0, 99,108,101, 97,110, 95, 97, 99,116,105,111,110, 0, 99,108,101, 97,110, 95,101,114,
+114,111,114, 0,111, 98,106,101, 99,116, 95,100,105,115,116, 97,110, 99,101, 0,116,111,116, 95,116,114, 97, 99,107, 0, 97, 99,
+116, 95,116,114, 97, 99,107, 0,109, 97,120,115, 99, 97,108,101, 0, 42,114,111,116, 95,116,114, 97, 99,107, 0,108,111, 99,105,
+110,102, 0,115, 99, 97,108,101,105,110,102, 0,114,111,116,105,110,102, 0, 42,115, 99, 97,108,101,105, 98,117,102, 0,108, 97,
+115,116, 95, 99, 97,109,101,114, 97, 0, 99, 97,109,110,114, 0, 42, 99, 97,109,101,114, 97,115, 0,116,114, 97, 99,107,115, 0,
+114,101, 99,111,110,115,116,114,117, 99,116,105,111,110, 0,109,101,115,115, 97,103,101, 91, 50, 53, 54, 93, 0,116,111,116, 95,
+115,101,103,109,101,110,116, 0, 42,115,101,103,109,101,110,116,115, 0,109, 97,120, 95,115,101,103,109,101,110,116, 0,116,111,
+116, 97,108, 95,102,114, 97,109,101,115, 0,116,111,116, 95, 99,104, 97,110,110,101,108, 0,115,111,114,116, 95,109,101,116,104,
+111,100, 0,115,111,114,116, 95,105,110,118,101,114,115,101, 0,115,101,116,116,105,110,103,115, 0, 99, 97,109,101,114, 97, 0,
+115,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 42, 97, 99,116, 95,116,114, 97, 99,107, 0,111, 98,106,101, 99,116,115,
+ 0,111, 98,106,101, 99,116,110,114, 0,116,111,116, 95,111, 98,106,101, 99,116, 0,100,111,112,101,115,104,101,101,116, 0, 42,
+ 98,114,117,115,104, 95,103,114,111,117,112, 0, 99,117,114,114,101,110,116, 95,102,114, 97,109,101, 0,100,105,115,112, 95,116,
+121,112,101, 0,105,109, 97,103,101, 95,102,105,108,101,102,111,114,109, 97,116, 0,101,102,102,101, 99,116, 95,117,105, 0,112,
+114,101,118,105,101,119, 95,105,100, 0,105,110,105,116, 95, 99,111,108,111,114, 95,116,121,112,101, 0,112, 97,100, 95,115, 0,
+105,109, 97,103,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,117, 98,115,116,101,112,115, 0,105,110,105,116, 95, 99,
+111,108,111,114, 91, 52, 93, 0, 42,105,110,105,116, 95,116,101,120,116,117,114,101, 0,105,110,105,116, 95,108, 97,121,101,114,
+110, 97,109,101, 91, 54, 52, 93, 0,100,114,121, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,100,114,121, 95,116,104,114,
+101,115,104,111,108,100, 0,100,101,112,116,104, 95, 99,108, 97,109,112, 0,100,105,115,112, 95,102, 97, 99,116,111,114, 0,115,
+112,114,101, 97,100, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,115,
+104,114,105,110,107, 95,115,112,101,101,100, 0,100,114,105,112, 95,118,101,108, 0,100,114,105,112, 95, 97, 99, 99, 0,105,110,
+102,108,117,101,110, 99,101, 95,115, 99, 97,108,101, 0,114, 97,100,105,117,115, 95,115, 99, 97,108,101, 0,119, 97,118,101, 95,
+100, 97,109,112,105,110,103, 0,119, 97,118,101, 95,115,112,101,101,100, 0,119, 97,118,101, 95,116,105,109,101,115, 99, 97,108,
+101, 0,119, 97,118,101, 95,115,112,114,105,110,103, 0,105,109, 97,103,101, 95,111,117,116,112,117,116, 95,112, 97,116,104, 91,
+ 49, 48, 50, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 91, 54, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,
+101, 50, 91, 54, 52, 93, 0, 42,112,109,100, 0,115,117,114,102, 97, 99,101,115, 0, 97, 99,116,105,118,101, 95,115,117,114, 0,
+101,114,114,111,114, 91, 54, 52, 93, 0, 99,111,108,108,105,115,105,111,110, 0,119,101,116,110,101,115,115, 0,112, 97,114,116,
+105, 99,108,101, 95,114, 97,100,105,117,115, 0,112, 97,114,116,105, 99,108,101, 95,115,109,111,111,116,104, 0,112, 97,105,110,
+116, 95,100,105,115,116, 97,110, 99,101, 0, 42,112, 97,105,110,116, 95,114, 97,109,112, 0, 42,118,101,108, 95,114, 97,109,112,
+ 0,112,114,111,120,105,109,105,116,121, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,105,114, 0,119, 97,118,101, 95,
+102, 97, 99,116,111,114, 0,119, 97,118,101, 95, 99,108, 97,109,112, 0,109, 97,120, 95,118,101,108,111, 99,105,116,121, 0,115,
+109,117,100,103,101, 95,115,116,114,101,110,103,116,104, 0, 0, 84, 89, 80, 69, 26, 2, 0, 0, 99,104, 97,114, 0,117, 99,104,
+ 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,
+108,111, 97,116, 0,100,111,117, 98,108,101, 0,105,110,116, 54, 52, 95,116, 0,117,105,110,116, 54, 52, 95,116, 0,118,111,105,
+100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,
+101, 99, 50,102, 0,118,101, 99, 51,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68,
+ 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,
+116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116,
+ 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,
+101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,
+120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0,
+ 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101,
+ 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,
+105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109,
+ 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,
+120,101,108, 68, 97,116, 97, 0, 79, 99,101, 97,110, 84,101,120, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,
+112,112,105,110,103, 0, 67,111,108,111,114, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,
+116,116,105,110,103,115, 0, 71, 97,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,
+117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,
+100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116,
+ 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,
+108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 83,101,108,101, 99,116, 0, 77, 80,111,108,121,
+ 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108,
+ 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0,
+ 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 66, 77, 69,100,105,116, 77,
+101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 77, 68,101,102,111,114,109, 87,
+101,105,103,104,116, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,
+121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0,
+ 79,114,105,103, 83,112, 97, 99,101, 76,111,111,112, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108,
+ 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,
+108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77, 82,101, 99, 97,115,116,
+ 0, 71,114,105,100, 80, 97,105,110,116, 77, 97,115,107, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,
+105,110,103, 73,110,102,111, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,
+105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,
+101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
+ 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,
+116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,
+111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,
+101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116,
+ 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,
+101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97,
+ 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114,
+ 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104,
+ 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,
+118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68,
+ 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,
+105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,
+104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,
+105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,
+114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116,
+ 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,
+111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0,
+ 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
+ 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105,
+ 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,
+101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,
+114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114,
+ 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112,
+ 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,
+114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,
+105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116,
+ 97, 0, 79, 99,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 0, 79, 99,101, 97,110, 67,
+ 97, 99,104,101, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 69,100,
+105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 77,105,120, 77,111,100,105,102,105,
+101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 80,114,111,120,105,109,105,116,121, 77,111,100,105,102,105,101,114,
+ 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,
+110, 97,109,105, 99, 80, 97,105,110,116, 67, 97,110,118, 97,115, 83,101,116,116,105,110,103,115, 0, 68,121,110, 97,109,105, 99,
+ 80, 97,105,110,116, 66,114,117,115,104, 83,101,116,116,105,110,103,115, 0, 82,101,109,101,115,104, 77,111,100,105,102,105,101,
+114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,
+111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0,
+ 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110,
+ 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0,
+ 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0,
+ 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67,
+ 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,
+121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,
+100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,
+100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,
+116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116,
+ 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 73,109, 97,
+103,101, 70,111,114,109, 97,116, 68, 97,116, 97, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,
+111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 82,101, 99, 97,115,
+116, 68, 97,116, 97, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0,
+ 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,
+101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0,
+ 83, 99,117,108,112,116, 0, 85,118, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,114, 97,110,115,102,111,114,109,
+ 79,114,105,101,110,116, 97,116,105,111,110, 0, 85,110,105,102,105,101,100, 80, 97,105,110,116, 83,101,116,116,105,110,103,115,
+ 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,
+115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,
+116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 77,111,118,105,101, 67,108,105,112, 0, 66, 71,112,105, 99, 0, 77,
+111,118,105,101, 67,108,105,112, 85,115,101,114, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114,
+ 73,110,102,111, 0, 82,101,110,100,101,114, 69,110,103,105,110,101, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,
+111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,
+101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, 0,
+ 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,
+108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,
+116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,
+115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,
+109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,
+112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,
+101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,
+112, 97, 99,101, 76,111,103,105, 99, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,
+108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, 97, 99,101, 67,108,105,112, 0, 77,111,118,105,101,
+ 67,108,105,112, 83, 99,111,112,101,115, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105,
+ 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,
+116,101, 67,111,108,111,114,115, 0,117,105, 80, 97,110,101,108, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,
+104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0,
+ 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,
+110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,
+101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,
+103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,
+112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,
+116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,
+112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 77,101,116, 97,
+ 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,
+109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,
+108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,
+114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,
+110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98,
+ 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98,
+ 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,
+108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,
+109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,
+111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,
+111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,
+110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100,
+ 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,
+111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,
+116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,
+116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65,
+ 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,
+105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,
+111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,
+101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,
+119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,
+114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,
+111,114, 0, 98, 83,116,101,101,114,105,110,103, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116,
+ 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0,
+ 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,
+116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,
+110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,
+105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,
+115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,
+108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,
+105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,
+101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,
+105,110,116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,
+ 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116,
+ 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,
+115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,
+108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,
+115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,
+116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,
+115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,
+118,111,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,
+116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116,
+ 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0,
+ 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 84,114, 97,
+ 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67, 97,109,101,114, 97, 83,111,108,118,101,114, 67,111,110,115,116,114,
+ 97,105,110,116, 0, 98, 79, 98,106,101, 99,116, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,
+116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,
+116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101,
+ 80,114,101,118,105,101,119, 0, 98, 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0,
+ 98, 78,111,100,101, 84,114,101,101, 69,120,101, 99, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 73,110,
+116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 70,108,111, 97,116, 0, 98, 78,111,100,101, 83,111, 99,
+107,101,116, 86, 97,108,117,101, 66,111,111,108,101, 97,110, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101,
+ 86,101, 99,116,111,114, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 82, 71, 66, 65, 0, 78,111,100,101,
+ 70,114, 97,109,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 67,111,108,111,114, 67,111,114,114,101, 99,116,
+105,111,110, 68, 97,116, 97, 0, 78,111,100,101, 67,111,108,111,114, 67,111,114,114,101, 99,116,105,111,110, 0, 78,111,100,101,
+ 66,111,107,101,104, 73,109, 97,103,101, 0, 78,111,100,101, 66,111,120, 77, 97,115,107, 0, 78,111,100,101, 69,108,108,105,112,
+115,101, 77, 97,115,107, 0, 78,111,100,101, 73,109, 97,103,101, 76, 97,121,101,114, 0, 78,111,100,101, 66,108,117,114, 68, 97,
+116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,
+117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0,
+ 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,105, 70,105,108,101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,
+105, 70,105,108,101, 83,111, 99,107,101,116, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,
+115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,
+101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,
+116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101,
+ 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67,111,
+108,111,114,115,112,105,108,108, 0, 78,111,100,101, 84,101,120, 66, 97,115,101, 0, 78,111,100,101, 84,101,120, 83,107,121, 0,
+ 78,111,100,101, 84,101,120, 73,109, 97,103,101, 0, 78,111,100,101, 84,101,120, 67,104,101, 99,107,101,114, 0, 78,111,100,101,
+ 84,101,120, 69,110,118,105,114,111,110,109,101,110,116, 0, 78,111,100,101, 84,101,120, 71,114, 97,100,105,101,110,116, 0, 78,
+111,100,101, 84,101,120, 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 86,111,114,111,110,111,105, 0, 78,111,100,101, 84,
+101,120, 77,117,115,103,114, 97,118,101, 0, 78,111,100,101, 84,101,120, 87, 97,118,101, 0, 78,111,100,101, 84,101,120, 77, 97,
+103,105, 99, 0, 78,111,100,101, 83,104, 97,100,101,114, 65,116,116,114,105, 98,117,116,101, 0, 84,101,120, 78,111,100,101, 79,
+117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,
+115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,
+116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,
+111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,
+105,110,103, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116,
+ 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116,
+ 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,
+110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,
+121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,
+100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,
+109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119,
+ 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,
+118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121,
+ 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 68,105,102,102, 73,
+116,101,109, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,
+105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,
+111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,
+100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,
+111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,
+116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104,
+ 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,
+112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97,
+ 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,
+101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,
+101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,
+110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,
+118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116,
+ 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 83,112,101, 97,107,101,114,
+ 0, 77,111,118,105,101, 67,108,105,112, 80,114,111,120,121, 0, 77,111,118,105,101, 67,108,105,112, 67, 97, 99,104,101, 0, 77,
+111,118,105,101, 84,114, 97, 99,107,105,110,103, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 84,114, 97, 99,107, 0,
+ 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 77, 97,114,107,101,114, 0, 77,111,118,105,101, 82,101, 99,111,110,115,116,
+114,117, 99,116,101,100, 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 67, 97,109,101,114, 97,
+ 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,101,116,116,105,110,103,115, 0, 77,111,118,105,101, 84,114, 97, 99,
+107,105,110,103, 83,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 82,
+101, 99,111,110,115,116,114,117, 99,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 79, 98,106,101, 99,
+116, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,116, 97,116,115, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,
+110,103, 68,111,112,101,115,104,101,101,116, 67,104, 97,110,110,101,108, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103,
+ 68,111,112,101,115,104,101,101,116, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 0, 80, 97,
+105,110,116, 83,117,114,102, 97, 99,101, 68, 97,116, 97, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0,
4, 0, 4, 0, 8, 0, 8, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 12, 0, 16, 0, 16, 0, 32, 0,128, 0,
120, 0,144, 8, 0, 0, 40, 0,144, 0,112, 5,112, 0, 36, 0, 56, 0,160, 0,192, 0,224, 0, 96, 0, 40, 0, 48, 0,224, 0,
16, 0,200, 0, 40, 0,216, 11, 48, 5, 0, 0, 0, 0, 0, 0, 56, 1,168, 1,216, 4, 24, 0, 8, 3,200, 0, 0, 0,104, 0,
- 64, 1, 56, 4, 80, 0, 24, 1,144, 0, 56, 3, 16, 2, 88, 0, 16, 0,128, 3,152, 0,136, 4, 0, 0,104, 0,104, 0, 0, 1,
+ 64, 1, 56, 4, 80, 0, 32, 1,144, 0, 56, 3, 16, 2, 88, 0, 16, 0,128, 3,152, 0,136, 4, 0, 0,104, 0,104, 0, 0, 1,
80, 0, 8, 0, 16, 0, 32, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0, 16, 5, 8, 0, 12, 0, 16, 0, 8, 0, 12, 0, 4, 0,
20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 0, 0,184, 0,160, 1, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0,
8, 0, 24, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 4, 0, 16, 0,112, 0,200, 0,136, 0,192, 0,192, 0,128, 0,192, 0,
@@ -10935,8 +10945,8 @@ char datatoc_startup_blend[] = {
144, 0,152, 2,136, 0,192, 0,120, 0,128, 0,224, 4,208, 0,200, 0,112, 0,208, 0,144, 0, 16, 5, 0, 0, 0, 0, 48, 1,
104, 1,160, 1,104, 1,136, 0,104, 0,112, 0,128, 0, 16, 0, 96, 1, 88, 0, 0, 0,200, 0,216, 0,152, 0, 48, 0, 24, 0,
120, 0,152, 0,216, 1, 0, 1,184, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 12, 0, 24, 2,
- 40, 0,184, 0,152, 0, 64, 0, 72, 0, 32, 0,128, 0, 24, 0, 56, 9, 64, 0, 24, 0, 16, 0, 56, 0,168, 0, 96, 0, 24, 0,
- 96, 6, 48, 0, 16, 0,168, 0, 96, 0, 24, 0, 56, 0,120, 0, 24, 0,240, 1, 32, 0, 8, 0, 24, 0, 80, 8, 0, 0, 0, 0,
+ 40, 0,184, 0,152, 0, 64, 0, 72, 0, 32, 0,128, 0, 24, 0, 56, 9, 64, 0, 24, 0, 16, 0, 56, 0,168, 0, 96, 0, 32, 0,
+ 96, 6, 56, 0, 16, 0,168, 0,104, 0, 32, 0, 64, 0,120, 0, 24, 0,248, 1, 32, 0, 8, 0, 24, 0, 80, 8, 0, 0, 0, 0,
224, 8,104, 0, 8, 0,112, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 56, 0,144, 0, 64, 0,240, 0,112, 0,248, 0,
240, 0,160, 7,104, 0, 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, 40, 33,128, 16, 24, 16,216, 0,160, 2,168, 5, 64, 0,
24, 0,208, 0, 48, 1, 72, 0, 40, 0,136, 1,104, 0, 56, 1, 56, 0, 24, 4, 32, 0,232, 0, 32, 0, 32, 0, 8, 0, 80, 3,
@@ -10947,776 +10957,782 @@ char datatoc_startup_blend[] = {
112, 0,148, 0, 32, 0,128, 0, 88, 0, 88, 0,208, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0,160, 0, 48, 0, 40, 0, 72, 1,
0, 1, 16, 0, 32, 2, 4, 0, 40, 0,120, 0, 72, 1,120, 0, 56, 0,120, 0,160, 0,112, 0,184, 0, 24, 0, 88, 0, 80, 0,
80, 0, 80, 0, 8, 0, 72, 0,104, 0,104, 0, 80, 0, 80, 0, 24, 0, 88, 0,104, 0, 16, 0,144, 0,128, 0, 88, 0, 28, 0,
- 28, 0, 28, 0, 88, 0, 24, 0,160, 0, 16, 0,152, 0, 72, 0,168, 0, 48, 0,208, 0, 56, 0, 16, 0, 88, 1, 0, 0, 0, 0,
- 0, 0, 16, 0, 16, 0, 4, 0, 24, 0, 16, 0, 16, 0, 12, 0, 40, 0, 28, 0, 12, 0, 12, 0, 32, 4, 40, 4, 64, 4, 44, 0,
- 24, 0, 8, 0,128, 0, 64, 0, 32, 0, 16, 0, 32, 0, 32, 0, 8, 0, 96, 0, 20, 0,200, 3,216, 3,208, 3,200, 3,208, 3,
-208, 3,200, 3,208, 3,208, 3,208, 3,208, 3, 64, 0, 64, 0, 12, 0, 56, 0, 24, 0,104, 0, 0, 4, 24, 0, 56, 0, 56, 0,
- 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0, 16, 3,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,
-192, 0, 40, 0, 88, 1, 0, 1,168, 0, 0, 0, 0, 0, 0, 0,184, 0, 0, 0, 32, 0,136, 0, 0, 0,120, 0, 24, 0, 24, 0,
- 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,104, 0, 0, 1, 40, 0,208, 0,104, 0,
-112, 0,216, 1, 32, 0,128, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0,184, 0, 8, 3, 0, 0,
- 24, 1,192, 0, 16, 0, 72, 0, 48, 0, 64, 0, 56, 0, 24, 0,128, 0, 0, 1, 48, 0, 32, 0, 16, 6, 0, 0, 83, 84, 82, 67,
-211, 1, 0, 0, 12, 0, 2, 0, 12, 0, 0, 0, 12, 0, 1, 0, 13, 0, 3, 0, 13, 0, 0, 0, 13, 0, 1, 0, 11, 0, 2, 0,
- 14, 0, 2, 0, 11, 0, 3, 0, 11, 0, 4, 0, 15, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 16, 0, 2, 0, 7, 0, 5, 0,
- 7, 0, 6, 0, 17, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 18, 0, 4, 0, 4, 0, 8, 0, 4, 0, 9, 0,
- 4, 0, 10, 0, 4, 0, 11, 0, 19, 0, 4, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 20, 0, 4, 0,
- 11, 0, 12, 0, 14, 0, 13, 0, 4, 0, 14, 0, 4, 0, 15, 0, 21, 0, 10, 0, 21, 0, 0, 0, 21, 0, 1, 0, 0, 0, 16, 0,
- 0, 0, 17, 0, 2, 0, 18, 0, 0, 0, 19, 0, 4, 0, 20, 0, 20, 0, 21, 0, 4, 0, 22, 0, 4, 0, 23, 0, 22, 0, 11, 0,
- 11, 0, 0, 0, 11, 0, 1, 0, 22, 0, 24, 0, 23, 0, 25, 0, 0, 0, 26, 0, 2, 0, 27, 0, 2, 0, 28, 0, 2, 0, 18, 0,
- 4, 0, 29, 0, 4, 0, 30, 0, 21, 0, 31, 0, 23, 0, 6, 0, 22, 0, 32, 0, 22, 0, 33, 0, 24, 0, 34, 0, 0, 0, 35, 0,
- 0, 0, 36, 0, 23, 0, 37, 0, 25, 0, 5, 0, 4, 0, 38, 0, 4, 0, 39, 0, 2, 0, 40, 0, 2, 0, 41, 0, 4, 0, 42, 0,
- 26, 0, 6, 0, 27, 0, 43, 0, 2, 0, 44, 0, 2, 0, 45, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 46, 0, 28, 0, 21, 0,
- 28, 0, 0, 0, 28, 0, 1, 0, 29, 0, 47, 0, 30, 0, 48, 0, 19, 0, 49, 0, 19, 0, 50, 0, 2, 0, 44, 0, 2, 0, 45, 0,
- 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 18, 0, 2, 0, 55, 0, 7, 0, 10, 0, 7, 0, 11, 0,
- 4, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 26, 0, 60, 0, 31, 0, 7, 0, 22, 0, 32, 0, 14, 0, 61, 0,
- 19, 0, 62, 0, 2, 0, 44, 0, 2, 0, 63, 0, 2, 0, 64, 0, 2, 0, 27, 0, 32, 0, 16, 0, 32, 0, 0, 0, 32, 0, 1, 0,
- 7, 0, 65, 0, 7, 0, 59, 0, 2, 0, 16, 0, 2, 0, 66, 0, 2, 0, 67, 0, 2, 0, 18, 0, 4, 0, 68, 0, 4, 0, 69, 0,
- 11, 0, 2, 0, 7, 0, 70, 0, 0, 0, 19, 0, 0, 0, 71, 0, 7, 0, 72, 0, 7, 0, 73, 0, 33, 0, 15, 0, 22, 0, 32, 0,
- 34, 0, 74, 0, 32, 0, 75, 0, 0, 0, 76, 0, 4, 0, 77, 0, 4, 0, 27, 0, 14, 0, 78, 0, 31, 0, 79, 0, 22, 0, 80, 0,
- 2, 0, 16, 0, 2, 0, 81, 0, 2, 0, 82, 0, 2, 0, 18, 0, 7, 0, 83, 0, 4, 0, 84, 0, 35, 0, 6, 0, 35, 0, 0, 0,
- 35, 0, 1, 0, 0, 0, 85, 0, 0, 0, 86, 0, 4, 0, 22, 0, 4, 0, 87, 0, 36, 0, 10, 0, 36, 0, 0, 0, 36, 0, 1, 0,
- 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 90, 0, 4, 0, 66, 0, 4, 0, 13, 0, 4, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0,
- 37, 0, 15, 0, 22, 0, 32, 0, 0, 0, 94, 0, 4, 0, 91, 0, 4, 0, 95, 0, 14, 0, 96, 0, 35, 0, 97, 0, 35, 0, 98, 0,
- 4, 0, 99, 0, 4, 0,100, 0, 14, 0,101, 0, 0, 0,102, 0, 4, 0,103, 0, 4, 0,104, 0, 11, 0,105, 0, 8, 0,106, 0,
- 38, 0, 3, 0, 4, 0,107, 0, 4, 0,108, 0, 11, 0, 2, 0, 39, 0, 20, 0, 22, 0, 32, 0, 34, 0, 74, 0, 0, 0, 16, 0,
- 0, 0,109, 0, 2, 0, 18, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0,
- 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0, 31, 0, 79, 0, 27, 0,121, 0, 0, 0,122, 0,
- 0, 0,123, 0, 40, 0, 14, 0, 41, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 4, 0,127, 0, 4, 0,128, 0, 0, 0,129, 0,
- 0, 0,130, 0, 0, 0,131, 0, 0, 0, 27, 0, 2, 0,132, 0, 2, 0,133, 0, 2, 0,134, 0, 2, 0, 18, 0, 4, 0, 30, 0,
- 42, 0, 33, 0, 22, 0, 32, 0, 0, 0, 35, 0, 14, 0,135, 0, 43, 0,136, 0, 44, 0,137, 0, 45, 0,138, 0, 45, 0,139, 0,
- 2, 0,140, 0, 2, 0,141, 0, 2, 0,131, 0, 2, 0, 18, 0, 2, 0,142, 0, 2, 0, 16, 0, 4, 0,143, 0, 2, 0,144, 0,
- 2, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0, 4, 0,150, 0, 4, 0,151, 0, 38, 0,152, 0,
- 25, 0,153, 0, 7, 0,154, 0, 4, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 0, 0,159, 0, 0, 0,160, 0,
- 7, 0,161, 0, 7, 0,162, 0, 46, 0, 65, 0, 2, 0,163, 0, 2, 0,164, 0, 2, 0,165, 0, 2, 0,166, 0, 27, 0,167, 0,
- 47, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,173, 0, 7, 0,174, 0, 7, 0,175, 0,
- 7, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0, 2, 0,181, 0, 2, 0,182, 0, 0, 0,183, 0,
- 0, 0,123, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0, 55, 0, 7, 0,189, 0,
- 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0,
- 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0,
- 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0,
- 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0,
- 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 48, 0, 15, 0, 0, 0, 35, 0, 11, 0,226, 0, 0, 0,227, 0,
- 0, 0,228, 0, 4, 0,229, 0, 4, 0,230, 0, 11, 0,231, 0, 7, 0,232, 0, 7, 0,233, 0, 7, 0,234, 0, 4, 0,235, 0,
- 11, 0,236, 0, 11, 0,237, 0, 4, 0,238, 0, 4, 0, 27, 0, 49, 0, 6, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0,
- 7, 0,239, 0, 7, 0, 65, 0, 4, 0, 62, 0, 50, 0, 5, 0, 2, 0, 18, 0, 2, 0,240, 0, 2, 0, 62, 0, 2, 0,241, 0,
- 49, 0,234, 0, 51, 0, 17, 0, 27, 0,167, 0, 42, 0,242, 0, 52, 0,243, 0, 7, 0,244, 0, 7, 0,245, 0, 2, 0, 16, 0,
- 2, 0,246, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,247, 0, 4, 0,248, 0, 2, 0,249, 0, 2, 0,250, 0, 4, 0,131, 0,
- 4, 0,143, 0, 2, 0,251, 0, 2, 0,252, 0, 53, 0, 25, 0, 2, 0, 18, 0, 2, 0,253, 0, 7, 0,254, 0, 7, 0,255, 0,
- 2, 0,142, 0, 2, 0, 0, 1, 4, 0, 1, 1, 4, 0, 2, 1, 27, 0,167, 0, 4, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1,
- 11, 0, 6, 1, 7, 0, 7, 1, 7, 0, 8, 1, 2, 0, 9, 1, 2, 0, 10, 1, 2, 0, 11, 1, 2, 0, 12, 1, 7, 0, 13, 1,
- 7, 0, 14, 1, 7, 0, 15, 1, 7, 0, 16, 1, 50, 0, 17, 1, 54, 0, 18, 1, 55, 0, 13, 0, 4, 0, 19, 1, 4, 0, 20, 1,
- 2, 0, 21, 1, 2, 0, 18, 0, 2, 0, 22, 1, 2, 0, 23, 1, 27, 0,167, 0, 7, 0, 24, 1, 4, 0, 25, 1, 0, 0, 26, 1,
- 7, 0, 27, 1, 4, 0, 28, 1, 4, 0,131, 0, 56, 0, 4, 0, 27, 0,167, 0, 0, 0, 29, 1, 4, 0, 30, 1, 4, 0, 27, 0,
- 47, 0, 64, 0, 22, 0, 32, 0, 34, 0, 74, 0, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1,
- 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 7, 0, 30, 0, 7, 0, 40, 1, 7, 0, 41, 1, 7, 0, 42, 1,
- 7, 0, 43, 1, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1,
- 7, 0, 51, 1, 2, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 55, 1, 2, 0, 56, 1, 2, 0, 57, 1, 2, 0, 58, 1,
- 2, 0, 18, 0, 2, 0, 16, 0, 2, 0,246, 0, 7, 0, 59, 1, 7, 0, 60, 1, 7, 0, 61, 1, 7, 0, 62, 1, 4, 0, 63, 1,
- 4, 0, 64, 1, 2, 0, 65, 1, 2, 0, 66, 1, 2, 0, 22, 1, 2, 0,129, 0, 4, 0, 22, 0, 4, 0,126, 0, 4, 0,127, 0,
- 4, 0,128, 0, 7, 0, 67, 1, 7, 0, 68, 1, 7, 0, 66, 0, 40, 0, 69, 1, 57, 0, 70, 1, 31, 0, 79, 0, 42, 0,242, 0,
- 48, 0, 71, 1, 50, 0, 17, 1, 51, 0, 72, 1, 25, 0,153, 0, 53, 0, 73, 1, 55, 0, 74, 1, 56, 0, 75, 1, 0, 0, 76, 1,
- 0, 0,123, 0, 58, 0, 13, 0, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0,175, 0, 4, 0, 18, 0, 0, 0,170, 0, 0, 0,171, 0,
- 0, 0,172, 0, 0, 0,173, 0, 4, 0, 27, 0, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 27, 0, 43, 0, 59, 0, 9, 0,
- 50, 0, 82, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 4, 0, 18, 0, 7, 0, 83, 1, 7, 0, 84, 1, 4, 0, 85, 1,
- 4, 0, 86, 1, 60, 0, 76, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 87, 1, 2, 0,178, 0,
- 2, 0, 88, 1, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0, 89, 1, 7, 0, 90, 1, 7, 0, 91, 1,
- 7, 0, 92, 1, 7, 0, 93, 1, 7, 0, 94, 1, 7, 0, 95, 1, 7, 0, 96, 1, 7, 0, 97, 1, 7, 0, 98, 1, 7, 0, 99, 1,
- 54, 0,100, 1, 2, 0,253, 0, 2, 0, 30, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,101, 1, 7, 0,102, 1, 7, 0,103, 1,
- 7, 0,104, 1, 7, 0,105, 1, 7, 0,106, 1, 2, 0,107, 1, 2, 0,108, 1, 2, 0,109, 1, 2, 0,110, 1, 0, 0,111, 1,
- 0, 0,112, 1, 2, 0,113, 1, 2, 0,114, 1, 2, 0,115, 1, 2, 0,116, 1, 2, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1,
- 7, 0,120, 1, 7, 0,121, 1, 2, 0,122, 1, 2, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1,
- 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1,
- 7, 0,136, 1, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 2, 0,141, 1, 0, 0,142, 1, 31, 0, 79, 0,
- 46, 0,143, 1, 2, 0,144, 1, 2, 0, 76, 1, 0, 0,145, 1, 25, 0,153, 0, 57, 0, 70, 1, 61, 0, 18, 0, 7, 0,146, 1,
- 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1, 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1,
- 7, 0,155, 1, 2, 0,156, 1, 2, 0,157, 1, 2, 0,158, 1, 2, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1,
- 7, 0,163, 1, 62, 0, 4, 0, 4, 0, 18, 0, 4, 0,164, 1, 4, 0,165, 1, 4, 0, 66, 0, 63, 0,126, 0, 22, 0, 32, 0,
- 34, 0, 74, 0, 2, 0,166, 1, 2, 0, 18, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,167, 1, 7, 0,168, 1,
- 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 7, 0,176, 1,
- 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 7, 0,184, 1,
- 7, 0,185, 1, 7, 0,186, 1, 61, 0,187, 1, 62, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 7, 0,191, 1, 7, 0,192, 1,
- 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, 2, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, 0, 0,199, 1, 0, 0,200, 1,
- 7, 0,201, 1, 7, 0,202, 1, 2, 0,203, 1, 2, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1,
- 2, 0,209, 1, 2, 0,210, 1, 4, 0, 87, 1, 4, 0,211, 1, 2, 0,212, 1, 2, 0,213, 1, 2, 0,214, 1, 2, 0,215, 1,
- 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 7, 0,222, 1, 7, 0,223, 1,
- 7, 0,224, 1, 7, 0,225, 1, 0, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 4, 0,230, 1, 0, 0,231, 1,
- 0, 0,124, 1, 0, 0,232, 1, 0, 0, 76, 1, 2, 0,233, 1, 2, 0,234, 1, 2, 0,144, 1, 2, 0,235, 1, 2, 0,236, 1,
- 2, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 7, 0,241, 1, 7, 0,242, 1, 2, 0,163, 0, 2, 0,164, 0,
- 50, 0,243, 1, 50, 0,244, 1, 0, 0,245, 1, 0, 0,246, 1, 0, 0,247, 1, 0, 0,248, 1, 2, 0,249, 1, 2, 0,250, 1,
- 7, 0,251, 1, 7, 0,252, 1, 46, 0,143, 1, 57, 0, 70, 1, 31, 0, 79, 0, 64, 0,253, 1, 25, 0,153, 0, 7, 0,254, 1,
- 7, 0,255, 1, 7, 0, 0, 2, 7, 0, 1, 2, 7, 0, 2, 2, 2, 0, 3, 2, 2, 0, 30, 0, 7, 0, 4, 2, 7, 0, 5, 2,
- 7, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 9, 2, 7, 0, 10, 2, 7, 0, 11, 2, 7, 0, 12, 2, 2, 0, 13, 2,
- 2, 0, 14, 2, 4, 0, 15, 2, 2, 0, 16, 2, 2, 0, 17, 2, 14, 0, 18, 2, 65, 0, 4, 0, 22, 0, 32, 0, 0, 0, 35, 0,
- 66, 0, 2, 0, 38, 0,152, 0, 67, 0, 20, 0, 67, 0, 0, 0, 67, 0, 1, 0, 68, 0, 19, 2, 2, 0, 16, 0, 2, 0, 18, 0,
- 2, 0, 20, 2, 2, 0, 21, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 22, 2, 7, 0, 23, 2, 7, 0, 24, 2,
- 7, 0, 25, 2, 7, 0, 26, 2, 7, 0, 27, 2, 7, 0, 28, 2, 7, 0, 22, 0, 7, 0, 29, 2, 7, 0, 30, 2, 69, 0, 20, 0,
- 22, 0, 32, 0, 34, 0, 74, 0, 68, 0, 19, 2, 14, 0, 31, 2, 14, 0, 32, 2, 14, 0, 33, 2, 31, 0, 79, 0, 63, 0, 34, 2,
- 0, 0, 18, 0, 0, 0, 35, 2, 2, 0, 36, 2, 2, 0,177, 0, 2, 0, 27, 0, 7, 0, 77, 1, 7, 0,175, 0, 7, 0, 78, 1,
- 7, 0, 37, 2, 7, 0, 38, 2, 7, 0, 39, 2, 67, 0, 40, 2, 30, 0, 11, 0, 7, 0, 41, 2, 7, 0, 42, 2, 7, 0, 43, 2,
- 7, 0,255, 0, 2, 0, 53, 0, 0, 0, 44, 2, 0, 0, 45, 2, 0, 0, 46, 2, 0, 0, 47, 2, 0, 0, 48, 2, 0, 0, 49, 2,
- 29, 0, 7, 0, 7, 0, 50, 2, 7, 0, 42, 2, 7, 0, 43, 2, 2, 0, 46, 2, 2, 0, 49, 2, 7, 0,255, 0, 7, 0, 27, 0,
- 70, 0, 21, 0, 70, 0, 0, 0, 70, 0, 1, 0, 2, 0, 16, 0, 2, 0, 51, 2, 2, 0, 49, 2, 2, 0, 18, 0, 2, 0, 52, 2,
- 2, 0, 53, 2, 2, 0, 54, 2, 2, 0, 55, 2, 2, 0, 56, 2, 2, 0, 57, 2, 2, 0, 58, 2, 2, 0, 59, 2, 7, 0, 60, 2,
- 7, 0, 61, 2, 29, 0, 47, 0, 30, 0, 48, 0, 2, 0, 62, 2, 2, 0, 63, 2, 4, 0, 64, 2, 71, 0, 5, 0, 2, 0, 65, 2,
- 2, 0, 51, 2, 0, 0, 18, 0, 0, 0, 27, 0, 2, 0, 30, 0, 72, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 66, 2,
- 7, 0, 67, 2, 73, 0, 4, 0, 14, 0, 68, 2, 74, 0, 69, 2, 4, 0, 70, 2, 0, 0, 93, 0, 75, 0, 70, 0, 22, 0, 32, 0,
- 34, 0, 74, 0, 68, 0, 19, 2, 14, 0, 71, 2, 14, 0, 32, 2, 73, 0, 72, 2, 27, 0, 73, 2, 27, 0, 74, 2, 27, 0, 75, 2,
- 31, 0, 79, 0, 76, 0, 76, 2, 33, 0, 77, 2, 63, 0, 34, 2, 14, 0, 78, 2, 7, 0, 77, 1, 7, 0,175, 0, 7, 0, 78, 1,
- 2, 0, 16, 0, 2, 0,177, 0, 2, 0, 79, 2, 2, 0, 80, 2, 7, 0, 81, 2, 7, 0, 82, 2, 4, 0, 83, 2, 2, 0, 27, 0,
- 2, 0, 36, 2, 2, 0, 18, 0, 2, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 2, 0, 54, 2, 2, 0, 55, 2,
- 2, 0, 88, 2, 2, 0, 89, 2, 4, 0, 90, 2, 11, 0, 91, 2, 2, 0, 22, 0, 2, 0, 96, 0, 2, 0, 65, 0, 2, 0, 92, 2,
- 7, 0, 93, 2, 7, 0, 94, 2, 7, 0, 95, 2, 7, 0, 96, 2, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0, 99, 2, 7, 0,100, 2,
- 7, 0,101, 2, 7, 0,102, 2, 0, 0,103, 2, 77, 0,104, 2, 78, 0,105, 2, 0, 0,106, 2, 65, 0,107, 2, 65, 0,108, 2,
- 65, 0,109, 2, 65, 0,110, 2, 4, 0,111, 2, 7, 0, 83, 0, 4, 0,112, 2, 4, 0,113, 2, 72, 0,114, 2, 4, 0,115, 2,
- 4, 0,116, 2, 71, 0,117, 2, 71, 0,118, 2, 7, 0,119, 2, 7, 0,120, 2, 79, 0, 47, 0, 22, 0, 32, 0, 34, 0, 74, 0,
- 68, 0, 19, 2, 31, 0, 79, 0, 33, 0, 77, 2, 63, 0, 34, 2, 80, 0,121, 2, 81, 0,122, 2, 82, 0,123, 2, 83, 0,124, 2,
- 84, 0,125, 2, 85, 0,126, 2, 86, 0,127, 2, 87, 0,128, 2, 88, 0,129, 2, 89, 0,130, 2, 90, 0,131, 2, 91, 0,132, 2,
- 92, 0,133, 2, 93, 0,134, 2, 79, 0,135, 2, 94, 0,136, 2, 95, 0,137, 2, 95, 0,138, 2, 95, 0,139, 2, 95, 0,140, 2,
- 95, 0,141, 2, 4, 0, 52, 0, 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, 4, 0,146, 2, 4, 0,147, 2,
- 7, 0, 77, 1, 7, 0,175, 0, 7, 0, 78, 1, 2, 0,177, 0, 2, 0, 79, 2, 2, 0,148, 2, 2, 0, 18, 0, 2, 0,149, 2,
- 2, 0,150, 2, 0, 0,151, 2, 0, 0,152, 2, 2, 0, 36, 2, 96, 0,153, 2, 88, 0, 8, 0, 11, 0,154, 2, 7, 0,155, 2,
- 4, 0,156, 2, 0, 0, 18, 0, 0, 0,157, 2, 2, 0, 87, 1, 2, 0,158, 2, 2, 0,159, 2, 86, 0, 7, 0, 4, 0,160, 2,
- 4, 0,161, 2, 4, 0,162, 2, 4, 0,163, 2, 2, 0, 51, 2, 0, 0,164, 2, 0, 0, 18, 0, 90, 0, 5, 0, 4, 0,160, 2,
- 4, 0,161, 2, 0, 0,165, 2, 0, 0,166, 2, 2, 0, 18, 0, 97, 0, 2, 0, 4, 0,167, 2, 7, 0, 43, 2, 91, 0, 3, 0,
- 97, 0,168, 2, 4, 0,169, 2, 4, 0, 18, 0, 89, 0, 4, 0, 7, 0,170, 2, 2, 0,171, 2, 0, 0, 18, 0, 0, 0,166, 2,
- 92, 0, 4, 0, 0, 0,239, 0, 0, 0,184, 0, 0, 0,185, 0, 0, 0,186, 0, 81, 0, 5, 0, 4, 0,172, 2, 4, 0,146, 2,
- 2, 0, 51, 2, 0, 0, 18, 0, 0, 0, 27, 0, 83, 0, 2, 0, 4, 0,173, 2, 4, 0,174, 2, 82, 0, 6, 0, 42, 0,154, 2,
- 0, 0, 18, 0, 0, 0,157, 2, 2, 0, 87, 1, 2, 0,158, 2, 2, 0,159, 2, 84, 0, 2, 0, 7, 0,175, 2, 4, 0, 18, 0,
- 85, 0, 4, 0, 0, 0,184, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,239, 0, 93, 0, 1, 0, 7, 0,176, 2, 80, 0, 2, 0,
- 4, 0, 17, 2, 4, 0, 16, 0, 87, 0, 7, 0, 7, 0,155, 2, 42, 0,154, 2, 0, 0, 18, 0, 0, 0,157, 2, 2, 0, 87, 1,
- 2, 0,158, 2, 2, 0,159, 2, 98, 0, 1, 0, 7, 0,177, 2, 99, 0, 1, 0, 4, 0,178, 2,100, 0, 1, 0, 0, 0,179, 2,
-101, 0, 1, 0, 7, 0,155, 2,102, 0, 1, 0, 7, 0,175, 2,103, 0, 4, 0, 4, 0,180, 2, 4, 0,181, 2, 7, 0,182, 2,
- 4, 0,183, 2,104, 0, 4, 0, 7, 0,239, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0,105, 0, 1, 0,104, 0,156, 2,
-106, 0, 5, 0, 4, 0,184, 2, 4, 0,185, 2, 0, 0, 18, 0, 0, 0, 51, 2, 0, 0,186, 2,107, 0, 2, 0, 4, 0,187, 2,
- 4, 0,185, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,188, 2,105, 0,189, 2,107, 0,190, 2, 4, 0, 52, 0,
- 4, 0,143, 2, 4, 0,142, 2, 4, 0, 27, 0, 89, 0,191, 2, 96, 0, 14, 0, 14, 0,192, 2, 89, 0,191, 2, 0, 0,193, 2,
- 0, 0,194, 2, 0, 0,195, 2, 0, 0,196, 2, 0, 0,197, 2, 0, 0,198, 2, 0, 0,199, 2, 0, 0, 18, 0, 95, 0,137, 2,
- 95, 0,139, 2, 2, 0,200, 2, 0, 0,201, 2,109, 0, 1, 0, 4, 0,178, 2,110, 0, 3, 0, 7, 0, 2, 0, 4, 0,181, 2,
- 4, 0, 27, 0,111, 0, 9, 0,111, 0, 0, 0,111, 0, 1, 0, 4, 0, 16, 0, 4, 0, 87, 1, 4, 0,202, 2, 4, 0, 27, 0,
- 0, 0, 19, 0, 41, 0,124, 0, 0, 0,203, 2,112, 0, 6, 0,111, 0,204, 2, 47, 0,205, 2, 27, 0,206, 2, 0, 0,207, 2,
- 4, 0,208, 2, 4, 0,209, 2,113, 0, 7, 0,111, 0,204, 2, 2, 0,210, 2, 2, 0,192, 2, 2, 0,211, 2, 2, 0, 91, 0,
- 11, 0,212, 2, 11, 0,213, 2,114, 0, 5, 0,111, 0,204, 2, 27, 0,167, 0, 0, 0, 19, 0, 7, 0,214, 2, 0, 0, 93, 0,
-115, 0, 5, 0,111, 0,204, 2, 27, 0,167, 0, 0, 0, 19, 0, 2, 0,215, 2, 0, 0,216, 2,116, 0, 5, 0,111, 0,204, 2,
- 7, 0, 89, 0, 7, 0,217, 2, 4, 0,218, 2, 4, 0,219, 2,117, 0, 5, 0,111, 0,204, 2, 27, 0,220, 2, 0, 0, 71, 0,
- 4, 0, 87, 1, 4, 0, 18, 0,118, 0, 13, 0,111, 0,204, 2, 27, 0,221, 2, 27, 0,222, 2, 27, 0,223, 2, 27, 0,224, 2,
- 7, 0,225, 2, 7, 0,226, 2, 7, 0,217, 2, 7, 0,227, 2, 4, 0,228, 2, 4, 0,229, 2, 4, 0, 91, 0, 4, 0,230, 2,
-119, 0, 5, 0,111, 0,204, 2, 2, 0,231, 2, 2, 0, 18, 0, 7, 0,232, 2, 27, 0,233, 2,120, 0, 3, 0,111, 0,204, 2,
- 7, 0,234, 2, 4, 0, 91, 0,121, 0, 10, 0,111, 0,204, 2, 7, 0,235, 2, 4, 0,236, 2, 4, 0, 27, 0, 2, 0, 91, 0,
- 2, 0,237, 2, 2, 0,238, 2, 2, 0,239, 2, 7, 0,240, 2, 0, 0,241, 2,122, 0, 3, 0,111, 0,204, 2, 7, 0, 27, 0,
- 4, 0, 16, 0,123, 0, 6, 0,111, 0,204, 2,124, 0,242, 2,125, 0,243, 2,126, 0,244, 2, 7, 0,245, 2, 4, 0, 16, 0,
-127, 0, 11, 0,111, 0,204, 2, 47, 0,205, 2, 27, 0,206, 2, 0, 0,207, 2, 4, 0,208, 2, 4, 0,209, 2, 7, 0,214, 2,
- 4, 0,246, 2, 0, 0,241, 2, 7, 0,247, 2, 4, 0, 27, 0,128, 0, 12, 0,111, 0,204, 2, 27, 0,248, 2, 42, 0,249, 2,
- 4, 0, 91, 0, 4, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, 7, 0,253, 2, 7, 0,254, 2, 0, 0,207, 2, 4, 0,208, 2,
- 4, 0, 27, 0,129, 0, 3, 0,111, 0,204, 2, 7, 0,255, 2, 4, 0, 0, 3,130, 0, 5, 0,111, 0,204, 2, 7, 0, 1, 3,
- 0, 0,241, 2, 2, 0, 18, 0, 2, 0, 2, 3,131, 0, 8, 0,111, 0,204, 2, 27, 0,167, 0, 7, 0, 1, 3, 7, 0,255, 0,
- 7, 0,107, 0, 0, 0,241, 2, 2, 0, 18, 0, 2, 0, 16, 0,132, 0, 21, 0,111, 0,204, 2, 47, 0,205, 2, 27, 0,206, 2,
- 0, 0,207, 2, 4, 0,208, 2, 4, 0,209, 2, 27, 0, 3, 3, 0, 0,241, 2, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0, 4, 3,
- 7, 0, 5, 3, 7, 0, 6, 3, 7, 0, 85, 2, 7, 0, 7, 3, 7, 0, 8, 3, 7, 0, 9, 3, 7, 0, 10, 3, 7, 0, 11, 3,
- 7, 0, 12, 3, 7, 0, 66, 0,133, 0, 7, 0,111, 0,204, 2, 2, 0, 13, 3, 2, 0, 14, 3, 4, 0, 30, 0, 27, 0,167, 0,
- 7, 0, 15, 3, 0, 0,241, 2,134, 0, 10, 0,111, 0,204, 2, 27, 0,167, 0, 0, 0, 16, 3, 7, 0, 17, 3, 7, 0, 18, 3,
- 7, 0, 10, 3, 4, 0, 19, 3, 4, 0, 20, 3, 7, 0, 21, 3, 0, 0, 19, 0,135, 0, 1, 0,111, 0,204, 2,136, 0, 7, 0,
-111, 0,204, 2, 41, 0,124, 0,137, 0, 22, 3,138, 0, 23, 3,139, 0, 24, 3,140, 0, 25, 3, 14, 0, 26, 3,141, 0, 13, 0,
-111, 0,204, 2, 89, 0, 27, 3, 89, 0, 28, 3, 89, 0, 29, 3, 89, 0, 30, 3, 89, 0, 31, 3, 89, 0, 32, 3, 86, 0, 33, 3,
- 4, 0, 34, 3, 4, 0, 35, 3, 7, 0, 36, 3, 7, 0, 37, 3,142, 0, 38, 3,143, 0, 7, 0,111, 0,204, 2, 89, 0, 27, 3,
- 89, 0, 39, 3,144, 0, 40, 3,145, 0, 38, 3, 4, 0, 41, 3, 4, 0, 34, 3,146, 0, 4, 0,111, 0,204, 2, 27, 0,167, 0,
- 4, 0, 42, 3, 4, 0, 27, 0,147, 0, 2, 0, 4, 0, 43, 3, 7, 0, 43, 2,148, 0, 2, 0, 4, 0,127, 0, 4, 0, 44, 3,
-149, 0, 24, 0,111, 0,204, 2, 27, 0,167, 0, 0, 0,241, 2, 2, 0, 45, 3, 2, 0, 18, 0, 2, 0, 87, 1, 2, 0, 27, 0,
-147, 0, 46, 3, 4, 0, 47, 3, 7, 0, 48, 3, 4, 0, 52, 0, 4, 0, 49, 3,148, 0, 50, 3,147, 0, 51, 3, 4, 0, 52, 3,
- 4, 0, 53, 3, 4, 0, 54, 3, 4, 0, 44, 3, 7, 0, 55, 3, 7, 0, 56, 3, 7, 0, 57, 3, 7, 0, 58, 3, 7, 0, 59, 3,
- 11, 0, 60, 3,150, 0, 8, 0,111, 0,204, 2,151, 0, 61, 3,144, 0, 40, 3, 4, 0, 62, 3, 4, 0, 63, 3, 4, 0, 64, 3,
- 2, 0, 18, 0, 2, 0, 55, 0,152, 0, 8, 0,111, 0,204, 2, 27, 0, 43, 0, 2, 0, 3, 1, 2, 0, 18, 0, 2, 0,231, 2,
- 2, 0, 55, 0, 7, 0, 65, 3, 7, 0, 66, 3,153, 0, 6, 0,111, 0,204, 2, 4, 0, 67, 3, 2, 0, 18, 0, 2, 0, 68, 3,
- 7, 0, 69, 3, 0, 0,169, 0,154, 0, 8, 0,111, 0,204, 2, 0, 0, 70, 3, 0, 0, 71, 3, 0, 0,198, 2, 0, 0, 72, 3,
- 0, 0, 73, 3, 0, 0, 91, 0, 0, 0,186, 2,155, 0, 3, 0,111, 0,204, 2,156, 0, 74, 3,140, 0, 25, 3,157, 0, 10, 0,
-111, 0,204, 2, 27, 0, 75, 3, 27, 0, 76, 3, 0, 0, 77, 3, 7, 0, 78, 3, 2, 0, 79, 3, 2, 0, 80, 3, 0, 0, 81, 3,
- 0, 0, 82, 3, 0, 0,216, 2,158, 0, 9, 0,111, 0,204, 2, 27, 0, 83, 3, 0, 0, 77, 3, 7, 0, 84, 3, 7, 0, 85, 3,
- 0, 0, 87, 1, 0, 0,231, 2, 0, 0, 86, 3, 0, 0, 27, 0,159, 0, 1, 0,111, 0,204, 2,160, 0, 11, 0,111, 0,204, 2,
- 0, 0,241, 2, 7, 0,127, 0, 7, 0, 87, 3, 7, 0, 88, 3, 7, 0, 89, 3, 7, 0, 90, 3, 7, 0, 91, 3, 4, 0, 18, 0,
- 2, 0, 92, 3, 2, 0, 93, 3,161, 0, 9, 0,111, 0,204, 2, 27, 0, 94, 3, 4, 0, 95, 3, 4, 0, 96, 3, 4, 0, 97, 3,
- 7, 0, 98, 3, 7, 0, 99, 3, 2, 0,231, 2, 2, 0, 18, 0,162, 0, 29, 0,111, 0,204, 2,163, 0,100, 3,164, 0,101, 3,
- 4, 0,102, 3, 4, 0,103, 3, 7, 0,104, 3, 7, 0, 9, 3, 7, 0,105, 3, 7, 0,250, 0, 7, 0,106, 3, 7, 0,107, 3,
- 7, 0,108, 3, 7, 0,109, 3, 7, 0,110, 3, 7, 0,245, 2, 4, 0,111, 3, 4, 0,112, 3, 0, 0,113, 3, 0, 0,114, 3,
- 0, 0,115, 3, 0, 0,116, 3, 0, 0, 18, 0, 0, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 4, 0,219, 2, 7, 0,107, 0,
- 7, 0,120, 3, 4, 0, 27, 0,165, 0, 15, 0,111, 0,204, 2, 47, 0,205, 2, 27, 0,206, 2, 0, 0,207, 2, 4, 0,208, 2,
- 4, 0,209, 2, 27, 0,121, 3, 27, 0,122, 3, 54, 0,100, 1, 0, 0,241, 2, 7, 0,214, 2, 7, 0,123, 3, 0, 0, 18, 0,
- 0, 0,253, 0, 0, 0,216, 2,166, 0, 16, 0,111, 0,204, 2, 0, 0,241, 2, 2, 0,124, 3, 2, 0,253, 0, 7, 0,125, 3,
- 54, 0,126, 3, 7, 0,127, 3, 7, 0,128, 3, 7, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3, 47, 0,132, 3, 27, 0,133, 3,
- 4, 0,134, 3, 0, 0,135, 3, 4, 0,136, 3,167, 0, 16, 0,111, 0,204, 2, 0, 0,137, 3, 0, 0,138, 3, 7, 0,139, 3,
- 7, 0,140, 3, 0, 0,141, 3, 0, 0,142, 3, 0, 0,143, 3, 7, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3, 47, 0,132, 3,
- 27, 0,133, 3, 4, 0,134, 3, 0, 0,135, 3, 4, 0,136, 3,168, 0, 16, 0,111, 0,204, 2, 0, 0,241, 2, 4, 0,144, 3,
- 4, 0,145, 3, 27, 0,146, 3, 7, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3, 47, 0,132, 3, 27, 0,133, 3, 4, 0,134, 3,
- 0, 0,135, 3, 7, 0,147, 3, 7, 0,148, 3, 2, 0,253, 0, 2, 0,149, 3,169, 0, 5, 0,111, 0,204, 2,170, 0,150, 3,
-171, 0,151, 3, 4, 0, 16, 0, 4, 0, 27, 0,172, 0, 8, 0,111, 0,204, 2, 7, 0,152, 3, 7, 0,153, 3, 7, 0,154, 3,
- 0, 0,250, 0, 0, 0, 18, 0, 0, 0, 87, 1, 0, 0, 27, 0,173, 0, 3, 0,174, 0,155, 3, 4, 0, 70, 2, 0, 0, 93, 0,
-174, 0, 29, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0, 52, 2, 2, 0, 53, 2, 2, 0,156, 3, 2, 0, 18, 0, 2, 0,157, 3,
- 2, 0,158, 3, 2, 0,159, 3, 2, 0, 30, 0, 0, 0,160, 3, 0, 0,161, 3, 0, 0,162, 3, 0, 0,250, 1, 4, 0, 27, 0,
- 7, 0,163, 3, 7, 0,164, 3, 7, 0,165, 3, 7, 0,166, 3, 7, 0,167, 3, 7, 0,168, 3, 29, 0,169, 3, 31, 0, 79, 0,
- 33, 0, 77, 2, 91, 0,132, 2, 0, 0, 71, 0, 7, 0,170, 3, 7, 0,171, 3,173, 0,172, 3,175, 0, 5, 0,175, 0, 0, 0,
-175, 0, 1, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0,123, 0, 68, 0, 3, 0, 7, 0,173, 3, 4, 0, 18, 0, 4, 0, 27, 0,
- 27, 0,128, 0, 22, 0, 32, 0, 34, 0, 74, 0,176, 0,174, 3, 2, 0, 16, 0, 2, 0,175, 3, 4, 0,176, 3, 4, 0,177, 3,
- 4, 0,178, 3, 0, 0,179, 3, 27, 0, 37, 0, 27, 0,180, 3, 27, 0,181, 3, 27, 0,182, 3, 27, 0,183, 3, 31, 0, 79, 0,
- 68, 0, 19, 2,177, 0,184, 3,177, 0,185, 3,178, 0,186, 3, 11, 0, 2, 0,179, 0,187, 3,180, 0,188, 3,181, 0,189, 3,
- 14, 0,190, 3, 14, 0,191, 3, 14, 0, 32, 2, 14, 0,192, 3, 14, 0,193, 3, 4, 0, 87, 1, 4, 0,194, 3, 63, 0, 34, 2,
- 0, 0,195, 3, 4, 0, 36, 2, 4, 0,196, 3, 7, 0, 77, 1, 7, 0,197, 3, 7, 0,198, 3, 7, 0,175, 0, 7, 0,199, 3,
- 7, 0,200, 3, 7, 0, 78, 1, 7, 0,201, 3, 7, 0, 22, 2, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3,
- 7, 0,206, 3, 7, 0,207, 3, 7, 0, 17, 3, 7, 0,208, 3, 7, 0,244, 0, 7, 0,209, 3, 4, 0,210, 3, 4, 0,211, 3,
- 2, 0, 18, 0, 2, 0,212, 3, 2, 0,213, 3, 2, 0,214, 3, 2, 0,215, 3, 2, 0,216, 3, 2, 0,217, 3, 2, 0,218, 3,
- 2, 0,219, 3, 0, 0,220, 3, 0, 0,221, 3, 4, 0,222, 3, 4, 0,223, 3, 4, 0,224, 3, 4, 0,225, 3, 7, 0,226, 3,
- 7, 0, 83, 0, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3, 7, 0,231, 3, 7, 0,219, 0, 7, 0,232, 3,
- 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, 2, 0,237, 3, 0, 0,238, 3, 0, 0,239, 3, 0, 0,240, 3,
- 0, 0,241, 3, 0, 0,109, 0, 0, 0,242, 3, 7, 0,243, 3, 7, 0,244, 3, 14, 0,245, 3, 14, 0,246, 3, 14, 0,247, 3,
- 14, 0,248, 3, 7, 0,249, 3, 2, 0, 17, 2, 2, 0,250, 3, 7, 0,156, 2, 4, 0,251, 3, 4, 0,252, 3,182, 0,253, 3,
- 2, 0,254, 3, 2, 0,251, 0, 7, 0,255, 3, 14, 0, 0, 4, 14, 0, 1, 4, 14, 0, 2, 4, 14, 0, 3, 4,183, 0, 73, 1,
-184, 0, 4, 4, 64, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, 2, 0, 70, 2, 7, 0,148, 2,156, 0, 8, 4,144, 0, 9, 4,
-144, 0, 10, 4, 10, 0, 11, 4, 10, 0, 12, 4, 4, 0, 13, 4, 4, 0, 14, 4, 14, 0, 15, 4, 14, 0, 16, 4, 14, 0, 17, 4,
- 7, 0, 18, 4,185, 0, 14, 0,185, 0, 0, 0,185, 0, 1, 0, 27, 0, 37, 0, 7, 0, 17, 3, 7, 0, 79, 1, 7, 0, 18, 3,
- 7, 0, 10, 3, 0, 0, 19, 0, 4, 0, 19, 3, 4, 0, 20, 3, 4, 0, 19, 4, 2, 0, 16, 0, 2, 0, 20, 4, 7, 0, 21, 3,
-186, 0, 12, 0,186, 0, 0, 0,186, 0, 1, 0, 27, 0, 43, 0, 4, 0, 21, 4, 4, 0, 17, 2, 7, 0, 79, 1, 7, 0, 22, 4,
- 7, 0, 23, 4, 7, 0,175, 2, 2, 0, 16, 0, 0, 0, 24, 4, 0, 0, 25, 4,183, 0, 40, 0, 4, 0, 18, 0, 2, 0, 26, 4,
- 2, 0, 27, 4, 2, 0, 10, 3, 2, 0, 28, 4, 2, 0, 29, 4, 2, 0, 30, 4, 2, 0, 31, 4, 2, 0, 32, 4, 7, 0, 33, 4,
- 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4, 7, 0, 39, 4, 7, 0, 40, 4, 7, 0, 41, 4,
- 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, 7, 0, 45, 4, 7, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, 7, 0, 49, 4,
- 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4, 7, 0, 56, 4, 7, 0, 57, 4,
- 7, 0, 58, 4, 7, 0, 59, 4, 47, 0,168, 0,187, 0, 60, 4, 7, 0, 61, 4, 4, 0,219, 2,188, 0, 5, 0, 64, 0,253, 1,
- 7, 0, 62, 4, 7, 0, 63, 4, 2, 0, 18, 0, 2, 0, 64, 4,189, 0, 5, 0,189, 0, 0, 0,189, 0, 1, 0, 4, 0, 16, 0,
- 4, 0, 65, 4, 11, 0, 2, 0,190, 0, 9, 0,190, 0, 0, 0,190, 0, 1, 0, 4, 0, 66, 4, 4, 0, 67, 4, 4, 0, 68, 4,
- 4, 0, 18, 0, 11, 0, 69, 4, 11, 0, 70, 4, 14, 0, 71, 4,140, 0, 23, 0,140, 0, 0, 0,140, 0, 1, 0, 4, 0, 18, 0,
- 4, 0, 72, 4, 4, 0, 73, 4, 4, 0, 74, 4, 4, 0, 75, 4, 4, 0, 76, 4, 4, 0, 77, 4, 4, 0, 78, 4, 4, 0, 27, 0,
- 4, 0, 67, 4, 4, 0, 17, 2, 2, 0, 79, 4, 2, 0, 55, 0, 0, 0, 19, 0, 0, 0, 80, 4, 0, 0, 81, 4, 0, 0, 82, 4,
- 0, 0, 83, 4, 14, 0, 84, 4,191, 0, 85, 4, 11, 0, 86, 4,192, 0, 1, 0, 7, 0, 50, 2,182, 0, 30, 0, 4, 0, 18, 0,
- 7, 0, 87, 4, 7, 0, 88, 4, 7, 0, 89, 4, 4, 0, 90, 4, 4, 0, 91, 4, 4, 0, 92, 4, 4, 0, 93, 4, 7, 0, 94, 4,
- 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4,
- 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 7, 0,106, 4, 7, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4,
- 7, 0,111, 4, 4, 0,112, 4, 4, 0,113, 4, 7, 0,114, 4, 7, 0,232, 3,184, 0, 54, 0, 4, 0, 67, 4, 4, 0,115, 4,
-193, 0,116, 4,194, 0,117, 4, 0, 0, 27, 0, 0, 0,118, 4, 2, 0,119, 4, 7, 0,120, 4, 0, 0,121, 4, 7, 0,122, 4,
- 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4, 7, 0,126, 4, 7, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4,
- 2, 0,131, 4, 0, 0,132, 4, 2, 0,133, 4, 7, 0,134, 4, 7, 0,135, 4, 0, 0,136, 4, 4, 0,128, 0, 4, 0,137, 4,
- 4, 0,138, 4, 2, 0,139, 4, 2, 0,140, 4,192, 0,141, 4, 4, 0,142, 4, 4, 0, 81, 0, 7, 0,143, 4, 7, 0,144, 4,
- 7, 0,145, 4, 7, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4, 2, 0,150, 4, 2, 0,151, 4, 2, 0,152, 4,
- 2, 0,153, 4, 2, 0,154, 4,195, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4,140, 0,158, 4, 14, 0, 26, 3,188, 0,159, 4,
- 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 4, 0,163, 4,196, 0, 1, 0, 7, 0,164, 4,156, 0, 52, 0,155, 0,165, 4,
- 2, 0, 16, 0, 2, 0,166, 4, 2, 0,167, 4, 2, 0,168, 4, 7, 0,169, 4, 2, 0,170, 4, 2, 0,171, 4, 7, 0,172, 4,
- 2, 0,173, 4, 2, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 7, 0,177, 4, 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4,
- 4, 0, 27, 0, 7, 0,181, 4, 4, 0,182, 4, 7, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 79, 0,186, 4, 79, 0,187, 4,
- 0, 0,188, 4, 7, 0,189, 4, 7, 0,190, 4, 31, 0, 79, 0, 2, 0,191, 4, 0, 0,192, 4, 0, 0,193, 4, 7, 0,194, 4,
- 4, 0,195, 4, 7, 0,196, 4, 7, 0,197, 4, 4, 0,198, 4, 4, 0, 18, 0, 7, 0,199, 4, 7, 0,200, 4, 7, 0,201, 4,
-196, 0,202, 4, 4, 0, 52, 0, 7, 0,203, 4, 7, 0,204, 4, 7, 0,205, 4, 7, 0,206, 4, 7, 0,207, 4, 7, 0,208, 4,
- 7, 0,209, 4, 4, 0,210, 4, 7, 0,211, 4,197, 0, 78, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0,178, 0, 2, 0, 88, 1,
- 2, 0,124, 1, 2, 0,212, 4, 7, 0,213, 4, 7, 0,214, 4, 7, 0,215, 4, 7, 0,216, 4, 7, 0,217, 4, 7, 0,218, 4,
- 7, 0,173, 1, 7, 0,175, 1, 7, 0,174, 1, 7, 0, 30, 0, 4, 0,219, 4, 7, 0,220, 4, 7, 0,221, 4, 7, 0,222, 4,
- 7, 0,223, 4, 7, 0,224, 4, 7, 0,225, 4, 7, 0,226, 4, 2, 0,227, 4, 2, 0, 87, 1, 2, 0,228, 4, 2, 0,229, 4,
- 2, 0,230, 4, 2, 0,231, 4, 2, 0,232, 4, 2, 0,233, 4, 7, 0,234, 4, 7, 0,235, 4, 7, 0,236, 4, 7, 0,237, 4,
- 7, 0,238, 4, 7, 0,239, 4, 7, 0,240, 4, 7, 0,241, 4, 7, 0,242, 4, 7, 0,243, 4, 7, 0,244, 4, 7, 0,245, 4,
- 2, 0,246, 4, 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 7, 0,250, 4, 7, 0,251, 4, 7, 0,252, 4, 7, 0,253, 4,
- 2, 0,254, 4, 2, 0,255, 4, 2, 0, 0, 5, 2, 0, 1, 5, 7, 0, 2, 5, 7, 0, 3, 5, 7, 0, 4, 5, 7, 0, 5, 5,
- 7, 0, 6, 5, 7, 0, 7, 5, 7, 0, 8, 5, 2, 0, 9, 5, 2, 0, 10, 5, 2, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5,
- 2, 0, 18, 0, 7, 0, 14, 5, 7, 0, 15, 5, 31, 0, 79, 0, 46, 0,143, 1, 2, 0,144, 1, 2, 0, 76, 1, 2, 0,186, 2,
- 25, 0,153, 0, 57, 0, 70, 1,198, 0, 8, 0,198, 0, 0, 0,198, 0, 1, 0, 4, 0,210, 3, 4, 0, 16, 5, 4, 0, 18, 0,
- 2, 0, 17, 5, 2, 0, 18, 5, 27, 0,167, 0,199, 0, 13, 0, 11, 0, 19, 5, 11, 0, 20, 5, 4, 0, 21, 5, 4, 0, 22, 5,
- 4, 0, 23, 5, 4, 0, 24, 5, 4, 0, 25, 5, 4, 0, 26, 5, 4, 0, 27, 5, 4, 0, 28, 5, 4, 0, 29, 5, 4, 0, 27, 0,
- 0, 0, 30, 5,200, 0, 5, 0, 11, 0, 31, 5, 11, 0, 32, 5, 4, 0, 33, 5, 4, 0, 30, 0, 0, 0, 34, 5,201, 0, 17, 0,
- 4, 0, 35, 5, 4, 0, 36, 5, 4, 0, 37, 5, 4, 0, 38, 5, 4, 0, 39, 5, 4, 0, 40, 5, 4, 0, 41, 5, 4, 0, 42, 5,
- 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 4, 0, 46, 5, 2, 0, 47, 5, 2, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5,
- 4, 0, 66, 0,202, 0, 17, 0, 4, 0, 16, 0, 4, 0, 37, 5, 4, 0, 51, 5, 4, 0, 52, 5, 4, 0, 53, 5, 4, 0, 54, 5,
- 4, 0, 55, 5, 4, 0, 56, 5, 7, 0, 57, 5, 4, 0, 58, 5, 4, 0, 91, 0, 4, 0, 59, 5, 4, 0, 60, 5, 4, 0, 61, 5,
- 4, 0, 62, 5, 4, 0, 63, 5, 21, 0, 31, 0,203, 0, 9, 0, 4, 0, 64, 5, 7, 0, 65, 5, 7, 0, 66, 5, 7, 0, 67, 5,
- 4, 0, 68, 5, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0, 89, 4, 7, 0, 30, 0,204, 0, 13, 0,204, 0, 0, 0,204, 0, 1, 0,
- 0, 0, 19, 0, 63, 0, 69, 5, 64, 0, 70, 5, 4, 0,210, 3, 4, 0, 71, 5, 4, 0, 72, 5, 4, 0, 73, 5, 4, 0, 74, 5,
- 4, 0, 75, 5, 4, 0, 76, 5, 4, 0, 27, 0,205, 0, 13, 0, 0, 0, 77, 5, 0, 0,250, 0, 0, 0, 78, 5, 0, 0, 18, 0,
- 0, 0, 79, 5, 0, 0, 80, 5, 0, 0, 81, 5, 0, 0, 82, 5, 2, 0, 83, 5, 2, 0, 84, 5, 7, 0, 85, 5, 0, 0, 86, 5,
- 0, 0,123, 0,206, 0,106, 0,205, 0, 87, 5,199, 0, 88, 5,200, 0, 89, 5,201, 0, 90, 5,202, 0, 91, 5, 4, 0, 41, 3,
- 4, 0,128, 0, 4, 0,137, 4, 7, 0, 92, 5, 4, 0, 93, 5, 4, 0, 94, 5, 4, 0, 95, 5, 4, 0, 96, 5, 2, 0, 18, 0,
- 2, 0, 97, 5, 7, 0, 98, 5, 7, 0, 99, 5, 7, 0,100, 5, 7, 0,101, 5, 7, 0,102, 5, 2, 0,103, 5, 2, 0,104, 5,
- 2, 0,105, 5, 2, 0,106, 5, 2, 0,250, 0, 2, 0,107, 5, 4, 0,108, 5, 2, 0,109, 5, 2, 0,110, 5, 2, 0,110, 1,
- 2, 0,107, 0, 2, 0,111, 5, 2, 0,112, 5, 2, 0,113, 5, 2, 0,114, 5, 2, 0,115, 5, 2, 0, 78, 5, 2, 0, 77, 5,
- 2, 0,116, 5, 2, 0, 79, 5, 2, 0,117, 5, 4, 0,118, 5, 4, 0, 87, 1, 4, 0,119, 5, 2, 0,120, 5, 2, 0, 66, 0,
- 2, 0,121, 5, 2, 0,122, 5, 2, 0,123, 5, 2, 0,124, 5, 2, 0,125, 5, 2, 0,126, 5, 19, 0,127, 5, 19, 0,128, 5,
- 18, 0,129, 5, 14, 0,130, 5, 2, 0,131, 5, 2, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, 7, 0,135, 5, 7, 0,136, 5,
- 4, 0,137, 5, 7, 0,138, 5, 7, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5, 2, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5,
- 2, 0,145, 5, 2, 0,146, 5, 2, 0,147, 5, 7, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, 0, 0,151, 5, 4, 0,152, 5,
- 2, 0,153, 5, 2, 0,250, 1, 0, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5, 0, 0,157, 5, 0, 0,158, 5, 0, 0,159, 5,
- 0, 0,160, 5, 4, 0,161, 5, 2, 0,162, 5, 2, 0,163, 5, 7, 0,164, 5, 7, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5,
- 7, 0,168, 5, 2, 0,169, 5, 2, 0,170, 5, 4, 0,171, 5, 2, 0,172, 5, 2, 0,173, 5, 2, 0,174, 5, 2, 0,175, 5,
- 7, 0,176, 5, 7, 0, 30, 0, 37, 0,177, 5, 0, 0,178, 5,207, 0, 9, 0,207, 0, 0, 0,207, 0, 1, 0, 0, 0,179, 5,
- 2, 0,180, 5, 2, 0,181, 5, 2, 0,182, 5, 2, 0, 66, 0, 7, 0,183, 5, 7, 0, 30, 0,208, 0, 7, 0, 2, 0,236, 2,
- 2, 0, 87, 1, 2, 0, 99, 3, 2, 0,184, 5, 7, 0,185, 5, 7, 0, 30, 0, 37, 0,186, 5,209, 0, 5, 0, 7, 0,187, 5,
- 0, 0, 16, 0, 0, 0, 66, 0, 0, 0, 30, 0, 0, 0,250, 1,210, 0, 15, 0, 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5,
- 7, 0,191, 5, 7, 0,192, 5, 7, 0,193, 5, 7, 0,194, 5, 7, 0,195, 5, 7, 0,196, 5, 7, 0,197, 5, 4, 0,198, 5,
- 7, 0,199, 5, 7, 0,200, 5, 2, 0, 66, 0, 2, 0, 30, 0,211, 0, 32, 0,209, 0,201, 5, 2, 0,202, 5, 2, 0,104, 5,
- 2, 0,105, 5, 2, 0,106, 5, 2, 0,250, 0, 2, 0,107, 5, 2, 0,203, 5, 2, 0,204, 5, 2, 0,205, 5, 2, 0,206, 5,
-208, 0,207, 5, 2, 0,208, 5, 2, 0,109, 5, 7, 0,209, 5,210, 0,210, 5, 7, 0,225, 4, 7, 0,226, 4, 4, 0, 18, 0,
- 2, 0, 87, 1, 2, 0,211, 5, 2, 0,228, 4, 2, 0,229, 4, 2, 0,212, 5, 2, 0, 27, 0, 2, 0,230, 4, 2, 0,231, 4,
- 2, 0,232, 4, 2, 0,233, 4, 2, 0,213, 5, 2, 0, 66, 0, 7, 0,214, 5,212, 0, 6, 0,212, 0, 0, 0,212, 0, 1, 0,
- 4, 0, 66, 4, 0, 0, 19, 0, 4, 0, 18, 0, 27, 0,215, 5,213, 0, 4, 0,214, 0,151, 3, 11, 0,216, 5, 0, 0,217, 5,
- 4, 0, 91, 0,215, 0, 8, 0,213, 0,218, 5, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0,219, 5, 2, 0,220, 5, 2, 0,221, 5,
- 4, 0, 66, 0, 11, 0,222, 5,216, 0, 6, 0, 2, 0,107, 0, 2, 0, 72, 4, 2, 0,223, 5, 2, 0,230, 2, 4, 0, 18, 0,
- 7, 0,214, 2,217, 0, 14, 0, 2, 0, 18, 0, 2, 0,224, 5, 2, 0,225, 5, 2, 0,226, 5,216, 0,227, 5, 11, 0,222, 5,
- 7, 0,228, 5, 7, 0, 55, 0, 4, 0,229, 5, 4, 0,230, 5, 4, 0,231, 5, 4, 0,232, 5, 41, 0,124, 0, 27, 0,167, 0,
-218, 0, 14, 0,213, 0,218, 5, 4, 0, 91, 0, 4, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, 4, 0,237, 5,
- 4, 0,238, 5, 7, 0,239, 5, 7, 0,240, 5, 4, 0,241, 5, 7, 0,242, 5, 7, 0,243, 5, 4, 0, 27, 0,219, 0, 1, 0,
-213, 0,218, 5,220, 0, 7, 0,213, 0,218, 5, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,240, 0, 4, 0,244, 5, 91, 0,245, 5,
- 11, 0,222, 5,221, 0, 5, 0,221, 0, 0, 0,221, 0, 1, 0, 0, 0, 19, 0, 7, 0,246, 5, 4, 0, 27, 0,222, 0, 6, 0,
- 4, 0,107, 0, 7, 0,247, 5, 7, 0,181, 1, 7, 0, 43, 2, 4, 0, 18, 0, 4, 0, 27, 0,223, 0, 85, 0,220, 0,248, 5,
-220, 0,249, 5,218, 0,174, 3,219, 0,250, 5, 7, 0,251, 5, 2, 0,252, 5, 2, 0,250, 1, 7, 0,253, 5, 7, 0,254, 5,
- 2, 0, 72, 4, 2, 0,255, 5, 7, 0, 0, 6, 7, 0, 1, 6, 7, 0, 2, 6, 2, 0, 3, 6, 2, 0,229, 5, 2, 0, 4, 6,
- 2, 0, 5, 6, 2, 0, 6, 6, 2, 0, 7, 6, 7, 0, 8, 6, 7, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6, 2, 0, 12, 6,
- 2, 0, 13, 6, 2, 0, 14, 6, 2, 0, 15, 6, 2, 0, 16, 6, 2, 0, 17, 6, 2, 0, 18, 6,215, 0, 19, 6,217, 0, 20, 6,
- 7, 0, 21, 6, 7, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6, 2, 0, 25, 6, 0, 0, 26, 6, 0, 0, 27, 6, 2, 0, 28, 6,
- 7, 0, 29, 6, 7, 0, 30, 6, 7, 0, 31, 6, 7, 0, 32, 6, 7, 0, 33, 6, 7, 0, 34, 6, 7, 0, 35, 6, 7, 0, 36, 6,
- 7, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6, 0, 0, 40, 6, 0, 0, 41, 6, 0, 0, 42, 6, 0, 0, 43, 6, 27, 0, 44, 6,
- 0, 0, 45, 6, 0, 0, 46, 6, 0, 0, 47, 6, 0, 0, 48, 6, 0, 0, 49, 6, 0, 0, 50, 6, 0, 0, 51, 6, 0, 0, 52, 6,
- 0, 0, 53, 6, 0, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, 2, 0, 58, 6, 0, 0, 59, 6, 0, 0, 60, 6,
- 0, 0, 61, 6, 0, 0, 62, 6, 4, 0, 63, 6, 4, 0, 64, 6, 4, 0, 65, 6, 4, 0, 66, 6, 2, 0, 67, 6, 2, 0, 66, 0,
- 4, 0, 68, 6, 7, 0, 69, 6, 7, 0, 70, 6,222, 0, 71, 6,224, 0, 8, 0, 4, 0, 72, 6, 4, 0, 73, 6, 4, 0, 74, 6,
- 4, 0, 75, 6, 4, 0, 76, 6, 4, 0, 77, 6, 4, 0, 52, 0, 4, 0,143, 2,225, 0, 4, 0, 7, 0, 78, 6, 0, 0, 79, 6,
- 0, 0, 80, 6, 2, 0, 18, 0,226, 0, 4, 0, 7, 0, 81, 6, 4, 0, 18, 0, 4, 0, 82, 6, 4, 0, 55, 0, 41, 0, 46, 0,
- 22, 0, 32, 0, 34, 0, 74, 0, 27, 0,215, 5,197, 0, 83, 6, 41, 0, 84, 6, 14, 0, 85, 6,198, 0, 86, 6, 27, 0, 87, 6,
- 7, 0, 88, 6, 7, 0, 89, 6, 7, 0, 90, 6, 7, 0, 91, 6, 4, 0,210, 3, 4, 0, 92, 6, 4, 0, 93, 6, 2, 0, 18, 0,
- 2, 0, 76, 1, 57, 0, 70, 1,227, 0, 94, 6,223, 0, 95, 6,228, 0, 96, 6,206, 0,184, 0,203, 0, 97, 6, 14, 0,101, 0,
- 14, 0, 98, 6, 11, 0, 99, 6, 11, 0,100, 6, 11, 0,101, 6, 11, 0,102, 6, 11, 0,103, 6,229, 0,104, 6, 2, 0,105, 6,
- 2, 0,106, 6, 2, 0,251, 0, 2, 0,211, 3, 4, 0,221, 3, 4, 0,107, 6, 14, 0,108, 6,209, 0,201, 5,211, 0,109, 6,
-225, 0,110, 6,179, 0,187, 3,226, 0,111, 6,230, 0,112, 6, 10, 0, 12, 4, 10, 0,113, 6,231, 0, 14, 0,231, 0, 0, 0,
-231, 0, 1, 0, 42, 0,242, 0, 40, 0, 69, 1,230, 0,112, 6,232, 0,114, 6, 7, 0,100, 2, 7, 0,101, 2, 7, 0,107, 0,
- 7, 0,115, 6, 2, 0,116, 6, 2, 0, 18, 0, 2, 0,142, 0, 2, 0, 27, 0,233, 0, 39, 0, 7, 0,117, 6, 7, 0,118, 6,
- 7, 0,119, 6, 7, 0,120, 6, 7, 0,121, 6, 7, 0,122, 6, 7, 0,123, 6, 7, 0,124, 6, 7, 0,125, 6, 68, 0,126, 6,
-179, 0,187, 3,233, 0,127, 6,234, 0,128, 6,235, 0,129, 6,236, 0,130, 6,237, 0,131, 6,238, 0,132, 6, 7, 0,133, 6,
- 7, 0,134, 6, 7, 0, 94, 1, 7, 0,135, 6, 7, 0,136, 6, 7, 0,137, 6, 7, 0,138, 6, 7, 0,174, 0, 7, 0,139, 6,
- 0, 0,140, 6, 0, 0,141, 6, 0, 0,116, 6, 0, 0,142, 6, 2, 0,143, 6, 2, 0,144, 6, 7, 0,145, 6, 2, 0,146, 6,
- 2, 0,147, 6, 7, 0,148, 6, 7, 0,149, 6, 7, 0,150, 6, 7, 0,151, 6,239, 0, 51, 0,240, 0, 0, 0,240, 0, 1, 0,
- 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6, 7, 0,134, 6, 7, 0, 94, 1, 7, 0,156, 6, 2, 0,157, 6,
- 0, 0,216, 2, 4, 0,158, 6, 2, 0,141, 6, 2, 0,116, 6, 27, 0,215, 5, 27, 0,159, 6, 14, 0,160, 6,231, 0,161, 6,
-239, 0,127, 6, 0, 0,162, 6, 4, 0,210, 3, 4, 0, 92, 6, 2, 0,163, 6, 2, 0,164, 6, 2, 0,165, 6, 2, 0,166, 6,
- 2, 0, 18, 0, 2, 0, 35, 2, 7, 0,113, 0, 7, 0,167, 6, 7, 0,168, 6, 7, 0,169, 6, 7, 0,174, 0, 7, 0, 88, 6,
- 2, 0,170, 6, 2, 0,171, 6, 2, 0,172, 6, 0, 0,173, 6, 0, 0,174, 6, 0, 0,175, 6, 0, 0,176, 6, 0, 0,177, 6,
- 14, 0,178, 6, 14, 0,179, 6, 14, 0,180, 6, 2, 0,181, 6, 2, 0,157, 2, 2, 0,182, 6, 0, 0,183, 6, 11, 0,184, 6,
-179, 0,187, 3,241, 0, 24, 0, 19, 0,240, 0, 19, 0, 62, 0, 18, 0,185, 6, 18, 0,186, 6, 18, 0,187, 6, 7, 0,188, 6,
- 7, 0,189, 6, 7, 0,190, 6, 7, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, 2, 0,194, 6, 2, 0,195, 6, 2, 0,196, 6,
- 2, 0, 18, 0, 2, 0,197, 6, 2, 0,198, 6, 2, 0,199, 6, 2, 0,200, 6, 2, 0,201, 6, 2, 0,166, 6, 7, 0,202, 6,
- 4, 0,203, 6, 4, 0,204, 6,240, 0, 6, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6,
- 2, 0,155, 6,242, 0, 8, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6,
- 0, 0,205, 6, 0, 0,123, 0,243, 0, 14, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6,
- 2, 0,155, 6,241, 0,206, 6,244, 0,207, 6, 14, 0,208, 6, 2, 0, 87, 1, 2, 0,209, 6, 4, 0, 18, 0, 7, 0,210, 6,
- 4, 0,166, 6,245, 0, 21, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6,
-241, 0,206, 6, 2, 0,211, 6, 2, 0,212, 6, 2, 0,213, 6, 2, 0,214, 6, 2, 0,197, 6, 2, 0,215, 6, 2, 0,216, 6,
- 0, 0, 18, 0, 0, 0, 27, 0, 11, 0, 76, 2, 4, 0,217, 6, 4, 0,218, 6, 22, 0,219, 6, 11, 0,220, 6,246, 0, 18, 0,
-240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6,241, 0,206, 6, 7, 0,100, 2,
- 7, 0,101, 2, 2, 0,211, 6, 2, 0,221, 6, 2, 0,222, 6, 2, 0,223, 6, 4, 0, 18, 0, 7, 0,224, 6, 4, 0,116, 6,
- 4, 0, 27, 0,179, 0,187, 3,247, 0, 16, 0, 0, 0,225, 6, 0, 0,226, 6, 0, 0,227, 6, 0, 0,228, 6, 0, 0,229, 6,
- 0, 0,230, 6, 4, 0,231, 6, 4, 0,232, 6, 4, 0,233, 6, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,234, 6, 2, 0,235, 6,
- 2, 0,193, 1, 2, 0,236, 6, 0, 0,237, 6,248, 0, 16, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6,
- 4, 0,238, 6,247, 0,239, 6,249, 0,240, 6, 14, 0,241, 6, 14, 0,242, 6,250, 0,243, 6,238, 0,244, 6,251, 0,245, 6,
- 2, 0,246, 6, 2, 0,247, 6, 2, 0,248, 6, 2, 0, 30, 0,252, 0, 15, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6,
- 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6,241, 0,206, 6, 14, 0,249, 6,253, 0,250, 6, 0, 0,251, 6,254, 0,252, 6,
- 2, 0, 18, 0, 2, 0,253, 6, 2, 0,254, 6, 2, 0,255, 6,255, 0, 25, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6,
- 4, 0,153, 6, 4, 0, 18, 0, 42, 0,249, 2, 40, 0, 69, 1, 54, 0, 0, 7, 0, 1, 1, 7, 1, 1, 2, 7,179, 0,187, 3,
- 7, 0, 3, 7, 7, 0,100, 2, 7, 0,101, 2, 7, 0,224, 6, 7, 0, 4, 7, 7, 0, 5, 7, 2, 0, 6, 7, 2, 0, 27, 0,
- 2, 0, 7, 7, 2, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 0, 0,166, 6, 2, 1, 11, 0,240, 0, 0, 0,
-240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6, 2, 0,209, 6, 2, 0, 18, 0, 4, 0, 27, 0,
-244, 0,207, 6,241, 0,206, 6, 3, 1, 31, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6,
- 2, 0,155, 6, 37, 0, 12, 7, 4, 0, 13, 7, 4, 0, 14, 7, 2, 0, 91, 0, 2, 0, 15, 7, 2, 0, 16, 7, 0, 0, 17, 7,
- 0, 0, 18, 7, 4, 0, 19, 7, 4, 0, 20, 7, 4, 0, 21, 7, 2, 0, 22, 7, 2, 0, 23, 7, 2, 0, 24, 7, 2, 0, 25, 7,
- 7, 0, 26, 7, 18, 0, 27, 7, 18, 0, 28, 7, 4, 0, 29, 7, 4, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 2, 0, 33, 7,
- 0, 0,216, 2, 11, 0, 34, 7, 4, 1, 10, 0, 22, 0, 32, 0, 11, 0, 35, 7, 11, 0, 36, 7, 11, 0, 37, 7, 11, 0, 38, 7,
- 11, 0, 39, 7, 4, 0, 91, 0, 4, 0, 40, 7, 0, 0, 41, 7, 0, 0, 42, 7, 5, 1, 10, 0,240, 0, 0, 0,240, 0, 1, 0,
- 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 4, 1, 43, 7, 2, 0, 91, 0, 2, 0, 15, 7, 4, 0, 66, 0, 11, 0, 44, 7,
- 6, 1, 3, 0, 6, 1, 0, 0, 6, 1, 1, 0, 7, 0, 45, 7, 7, 1, 9, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6,
- 4, 0,153, 6, 7, 0,154, 6,241, 0,206, 6, 14, 0, 46, 7, 4, 0, 47, 7, 4, 0, 18, 0, 8, 1, 27, 0,240, 0, 0, 0,
-240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6,241, 0,206, 6, 22, 0, 48, 7, 22, 0, 80, 0,
- 2, 0, 18, 0, 2, 0, 66, 0, 7, 0, 49, 7, 7, 0,100, 2, 7, 0,101, 2, 7, 0,224, 6, 7, 0, 50, 7, 7, 0, 51, 7,
- 7, 0, 52, 7, 57, 0, 70, 1, 57, 0, 53, 7, 4, 0, 54, 7, 2, 0, 55, 7, 2, 0, 56, 7, 2, 0,251, 0, 2, 0, 86, 1,
- 14, 0, 57, 7,179, 0,187, 3, 9, 1, 10, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6,
- 2, 0,155, 6, 2, 0, 18, 0, 2, 0,219, 3, 4, 0, 27, 0,179, 0,187, 3, 10, 1, 7, 0, 10, 1, 0, 0, 10, 1, 1, 0,
- 4, 0, 58, 7, 4, 0, 22, 0, 0, 0, 85, 0, 4, 0, 59, 7, 4, 0, 16, 0, 11, 1, 14, 0,240, 0, 0, 0,240, 0, 1, 0,
- 14, 0,152, 6, 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6, 4, 0, 16, 7, 4, 0, 27, 0, 14, 0, 60, 7, 14, 0, 61, 7,
- 0, 0, 62, 7, 0, 0, 63, 7, 4, 0, 64, 7, 4, 0, 65, 7, 12, 1, 6, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6,
- 4, 0,153, 6, 4, 0, 27, 0, 0, 0, 66, 7, 13, 1, 28, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6, 4, 0,153, 6,
- 7, 0,100, 2, 7, 0,101, 2, 7, 0, 67, 7, 7, 0, 68, 7, 7, 0,224, 6,232, 0, 69, 7,230, 0,112, 6, 14, 1, 1, 7,
- 4, 0, 18, 0, 2, 0, 87, 1, 2, 0,116, 6, 4, 0, 70, 7, 7, 0, 71, 7, 7, 0,153, 3, 7, 0, 99, 3, 4, 0, 27, 0,
- 7, 0, 72, 7, 7, 0, 73, 7, 4, 0, 74, 7, 4, 0, 30, 0, 11, 0, 75, 7, 2, 0, 76, 7, 2, 0, 77, 7, 4, 0,250, 1,
- 15, 1, 7, 0, 15, 1, 0, 0, 15, 1, 1, 0, 0, 0, 78, 7, 2, 0, 79, 7, 2, 0, 80, 7, 2, 0, 81, 7, 2, 0, 27, 0,
- 16, 1, 12, 0, 2, 0, 80, 7, 2, 0, 82, 7, 2, 0, 83, 7, 0, 0,216, 2, 2, 0, 84, 7, 2, 0, 85, 7, 2, 0, 86, 7,
- 2, 0, 87, 7, 2, 0, 88, 7, 2, 0,197, 6, 7, 0, 89, 7, 7, 0, 90, 7, 17, 1, 18, 0, 17, 1, 0, 0, 17, 1, 1, 0,
- 0, 0, 19, 0, 16, 1, 91, 7, 16, 1, 92, 7, 16, 1, 93, 7, 16, 1, 94, 7, 7, 0, 95, 7, 2, 0, 96, 7, 2, 0, 97, 7,
- 2, 0, 98, 7, 2, 0, 99, 7, 2, 0,100, 7, 2, 0,101, 7, 2, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0, 27, 0,
- 18, 1, 10, 0, 0, 0,105, 7, 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 2, 0,111, 7,
- 2, 0,112, 7, 2, 0,113, 7, 2, 0,114, 7, 19, 1, 8, 0, 0, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7,
- 0, 0,119, 7, 0, 0,120, 7, 7, 0,115, 6, 7, 0, 27, 0, 20, 1, 3, 0, 0, 0,121, 7, 2, 0,122, 7, 2, 0, 27, 0,
- 21, 1, 22, 0, 18, 1,123, 7, 18, 1,124, 7, 18, 1,125, 7, 18, 1,126, 7, 18, 1,127, 7, 18, 1,128, 7, 18, 1,129, 7,
- 18, 1,130, 7, 18, 1,131, 7, 18, 1,132, 7, 18, 1,133, 7, 18, 1,134, 7, 18, 1,135, 7, 18, 1,136, 7, 18, 1,137, 7,
- 18, 1,138, 7, 18, 1,139, 7, 19, 1,140, 7, 20, 1,141, 7, 0, 0,142, 7, 7, 0,143, 7, 7, 0, 27, 0, 22, 1,122, 0,
- 0, 0,144, 7, 0, 0,145, 7, 0, 0,109, 7, 0, 0,146, 7, 0, 0,121, 7, 0, 0,147, 7, 0, 0,148, 7, 0, 0,149, 7,
- 0, 0,150, 7, 0, 0,151, 7, 0, 0,152, 7, 0, 0,153, 7, 0, 0,154, 7, 0, 0,155, 7, 0, 0,156, 7, 0, 0,157, 7,
- 0, 0,158, 7, 0, 0,159, 7, 0, 0,160, 7, 0, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7,
- 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7,
- 0, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7, 0, 0,177, 7, 0, 0,178, 7, 0, 0,179, 7, 0, 0,180, 7, 0, 0,181, 7,
- 0, 0,182, 7, 0, 0,183, 7, 0, 0,184, 7, 0, 0,185, 7, 0, 0,186, 7, 0, 0,187, 7, 0, 0,188, 7, 0, 0,189, 7,
- 0, 0,190, 7, 0, 0,191, 7, 0, 0,192, 7, 0, 0,193, 7, 0, 0,194, 7, 0, 0,195, 7, 0, 0,196, 7, 0, 0,197, 7,
- 0, 0,198, 7, 0, 0,199, 7, 0, 0,200, 7, 0, 0,201, 7, 0, 0,202, 7, 0, 0,203, 7, 0, 0,204, 7, 0, 0,205, 7,
- 0, 0,206, 7, 0, 0,207, 7, 0, 0,208, 7, 0, 0,209, 7, 0, 0,210, 7, 0, 0,211, 7, 0, 0,212, 7, 0, 0,213, 7,
- 0, 0,214, 7, 0, 0,215, 7, 0, 0,216, 7, 0, 0,217, 7, 0, 0,218, 7, 0, 0,219, 7, 0, 0,220, 7, 0, 0,221, 7,
- 0, 0,222, 7, 0, 0,223, 7, 0, 0,224, 7, 0, 0,225, 7, 0, 0,226, 7, 0, 0,227, 7, 0, 0,228, 7, 0, 0,229, 7,
- 0, 0,230, 7, 0, 0,231, 7, 0, 0,232, 7, 0, 0,233, 7, 0, 0,234, 7, 0, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7,
- 0, 0,238, 7, 0, 0,239, 7, 0, 0,240, 7, 0, 0,241, 7, 0, 0,242, 7, 0, 0,243, 7, 0, 0,244, 7, 0, 0,245, 7,
- 0, 0,246, 7, 0, 0,247, 7, 0, 0,248, 7, 0, 0,249, 7, 0, 0,250, 7, 0, 0,251, 7, 0, 0,252, 7, 0, 0,253, 7,
- 0, 0,254, 7, 0, 0,255, 7, 0, 0, 0, 8, 0, 0, 1, 8, 0, 0, 2, 8, 0, 0, 3, 8, 0, 0, 4, 8, 0, 0, 5, 8,
- 0, 0, 6, 8, 0, 0, 7, 8, 23, 1, 5, 0, 0, 0, 8, 8, 0, 0,167, 7, 0, 0,173, 7, 2, 0, 18, 0, 2, 0, 27, 0,
- 24, 1, 24, 0, 24, 1, 0, 0, 24, 1, 1, 0, 0, 0,179, 5, 21, 1, 9, 8, 22, 1, 10, 8, 22, 1, 11, 8, 22, 1, 12, 8,
- 22, 1, 13, 8, 22, 1, 14, 8, 22, 1, 15, 8, 22, 1, 16, 8, 22, 1, 17, 8, 22, 1, 18, 8, 22, 1, 19, 8, 22, 1, 20, 8,
- 22, 1, 21, 8, 22, 1, 22, 8, 22, 1, 23, 8, 22, 1, 24, 8, 22, 1, 25, 8, 22, 1, 26, 8, 23, 1, 27, 8, 4, 0, 28, 8,
- 4, 0, 27, 0, 25, 1, 3, 0, 25, 1, 0, 0, 25, 1, 1, 0, 0, 0, 29, 8, 26, 1, 5, 0, 4, 0, 18, 0, 4, 0, 27, 0,
- 7, 0,156, 2, 7, 0, 30, 8, 7, 0, 50, 2, 27, 1, 95, 0, 4, 0, 18, 0, 4, 0, 31, 8, 4, 0, 32, 8, 0, 0, 33, 8,
- 0, 0, 34, 8, 0, 0, 35, 8, 0, 0, 36, 8, 0, 0, 37, 8, 0, 0, 38, 8, 0, 0, 39, 8, 0, 0, 40, 8, 0, 0, 41, 8,
- 0, 0, 42, 8, 4, 0, 43, 8, 2, 0, 44, 8, 2, 0, 45, 8, 2, 0, 46, 8, 2, 0, 47, 8, 4, 0, 48, 8, 4, 0, 49, 8,
- 4, 0, 50, 8, 4, 0, 51, 8, 2, 0, 52, 8, 2, 0, 53, 8, 4, 0, 54, 8, 4, 0, 55, 8, 4, 0, 56, 8, 4, 0, 57, 8,
- 4, 0, 58, 8, 4, 0, 60, 7, 4, 0, 59, 8, 2, 0, 60, 8, 2, 0, 61, 8, 2, 0, 62, 8, 2, 0, 63, 8, 14, 0, 64, 8,
- 14, 0, 65, 8, 14, 0, 66, 8, 14, 0, 67, 8, 14, 0, 68, 8, 14, 0, 69, 8, 0, 0, 70, 8, 2, 0, 71, 8, 2, 0, 72, 8,
- 2, 0, 73, 8, 2, 0, 74, 8, 2, 0, 75, 8, 2, 0, 76, 8, 2, 0, 77, 8, 2, 0, 78, 8, 26, 1, 79, 8, 2, 0, 80, 8,
- 2, 0, 81, 8, 2, 0, 82, 8, 2, 0, 83, 8, 2, 0, 84, 8, 2, 0, 85, 8, 2, 0, 86, 8, 2, 0, 87, 8, 4, 0, 88, 8,
- 4, 0, 89, 8, 2, 0, 90, 8, 2, 0, 91, 8, 2, 0, 92, 8, 2, 0, 93, 8, 2, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8,
- 2, 0, 97, 8, 2, 0, 98, 8, 2, 0, 99, 8, 2, 0,100, 8, 2, 0,101, 8, 2, 0,102, 8, 2, 0,103, 8, 2, 0,104, 8,
- 2, 0,105, 8, 2, 0,106, 8, 2, 0,107, 8, 7, 0,108, 8, 4, 0,109, 8, 7, 0,110, 8, 2, 0, 24, 6, 2, 0, 25, 6,
- 2, 0,111, 8, 2, 0,112, 8, 50, 0,113, 8, 7, 0,114, 8, 2, 0,115, 8, 2, 0,250, 1, 0, 0,116, 8, 4, 0,117, 8,
- 4, 0,118, 8, 7, 0,119, 8, 7, 0, 27, 0, 28, 1, 24, 0, 22, 0, 32, 0, 14, 0,120, 8, 14, 0,121, 8, 14, 0,122, 8,
- 14, 0,152, 6, 41, 0,124, 0, 41, 0,123, 8, 4, 0,124, 8, 4, 0, 66, 0, 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8,
- 2, 0,128, 8, 2, 0,129, 8, 2, 0,130, 8, 2, 0,131, 8, 2, 0,132, 8, 2, 0,133, 8, 2, 0,134, 8, 2, 0,135, 8,
- 2, 0, 27, 0,238, 0,136, 8, 11, 0,137, 8, 2, 0,138, 8, 29, 1, 5, 0, 29, 1, 0, 0, 29, 1, 1, 0, 29, 1,139, 8,
- 15, 0,140, 8, 4, 0, 18, 0, 30, 1, 7, 0, 30, 1, 0, 0, 30, 1, 1, 0, 29, 1,141, 8, 29, 1,142, 8, 2, 0,128, 5,
- 2, 0, 18, 0, 4, 0, 27, 0, 31, 1, 25, 0, 31, 1, 0, 0, 31, 1, 1, 0, 32, 1,143, 8, 33, 1,245, 6, 0, 0,144, 8,
- 0, 0,145, 8, 0, 0,146, 8, 2, 0,147, 8, 2, 0,148, 8, 2, 0,149, 8, 2, 0,150, 8, 2, 0,151, 8, 2, 0, 27, 0,
- 2, 0, 18, 0, 2, 0,152, 8, 2, 0,153, 8, 2, 0,154, 8, 4, 0,155, 8, 31, 1,156, 8, 11, 0,157, 8, 4, 0,158, 8,
- 4, 0,159, 8, 4, 0,160, 8, 4, 0,161, 8, 0, 0,162, 8, 34, 1, 22, 0, 34, 1, 0, 0, 34, 1, 1, 0, 29, 1,141, 8,
- 29, 1,142, 8, 29, 1,163, 8, 29, 1,164, 8, 28, 1,165, 8, 18, 0, 50, 0, 0, 0,153, 6, 0, 0,166, 8, 2, 0,198, 6,
- 2, 0,199, 6, 2, 0,167, 8, 2, 0, 27, 0, 2, 0,129, 8, 2, 0, 59, 7, 2, 0, 18, 0, 35, 1,143, 8, 14, 0,168, 8,
- 14, 0,152, 6, 14, 0,169, 8, 14, 0,170, 8, 36, 1, 24, 0, 36, 1, 0, 0, 36, 1, 1, 0,241, 0,206, 6, 18, 0,171, 8,
- 18, 0,172, 8, 2, 0,198, 6, 2, 0,199, 6, 2, 0,173, 8, 2, 0,174, 8, 2, 0,175, 8, 2, 0, 18, 0, 7, 0, 96, 2,
- 2, 0,149, 8, 2, 0,150, 8, 2, 0,128, 8, 2, 0,176, 8, 2, 0,133, 8, 2, 0, 86, 1, 37, 1,143, 8, 14, 0,177, 8,
- 14, 0,178, 8, 14, 0,169, 8, 0, 0,179, 8, 11, 0,180, 8, 38, 1, 14, 0, 0, 0,181, 8, 2, 0,182, 8, 2, 0,183, 8,
- 2, 0,184, 8, 2, 0,185, 8, 2, 0,117, 5, 2, 0,186, 8, 28, 1,187, 8, 41, 0,188, 8, 4, 0,189, 8, 4, 0,190, 8,
- 4, 0,191, 8, 4, 0, 27, 0, 0, 0, 78, 7, 39, 1, 3, 0, 0, 0,192, 8, 4, 0,193, 8, 4, 0,194, 8, 40, 1, 4, 0,
- 4, 0, 13, 7, 4, 0,195, 8, 4, 0, 19, 7, 4, 0,196, 8, 41, 1, 2, 0, 4, 0,197, 8, 4, 0,198, 8, 42, 1, 5, 0,
- 7, 0,199, 8, 7, 0,200, 8, 7, 0,201, 8, 4, 0, 18, 0, 4, 0, 27, 0, 43, 1, 7, 0, 0, 0,202, 8, 0, 0,227, 6,
- 44, 0,137, 0, 2, 0,203, 8, 2, 0, 79, 5, 2, 0,204, 8, 2, 0,205, 8, 44, 1, 12, 0, 44, 1, 0, 0, 44, 1, 1, 0,
- 4, 0, 28, 0, 4, 0,206, 8, 4, 0,207, 8, 4, 0,208, 8, 39, 1,209, 8, 0, 0,202, 8, 43, 1,181, 3, 40, 1,210, 8,
- 41, 1,211, 8, 42, 1,212, 8, 45, 1, 12, 0, 0, 0, 35, 0, 11, 0,226, 0, 0, 0,227, 0, 4, 0,230, 0, 4, 0,238, 0,
- 11, 0,231, 0, 7, 0,233, 0, 7, 0,234, 0, 11, 0,213, 8, 11, 0,214, 8, 11, 0,235, 0, 11, 0,237, 0, 46, 1, 50, 0,
- 46, 1, 0, 0, 46, 1, 1, 0, 11, 0,215, 8, 11, 0, 25, 0, 0, 0, 19, 0, 4, 0, 18, 0, 4, 0, 16, 0, 4, 0, 22, 0,
- 4, 0, 89, 0, 4, 0,216, 8, 4, 0,217, 8, 4, 0,207, 8, 4, 0,208, 8, 4, 0,218, 8, 4, 0,250, 0, 4, 0,219, 8,
- 4, 0,220, 8, 7, 0,221, 8, 7, 0,222, 8, 7, 0,223, 8, 2, 0,224, 8, 2, 0,225, 8, 4, 0,226, 8, 4, 0,227, 8,
- 44, 1,228, 8, 31, 0, 79, 0, 41, 0,124, 0, 27, 0,229, 8, 44, 0,137, 0,230, 0,112, 6, 7, 0,230, 8, 7, 0,231, 8,
- 45, 1, 71, 1, 46, 1,232, 8, 46, 1,233, 8, 46, 1,234, 8, 14, 0,235, 8, 47, 1,236, 8, 11, 0,237, 8, 7, 0, 89, 4,
- 7, 0,238, 8, 7, 0,239, 8, 7, 0,240, 8, 11, 0,241, 8, 4, 0,242, 8, 4, 0,243, 8, 4, 0,244, 8, 7, 0,245, 8,
- 4, 0,128, 0, 4, 0, 27, 0, 48, 1, 4, 0, 48, 1, 0, 0, 48, 1, 1, 0, 14, 0,246, 8, 46, 1,247, 8,227, 0, 11, 0,
- 14, 0,248, 8, 14, 0,235, 8, 14, 0,249, 8, 46, 1,250, 8, 0, 0,251, 8, 0, 0,252, 8, 4, 0,253, 8, 4, 0,254, 8,
- 4, 0,255, 8, 4, 0, 27, 0, 19, 0, 0, 9, 49, 1, 4, 0, 7, 0, 1, 9, 7, 0, 99, 3, 2, 0, 2, 9, 2, 0, 3, 9,
- 50, 1, 6, 0, 7, 0, 4, 9, 7, 0, 5, 9, 7, 0, 6, 9, 7, 0, 7, 9, 4, 0, 8, 9, 4, 0, 9, 9, 51, 1, 8, 0,
- 7, 0, 10, 9, 7, 0, 11, 9, 7, 0, 12, 9, 7, 0, 13, 9, 7, 0, 14, 9, 4, 0,255, 2, 4, 0, 15, 9, 4, 0, 16, 9,
- 52, 1, 2, 0, 7, 0,187, 5, 7, 0, 27, 0, 53, 1, 5, 0, 7, 0, 17, 9, 7, 0, 18, 9, 4, 0, 91, 0, 4, 0,217, 2,
- 4, 0, 19, 9, 54, 1, 6, 0, 54, 1, 0, 0, 54, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 20, 9, 2, 0, 55, 0,
- 55, 1, 8, 0, 55, 1, 0, 0, 55, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 20, 9, 2, 0, 55, 0, 7, 0, 22, 0,
- 7, 0,128, 0, 56, 1, 45, 0, 56, 1, 0, 0, 56, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 20, 9, 2, 0,246, 0,
- 2, 0,131, 4, 2, 0, 21, 9, 7, 0, 22, 9, 7, 0, 90, 0, 7, 0, 12, 3, 4, 0, 23, 9, 4, 0, 81, 0, 4, 0,219, 2,
- 7, 0, 24, 9, 7, 0, 25, 9, 7, 0, 26, 9, 7, 0, 27, 9, 7, 0, 28, 9, 7, 0, 29, 9, 7, 0, 9, 3, 7, 0, 68, 1,
- 7, 0, 30, 9, 7, 0, 31, 9, 7, 0, 27, 0, 7, 0, 32, 9, 7, 0, 33, 9, 7, 0, 34, 9, 2, 0, 35, 9, 2, 0, 36, 9,
- 2, 0, 37, 9, 2, 0, 38, 9, 2, 0, 39, 9, 2, 0, 40, 9, 2, 0, 41, 9, 2, 0, 42, 9, 2, 0, 35, 2, 2, 0, 43, 9,
- 2, 0, 32, 2, 2, 0, 44, 9, 0, 0, 45, 9, 0, 0, 46, 9, 7, 0,244, 0, 57, 1, 47, 9, 64, 0,253, 1, 58, 1, 16, 0,
- 58, 1, 0, 0, 58, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 20, 9, 2, 0,246, 0, 7, 0, 4, 3, 7, 0, 5, 3,
- 7, 0, 6, 3, 7, 0, 85, 2, 7, 0, 7, 3, 7, 0, 8, 3, 7, 0, 48, 9, 7, 0, 9, 3, 7, 0, 11, 3, 7, 0, 12, 3,
-254, 0, 5, 0, 2, 0, 16, 0, 2, 0, 49, 9, 2, 0, 18, 0, 2, 0, 50, 9, 22, 0, 48, 7,253, 0, 3, 0, 4, 0, 68, 0,
- 4, 0, 51, 9,254, 0, 2, 0, 59, 1, 7, 0, 59, 1, 0, 0, 59, 1, 1, 0, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0,
- 4, 0, 21, 0, 11, 0, 52, 9, 60, 1, 5, 0, 0, 0, 19, 0, 7, 0, 94, 1, 7, 0, 53, 9, 4, 0, 54, 9, 4, 0, 27, 0,
- 61, 1, 4, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 66, 0, 2, 0, 30, 0, 62, 1, 4, 0, 0, 0, 19, 0, 63, 0, 55, 9,
- 7, 0, 94, 1, 7, 0, 27, 0, 63, 1, 6, 0, 2, 0, 56, 9, 2, 0, 57, 9, 2, 0, 16, 0, 2, 0, 58, 9, 0, 0, 59, 9,
- 0, 0, 60, 9, 64, 1, 5, 0, 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0, 0, 0, 61, 9, 0, 0, 62, 9, 65, 1, 3, 0,
- 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0, 66, 1, 4, 0, 2, 0, 63, 9, 2, 0, 64, 9, 2, 0, 18, 0, 2, 0, 27, 0,
- 67, 1, 6, 0, 0, 0, 19, 0, 0, 0, 65, 9, 2, 0, 66, 9, 2, 0, 9, 3, 2, 0, 87, 1, 2, 0, 30, 0, 68, 1, 5, 0,
- 0, 0, 19, 0, 7, 0, 99, 3, 7, 0,222, 4, 2, 0, 18, 0, 2, 0,231, 2, 69, 1, 3, 0, 0, 0, 19, 0, 4, 0,219, 2,
- 4, 0, 63, 9, 70, 1, 7, 0, 0, 0, 19, 0, 7, 0,222, 4, 0, 0, 67, 9, 0, 0, 68, 9, 2, 0, 87, 1, 2, 0, 66, 0,
- 4, 0, 69, 9, 71, 1, 4, 0, 0, 0, 70, 9, 0, 0, 71, 9, 4, 0, 16, 0, 7, 0,235, 2, 72, 1, 3, 0, 27, 0, 72, 9,
- 0, 0, 73, 9, 0, 0, 74, 9, 73, 1, 18, 0, 73, 1, 0, 0, 73, 1, 1, 0, 2, 0, 16, 0, 2, 0, 75, 9, 2, 0, 18, 0,
- 2, 0, 76, 9, 2, 0, 77, 9, 2, 0, 78, 9, 2, 0, 66, 0, 2, 0, 30, 0, 0, 0, 19, 0, 11, 0, 2, 0, 74, 1, 79, 9,
- 27, 0, 43, 0, 2, 0,223, 5, 2, 0,181, 2, 2, 0, 80, 9, 2, 0, 27, 0, 75, 1, 11, 0, 0, 0, 19, 0, 0, 0, 16, 0,
- 0, 0, 81, 9, 2, 0, 18, 0, 2, 0,231, 2, 2, 0, 82, 9, 4, 0, 83, 9, 4, 0, 84, 9, 4, 0, 85, 9, 4, 0, 86, 9,
- 4, 0, 87, 9, 76, 1, 1, 0, 0, 0, 88, 9, 77, 1, 4, 0, 37, 0, 12, 7, 0, 0, 29, 8, 4, 0, 87, 1, 4, 0, 18, 0,
- 74, 1, 18, 0, 74, 1, 0, 0, 74, 1, 1, 0, 74, 1, 89, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 90, 9, 2, 0, 78, 9,
- 2, 0, 75, 9, 2, 0, 91, 9, 2, 0, 30, 0, 2, 0,250, 1, 0, 0, 19, 0, 11, 0, 2, 0, 78, 1, 79, 9, 73, 1, 92, 9,
- 2, 0, 14, 0, 2, 0, 93, 9, 4, 0, 94, 9, 79, 1, 3, 0, 4, 0,245, 2, 4, 0, 27, 0, 27, 0, 43, 0, 80, 1, 15, 0,
-177, 0, 95, 9, 2, 0, 16, 0, 2, 0, 18, 0, 7, 0, 22, 9, 7, 0, 90, 0, 0, 0, 19, 0, 0, 0, 96, 9, 2, 0, 97, 9,
- 2, 0, 98, 9, 2, 0,133, 0, 2, 0, 99, 9, 2, 0,100, 9, 2, 0, 27, 0, 7, 0,101, 9, 7, 0,102, 9, 81, 1, 8, 0,
- 7, 0,103, 9, 7, 0,104, 9, 7, 0,105, 9, 7, 0,106, 9, 7, 0,107, 9, 7, 0,108, 9, 7, 0,109, 9, 7, 0,110, 9,
- 82, 1, 13, 0, 2, 0, 18, 0, 2, 0,111, 9, 4, 0, 66, 0, 4, 0, 30, 0, 2, 0,183, 6, 7, 0, 89, 4, 7, 0,238, 8,
- 47, 1,236, 8, 81, 1,112, 9, 2, 0, 16, 0, 2, 0,122, 5, 2, 0,221, 3, 2, 0,113, 9, 83, 1, 11, 0, 4, 0,245, 2,
- 2, 0, 16, 0, 2, 0, 18, 0, 27, 0, 43, 0, 79, 0,114, 9, 0, 0, 19, 0, 7, 0,115, 9, 7, 0,116, 9, 7, 0,227, 3,
- 2, 0,117, 9, 2, 0,118, 9, 84, 1, 5, 0, 2, 0, 16, 0, 2, 0, 66, 0, 4, 0, 27, 0, 41, 0,124, 0, 27, 0,215, 5,
- 85, 1, 5, 0, 4, 0, 27, 0, 4, 0, 16, 0, 0, 0, 19, 0, 0, 0, 61, 9, 27, 0, 43, 0, 86, 1, 13, 0, 2, 0, 18, 0,
- 2, 0, 16, 0, 2, 0, 75, 9, 2, 0,228, 3, 7, 0,119, 9, 7, 0,120, 9, 7, 0, 86, 1, 7, 0,121, 9, 7, 0,197, 3,
- 7, 0,201, 3, 7, 0,122, 9, 7, 0,123, 9, 27, 0,124, 9, 87, 1, 10, 0, 2, 0, 18, 0, 2, 0, 16, 0, 7, 0, 22, 9,
- 7, 0, 90, 0, 0, 0, 19, 0, 0, 0, 96, 9, 2, 0, 66, 0, 2, 0, 30, 0, 2, 0,250, 1, 2, 0,122, 5, 88, 1, 8, 0,
- 27, 0, 43, 0, 7, 0, 6, 3, 7, 0,125, 9, 7, 0,126, 9, 7, 0,228, 3, 2, 0, 66, 0, 2, 0,231, 2, 7, 0, 30, 0,
- 89, 1, 12, 0, 2, 0, 16, 0, 2, 0, 87, 1, 2, 0, 18, 0, 2, 0, 9, 3, 2, 0,245, 2, 2, 0,127, 9, 4, 0, 27, 0,
- 7, 0,128, 9, 7, 0,129, 9, 7, 0,130, 9, 7, 0,131, 9, 0, 0,132, 9, 90, 1, 9, 0, 2, 0, 18, 0, 2, 0, 16, 0,
- 4, 0, 22, 9, 4, 0, 90, 0, 0, 0, 19, 0, 2, 0, 86, 1, 2, 0, 62, 0, 2, 0,133, 9, 2, 0,134, 9, 91, 1, 7, 0,
- 4, 0,219, 2, 4, 0,135, 9, 4, 0,136, 9, 4, 0,137, 9, 7, 0,138, 9, 7, 0,139, 9, 0, 0, 67, 9, 92, 1, 7, 0,
- 0, 0,140, 9, 27, 0,141, 9, 0, 0, 73, 9, 2, 0,142, 9, 2, 0, 66, 0, 4, 0, 30, 0, 0, 0, 74, 9, 93, 1, 6, 0,
- 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 22, 9, 4, 0, 90, 0, 0, 0,143, 9, 0, 0,144, 9, 94, 1, 1, 0, 4, 0, 18, 0,
- 95, 1, 6, 0, 0, 0, 93, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0,145, 9, 7, 0,146, 9, 37, 0, 12, 7, 96, 1, 4, 0,
- 0, 0,186, 2, 2, 0, 18, 0, 4, 0, 16, 0, 27, 0, 43, 0, 97, 1, 2, 0, 4, 0, 16, 0, 4, 0,187, 6, 98, 1, 8, 0,
- 0, 0, 70, 9, 0, 0, 71, 9, 4, 0, 16, 0, 7, 0, 43, 2, 7, 0,147, 9, 7, 0, 27, 0, 27, 0, 75, 3, 27, 0,148, 9,
- 99, 1, 11, 0, 0, 0, 60, 6, 0, 0, 18, 0, 2, 0,149, 9, 4, 0, 16, 0, 7, 0, 94, 1, 7, 0,150, 9, 7, 0,151, 9,
- 7, 0,152, 9, 4, 0,153, 9, 27, 0, 75, 3, 27, 0,154, 9, 78, 1, 10, 0, 78, 1, 0, 0, 78, 1, 1, 0, 78, 1, 89, 9,
- 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 75, 9, 2, 0,155, 9, 0, 0, 19, 0, 11, 0, 2, 0, 27, 0, 43, 0, 47, 1, 17, 0,
- 22, 0, 32, 0, 0, 0, 35, 0, 38, 0,152, 0, 11, 0,226, 0, 38, 0,156, 9, 31, 0, 79, 0, 7, 0, 89, 4, 7, 0,157, 9,
- 7, 0,238, 8, 7, 0,103, 9, 7, 0,104, 9, 7, 0,158, 9, 4, 0, 91, 0, 4, 0, 27, 0, 11, 0,159, 9, 11, 0,160, 9,
- 11, 0,161, 9,100, 1, 6, 0,100, 1, 0, 0,100, 1, 1, 0, 27, 0, 43, 0, 11, 0,162, 9, 2, 0,251, 0, 0, 0,216, 2,
- 64, 0, 4, 0, 22, 0, 32, 0, 14, 0,163, 9, 4, 0,133, 0, 7, 0,164, 9,101, 1, 28, 0,101, 1, 0, 0,101, 1, 1, 0,
- 21, 0,165, 9,101, 1, 37, 0, 14, 0,166, 9, 0, 0, 19, 0, 7, 0,167, 9, 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9,
- 4, 0, 18, 0, 7, 0,171, 9, 7, 0,172, 9, 7, 0,173, 9, 7, 0,174, 9, 7, 0, 94, 1, 7, 0, 43, 2, 7, 0,175, 9,
- 7, 0,217, 2, 7, 0,176, 9, 7, 0,177, 9, 7, 0,178, 9, 7, 0,179, 9, 7, 0,180, 9, 7, 0,175, 0, 4, 0,133, 0,
- 2, 0, 4, 6, 2, 0,181, 9,102, 1, 27, 0, 22, 0, 32, 0, 34, 0, 74, 0, 14, 0,182, 9, 14, 0,183, 9, 14, 0,184, 9,
-101, 1,185, 9, 11, 0,186, 9, 11, 0,187, 9, 4, 0, 18, 0, 4, 0,163, 6, 4, 0,188, 9, 4, 0, 27, 0, 2, 0, 13, 3,
- 2, 0,217, 6, 4, 0,189, 9, 4, 0,133, 0, 4, 0,190, 9, 2, 0,191, 9, 2, 0,192, 9, 2, 0,193, 9, 2, 0,194, 9,
- 4, 0,195, 9, 4, 0,196, 9, 4, 0,197, 9, 4, 0,198, 9, 4, 0,199, 9, 4, 0,200, 9,103, 1, 2, 0, 7, 0,170, 2,
- 4, 0, 18, 0,181, 0, 5, 0,103, 1,201, 9, 4, 0,217, 2, 4, 0,202, 9, 4, 0,203, 9, 4, 0, 18, 0,180, 0, 16, 0,
- 4, 0,204, 9, 4, 0,205, 9, 4, 0,206, 9, 4, 0,207, 9, 2, 0,208, 9, 2, 0,209, 9, 2, 0,210, 9, 2, 0,251, 0,
- 2, 0,211, 9, 2, 0,212, 9, 2, 0,213, 9, 2, 0,214, 9, 4, 0,215, 9, 4, 0,216, 9, 4, 0,217, 9, 4, 0,218, 9,
-104, 1, 40, 0,104, 1, 0, 0,104, 1, 1, 0, 21, 0,165, 9, 14, 0, 0, 4, 0, 0, 19, 0, 2, 0, 18, 0, 2, 0,219, 9,
- 2, 0,214, 3, 2, 0,220, 9, 0, 0,221, 9, 0, 0,222, 9, 0, 0,223, 9,101, 1,224, 9,104, 1, 37, 0,104, 1,225, 9,
- 14, 0,226, 9, 14, 0,227, 9,181, 0,189, 3, 27, 0,228, 9,104, 1,229, 9, 7, 0, 77, 1, 7, 0,175, 0, 7, 0,230, 9,
- 7, 0, 22, 2, 7, 0,203, 3, 7, 0,205, 3, 2, 0,237, 3, 2, 0, 27, 0, 7, 0,231, 9, 7, 0,232, 9, 7, 0,208, 3,
- 7, 0,233, 9, 7, 0,234, 9, 7, 0,235, 9, 7, 0,236, 9, 7, 0,237, 9, 7, 0,238, 9, 7, 0,239, 9, 7, 0,240, 9,
- 11, 0,241, 9,178, 0, 16, 0, 14, 0,242, 9, 74, 0,243, 9, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,244, 9, 4, 0, 66, 0,
- 7, 0, 83, 0, 7, 0,245, 9, 7, 0,246, 9, 14, 0,247, 9, 4, 0,248, 9, 4, 0,249, 9, 11, 0,250, 9, 11, 0,251, 9,
-180, 0,188, 3, 0, 0,252, 9,105, 1, 1, 0, 4, 0,249, 9,106, 1, 12, 0, 4, 0,249, 9, 7, 0, 87, 9, 2, 0,253, 9,
- 2, 0,254, 9, 7, 0,255, 9, 7, 0, 0, 10, 2, 0, 1, 10, 2, 0, 18, 0, 7, 0, 2, 10, 7, 0, 3, 10, 7, 0, 4, 10,
- 7, 0, 5, 10,107, 1, 7, 0,107, 1, 0, 0,107, 1, 1, 0, 14, 0, 6, 10, 4, 0, 18, 0, 4, 0, 7, 10, 0, 0, 19, 0,
- 23, 1, 8, 10,177, 0, 9, 0, 22, 0, 32, 0, 14, 0, 9, 10, 14, 0,242, 9, 14, 0, 10, 10, 14, 0,101, 0, 4, 0, 18, 0,
- 4, 0, 11, 10, 4, 0, 12, 10, 4, 0, 27, 0,244, 0, 8, 0, 22, 0, 13, 10, 14, 0,242, 9, 64, 0, 14, 10, 0, 0, 15, 10,
- 4, 0, 16, 10, 4, 0, 18, 0, 4, 0, 17, 10, 4, 0, 27, 0,108, 1, 13, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,152, 6,
- 4, 0,153, 6, 7, 0,154, 6, 2, 0,155, 6,241, 0,206, 6,177, 0,184, 3,244, 0, 18, 10, 0, 0, 87, 1, 0, 0,209, 6,
- 2, 0, 18, 0, 7, 0, 19, 10,109, 1, 8, 0,109, 1, 0, 0,109, 1, 1, 0,107, 1, 20, 10, 31, 0, 79, 0, 14, 0,190, 3,
- 4, 0, 18, 0, 0, 0, 19, 0, 4, 0,126, 8,110, 1, 5, 0,110, 1, 0, 0,110, 1, 1, 0, 31, 0, 79, 0, 2, 0, 18, 0,
- 0, 0, 21, 10,111, 1, 14, 0,111, 1, 0, 0,111, 1, 1, 0, 11, 0, 2, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 22, 10,
- 0, 0, 23, 10, 0, 0, 19, 0, 2, 0, 27, 0, 7, 0, 24, 10, 7, 0, 25, 10, 31, 0, 79, 0, 7, 0, 26, 10, 7, 0, 27, 10,
-112, 1, 9, 0,112, 1, 0, 0,112, 1, 1, 0, 27, 0, 28, 10, 0, 0, 16, 3, 7, 0, 29, 10, 2, 0, 30, 10, 2, 0, 18, 0,
- 2, 0, 16, 0, 2, 0, 31, 10,113, 1, 7, 0, 37, 0, 12, 7, 21, 0,165, 9, 4, 0, 18, 0, 4, 0, 32, 10, 14, 0, 33, 10,
- 27, 0, 28, 10, 0, 0, 16, 3,114, 1, 15, 0, 27, 0, 28, 10, 2, 0, 34, 10, 2, 0, 18, 0, 2, 0, 35, 10, 2, 0, 36, 10,
- 0, 0, 16, 3, 27, 0, 37, 10, 0, 0, 38, 10, 7, 0, 39, 10, 7, 0, 43, 2, 7, 0, 40, 10, 7, 0, 41, 10, 2, 0, 16, 0,
- 2, 0, 87, 1, 7, 0, 94, 1,115, 1, 6, 0, 27, 0, 28, 10, 7, 0,201, 9, 2, 0, 42, 10, 2, 0, 43, 10, 2, 0, 18, 0,
- 2, 0, 44, 10,116, 1, 6, 0, 27, 0, 28, 10, 4, 0, 45, 10, 4, 0, 46, 10, 4, 0, 91, 0, 4, 0, 27, 0, 0, 0, 16, 3,
-117, 1, 4, 0, 27, 0, 28, 10, 4, 0, 18, 0, 4, 0, 45, 10, 0, 0, 16, 3,118, 1, 4, 0, 27, 0, 28, 10, 4, 0, 18, 0,
- 4, 0, 45, 10, 0, 0, 16, 3,119, 1, 4, 0, 27, 0, 28, 10, 4, 0, 18, 0, 4, 0, 45, 10, 0, 0, 16, 3,120, 1, 2, 0,
- 4, 0, 18, 0, 7, 0, 89, 4,121, 1, 2, 0, 27, 0, 28, 10, 0, 0, 16, 3,122, 1, 10, 0, 27, 0, 28, 10, 4, 0, 47, 10,
- 7, 0,127, 0, 4, 0, 18, 0, 2, 0, 10, 7, 2, 0, 48, 10, 2, 0, 66, 0, 2, 0, 30, 0, 7, 0, 49, 10, 0, 0, 16, 3,
-123, 1, 10, 0, 27, 0, 28, 10, 2, 0, 16, 0, 2, 0,139, 4, 4, 0, 89, 0, 4, 0, 90, 0, 7, 0,125, 9, 7, 0,126, 9,
- 4, 0, 27, 0,177, 0, 95, 9, 0, 0, 16, 3,124, 1, 4, 0, 27, 0, 28, 10, 4, 0,215, 3, 4, 0, 50, 10, 0, 0, 16, 3,
-125, 1, 4, 0, 27, 0, 28, 10, 4, 0,215, 3, 4, 0, 27, 0, 0, 0, 16, 3,126, 1, 6, 0, 27, 0, 28, 10, 7, 0,127, 0,
- 7, 0, 87, 3, 4, 0, 51, 10, 2, 0,215, 3, 2, 0,216, 3,127, 1, 6, 0, 27, 0, 28, 10, 4, 0, 52, 10, 4, 0, 53, 10,
- 7, 0, 54, 10, 7, 0, 55, 10, 0, 0, 16, 3,128, 1, 16, 0, 27, 0, 28, 10, 27, 0,225, 9, 4, 0, 16, 0, 7, 0, 56, 10,
- 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10,
- 2, 0, 18, 0, 2, 0, 27, 0, 2, 0, 66, 0, 2, 0, 30, 0,129, 1, 3, 0, 27, 0, 28, 10, 4, 0, 18, 0, 4, 0, 35, 2,
-130, 1, 5, 0, 27, 0, 28, 10, 4, 0, 18, 0, 4, 0, 27, 0, 7, 0, 65, 10, 0, 0, 16, 3,131, 1, 10, 0, 27, 0, 28, 10,
- 0, 0, 16, 3, 2, 0, 66, 10, 2, 0, 67, 10, 0, 0, 68, 10, 0, 0, 69, 10, 7, 0, 70, 10, 7, 0, 71, 10, 7, 0, 72, 10,
- 7, 0, 73, 10,132, 1, 5, 0, 27, 0, 28, 10, 0, 0, 16, 3, 7, 0,225, 2, 2, 0, 74, 10, 2, 0, 18, 0,133, 1, 8, 0,
- 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 75, 10, 7, 0, 76, 10, 2, 0, 18, 0, 2, 0, 35, 2,
-134, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 75, 10, 7, 0, 76, 10, 2, 0, 18, 0,
- 2, 0, 35, 2,135, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 75, 10, 7, 0, 76, 10,
- 2, 0, 18, 0, 2, 0, 35, 2,136, 1, 7, 0, 27, 0, 28, 10, 0, 0, 16, 3, 7, 0, 94, 1, 7, 0,103, 1, 2, 0, 18, 0,
- 2, 0, 87, 1, 4, 0, 27, 0,137, 1, 5, 0, 27, 0, 75, 3, 7, 0, 94, 1, 2, 0, 79, 3, 0, 0, 81, 3, 0, 0, 77, 10,
-138, 1, 7, 0,230, 0,112, 6, 0, 0, 78, 10, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 79, 10, 27, 0,215, 5, 27, 0, 80, 10,
-139, 1, 3, 0,230, 0,112, 6, 4, 0, 18, 0, 4, 0, 27, 0,140, 1, 6, 0,230, 0,112, 6, 4, 0, 18, 0, 4, 0, 27, 0,
- 0, 0, 79, 10, 7, 0, 65, 10, 27, 0,215, 5,141, 1, 10, 0,141, 1, 0, 0,141, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0,
- 0, 0, 81, 10, 7, 0, 31, 1, 7, 0, 32, 1, 2, 0, 6, 10, 2, 0, 82, 10, 27, 0, 43, 0,142, 1, 22, 0,142, 1, 0, 0,
-142, 1, 1, 0, 2, 0, 18, 0, 2, 0, 87, 1, 2, 0, 83, 10, 2, 0, 84, 10, 31, 0, 79, 0,177, 0, 95, 9, 27, 0,167, 0,
- 7, 0, 89, 0, 7, 0, 90, 0, 7, 0, 85, 10, 7, 0, 86, 10, 7, 0, 87, 10, 7, 0, 88, 10, 7, 0, 2, 3, 7, 0,153, 3,
- 7, 0, 97, 9, 7, 0, 89, 10, 0, 0, 90, 10, 0, 0, 91, 10, 14, 0,193, 3,143, 1, 11, 0, 7, 0, 50, 2, 7, 0,125, 9,
- 7, 0,126, 9, 11, 0, 2, 0, 2, 0, 92, 10, 2, 0, 93, 10, 2, 0, 94, 10, 2, 0, 95, 10, 2, 0, 96, 10, 2, 0, 97, 10,
- 2, 0,186, 2,144, 1, 21, 0,144, 1, 0, 0,144, 1, 1, 0,144, 1, 98, 10, 0, 0, 19, 0, 11, 0, 99, 10, 2, 0, 16, 0,
- 2, 0, 18, 0, 2, 0,100, 10, 2, 0, 66, 0, 7, 0,101, 10, 7, 0,102, 10, 11, 0,103, 10, 2, 0,104, 10, 2, 0,105, 10,
- 4, 0, 30, 0, 11, 0,159, 9, 4, 0,106, 10, 4, 0,107, 10,144, 1,108, 10,145, 1,109, 10,143, 1,110, 10,146, 1, 4, 0,
- 0, 0,111, 10, 2, 0,112, 10, 2, 0,113, 10, 4, 0, 27, 0,147, 1, 37, 0,147, 1, 0, 0,147, 1, 1, 0,147, 1,114, 10,
- 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,206, 8, 2, 0,181, 2, 2, 0,115, 10, 2, 0, 15, 7, 2, 0,104, 10,
- 2, 0, 49, 9, 14, 0, 90, 9, 14, 0,116, 10,147, 1, 37, 0, 22, 0, 48, 7, 11, 0, 99, 10, 7, 0,101, 10, 7, 0,102, 10,
- 7, 0, 85, 2, 7, 0, 6, 3, 7, 0,117, 10, 4, 0,118, 10, 0, 0,119, 10, 2, 0,120, 10, 2, 0,121, 10, 7, 0,122, 10,
- 7, 0,123, 10, 2, 0,124, 10, 2, 0,125, 10, 11, 0,126, 10, 19, 0,127, 10, 19, 0,128, 10, 19, 0,129, 10,146, 1,153, 0,
-148, 1,130, 10,149, 1,131, 10,145, 1, 8, 0,145, 1, 0, 0,145, 1, 1, 0,147, 1,132, 10,147, 1,133, 10,144, 1,134, 10,
-144, 1,135, 10, 4, 0, 18, 0, 4, 0, 27, 0, 57, 0, 20, 0, 22, 0, 32, 0, 34, 0, 74, 0,179, 0,187, 3, 14, 0,136, 10,
- 14, 0,137, 10, 4, 0, 16, 0, 4, 0,138, 10, 4, 0,139, 10, 4, 0, 18, 0, 4, 0,118, 10, 4, 0,140, 10, 14, 0, 90, 9,
- 14, 0,116, 10,150, 1,141, 10, 11, 0,142, 10, 11, 0,143, 10, 4, 0,144, 10, 11, 0,145, 10, 11, 0,146, 10, 11, 0,147, 10,
-151, 1, 4, 0, 4, 0, 17, 0, 4, 0,235, 2, 4, 0,125, 9, 4, 0,126, 9,152, 1, 4, 0, 4, 0, 17, 0, 7, 0,235, 2,
- 7, 0,125, 9, 7, 0,126, 9,153, 1, 2, 0, 0, 0,235, 2, 0, 0, 86, 1,154, 1, 4, 0, 4, 0, 17, 0, 7, 0,148, 10,
- 7, 0,125, 9, 7, 0,126, 9,155, 1, 1, 0, 7, 0,149, 10,156, 1, 6, 0, 4, 0,126, 0, 4, 0,128, 0, 4, 0, 49, 9,
- 0, 0,150, 10, 0, 0,151, 10, 2, 0, 27, 0,157, 1, 3, 0, 4, 0,152, 10, 4, 0,153, 10, 4, 0,154, 10,158, 1, 16, 0,
- 2, 0,149, 8, 2, 0,150, 8, 2, 0, 76, 5, 2, 0,155, 10, 2, 0,156, 10, 2, 0, 67, 0, 2, 0, 49, 7, 2, 0,157, 10,
- 7, 0, 1, 3, 7, 0,158, 10, 7, 0,159, 10, 2, 0,110, 1, 0, 0,160, 10, 0, 0,161, 10, 4, 0,162, 10, 4, 0,163, 10,
-159, 1, 9, 0, 7, 0,164, 10, 7, 0,165, 10, 7, 0,158, 9, 7, 0, 99, 3, 7, 0,166, 10, 7, 0,224, 6, 2, 0, 97, 3,
- 0, 0,167, 10, 0, 0, 27, 0,160, 1, 4, 0, 7, 0,168, 10, 7, 0,169, 10, 2, 0, 97, 3, 2, 0, 27, 0,161, 1, 3, 0,
- 7, 0,170, 10, 7, 0,221, 8, 7, 0, 14, 0,162, 1, 4, 0, 0, 0, 35, 0,205, 0, 87, 5, 4, 0,128, 0, 4, 0,137, 4,
-163, 1, 6, 0, 0, 0,171, 10,205, 0,172, 10, 4, 0,128, 0, 4, 0,137, 4, 4, 0,173, 10, 4, 0, 27, 0,164, 1, 7, 0,
- 2, 0,174, 10, 2, 0,175, 10, 4, 0, 66, 0, 0, 0, 82, 4,205, 0,172, 10, 0, 0,176, 10, 0, 0,177, 6,165, 1, 9, 0,
- 7, 0,177, 10, 7, 0,178, 10, 7, 0,179, 10, 7, 0, 96, 2, 7, 0,180, 10, 7, 0,181, 10, 7, 0,182, 10, 2, 0,183, 10,
- 2, 0,184, 10,166, 1, 8, 0, 2, 0,185, 10, 2, 0,186, 10, 2, 0,187, 10, 2, 0,188, 10, 7, 0,189, 10, 7, 0,190, 10,
- 7, 0,191, 10, 7, 0,192, 10,167, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,168, 1, 2, 0, 0, 0,169, 0, 0, 0,193, 10,
-169, 1, 1, 0, 0, 0, 19, 0,170, 1, 12, 0, 0, 0,194, 10, 0, 0,195, 10, 0, 0,215, 6, 0, 0,196, 10, 2, 0, 76, 5,
- 2, 0,197, 10, 7, 0,198, 10, 7, 0,199, 10, 7, 0,200, 10, 7, 0,153, 3, 7, 0,201, 10, 7, 0,202, 10,171, 1, 2, 0,
- 11, 0,203, 10, 11, 0,204, 10,172, 1, 13, 0, 0, 0, 79, 5, 0, 0, 16, 0, 0, 0, 97, 3, 0, 0, 99, 3, 0, 0,195, 10,
- 0, 0,107, 0, 0, 0,186, 2, 7, 0,205, 10, 7, 0,206, 10, 7, 0,152, 3, 7, 0,207, 10, 7, 0,208, 10, 7, 0,202, 10,
-173, 1, 8, 0, 7, 0, 56, 9, 7, 0,127, 0, 7, 0,161, 10, 7, 0,177, 2, 7, 0,209, 10, 7, 0,239, 0, 7, 0,210, 10,
- 4, 0, 16, 0,174, 1, 4, 0, 2, 0,211, 10, 2, 0,212, 10, 2, 0,213, 10, 2, 0, 27, 0,175, 1, 8, 0, 7, 0,214, 10,
- 7, 0,225, 2, 7, 0,215, 10, 7, 0,199, 8, 7, 0,200, 8, 7, 0,201, 8, 7, 0,216, 10, 7, 0,217, 10,176, 1, 6, 0,
- 2, 0,218, 10, 2, 0,219, 10, 7, 0,220, 10, 7, 0,221, 10, 7, 0,222, 10, 7, 0,223, 10,177, 1, 2, 0, 58, 0,224, 10,
- 59, 0,225, 10,178, 1, 3, 0,177, 1, 85, 6, 7, 0,226, 10, 7, 0,227, 10,179, 1, 3, 0,177, 1, 85, 6, 4, 0,228, 10,
- 4, 0, 27, 0,180, 1, 1, 0,177, 1, 85, 6,181, 1, 3, 0,177, 1, 85, 6, 4, 0,228, 10, 4, 0,229, 10,182, 1, 3, 0,
-177, 1, 85, 6, 4, 0,230, 10, 4, 0, 27, 0,183, 1, 1, 0,177, 1, 85, 6,184, 1, 3, 0,177, 1, 85, 6, 4, 0,231, 10,
- 4, 0, 27, 0,185, 1, 3, 0,177, 1, 85, 6, 4, 0,232, 10, 4, 0, 27, 0,186, 1, 3, 0,177, 1, 85, 6, 4, 0,233, 10,
- 4, 0, 27, 0,187, 1, 3, 0,177, 1, 85, 6, 4, 0,250, 0, 4, 0, 27, 0,188, 1, 1, 0, 0, 0, 19, 0,189, 1, 1, 0,
- 0, 0, 19, 0,190, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 18, 0, 2, 0,234, 10,191, 1, 10, 0, 2, 0, 67, 4,
- 2, 0, 18, 0, 7, 0,222, 4, 7, 0,235, 10, 7, 0,236, 10, 7, 0,237, 10, 7, 0,238, 10,190, 1,239, 10,190, 1,240, 10,
-190, 1,241, 10, 54, 0, 11, 0, 4, 0, 18, 0, 4, 0, 62, 0, 4, 0,242, 10, 4, 0,243, 10, 19, 0,244, 10, 19, 0,245, 10,
-191, 1,246, 10, 7, 0,247, 10, 7, 0,248, 10, 7, 0,249, 10, 7, 0,250, 10, 1, 1, 10, 0, 4, 0, 6, 10, 4, 0,251, 10,
- 7, 0,252, 10, 7, 0,253, 10, 7, 0,254, 10, 7, 0,255, 10, 7, 0, 9, 0, 7, 0, 11, 0, 4, 0, 87, 1, 4, 0, 6, 3,
- 0, 1, 18, 0, 4, 0,131, 0, 4, 0, 0, 11, 4, 0, 1, 11, 7, 0, 2, 11, 4, 0, 3, 11, 7, 0, 4, 11, 7, 0, 5, 11,
- 4, 0, 6, 11, 7, 0, 7, 11, 4, 0, 8, 11, 7, 0, 9, 11, 1, 1, 10, 11, 7, 0, 11, 11, 7, 0, 12, 11, 7, 0, 13, 11,
- 7, 0, 14, 11, 4, 0, 15, 11, 4, 0, 27, 0,192, 1, 4, 0, 42, 0,249, 2, 7, 0, 16, 11, 7, 0,181, 1, 7, 0, 27, 0,
-214, 0, 36, 0, 22, 0, 32, 0,192, 1, 17, 11, 54, 0,239, 10, 46, 0, 18, 11,214, 0, 19, 11, 52, 0, 20, 11, 25, 0,153, 0,
- 0, 0, 21, 11, 7, 0, 22, 11, 2, 0,115, 6, 2, 0, 23, 11, 7, 0, 43, 2, 4, 0,107, 0, 4, 0, 18, 0, 7, 0, 24, 11,
- 4, 0, 93, 2, 4, 0, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11, 7, 0, 28, 11, 7, 0,181, 1, 4, 0, 29, 11, 7, 0, 30, 11,
- 0, 0, 31, 11, 0, 0, 32, 11, 0, 0, 33, 11, 0, 0, 34, 11, 7, 0, 35, 11, 7, 0, 36, 11, 7, 0, 37, 11, 7, 0, 6, 3,
- 7, 0, 38, 11, 4, 0, 39, 11, 7, 0,247, 5, 7, 0, 40, 11, 7, 0, 41, 11,193, 1, 10, 0, 4, 0, 16, 0, 4, 0,127, 0,
- 4, 0, 18, 0, 4, 0, 20, 4, 4, 0, 42, 11, 4, 0, 43, 11, 4, 0, 44, 11, 4, 0, 69, 0, 0, 0, 19, 0, 11, 0, 2, 0,
-194, 1, 1, 0, 0, 0, 78, 7, 95, 0, 8, 0,193, 1, 45, 11, 4, 0, 46, 11, 4, 0, 47, 11, 4, 0, 48, 11, 4, 0, 49, 11,
- 4, 0, 30, 0, 11, 0, 50, 11,194, 1, 51, 11,195, 1, 5, 0, 7, 0,170, 2, 7, 0,245, 2, 7, 0, 43, 2, 2, 0,152, 2,
- 2, 0, 27, 0,196, 1, 5, 0, 7, 0,170, 2, 7, 0,164, 4, 7, 0, 52, 11, 7, 0, 53, 11, 7, 0,245, 2,197, 1, 5, 0,
- 27, 0, 54, 11,198, 1, 21, 0, 7, 0, 81, 6, 7, 0, 55, 11, 7, 0, 55, 0,199, 1, 3, 0, 7, 0, 56, 11, 4, 0, 57, 11,
- 4, 0, 58, 11,200, 1, 7, 0, 4, 0, 59, 11, 4, 0, 60, 11, 4, 0, 61, 11, 7, 0, 62, 11, 7, 0, 63, 11, 7, 0, 64, 11,
- 7, 0, 55, 0,201, 1, 8, 0,201, 1, 0, 0,201, 1, 1, 0, 27, 0, 43, 0, 4, 0, 3, 1, 2, 0, 18, 0, 2, 0, 87, 1,
- 7, 0,245, 2, 7, 0, 64, 9,202, 1, 7, 0,202, 1, 0, 0,202, 1, 1, 0, 27, 0, 43, 0, 2, 0,230, 2, 2, 0, 18, 0,
- 2, 0, 17, 2, 2, 0, 55, 0,203, 1, 17, 0,196, 1, 13, 4,196, 1, 65, 11,195, 1, 66, 11,196, 1, 47, 9,197, 1, 67, 11,
- 4, 0, 81, 0, 7, 0,245, 2, 7, 0, 12, 3, 7, 0, 68, 11, 4, 0, 59, 11, 4, 0, 69, 11, 7, 0, 63, 11, 7, 0, 64, 11,
- 7, 0,107, 0, 4, 0, 70, 11, 2, 0, 18, 0, 2, 0, 71, 11,204, 1, 15, 0, 7, 0,255, 0, 7, 0, 72, 11, 7, 0, 56, 11,
- 7, 0, 73, 11, 7, 0, 74, 11, 7, 0, 75, 11, 7, 0, 76, 11, 7, 0, 77, 11, 7, 0, 78, 11, 7, 0, 79, 11, 7, 0, 80, 11,
- 7, 0, 81, 11, 7, 0, 82, 11, 4, 0, 18, 0, 4, 0, 83, 11,205, 1,128, 0, 22, 0, 32, 0, 34, 0, 74, 0,206, 1, 84, 11,
-204, 1, 85, 11,188, 0,159, 4, 4, 0, 18, 0, 4, 0, 55, 0, 2, 0, 16, 0, 2, 0, 66, 10, 2, 0, 86, 11, 2, 0,124, 1,
- 2, 0, 87, 11, 2, 0,237, 3, 2, 0, 88, 11, 2, 0, 89, 11, 2, 0, 90, 11, 2, 0, 91, 11, 2, 0, 92, 11, 2, 0, 93, 11,
- 2, 0, 94, 11, 2, 0, 95, 11, 2, 0, 96, 11, 2, 0,231, 5, 2, 0, 97, 11, 2, 0, 98, 11, 2, 0, 99, 11, 2, 0,100, 11,
- 2, 0,101, 11, 2, 0, 32, 2, 2, 0, 40, 9, 2, 0, 15, 9, 2, 0,102, 11, 2, 0,103, 11, 2, 0, 30, 4, 2, 0, 31, 4,
- 2, 0,104, 11, 2, 0,105, 11, 2, 0,106, 11, 2, 0,107, 11, 7, 0,108, 11, 7, 0,109, 11, 7, 0,110, 11, 7, 0,111, 11,
- 7, 0,112, 11, 7, 0,113, 11, 7, 0,114, 11, 2, 0,161, 5, 2, 0,115, 11, 7, 0,116, 11, 7, 0,117, 11, 7, 0,118, 11,
- 7, 0, 22, 9, 7, 0, 90, 0, 7, 0, 12, 3, 7, 0, 28, 9, 7, 0,119, 11, 7, 0,120, 11, 7, 0,121, 11, 7, 0,122, 11,
- 7, 0,123, 11, 7, 0,124, 11, 4, 0, 23, 9, 4, 0, 21, 9, 4, 0,125, 11, 4, 0,126, 11, 2, 0,127, 11, 2, 0,128, 11,
- 7, 0, 24, 9, 7, 0, 25, 9, 7, 0, 26, 9, 7, 0,129, 11, 7, 0,130, 11, 7, 0,131, 11, 7, 0,132, 11, 7, 0,133, 11,
- 7, 0,134, 11, 7, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11, 7, 0,227, 3, 7, 0,107, 0, 7, 0,138, 11, 7, 0,139, 11,
- 7, 0,140, 11, 7, 0,141, 11, 7, 0,213, 0, 7, 0,142, 11, 4, 0,143, 11, 4, 0,144, 11, 7, 0,145, 11, 7, 0,146, 11,
- 7, 0,147, 11, 7, 0,148, 11, 7, 0,149, 11, 7, 0,212, 0, 7, 0,150, 11, 7, 0, 57, 4, 7, 0, 55, 4, 7, 0, 56, 4,
- 7, 0,151, 11, 7, 0,152, 11, 7, 0,153, 11, 7, 0,154, 11, 7, 0,155, 11, 7, 0,156, 11, 7, 0,157, 11, 7, 0,158, 11,
- 7, 0,159, 11, 7, 0,160, 11, 7, 0,161, 11, 7, 0,162, 11, 7, 0,163, 11, 7, 0,164, 11, 7, 0,165, 11, 7, 0,166, 11,
- 7, 0,167, 11, 7, 0,168, 11, 4, 0,169, 11, 4, 0,170, 11, 46, 0,143, 1, 64, 0, 5, 4, 14, 0,171, 11, 64, 0,172, 11,
- 27, 0,173, 11, 27, 0,174, 11, 31, 0, 79, 0,183, 0, 73, 1,183, 0,175, 11,151, 0, 52, 0,151, 0, 0, 0,151, 0, 1, 0,
-205, 1,176, 11,203, 1,177, 11,200, 1,225, 9,191, 0, 85, 4, 11, 0, 86, 4,207, 1,178, 11,207, 1,179, 11, 14, 0,180, 11,
- 14, 0,181, 11,136, 0,182, 11,144, 0,183, 11,144, 0,184, 11, 27, 0,185, 11, 27, 0,186, 11, 27, 0, 37, 0, 14, 0, 33, 10,
- 0, 0, 19, 0, 7, 0,244, 0, 7, 0, 41, 3, 7, 0,187, 11, 7, 0,188, 11, 4, 0,219, 2, 4, 0,189, 11, 4, 0, 18, 0,
- 4, 0, 23, 9, 4, 0,190, 11, 4, 0,191, 11, 4, 0,192, 11, 4, 0,193, 11, 2, 0,251, 0, 2, 0,194, 11, 2, 0,195, 11,
- 2, 0,196, 11, 0, 0,197, 11, 2, 0,198, 11, 2, 0,199, 11, 2, 0,200, 11, 11, 0,201, 11,140, 0,158, 4, 14, 0, 26, 3,
- 14, 0,202, 11,199, 1,203, 11, 4, 0,204, 11, 4, 0,205, 11,208, 1,206, 11,142, 0, 38, 3,209, 1,207, 11, 7, 0,208, 11,
- 7, 0,209, 11, 7, 0,210, 11,138, 0, 38, 0,210, 1,159, 9, 7, 0,128, 4, 7, 0,211, 11, 7, 0,212, 11, 7, 0, 81, 6,
- 7, 0,241, 3, 7, 0,227, 3, 7, 0,213, 11, 7, 0, 95, 2, 7, 0,214, 11, 7, 0,215, 11, 7, 0,216, 11, 7, 0,217, 11,
- 7, 0,218, 11, 7, 0,219, 11, 7, 0,129, 4, 7, 0,220, 11, 7, 0,221, 11, 7, 0,222, 11, 7, 0,130, 4, 7, 0,126, 4,
- 7, 0,127, 4, 7, 0,223, 11, 7, 0,224, 11, 7, 0,225, 11, 4, 0,226, 11, 4, 0, 91, 0, 4, 0,227, 11, 4, 0,228, 11,
- 2, 0,229, 11, 2, 0,230, 11, 2, 0,231, 11, 2, 0,232, 11, 2, 0,233, 11, 2, 0,234, 11, 2, 0,235, 11, 2, 0, 27, 0,
-188, 0,159, 4,139, 0, 11, 0,210, 1,236, 11, 7, 0,237, 11, 7, 0,238, 11, 7, 0,254, 1, 7, 0,239, 11, 7, 0,240, 11,
- 7, 0,241, 11, 4, 0, 91, 0, 2, 0,242, 11, 2, 0,243, 11, 64, 0,253, 1,211, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
- 7, 0, 7, 0, 7, 0,244, 11,212, 1, 6, 0,212, 1, 0, 0,212, 1, 1, 0,211, 1,201, 9, 4, 0, 1, 1, 2, 0,245, 11,
- 2, 0, 18, 0,213, 1, 5, 0,213, 1, 0, 0,213, 1, 1, 0, 14, 0,246, 11, 4, 0,247, 11, 4, 0, 18, 0,214, 1, 9, 0,
-214, 1, 0, 0,214, 1, 1, 0, 14, 0,126, 0,213, 1,248, 11, 4, 0, 18, 0, 2, 0,245, 11, 2, 0,249, 11, 7, 0, 92, 0,
- 0, 0,250, 11,179, 0, 6, 0, 22, 0, 32, 0, 14, 0,130, 5, 4, 0, 18, 0, 2, 0,251, 11, 2, 0,252, 11, 11, 0,253, 11,
-215, 1, 6, 0, 14, 0,254, 11, 4, 0,255, 11, 4, 0, 0, 12, 4, 0, 18, 0, 4, 0, 27, 0,238, 0, 1, 12,216, 1, 19, 0,
- 22, 0, 32, 0,217, 1, 2, 12,217, 1, 3, 12, 14, 0, 4, 12, 4, 0, 5, 12, 2, 0, 6, 12, 2, 0, 7, 12, 14, 0, 8, 12,
- 14, 0, 9, 12,215, 1, 10, 12, 14, 0, 11, 12, 14, 0, 12, 12, 14, 0, 13, 12, 14, 0, 14, 12,218, 1, 15, 12,218, 1, 16, 12,
-218, 1, 17, 12, 14, 0, 18, 12,238, 0, 19, 12,217, 1, 32, 0,217, 1, 0, 0,217, 1, 1, 0, 11, 0, 20, 12, 4, 0,127, 8,
- 2, 0, 21, 12, 2, 0, 27, 0, 28, 1, 22, 12, 28, 1, 23, 12, 0, 0, 24, 12, 2, 0, 25, 12, 2, 0, 26, 12, 2, 0,149, 8,
- 2, 0,150, 8, 2, 0, 27, 12, 2, 0, 28, 12, 2, 0, 20, 4, 2, 0, 59, 7, 2, 0, 29, 12, 2, 0, 30, 12, 2, 0, 31, 12,
- 2, 0, 30, 0,219, 1, 32, 12,220, 1, 33, 12,221, 1, 34, 12, 4, 0, 35, 12, 4, 0, 36, 12, 11, 0, 37, 12, 14, 0, 9, 12,
- 14, 0,169, 8, 14, 0, 38, 12, 14, 0, 39, 12, 14, 0, 40, 12,222, 1, 18, 0,222, 1, 0, 0,222, 1, 1, 0, 0, 0, 41, 12,
- 21, 0, 31, 0, 0, 0, 42, 12, 2, 0, 43, 12, 2, 0, 16, 0, 2, 0, 14, 0, 2, 0, 44, 12, 2, 0, 45, 12, 2, 0, 46, 12,
- 2, 0, 47, 12, 2, 0, 48, 12, 2, 0, 18, 0, 2, 0, 49, 12, 2, 0, 32, 0, 2, 0, 27, 0,223, 1, 50, 12,224, 1, 4, 0,
-224, 1, 0, 0,224, 1, 1, 0,222, 1, 51, 12,222, 1, 52, 12,225, 1, 11, 0,225, 1, 0, 0,225, 1, 1, 0, 14, 0, 53, 12,
- 14, 0, 54, 12, 0, 0, 41, 12, 2, 0, 55, 12, 2, 0, 56, 12, 2, 0, 18, 0, 2, 0, 57, 12, 4, 0, 58, 12, 11, 0, 59, 12,
-218, 1, 7, 0,218, 1, 0, 0,218, 1, 1, 0, 0, 0, 41, 12, 0, 0, 60, 12, 14, 0, 67, 8, 4, 0, 61, 12, 4, 0, 18, 0,
-250, 0, 14, 0,250, 0, 0, 0,250, 0, 1, 0, 0, 0, 41, 12, 21, 0, 31, 0,226, 1,143, 8, 11, 0, 62, 12, 11, 0, 63, 12,
-223, 1, 50, 12,215, 1, 64, 12, 14, 0, 65, 12,250, 0, 66, 12, 33, 1,245, 6, 2, 0, 18, 0, 2, 0, 86, 1,227, 1, 12, 0,
-227, 1, 0, 0,227, 1, 1, 0, 11, 0, 2, 0, 11, 0, 67, 12, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 7, 0,147, 9,
- 7, 0,128, 0, 7, 0,137, 4, 7, 0, 97, 9, 7, 0, 89, 10,228, 1, 5, 0, 7, 0, 68, 12, 4, 0, 69, 12, 4, 0, 70, 12,
- 4, 0, 87, 1, 4, 0, 18, 0,229, 1, 6, 0, 7, 0, 71, 12, 7, 0, 72, 12, 7, 0, 73, 12, 7, 0, 74, 12, 4, 0, 16, 0,
- 4, 0, 18, 0,230, 1, 5, 0, 7, 0,125, 9, 7, 0,126, 9, 7, 0,245, 2, 2, 0, 46, 2, 2, 0, 47, 2,231, 1, 5, 0,
-230, 1, 2, 0, 4, 0, 52, 0, 7, 0, 75, 12, 7, 0,125, 9, 7, 0,126, 9,232, 1, 4, 0, 2, 0, 76, 12, 2, 0, 77, 12,
- 2, 0, 78, 12, 2, 0, 79, 12,233, 1, 2, 0, 37, 0, 43, 7, 21, 0,165, 9,234, 1, 3, 0, 19, 0, 80, 12, 4, 0, 18, 0,
- 4, 0, 27, 0,235, 1, 6, 0, 7, 0,107, 0, 7, 0,214, 2, 7, 0, 81, 12, 7, 0, 27, 0, 2, 0,250, 0, 2, 0, 82, 12,
-236, 1, 5, 0, 7, 0, 83, 12, 7, 0,127, 0, 7, 0,202, 9, 7, 0,203, 9, 4, 0, 18, 0,237, 1, 6, 0, 22, 0, 48, 7,
- 0, 0, 84, 12, 0, 0, 85, 12, 2, 0, 86, 12, 2, 0, 18, 0, 4, 0, 87, 12,238, 1, 7, 0,238, 1, 0, 0,238, 1, 1, 0,
- 0, 0, 19, 0,237, 1, 88, 12, 2, 0, 89, 12, 2, 0, 16, 0, 7, 0, 59, 0,239, 1, 7, 0, 14, 0, 90, 12, 0, 0, 91, 12,
- 11, 0, 92, 12, 7, 0, 59, 0, 7, 0,147, 9, 4, 0, 16, 0, 4, 0, 18, 0,240, 1, 3, 0, 7, 0, 93, 12, 4, 0, 18, 0,
- 4, 0, 27, 0,241, 1, 15, 0,241, 1, 0, 0,241, 1, 1, 0,107, 1, 20, 10,239, 1, 60, 0, 14, 0,193, 3, 30, 0, 48, 0,
-240, 1, 94, 12, 4, 0, 52, 0, 7, 0, 59, 0, 2, 0, 18, 0, 2, 0, 22, 1, 4, 0, 95, 12, 0, 0, 84, 12, 4, 0, 96, 12,
- 7, 0, 97, 12,242, 1, 2, 0, 0, 0, 98, 12, 0, 0, 99, 12,243, 1, 4, 0,243, 1, 0, 0,243, 1, 1, 0,177, 0, 75, 3,
- 14, 0,100, 12,244, 1, 25, 0,244, 1, 0, 0,244, 1, 1, 0, 14, 0,101, 12,177, 0, 95, 9,243, 1,102, 12, 14, 0,103, 12,
- 14, 0,193, 3, 0, 0, 19, 0, 7, 0,147, 9, 7, 0,104, 12, 7, 0, 89, 0, 7, 0, 90, 0, 7, 0, 85, 10, 7, 0, 86, 10,
- 7, 0, 2, 3, 7, 0,153, 3, 7, 0, 97, 9, 7, 0, 89, 10, 2, 0,105, 12, 2, 0,106, 12, 2, 0, 66, 0, 2, 0, 16, 0,
- 11, 0,107, 12, 4, 0, 18, 0, 4, 0, 30, 0,245, 1, 6, 0,245, 1, 0, 0,245, 1, 1, 0, 14, 0,101, 12, 4, 0, 18, 0,
- 4, 0, 17, 2, 0, 0, 19, 0,246, 1, 11, 0,246, 1, 0, 0,246, 1, 1, 0, 22, 0, 48, 7, 0, 0,108, 12, 4, 0, 87, 12,
- 2, 0,109, 12, 2, 0, 27, 0, 0, 0, 84, 12, 4, 0, 95, 12, 2, 0, 18, 0, 2, 0,110, 12,247, 1, 10, 0,247, 1, 0, 0,
-247, 1, 1, 0, 14, 0,111, 12, 0, 0, 41, 12, 0, 0, 19, 0, 0, 0,112, 12, 0, 0,113, 12, 2, 0, 18, 0, 2, 0,110, 12,
- 4, 0,114, 12,248, 1, 5, 0,248, 1, 0, 0,248, 1, 1, 0, 0, 0, 84, 12, 4, 0, 95, 12, 7, 0,235, 2, 34, 0, 12, 0,
-177, 0,184, 3,177, 0,115, 12,243, 1,102, 12, 14, 0,116, 12,244, 1,117, 12, 14, 0,118, 12, 14, 0,119, 12, 4, 0, 18, 0,
- 4, 0,251, 0, 2, 0,120, 12, 2, 0,121, 12, 7, 0,122, 12,249, 1, 2, 0, 22, 0, 32, 0, 34, 0, 74, 0,250, 1, 5, 0,
-250, 1, 0, 0,250, 1, 1, 0, 4, 0, 16, 0, 4, 0, 18, 0, 0, 0,179, 5,251, 1, 6, 0,250, 1,123, 12, 27, 0, 43, 0,
- 4, 0,124, 12, 7, 0,125, 12, 4, 0,126, 12, 4, 0, 6, 10,252, 1, 3, 0,250, 1,123, 12, 4, 0,124, 12, 7, 0,127, 12,
-253, 1, 8, 0,250, 1,123, 12, 27, 0, 43, 0, 7, 0, 77, 1, 7, 0,128, 12, 7, 0, 41, 3, 7, 0,158, 9, 4, 0,124, 12,
- 4, 0,129, 12,254, 1, 5, 0,250, 1,123, 12, 7, 0,130, 12, 7, 0,181, 2, 7, 0, 8, 3, 7, 0, 55, 0,255, 1, 3, 0,
-250, 1,123, 12, 7, 0,158, 9, 7, 0,131, 12,198, 1, 4, 0, 7, 0,132, 12, 7, 0,139, 11, 2, 0,133, 12, 2, 0, 87, 1,
- 0, 2, 14, 0, 0, 2, 0, 0, 0, 2, 1, 0, 14, 0,134, 12, 14, 0,135, 12, 14, 0,136, 12, 0, 0,179, 5, 4, 0, 32, 0,
- 4, 0, 18, 0, 4, 0,137, 12, 7, 0,138, 12, 4, 0,126, 12, 4, 0, 6, 10, 7, 0, 89, 4, 7, 0, 10, 3,206, 1, 23, 0,
- 4, 0,124, 12, 4, 0,139, 12, 7, 0,140, 12, 7, 0, 6, 3, 7, 0,141, 12, 7, 0,238, 8, 7, 0,132, 12, 7, 0,142, 12,
- 7, 0,214, 2, 7, 0, 2, 11, 7, 0,222, 4, 7, 0,143, 12, 7, 0,144, 12, 7, 0,145, 12, 7, 0,146, 12, 7, 0,147, 12,
- 7, 0,148, 12, 7, 0,149, 12, 7, 0,150, 12, 7, 0,151, 12, 7, 0,152, 12, 7, 0,153, 12, 14, 0,154, 12,124, 0, 40, 0,
-123, 0,155, 12, 1, 2, 85, 11, 64, 0,156, 12, 64, 0,172, 11, 64, 0,157, 12, 2, 2,158, 12, 43, 0,168, 0, 43, 0,159, 12,
- 43, 0,160, 12, 7, 0,161, 12, 7, 0,162, 12, 7, 0,163, 12, 7, 0,164, 12, 7, 0,165, 12, 7, 0,126, 8, 7, 0,166, 12,
- 7, 0,181, 1, 7, 0,167, 12, 4, 0,168, 12, 4, 0,169, 12, 4, 0,170, 12, 4, 0, 91, 0, 4, 0, 27, 0, 4, 0,171, 12,
- 2, 0,172, 12, 2, 0,173, 12, 4, 0,174, 12, 7, 0,214, 2, 4, 0,175, 12, 7, 0,176, 12, 4, 0,177, 12, 4, 0,178, 12,
- 4, 0,179, 12,140, 0,180, 12, 14, 0,181, 12,188, 0,159, 4, 4, 0,182, 12, 7, 0,183, 12, 7, 0,184, 12, 4, 0, 30, 0,
-125, 0, 12, 0,123, 0,155, 12,151, 0, 61, 3, 7, 0,146, 1, 7, 0,126, 8, 7, 0,185, 12, 7, 0,186, 12, 7, 0,187, 12,
- 2, 0,188, 12, 2, 0,189, 12, 2, 0,190, 12, 2, 0, 16, 0, 4, 0, 91, 0,126, 0, 15, 0,123, 0,155, 12,142, 0, 38, 3,
- 7, 0,201, 9, 7, 0,191, 12, 7, 0,192, 12, 4, 0,193, 12, 7, 0, 79, 1, 7, 0,194, 12, 4, 0, 42, 10, 4, 0, 34, 3,
- 4, 0,195, 12, 7, 0,164, 12, 2, 0, 16, 0, 2, 0, 27, 0, 4, 0, 30, 0, 3, 2, 15, 0, 22, 0, 32, 0, 34, 0, 74, 0,
- 47, 1,236, 8, 7, 0,196, 12, 7, 0,197, 12, 7, 0,198, 12, 7, 0,199, 12, 7, 0,157, 9, 7, 0,200, 12, 7, 0,201, 12,
- 7, 0,202, 12, 7, 0, 89, 4, 7, 0,238, 8, 2, 0, 18, 0, 2, 0,121, 9,232, 0, 3, 0, 4, 0,125, 0, 2, 0,221, 6,
- 2, 0,203, 12, 4, 2, 5, 0, 0, 0,202, 8, 2, 0,203, 8, 2, 0, 79, 5, 2, 0,204, 12, 2, 0,205, 12,230, 0, 16, 0,
- 22, 0, 32, 0, 34, 0, 74, 0, 0, 0, 35, 0, 4, 0,142, 0, 4, 0,143, 0, 4, 0,206, 12, 7, 0,161, 0, 7, 0,162, 0,
- 44, 0,137, 0, 5, 2,159, 9,179, 0,187, 3, 6, 2,207, 12, 11, 0,208, 12, 4, 2,209, 12, 4, 0, 18, 0, 4, 0, 22, 0,
- 14, 1, 10, 0, 4, 0,131, 0, 4, 0,210, 12, 52, 0,211, 12, 7, 0,212, 12, 2, 0,213, 12, 0, 0,186, 2, 4, 0,125, 0,
- 7, 2,180, 3, 8, 2,214, 12, 7, 0,215, 12, 9, 2, 3, 0, 4, 0,125, 0, 7, 0,216, 12, 7, 0, 79, 1, 10, 2, 11, 0,
- 11, 0,217, 12, 7, 0,218, 12, 7, 0,219, 12, 7, 0, 27, 0, 7, 0,220, 12, 2, 0,221, 12, 2, 0, 66, 0, 7, 0,222, 12,
- 7, 0,223, 12, 7, 0,224, 12, 7, 0,225, 12, 8, 2, 3, 0, 7, 0,226, 12, 4, 0,125, 0, 4, 0, 18, 0, 7, 2, 24, 0,
- 7, 2, 0, 0, 7, 2, 1, 0, 0, 0, 19, 0, 7, 0,227, 12, 7, 0,228, 12, 7, 0,229, 12, 7, 0,230, 12, 7, 0, 16, 11,
- 4, 0,231, 12, 4, 0,232, 12, 8, 2,233, 12, 7, 0,234, 12, 7, 0,216, 12, 4, 0, 18, 0, 4, 0,235, 12, 4, 0,236, 12,
- 7, 0, 97, 12, 2, 0,237, 12, 2, 0,232, 3, 2, 0,238, 12, 2, 0,239, 12, 2, 0,240, 12, 2, 0, 30, 0, 7, 0,241, 12,
- 11, 2, 22, 0, 4, 0, 18, 0, 2, 0,242, 12, 2, 0,243, 12, 7, 0,244, 12, 2, 0,245, 12, 2, 0,246, 12, 2, 0,247, 12,
- 2, 0,248, 12, 2, 0,249, 12, 2, 0,250, 12, 2, 0,251, 12, 2, 0, 8, 3, 4, 0,252, 12, 4, 0,253, 12, 2, 0,254, 12,
- 2, 0, 30, 0, 7, 0, 94, 1, 4, 0,255, 12, 4, 0, 0, 13, 7, 0, 1, 13, 7, 0, 2, 13, 4, 0,250, 1, 12, 2, 12, 0,
- 4, 0, 18, 0, 4, 0, 3, 13, 4, 0, 4, 13, 7, 0, 5, 13, 7, 2, 6, 13, 7, 0, 7, 13, 7, 0, 8, 13, 7, 0, 9, 13,
- 4, 0,193, 1, 4, 0,131, 0, 7, 0,153, 3, 52, 0, 10, 13, 13, 2, 5, 0, 4, 0, 18, 0, 7, 0,216, 12, 4, 0, 11, 13,
- 4, 0, 12, 13, 9, 2, 13, 13, 14, 2, 7, 0, 14, 2, 0, 0, 14, 2, 1, 0, 0, 0, 19, 0, 4, 0, 18, 0, 7, 0,153, 3,
- 14, 0, 14, 13, 13, 2, 15, 13, 15, 2, 1, 0, 0, 0, 16, 13, 16, 2, 8, 0, 16, 2, 0, 0, 16, 2, 1, 0, 7, 2,180, 3,
- 4, 0, 27, 0, 4, 0, 17, 13, 4, 0, 18, 13, 4, 0, 19, 13, 4, 0, 20, 13, 17, 2, 6, 0, 4, 0,131, 0, 4, 0, 27, 0,
- 14, 0, 6, 10, 4, 0, 21, 13, 2, 0, 22, 13, 2, 0, 23, 13, 6, 2, 11, 0, 11, 2, 24, 13, 10, 2, 25, 13, 14, 0, 14, 13,
- 13, 2, 15, 13, 12, 2, 26, 13, 7, 2, 27, 13, 14, 0, 28, 13, 4, 0, 29, 13, 4, 0, 30, 13, 15, 2, 96, 6, 17, 2, 31, 13,
- 18, 2, 48, 0, 18, 2, 0, 0, 18, 2, 1, 0,170, 0,150, 3, 19, 2, 2, 0, 64, 0, 32, 13,188, 0,159, 4,140, 0,158, 4,
- 14, 0, 26, 3, 4, 0, 33, 13, 0, 0, 19, 0, 2, 0,172, 10, 2, 0, 16, 0, 2, 0, 34, 13, 2, 0, 35, 13, 2, 0, 36, 13,
- 2, 0, 37, 13, 2, 0, 38, 13, 2, 0, 39, 13, 4, 0, 91, 0, 4, 0,191, 3, 4, 0, 40, 13, 4, 0, 41, 13, 4, 0,202, 9,
- 4, 0,203, 9, 4, 0, 27, 0, 7, 0, 42, 13, 47, 0, 43, 13, 0, 0, 44, 13, 4, 0, 45, 13, 4, 0,174, 12, 7, 0, 46, 13,
- 7, 0, 47, 13, 7, 0, 48, 13, 7, 0, 49, 13, 7, 0, 50, 13, 7, 0, 51, 13, 7, 0, 52, 13, 7, 0, 53, 13, 7, 0, 54, 13,
- 7, 0, 55, 13, 7, 0, 56, 13, 7, 0, 57, 13, 7, 0, 58, 13, 7, 0, 59, 13, 0, 0,207, 2, 0, 0, 60, 13, 0, 0, 61, 13,
- 0, 0, 62, 13,170, 0, 7, 0,169, 0, 63, 13,144, 0, 40, 3, 14, 0, 64, 13, 2, 0, 65, 13, 2, 0, 91, 0, 4, 0, 27, 0,
- 0, 0, 66, 13,171, 0, 24, 0,169, 0, 63, 13,144, 0, 40, 3,151, 0, 61, 3, 63, 0, 29, 2, 4, 0, 91, 0, 4, 0, 67, 13,
- 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,181, 1, 7, 0, 68, 13, 7, 0, 69, 13, 7, 0, 70, 13, 7, 0, 71, 13,
- 50, 0, 72, 13, 50, 0, 73, 13, 2, 0, 74, 13, 2, 0,233, 10, 2, 0, 75, 13, 2, 0, 27, 0, 7, 0, 76, 13, 7, 0, 77, 13,
- 7, 0, 78, 13, 7, 0, 79, 13, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 28, 0, 28, 0, 88, 0, 24, 0,160, 0, 16, 0,152, 0, 72, 0,168, 0, 48, 0,208, 0, 56, 0, 16, 0,112, 1, 0, 0, 0, 0,
+ 0, 0, 16, 0, 16, 0, 4, 0, 24, 0, 16, 0, 4, 0, 16, 0, 24, 0,104, 0, 20, 0, 24, 0, 24, 0, 8, 0, 40, 0, 28, 0,
+ 12, 0, 12, 0, 32, 4, 40, 4, 64, 4, 44, 0, 24, 0, 8, 0,128, 0, 64, 0, 32, 0, 16, 0, 32, 0, 32, 0, 8, 0, 96, 0,
+ 20, 0,200, 3,216, 3,208, 3,200, 3,208, 3,208, 3,200, 3,208, 3,208, 3,208, 3,208, 3, 64, 0, 64, 0, 12, 0, 56, 0,
+ 24, 0,104, 0, 0, 4, 24, 0, 56, 0, 56, 0, 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0, 16, 3,104, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 88, 1, 0, 1,168, 0, 0, 0, 0, 0, 0, 0,184, 0, 0, 0,
+ 32, 0,136, 0, 0, 0,120, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1,
+ 16, 0,104, 0, 0, 1, 40, 0,208, 0,104, 0,112, 0,216, 1, 32, 0,128, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,
+128, 0, 0, 0, 0, 0,184, 0, 8, 3, 0, 0, 24, 1,192, 0, 16, 0, 72, 0, 48, 0, 64, 0, 56, 0, 24, 0,128, 0, 0, 1,
+ 48, 0, 32, 0, 16, 6, 0, 0, 83, 84, 82, 67,217, 1, 0, 0, 12, 0, 2, 0, 12, 0, 0, 0, 12, 0, 1, 0, 13, 0, 3, 0,
+ 13, 0, 0, 0, 13, 0, 1, 0, 11, 0, 2, 0, 14, 0, 2, 0, 11, 0, 3, 0, 11, 0, 4, 0, 15, 0, 2, 0, 2, 0, 5, 0,
+ 2, 0, 6, 0, 16, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 17, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0,
+ 18, 0, 4, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 19, 0, 4, 0, 7, 0, 8, 0, 7, 0, 9, 0,
+ 7, 0, 10, 0, 7, 0, 11, 0, 20, 0, 4, 0, 11, 0, 12, 0, 14, 0, 13, 0, 4, 0, 14, 0, 4, 0, 15, 0, 21, 0, 10, 0,
+ 21, 0, 0, 0, 21, 0, 1, 0, 0, 0, 16, 0, 0, 0, 17, 0, 2, 0, 18, 0, 0, 0, 19, 0, 4, 0, 20, 0, 20, 0, 21, 0,
+ 4, 0, 22, 0, 4, 0, 23, 0, 22, 0, 11, 0, 11, 0, 0, 0, 11, 0, 1, 0, 22, 0, 24, 0, 23, 0, 25, 0, 0, 0, 26, 0,
+ 2, 0, 27, 0, 2, 0, 28, 0, 2, 0, 18, 0, 4, 0, 29, 0, 4, 0, 30, 0, 21, 0, 31, 0, 23, 0, 6, 0, 22, 0, 32, 0,
+ 22, 0, 33, 0, 24, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 23, 0, 37, 0, 25, 0, 5, 0, 4, 0, 38, 0, 4, 0, 39, 0,
+ 2, 0, 40, 0, 2, 0, 41, 0, 4, 0, 42, 0, 26, 0, 6, 0, 27, 0, 43, 0, 2, 0, 44, 0, 2, 0, 45, 0, 2, 0, 16, 0,
+ 2, 0, 18, 0, 0, 0, 46, 0, 28, 0, 21, 0, 28, 0, 0, 0, 28, 0, 1, 0, 29, 0, 47, 0, 30, 0, 48, 0, 19, 0, 49, 0,
+ 19, 0, 50, 0, 2, 0, 44, 0, 2, 0, 45, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 18, 0,
+ 2, 0, 55, 0, 7, 0, 10, 0, 7, 0, 11, 0, 4, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 26, 0, 60, 0,
+ 31, 0, 7, 0, 22, 0, 32, 0, 14, 0, 61, 0, 19, 0, 62, 0, 2, 0, 44, 0, 2, 0, 63, 0, 2, 0, 64, 0, 2, 0, 27, 0,
+ 32, 0, 16, 0, 32, 0, 0, 0, 32, 0, 1, 0, 7, 0, 65, 0, 7, 0, 59, 0, 2, 0, 16, 0, 2, 0, 66, 0, 2, 0, 67, 0,
+ 2, 0, 18, 0, 4, 0, 68, 0, 4, 0, 69, 0, 11, 0, 2, 0, 7, 0, 70, 0, 0, 0, 19, 0, 0, 0, 71, 0, 7, 0, 72, 0,
+ 7, 0, 73, 0, 33, 0, 15, 0, 22, 0, 32, 0, 34, 0, 74, 0, 32, 0, 75, 0, 0, 0, 76, 0, 4, 0, 77, 0, 4, 0, 27, 0,
+ 14, 0, 78, 0, 31, 0, 79, 0, 22, 0, 80, 0, 2, 0, 16, 0, 2, 0, 81, 0, 2, 0, 82, 0, 2, 0, 18, 0, 7, 0, 83, 0,
+ 4, 0, 84, 0, 35, 0, 6, 0, 35, 0, 0, 0, 35, 0, 1, 0, 0, 0, 85, 0, 0, 0, 86, 0, 4, 0, 22, 0, 4, 0, 87, 0,
+ 36, 0, 10, 0, 36, 0, 0, 0, 36, 0, 1, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 90, 0, 4, 0, 66, 0, 4, 0, 13, 0,
+ 4, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 37, 0, 15, 0, 22, 0, 32, 0, 0, 0, 94, 0, 4, 0, 91, 0, 4, 0, 95, 0,
+ 14, 0, 96, 0, 35, 0, 97, 0, 35, 0, 98, 0, 4, 0, 99, 0, 4, 0,100, 0, 14, 0,101, 0, 0, 0,102, 0, 4, 0,103, 0,
+ 4, 0,104, 0, 11, 0,105, 0, 8, 0,106, 0, 38, 0, 3, 0, 4, 0,107, 0, 4, 0,108, 0, 11, 0, 2, 0, 39, 0, 20, 0,
+ 22, 0, 32, 0, 34, 0, 74, 0, 0, 0, 16, 0, 0, 0,109, 0, 2, 0, 18, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0,
+ 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0,
+ 31, 0, 79, 0, 27, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 40, 0, 14, 0, 41, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0,
+ 4, 0,127, 0, 4, 0,128, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,131, 0, 0, 0, 27, 0, 2, 0,132, 0, 2, 0,133, 0,
+ 2, 0,134, 0, 2, 0, 18, 0, 4, 0, 30, 0, 42, 0, 33, 0, 22, 0, 32, 0, 0, 0, 35, 0, 14, 0,135, 0, 43, 0,136, 0,
+ 44, 0,137, 0, 45, 0,138, 0, 45, 0,139, 0, 2, 0,140, 0, 2, 0,141, 0, 2, 0,131, 0, 2, 0, 18, 0, 2, 0,142, 0,
+ 2, 0, 16, 0, 4, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0,
+ 4, 0,150, 0, 4, 0,151, 0, 38, 0,152, 0, 25, 0,153, 0, 7, 0,154, 0, 4, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0,
+ 2, 0,158, 0, 0, 0,159, 0, 0, 0,160, 0, 7, 0,161, 0, 7, 0,162, 0, 46, 0, 65, 0, 2, 0,163, 0, 2, 0,164, 0,
+ 2, 0,165, 0, 2, 0,166, 0, 27, 0,167, 0, 47, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0,
+ 0, 0,173, 0, 7, 0,174, 0, 7, 0,175, 0, 7, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0,
+ 2, 0,181, 0, 2, 0,182, 0, 0, 0,183, 0, 0, 0,123, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0,
+ 7, 0,188, 0, 7, 0, 55, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0,
+ 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0,
+ 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0,
+ 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0,
+ 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 48, 0, 15, 0,
+ 0, 0, 35, 0, 11, 0,226, 0, 0, 0,227, 0, 0, 0,228, 0, 4, 0,229, 0, 4, 0,230, 0, 11, 0,231, 0, 7, 0,232, 0,
+ 7, 0,233, 0, 7, 0,234, 0, 4, 0,235, 0, 11, 0,236, 0, 11, 0,237, 0, 4, 0,238, 0, 4, 0, 27, 0, 49, 0, 6, 0,
+ 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,239, 0, 7, 0, 65, 0, 4, 0, 62, 0, 50, 0, 5, 0, 2, 0, 18, 0,
+ 2, 0,240, 0, 2, 0, 62, 0, 2, 0,241, 0, 49, 0,234, 0, 51, 0, 17, 0, 27, 0,167, 0, 42, 0,242, 0, 52, 0,243, 0,
+ 7, 0,244, 0, 7, 0,245, 0, 2, 0, 16, 0, 2, 0,246, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,247, 0, 4, 0,248, 0,
+ 2, 0,249, 0, 2, 0,250, 0, 4, 0,131, 0, 4, 0,143, 0, 2, 0,251, 0, 2, 0,252, 0, 53, 0, 25, 0, 2, 0, 18, 0,
+ 2, 0,253, 0, 7, 0,254, 0, 7, 0,255, 0, 2, 0,142, 0, 2, 0, 0, 1, 4, 0, 1, 1, 4, 0, 2, 1, 27, 0,167, 0,
+ 4, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 11, 0, 6, 1, 7, 0, 7, 1, 7, 0, 8, 1, 2, 0, 9, 1, 2, 0, 10, 1,
+ 2, 0, 11, 1, 2, 0, 12, 1, 7, 0, 13, 1, 7, 0, 14, 1, 7, 0, 15, 1, 7, 0, 16, 1, 50, 0, 17, 1, 54, 0, 18, 1,
+ 55, 0, 13, 0, 4, 0, 19, 1, 4, 0, 20, 1, 2, 0, 21, 1, 2, 0, 18, 0, 2, 0, 22, 1, 2, 0, 23, 1, 27, 0,167, 0,
+ 7, 0, 24, 1, 4, 0, 25, 1, 0, 0, 26, 1, 7, 0, 27, 1, 4, 0, 28, 1, 4, 0,131, 0, 56, 0, 4, 0, 27, 0,167, 0,
+ 0, 0, 29, 1, 4, 0, 30, 1, 4, 0, 27, 0, 47, 0, 64, 0, 22, 0, 32, 0, 34, 0, 74, 0, 7, 0, 31, 1, 7, 0, 32, 1,
+ 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 7, 0, 30, 0,
+ 7, 0, 40, 1, 7, 0, 41, 1, 7, 0, 42, 1, 7, 0, 43, 1, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1, 7, 0, 47, 1,
+ 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 7, 0, 51, 1, 2, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 55, 1,
+ 2, 0, 56, 1, 2, 0, 57, 1, 2, 0, 58, 1, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0,246, 0, 7, 0, 59, 1, 7, 0, 60, 1,
+ 7, 0, 61, 1, 7, 0, 62, 1, 4, 0, 63, 1, 4, 0, 64, 1, 2, 0, 65, 1, 2, 0, 66, 1, 2, 0, 22, 1, 2, 0,129, 0,
+ 4, 0, 22, 0, 4, 0,126, 0, 4, 0,127, 0, 4, 0,128, 0, 7, 0, 67, 1, 7, 0, 68, 1, 7, 0, 66, 0, 40, 0, 69, 1,
+ 57, 0, 70, 1, 31, 0, 79, 0, 42, 0,242, 0, 48, 0, 71, 1, 50, 0, 17, 1, 51, 0, 72, 1, 25, 0,153, 0, 53, 0, 73, 1,
+ 55, 0, 74, 1, 56, 0, 75, 1, 0, 0, 76, 1, 0, 0,123, 0, 58, 0, 13, 0, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0,175, 0,
+ 4, 0, 18, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,173, 0, 4, 0, 27, 0, 7, 0, 79, 1, 7, 0, 80, 1,
+ 7, 0, 81, 1, 27, 0, 43, 0, 59, 0, 9, 0, 50, 0, 82, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 4, 0, 18, 0,
+ 7, 0, 83, 1, 7, 0, 84, 1, 4, 0, 85, 1, 4, 0, 86, 1, 60, 0, 76, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0, 16, 0,
+ 2, 0, 18, 0, 4, 0, 87, 1, 2, 0,178, 0, 2, 0, 88, 1, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0,
+ 7, 0, 89, 1, 7, 0, 90, 1, 7, 0, 91, 1, 7, 0, 92, 1, 7, 0, 93, 1, 7, 0, 94, 1, 7, 0, 95, 1, 7, 0, 96, 1,
+ 7, 0, 97, 1, 7, 0, 98, 1, 7, 0, 99, 1, 54, 0,100, 1, 2, 0,253, 0, 2, 0, 30, 0, 7, 0,111, 0, 7, 0,112, 0,
+ 7, 0,101, 1, 7, 0,102, 1, 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, 7, 0,106, 1, 2, 0,107, 1, 2, 0,108, 1,
+ 2, 0,109, 1, 2, 0,110, 1, 0, 0,111, 1, 0, 0,112, 1, 2, 0,113, 1, 2, 0,114, 1, 2, 0,115, 1, 2, 0,116, 1,
+ 2, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, 7, 0,121, 1, 2, 0,122, 1, 2, 0,123, 1, 2, 0,124, 1,
+ 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1,
+ 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1,
+ 2, 0,141, 1, 0, 0,142, 1, 31, 0, 79, 0, 46, 0,143, 1, 2, 0,144, 1, 2, 0, 76, 1, 0, 0,145, 1, 25, 0,153, 0,
+ 57, 0, 70, 1, 61, 0, 18, 0, 7, 0,146, 1, 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1, 7, 0,150, 1, 7, 0,151, 1,
+ 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1, 7, 0,155, 1, 2, 0,156, 1, 2, 0,157, 1, 2, 0,158, 1, 2, 0,159, 1,
+ 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 62, 0, 4, 0, 4, 0, 18, 0, 4, 0,164, 1, 4, 0,165, 1,
+ 4, 0, 66, 0, 63, 0,126, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0,166, 1, 2, 0, 18, 0, 7, 0,184, 0, 7, 0,185, 0,
+ 7, 0,186, 0, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1,
+ 7, 0,174, 1, 7, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1,
+ 7, 0,182, 1, 7, 0,183, 1, 7, 0,184, 1, 7, 0,185, 1, 7, 0,186, 1, 61, 0,187, 1, 62, 0,188, 1, 7, 0,189, 1,
+ 7, 0,190, 1, 7, 0,191, 1, 7, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, 2, 0,196, 1, 2, 0,197, 1,
+ 2, 0,198, 1, 0, 0,199, 1, 0, 0,200, 1, 7, 0,201, 1, 7, 0,202, 1, 2, 0,203, 1, 2, 0,204, 1, 7, 0,205, 1,
+ 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 2, 0,209, 1, 2, 0,210, 1, 4, 0, 87, 1, 4, 0,211, 1, 2, 0,212, 1,
+ 2, 0,213, 1, 2, 0,214, 1, 2, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, 7, 0,219, 1, 7, 0,220, 1,
+ 7, 0,221, 1, 7, 0,222, 1, 7, 0,223, 1, 7, 0,224, 1, 7, 0,225, 1, 0, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1,
+ 7, 0,229, 1, 4, 0,230, 1, 0, 0,231, 1, 0, 0,124, 1, 0, 0,232, 1, 0, 0, 76, 1, 2, 0,233, 1, 2, 0,234, 1,
+ 2, 0,144, 1, 2, 0,235, 1, 2, 0,236, 1, 2, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 7, 0,241, 1,
+ 7, 0,242, 1, 2, 0,163, 0, 2, 0,164, 0, 50, 0,243, 1, 50, 0,244, 1, 0, 0,245, 1, 0, 0,246, 1, 0, 0,247, 1,
+ 0, 0,248, 1, 2, 0,249, 1, 2, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, 46, 0,143, 1, 57, 0, 70, 1, 31, 0, 79, 0,
+ 64, 0,253, 1, 25, 0,153, 0, 7, 0,254, 1, 7, 0,255, 1, 7, 0, 0, 2, 7, 0, 1, 2, 7, 0, 2, 2, 2, 0, 3, 2,
+ 2, 0, 30, 0, 7, 0, 4, 2, 7, 0, 5, 2, 7, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 9, 2, 7, 0, 10, 2,
+ 7, 0, 11, 2, 7, 0, 12, 2, 2, 0, 13, 2, 2, 0, 14, 2, 4, 0, 15, 2, 2, 0, 16, 2, 2, 0, 17, 2, 14, 0, 18, 2,
+ 65, 0, 4, 0, 22, 0, 32, 0, 0, 0, 35, 0, 66, 0, 2, 0, 38, 0,152, 0, 67, 0, 20, 0, 67, 0, 0, 0, 67, 0, 1, 0,
+ 68, 0, 19, 2, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 20, 2, 2, 0, 21, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0,
+ 7, 0, 22, 2, 7, 0, 23, 2, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0, 26, 2, 7, 0, 27, 2, 7, 0, 28, 2, 7, 0, 22, 0,
+ 7, 0, 29, 2, 7, 0, 30, 2, 69, 0, 20, 0, 22, 0, 32, 0, 34, 0, 74, 0, 68, 0, 19, 2, 14, 0, 31, 2, 14, 0, 32, 2,
+ 14, 0, 33, 2, 31, 0, 79, 0, 63, 0, 34, 2, 0, 0, 18, 0, 0, 0, 35, 2, 2, 0, 36, 2, 2, 0,177, 0, 2, 0, 27, 0,
+ 7, 0, 77, 1, 7, 0,175, 0, 7, 0, 78, 1, 7, 0, 37, 2, 7, 0, 38, 2, 7, 0, 39, 2, 67, 0, 40, 2, 30, 0, 11, 0,
+ 7, 0, 41, 2, 7, 0, 42, 2, 7, 0, 43, 2, 7, 0,255, 0, 2, 0, 53, 0, 0, 0, 44, 2, 0, 0, 45, 2, 0, 0, 46, 2,
+ 0, 0, 47, 2, 0, 0, 48, 2, 0, 0, 49, 2, 29, 0, 7, 0, 7, 0, 50, 2, 7, 0, 42, 2, 7, 0, 43, 2, 2, 0, 46, 2,
+ 2, 0, 49, 2, 7, 0,255, 0, 7, 0, 27, 0, 70, 0, 21, 0, 70, 0, 0, 0, 70, 0, 1, 0, 2, 0, 16, 0, 2, 0, 51, 2,
+ 2, 0, 49, 2, 2, 0, 18, 0, 2, 0, 52, 2, 2, 0, 53, 2, 2, 0, 54, 2, 2, 0, 55, 2, 2, 0, 56, 2, 2, 0, 57, 2,
+ 2, 0, 58, 2, 2, 0, 59, 2, 7, 0, 60, 2, 7, 0, 61, 2, 29, 0, 47, 0, 30, 0, 48, 0, 2, 0, 62, 2, 2, 0, 63, 2,
+ 4, 0, 64, 2, 71, 0, 5, 0, 2, 0, 65, 2, 2, 0, 51, 2, 0, 0, 18, 0, 0, 0, 27, 0, 2, 0, 30, 0, 72, 0, 4, 0,
+ 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 66, 2, 7, 0, 67, 2, 73, 0, 4, 0, 14, 0, 68, 2, 74, 0, 69, 2, 4, 0, 70, 2,
+ 0, 0, 93, 0, 75, 0, 70, 0, 22, 0, 32, 0, 34, 0, 74, 0, 68, 0, 19, 2, 14, 0, 71, 2, 14, 0, 32, 2, 73, 0, 72, 2,
+ 27, 0, 73, 2, 27, 0, 74, 2, 27, 0, 75, 2, 31, 0, 79, 0, 76, 0, 76, 2, 33, 0, 77, 2, 63, 0, 34, 2, 14, 0, 78, 2,
+ 7, 0, 77, 1, 7, 0,175, 0, 7, 0, 78, 1, 2, 0, 16, 0, 2, 0,177, 0, 2, 0, 79, 2, 2, 0, 80, 2, 7, 0, 81, 2,
+ 7, 0, 82, 2, 4, 0, 83, 2, 2, 0, 27, 0, 2, 0, 36, 2, 2, 0, 18, 0, 2, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2,
+ 7, 0, 87, 2, 2, 0, 54, 2, 2, 0, 55, 2, 2, 0, 88, 2, 2, 0, 89, 2, 4, 0, 90, 2, 11, 0, 91, 2, 2, 0, 22, 0,
+ 2, 0, 96, 0, 2, 0, 65, 0, 2, 0, 92, 2, 7, 0, 93, 2, 7, 0, 94, 2, 7, 0, 95, 2, 7, 0, 96, 2, 7, 0, 97, 2,
+ 7, 0, 98, 2, 7, 0, 99, 2, 7, 0,100, 2, 7, 0,101, 2, 7, 0,102, 2, 0, 0,103, 2, 77, 0,104, 2, 78, 0,105, 2,
+ 0, 0,106, 2, 65, 0,107, 2, 65, 0,108, 2, 65, 0,109, 2, 65, 0,110, 2, 4, 0,111, 2, 7, 0, 83, 0, 4, 0,112, 2,
+ 4, 0,113, 2, 72, 0,114, 2, 4, 0,115, 2, 4, 0,116, 2, 71, 0,117, 2, 71, 0,118, 2, 7, 0,119, 2, 7, 0,120, 2,
+ 79, 0, 47, 0, 22, 0, 32, 0, 34, 0, 74, 0, 68, 0, 19, 2, 31, 0, 79, 0, 33, 0, 77, 2, 63, 0, 34, 2, 80, 0,121, 2,
+ 81, 0,122, 2, 82, 0,123, 2, 83, 0,124, 2, 84, 0,125, 2, 85, 0,126, 2, 86, 0,127, 2, 87, 0,128, 2, 88, 0,129, 2,
+ 89, 0,130, 2, 90, 0,131, 2, 91, 0,132, 2, 92, 0,133, 2, 93, 0,134, 2, 79, 0,135, 2, 94, 0,136, 2, 95, 0,137, 2,
+ 95, 0,138, 2, 95, 0,139, 2, 95, 0,140, 2, 95, 0,141, 2, 4, 0, 52, 0, 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2,
+ 4, 0,145, 2, 4, 0,146, 2, 4, 0,147, 2, 7, 0, 77, 1, 7, 0,175, 0, 7, 0, 78, 1, 2, 0,177, 0, 2, 0, 79, 2,
+ 2, 0,148, 2, 2, 0, 18, 0, 2, 0,149, 2, 2, 0,150, 2, 0, 0,151, 2, 0, 0,152, 2, 2, 0, 36, 2, 96, 0,153, 2,
+ 88, 0, 8, 0, 11, 0,154, 2, 7, 0,155, 2, 4, 0,156, 2, 0, 0, 18, 0, 0, 0,157, 2, 2, 0, 87, 1, 2, 0,158, 2,
+ 2, 0,159, 2, 86, 0, 7, 0, 4, 0,160, 2, 4, 0,161, 2, 4, 0,162, 2, 4, 0,163, 2, 2, 0, 51, 2, 0, 0,164, 2,
+ 0, 0, 18, 0, 90, 0, 5, 0, 4, 0,160, 2, 4, 0,161, 2, 0, 0,165, 2, 0, 0,166, 2, 2, 0, 18, 0, 97, 0, 2, 0,
+ 4, 0,167, 2, 7, 0, 43, 2, 91, 0, 3, 0, 97, 0,168, 2, 4, 0,169, 2, 4, 0, 18, 0, 89, 0, 4, 0, 7, 0,170, 2,
+ 2, 0,171, 2, 0, 0, 18, 0, 0, 0,166, 2, 92, 0, 4, 0, 0, 0,239, 0, 0, 0,184, 0, 0, 0,185, 0, 0, 0,186, 0,
+ 81, 0, 5, 0, 4, 0,172, 2, 4, 0,146, 2, 2, 0, 51, 2, 0, 0, 18, 0, 0, 0, 27, 0, 83, 0, 2, 0, 4, 0,173, 2,
+ 4, 0,174, 2, 82, 0, 6, 0, 42, 0,154, 2, 0, 0, 18, 0, 0, 0,157, 2, 2, 0, 87, 1, 2, 0,158, 2, 2, 0,159, 2,
+ 84, 0, 2, 0, 7, 0,175, 2, 4, 0, 18, 0, 85, 0, 4, 0, 0, 0,184, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,239, 0,
+ 93, 0, 1, 0, 7, 0,176, 2, 80, 0, 2, 0, 4, 0, 17, 2, 4, 0, 16, 0, 87, 0, 7, 0, 7, 0,155, 2, 42, 0,154, 2,
+ 0, 0, 18, 0, 0, 0,157, 2, 2, 0, 87, 1, 2, 0,158, 2, 2, 0,159, 2, 98, 0, 1, 0, 7, 0,177, 2, 99, 0, 1, 0,
+ 4, 0,178, 2,100, 0, 1, 0, 0, 0,179, 2,101, 0, 1, 0, 7, 0,155, 2,102, 0, 1, 0, 7, 0,175, 2,103, 0, 4, 0,
+ 4, 0,180, 2, 4, 0,181, 2, 7, 0,182, 2, 4, 0,183, 2,104, 0, 4, 0, 7, 0,239, 0, 7, 0,184, 0, 7, 0,185, 0,
+ 7, 0,186, 0,105, 0, 1, 0,104, 0,156, 2,106, 0, 5, 0, 4, 0,184, 2, 4, 0,185, 2, 0, 0, 18, 0, 0, 0, 51, 2,
+ 0, 0,186, 2,107, 0, 2, 0, 4, 0,187, 2, 4, 0,185, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,188, 2,
+105, 0,189, 2,107, 0,190, 2, 4, 0, 52, 0, 4, 0,143, 2, 4, 0,142, 2, 4, 0, 27, 0, 89, 0,191, 2, 96, 0, 14, 0,
+ 14, 0,192, 2, 89, 0,191, 2, 0, 0,193, 2, 0, 0,194, 2, 0, 0,195, 2, 0, 0,196, 2, 0, 0,197, 2, 0, 0,198, 2,
+ 0, 0,199, 2, 0, 0, 18, 0, 95, 0,137, 2, 95, 0,139, 2, 2, 0,200, 2, 0, 0,201, 2,109, 0, 1, 0, 4, 0,178, 2,
+110, 0, 3, 0, 7, 0, 2, 0, 4, 0,181, 2, 4, 0, 27, 0,111, 0, 9, 0,111, 0, 0, 0,111, 0, 1, 0, 4, 0, 16, 0,
+ 4, 0, 87, 1, 4, 0,202, 2, 4, 0, 27, 0, 0, 0, 19, 0, 41, 0,124, 0, 0, 0,203, 2,112, 0, 6, 0,111, 0,204, 2,
+ 47, 0,205, 2, 27, 0,206, 2, 0, 0,207, 2, 4, 0,208, 2, 4, 0,209, 2,113, 0, 7, 0,111, 0,204, 2, 2, 0,210, 2,
+ 2, 0,192, 2, 2, 0,211, 2, 2, 0, 91, 0, 11, 0,212, 2, 11, 0,213, 2,114, 0, 5, 0,111, 0,204, 2, 27, 0,167, 0,
+ 0, 0, 19, 0, 7, 0,214, 2, 0, 0, 93, 0,115, 0, 5, 0,111, 0,204, 2, 27, 0,167, 0, 0, 0, 19, 0, 2, 0,215, 2,
+ 0, 0,216, 2,116, 0, 5, 0,111, 0,204, 2, 7, 0, 89, 0, 7, 0,217, 2, 4, 0,218, 2, 4, 0,219, 2,117, 0, 5, 0,
+111, 0,204, 2, 27, 0,220, 2, 0, 0, 71, 0, 4, 0, 87, 1, 4, 0, 18, 0,118, 0, 13, 0,111, 0,204, 2, 27, 0,221, 2,
+ 27, 0,222, 2, 27, 0,223, 2, 27, 0,224, 2, 7, 0,225, 2, 7, 0,226, 2, 7, 0,217, 2, 7, 0,227, 2, 4, 0,228, 2,
+ 4, 0,229, 2, 4, 0, 91, 0, 4, 0,230, 2,119, 0, 5, 0,111, 0,204, 2, 2, 0,231, 2, 2, 0, 18, 0, 7, 0,232, 2,
+ 27, 0,233, 2,120, 0, 3, 0,111, 0,204, 2, 7, 0,234, 2, 4, 0, 91, 0,121, 0, 10, 0,111, 0,204, 2, 7, 0,235, 2,
+ 4, 0,236, 2, 4, 0, 27, 0, 2, 0, 91, 0, 2, 0,237, 2, 2, 0,238, 2, 2, 0,239, 2, 7, 0,240, 2, 0, 0,241, 2,
+122, 0, 3, 0,111, 0,204, 2, 7, 0, 27, 0, 4, 0, 16, 0,123, 0, 6, 0,111, 0,204, 2,124, 0,242, 2,125, 0,243, 2,
+126, 0,244, 2, 7, 0,245, 2, 4, 0, 16, 0,127, 0, 11, 0,111, 0,204, 2, 47, 0,205, 2, 27, 0,206, 2, 0, 0,207, 2,
+ 4, 0,208, 2, 4, 0,209, 2, 7, 0,214, 2, 4, 0,246, 2, 0, 0,241, 2, 7, 0,247, 2, 4, 0, 27, 0,128, 0, 12, 0,
+111, 0,204, 2, 27, 0,248, 2, 42, 0,249, 2, 4, 0, 91, 0, 4, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, 7, 0,253, 2,
+ 7, 0,254, 2, 0, 0,207, 2, 4, 0,208, 2, 4, 0, 27, 0,129, 0, 3, 0,111, 0,204, 2, 7, 0,255, 2, 4, 0, 0, 3,
+130, 0, 5, 0,111, 0,204, 2, 7, 0, 1, 3, 0, 0,241, 2, 2, 0, 18, 0, 2, 0, 2, 3,131, 0, 8, 0,111, 0,204, 2,
+ 27, 0,167, 0, 7, 0, 1, 3, 7, 0,255, 0, 7, 0,107, 0, 0, 0,241, 2, 2, 0, 18, 0, 2, 0, 16, 0,132, 0, 21, 0,
+111, 0,204, 2, 47, 0,205, 2, 27, 0,206, 2, 0, 0,207, 2, 4, 0,208, 2, 4, 0,209, 2, 27, 0, 3, 3, 0, 0,241, 2,
+ 2, 0, 18, 0, 2, 0, 27, 0, 7, 0, 4, 3, 7, 0, 5, 3, 7, 0, 6, 3, 7, 0, 85, 2, 7, 0, 7, 3, 7, 0, 8, 3,
+ 7, 0, 9, 3, 7, 0, 10, 3, 7, 0, 11, 3, 7, 0, 12, 3, 7, 0, 66, 0,133, 0, 7, 0,111, 0,204, 2, 2, 0, 13, 3,
+ 2, 0, 14, 3, 4, 0, 30, 0, 27, 0,167, 0, 7, 0, 15, 3, 0, 0,241, 2,134, 0, 10, 0,111, 0,204, 2, 27, 0,167, 0,
+ 0, 0, 16, 3, 7, 0, 17, 3, 7, 0, 18, 3, 7, 0, 10, 3, 4, 0, 19, 3, 4, 0, 20, 3, 7, 0, 21, 3, 0, 0, 19, 0,
+135, 0, 1, 0,111, 0,204, 2,136, 0, 7, 0,111, 0,204, 2, 41, 0,124, 0,137, 0, 22, 3,138, 0, 23, 3,139, 0, 24, 3,
+140, 0, 25, 3, 14, 0, 26, 3,141, 0, 13, 0,111, 0,204, 2, 89, 0, 27, 3, 89, 0, 28, 3, 89, 0, 29, 3, 89, 0, 30, 3,
+ 89, 0, 31, 3, 89, 0, 32, 3, 86, 0, 33, 3, 4, 0, 34, 3, 4, 0, 35, 3, 7, 0, 36, 3, 7, 0, 37, 3,142, 0, 38, 3,
+143, 0, 7, 0,111, 0,204, 2, 89, 0, 27, 3, 89, 0, 39, 3,144, 0, 40, 3,145, 0, 38, 3, 4, 0, 41, 3, 4, 0, 34, 3,
+146, 0, 4, 0,111, 0,204, 2, 27, 0,167, 0, 4, 0, 42, 3, 4, 0, 27, 0,147, 0, 2, 0, 4, 0, 43, 3, 7, 0, 43, 2,
+148, 0, 2, 0, 4, 0,127, 0, 4, 0, 44, 3,149, 0, 24, 0,111, 0,204, 2, 27, 0,167, 0, 0, 0,241, 2, 2, 0, 45, 3,
+ 2, 0, 18, 0, 2, 0, 87, 1, 2, 0, 27, 0,147, 0, 46, 3, 4, 0, 47, 3, 7, 0, 48, 3, 4, 0, 52, 0, 4, 0, 49, 3,
+148, 0, 50, 3,147, 0, 51, 3, 4, 0, 52, 3, 4, 0, 53, 3, 4, 0, 54, 3, 4, 0, 44, 3, 7, 0, 55, 3, 7, 0, 56, 3,
+ 7, 0, 57, 3, 7, 0, 58, 3, 7, 0, 59, 3, 11, 0, 60, 3,150, 0, 8, 0,111, 0,204, 2,151, 0, 61, 3,144, 0, 40, 3,
+ 4, 0, 62, 3, 4, 0, 63, 3, 4, 0, 64, 3, 2, 0, 18, 0, 2, 0, 55, 0,152, 0, 8, 0,111, 0,204, 2, 27, 0, 43, 0,
+ 2, 0, 3, 1, 2, 0, 18, 0, 2, 0,231, 2, 2, 0, 55, 0, 7, 0, 65, 3, 7, 0, 66, 3,153, 0, 6, 0,111, 0,204, 2,
+ 4, 0, 67, 3, 2, 0, 18, 0, 2, 0, 68, 3, 7, 0, 69, 3, 0, 0,169, 0,154, 0, 8, 0,111, 0,204, 2, 0, 0, 70, 3,
+ 0, 0, 71, 3, 0, 0,198, 2, 0, 0, 72, 3, 0, 0, 73, 3, 0, 0, 91, 0, 0, 0,186, 2,155, 0, 3, 0,111, 0,204, 2,
+156, 0, 74, 3,140, 0, 25, 3,157, 0, 10, 0,111, 0,204, 2, 27, 0, 75, 3, 27, 0, 76, 3, 0, 0, 77, 3, 7, 0, 78, 3,
+ 2, 0, 79, 3, 2, 0, 80, 3, 0, 0, 81, 3, 0, 0, 82, 3, 0, 0,216, 2,158, 0, 9, 0,111, 0,204, 2, 27, 0, 83, 3,
+ 0, 0, 77, 3, 7, 0, 84, 3, 7, 0, 85, 3, 0, 0, 87, 1, 0, 0,231, 2, 0, 0, 86, 3, 0, 0, 27, 0,159, 0, 1, 0,
+111, 0,204, 2,160, 0, 11, 0,111, 0,204, 2, 0, 0,241, 2, 7, 0,127, 0, 7, 0, 87, 3, 7, 0, 88, 3, 7, 0, 89, 3,
+ 7, 0, 90, 3, 7, 0, 91, 3, 4, 0, 18, 0, 2, 0, 92, 3, 2, 0, 93, 3,161, 0, 9, 0,111, 0,204, 2, 27, 0, 94, 3,
+ 4, 0, 95, 3, 4, 0, 96, 3, 4, 0, 97, 3, 7, 0, 98, 3, 7, 0, 99, 3, 2, 0,231, 2, 2, 0, 18, 0,162, 0, 29, 0,
+111, 0,204, 2,163, 0,100, 3,164, 0,101, 3, 4, 0,102, 3, 4, 0,103, 3, 7, 0,104, 3, 7, 0, 9, 3, 7, 0,105, 3,
+ 7, 0,250, 0, 7, 0,106, 3, 7, 0,107, 3, 7, 0,108, 3, 7, 0,109, 3, 7, 0,110, 3, 7, 0,245, 2, 4, 0,111, 3,
+ 4, 0,112, 3, 0, 0,113, 3, 0, 0,114, 3, 0, 0,115, 3, 0, 0,116, 3, 0, 0, 18, 0, 0, 0,117, 3, 2, 0,118, 3,
+ 2, 0,119, 3, 4, 0,219, 2, 7, 0,107, 0, 7, 0,120, 3, 4, 0, 27, 0,165, 0, 15, 0,111, 0,204, 2, 47, 0,205, 2,
+ 27, 0,206, 2, 0, 0,207, 2, 4, 0,208, 2, 4, 0,209, 2, 27, 0,121, 3, 27, 0,122, 3, 54, 0,100, 1, 0, 0,241, 2,
+ 7, 0,214, 2, 7, 0,123, 3, 0, 0, 18, 0, 0, 0,253, 0, 0, 0,216, 2,166, 0, 16, 0,111, 0,204, 2, 0, 0,241, 2,
+ 2, 0,124, 3, 2, 0,253, 0, 7, 0,125, 3, 54, 0,126, 3, 7, 0,127, 3, 7, 0,128, 3, 7, 0,129, 3, 0, 0,130, 3,
+ 4, 0,131, 3, 47, 0,132, 3, 27, 0,133, 3, 4, 0,134, 3, 0, 0,135, 3, 4, 0,136, 3,167, 0, 16, 0,111, 0,204, 2,
+ 0, 0,137, 3, 0, 0,138, 3, 7, 0,139, 3, 7, 0,140, 3, 0, 0,141, 3, 0, 0,142, 3, 0, 0,143, 3, 7, 0,129, 3,
+ 0, 0,130, 3, 4, 0,131, 3, 47, 0,132, 3, 27, 0,133, 3, 4, 0,134, 3, 0, 0,135, 3, 4, 0,136, 3,168, 0, 16, 0,
+111, 0,204, 2, 0, 0,241, 2, 4, 0,144, 3, 4, 0,145, 3, 27, 0,146, 3, 7, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3,
+ 47, 0,132, 3, 27, 0,133, 3, 4, 0,134, 3, 0, 0,135, 3, 7, 0,147, 3, 7, 0,148, 3, 2, 0,253, 0, 2, 0,149, 3,
+169, 0, 5, 0,111, 0,204, 2,170, 0,150, 3,171, 0,151, 3, 4, 0, 16, 0, 4, 0, 27, 0,172, 0, 8, 0,111, 0,204, 2,
+ 7, 0,152, 3, 7, 0,153, 3, 7, 0,154, 3, 0, 0,250, 0, 0, 0, 18, 0, 0, 0, 87, 1, 0, 0, 27, 0,173, 0, 3, 0,
+174, 0,155, 3, 4, 0, 70, 2, 0, 0, 93, 0,174, 0, 29, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0, 52, 2, 2, 0, 53, 2,
+ 2, 0,156, 3, 2, 0, 18, 0, 2, 0,157, 3, 2, 0,158, 3, 2, 0,159, 3, 2, 0, 30, 0, 0, 0,160, 3, 0, 0,161, 3,
+ 0, 0,162, 3, 0, 0,250, 1, 4, 0, 27, 0, 7, 0,163, 3, 7, 0,164, 3, 7, 0,165, 3, 7, 0,166, 3, 7, 0,167, 3,
+ 7, 0,168, 3, 29, 0,169, 3, 31, 0, 79, 0, 33, 0, 77, 2, 91, 0,132, 2, 0, 0, 71, 0, 7, 0,170, 3, 7, 0,171, 3,
+173, 0,172, 3,175, 0, 5, 0,175, 0, 0, 0,175, 0, 1, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0,123, 0, 68, 0, 3, 0,
+ 7, 0,173, 3, 4, 0, 18, 0, 4, 0, 27, 0, 27, 0,128, 0, 22, 0, 32, 0, 34, 0, 74, 0,176, 0,174, 3, 2, 0, 16, 0,
+ 2, 0,175, 3, 4, 0,176, 3, 4, 0,177, 3, 4, 0,178, 3, 0, 0,179, 3, 27, 0, 37, 0, 27, 0,180, 3, 27, 0,181, 3,
+ 27, 0,182, 3, 27, 0,183, 3, 31, 0, 79, 0, 68, 0, 19, 2,177, 0,184, 3,177, 0,185, 3,178, 0,186, 3, 11, 0, 2, 0,
+179, 0,187, 3,180, 0,188, 3,181, 0,189, 3, 14, 0,190, 3, 14, 0,191, 3, 14, 0, 32, 2, 14, 0,192, 3, 14, 0,193, 3,
+ 4, 0, 87, 1, 4, 0,194, 3, 63, 0, 34, 2, 0, 0,195, 3, 4, 0, 36, 2, 4, 0,196, 3, 7, 0, 77, 1, 7, 0,197, 3,
+ 7, 0,198, 3, 7, 0,175, 0, 7, 0,199, 3, 7, 0,200, 3, 7, 0, 78, 1, 7, 0,201, 3, 7, 0, 22, 2, 7, 0,202, 3,
+ 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3, 7, 0,206, 3, 7, 0,207, 3, 7, 0, 17, 3, 7, 0,208, 3, 7, 0,244, 0,
+ 7, 0,209, 3, 4, 0,210, 3, 4, 0,211, 3, 2, 0, 18, 0, 2, 0,212, 3, 2, 0,213, 3, 2, 0,214, 3, 2, 0,215, 3,
+ 2, 0,216, 3, 2, 0,217, 3, 2, 0,218, 3, 2, 0,219, 3, 0, 0,220, 3, 0, 0,221, 3, 4, 0,222, 3, 4, 0,223, 3,
+ 4, 0,224, 3, 4, 0,225, 3, 7, 0,226, 3, 7, 0, 83, 0, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3,
+ 7, 0,231, 3, 7, 0,219, 0, 7, 0,232, 3, 7, 0,233, 3, 7, 0,234, 3, 7, 0,235, 3, 7, 0,236, 3, 2, 0,237, 3,
+ 0, 0,238, 3, 0, 0,239, 3, 0, 0,240, 3, 0, 0,241, 3, 0, 0,109, 0, 0, 0,242, 3, 7, 0,243, 3, 7, 0,244, 3,
+ 14, 0,245, 3, 14, 0,246, 3, 14, 0,247, 3, 14, 0,248, 3, 7, 0,249, 3, 2, 0, 17, 2, 2, 0,250, 3, 7, 0,156, 2,
+ 4, 0,251, 3, 4, 0,252, 3,182, 0,253, 3, 2, 0,254, 3, 2, 0,251, 0, 7, 0,255, 3, 14, 0, 0, 4, 14, 0, 1, 4,
+ 14, 0, 2, 4, 14, 0, 3, 4,183, 0, 73, 1,184, 0, 4, 4, 64, 0, 5, 4, 0, 0, 6, 4, 0, 0, 7, 4, 2, 0, 70, 2,
+ 7, 0,148, 2,156, 0, 8, 4,144, 0, 9, 4,144, 0, 10, 4, 10, 0, 11, 4, 10, 0, 12, 4, 4, 0, 13, 4, 4, 0, 14, 4,
+ 14, 0, 15, 4, 14, 0, 16, 4, 14, 0, 17, 4, 7, 0, 18, 4,185, 0, 14, 0,185, 0, 0, 0,185, 0, 1, 0, 27, 0, 37, 0,
+ 7, 0, 17, 3, 7, 0, 79, 1, 7, 0, 18, 3, 7, 0, 10, 3, 0, 0, 19, 0, 4, 0, 19, 3, 4, 0, 20, 3, 4, 0, 19, 4,
+ 2, 0, 16, 0, 2, 0, 20, 4, 7, 0, 21, 3,186, 0, 12, 0,186, 0, 0, 0,186, 0, 1, 0, 27, 0, 43, 0, 4, 0, 21, 4,
+ 4, 0, 17, 2, 7, 0, 79, 1, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0,175, 2, 2, 0, 16, 0, 0, 0, 24, 4, 0, 0, 25, 4,
+183, 0, 40, 0, 4, 0, 18, 0, 2, 0, 26, 4, 2, 0, 27, 4, 2, 0, 10, 3, 2, 0, 28, 4, 2, 0, 29, 4, 2, 0, 30, 4,
+ 2, 0, 31, 4, 2, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4,
+ 7, 0, 39, 4, 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, 7, 0, 45, 4, 7, 0, 46, 4,
+ 7, 0, 47, 4, 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4,
+ 7, 0, 55, 4, 7, 0, 56, 4, 7, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, 47, 0,168, 0,187, 0, 60, 4, 7, 0, 61, 4,
+ 4, 0,219, 2,188, 0, 5, 0, 64, 0,253, 1, 7, 0, 62, 4, 7, 0, 63, 4, 2, 0, 18, 0, 2, 0, 64, 4,189, 0, 5, 0,
+189, 0, 0, 0,189, 0, 1, 0, 4, 0, 16, 0, 4, 0, 65, 4, 11, 0, 2, 0,190, 0, 9, 0,190, 0, 0, 0,190, 0, 1, 0,
+ 4, 0, 66, 4, 4, 0, 67, 4, 4, 0, 68, 4, 4, 0, 18, 0, 11, 0, 69, 4, 11, 0, 70, 4, 14, 0, 71, 4,140, 0, 23, 0,
+140, 0, 0, 0,140, 0, 1, 0, 4, 0, 18, 0, 4, 0, 72, 4, 4, 0, 73, 4, 4, 0, 74, 4, 4, 0, 75, 4, 4, 0, 76, 4,
+ 4, 0, 77, 4, 4, 0, 78, 4, 4, 0, 27, 0, 4, 0, 67, 4, 4, 0, 17, 2, 2, 0, 79, 4, 2, 0, 55, 0, 0, 0, 19, 0,
+ 0, 0, 80, 4, 0, 0, 81, 4, 0, 0, 82, 4, 0, 0, 83, 4, 14, 0, 84, 4,191, 0, 85, 4, 11, 0, 86, 4,192, 0, 1, 0,
+ 7, 0, 50, 2,182, 0, 30, 0, 4, 0, 18, 0, 7, 0, 87, 4, 7, 0, 88, 4, 7, 0, 89, 4, 4, 0, 90, 4, 4, 0, 91, 4,
+ 4, 0, 92, 4, 4, 0, 93, 4, 7, 0, 94, 4, 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 7, 0, 99, 4,
+ 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 7, 0,106, 4, 7, 0,107, 4,
+ 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4, 4, 0,112, 4, 4, 0,113, 4, 7, 0,114, 4, 7, 0,232, 3,
+184, 0, 54, 0, 4, 0, 67, 4, 4, 0,115, 4,193, 0,116, 4,194, 0,117, 4, 0, 0, 27, 0, 0, 0,118, 4, 2, 0,119, 4,
+ 7, 0,120, 4, 0, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4, 7, 0,126, 4, 7, 0,127, 4,
+ 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 2, 0,131, 4, 0, 0,132, 4, 2, 0,133, 4, 7, 0,134, 4, 7, 0,135, 4,
+ 0, 0,136, 4, 4, 0,128, 0, 4, 0,137, 4, 4, 0,138, 4, 2, 0,139, 4, 2, 0,140, 4,192, 0,141, 4, 4, 0,142, 4,
+ 4, 0, 81, 0, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4,
+ 2, 0,150, 4, 2, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4,195, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4,
+140, 0,158, 4, 14, 0, 26, 3,188, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 4, 0,163, 4,196, 0, 1, 0,
+ 7, 0,164, 4,156, 0, 52, 0,155, 0,165, 4, 2, 0, 16, 0, 2, 0,166, 4, 2, 0,167, 4, 2, 0,168, 4, 7, 0,169, 4,
+ 2, 0,170, 4, 2, 0,171, 4, 7, 0,172, 4, 2, 0,173, 4, 2, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 7, 0,177, 4,
+ 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4, 4, 0, 27, 0, 7, 0,181, 4, 4, 0,182, 4, 7, 0,183, 4, 7, 0,184, 4,
+ 7, 0,185, 4, 79, 0,186, 4, 79, 0,187, 4, 0, 0,188, 4, 7, 0,189, 4, 7, 0,190, 4, 31, 0, 79, 0, 2, 0,191, 4,
+ 0, 0,192, 4, 0, 0,193, 4, 7, 0,194, 4, 4, 0,195, 4, 7, 0,196, 4, 7, 0,197, 4, 4, 0,198, 4, 4, 0, 18, 0,
+ 7, 0,199, 4, 7, 0,200, 4, 7, 0,201, 4,196, 0,202, 4, 4, 0, 52, 0, 7, 0,203, 4, 7, 0,204, 4, 7, 0,205, 4,
+ 7, 0,206, 4, 7, 0,207, 4, 7, 0,208, 4, 7, 0,209, 4, 4, 0,210, 4, 7, 0,211, 4,197, 0, 78, 0, 22, 0, 32, 0,
+ 34, 0, 74, 0, 2, 0,178, 0, 2, 0, 88, 1, 2, 0,124, 1, 2, 0,212, 4, 7, 0,213, 4, 7, 0,214, 4, 7, 0,215, 4,
+ 7, 0,216, 4, 7, 0,217, 4, 7, 0,218, 4, 7, 0,173, 1, 7, 0,175, 1, 7, 0,174, 1, 7, 0, 30, 0, 4, 0,219, 4,
+ 7, 0,220, 4, 7, 0,221, 4, 7, 0,222, 4, 7, 0,223, 4, 7, 0,224, 4, 7, 0,225, 4, 7, 0,226, 4, 2, 0,227, 4,
+ 2, 0, 87, 1, 2, 0,228, 4, 2, 0,229, 4, 2, 0,230, 4, 2, 0,231, 4, 2, 0,232, 4, 2, 0,233, 4, 7, 0,234, 4,
+ 7, 0,235, 4, 7, 0,236, 4, 7, 0,237, 4, 7, 0,238, 4, 7, 0,239, 4, 7, 0,240, 4, 7, 0,241, 4, 7, 0,242, 4,
+ 7, 0,243, 4, 7, 0,244, 4, 7, 0,245, 4, 2, 0,246, 4, 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 7, 0,250, 4,
+ 7, 0,251, 4, 7, 0,252, 4, 7, 0,253, 4, 2, 0,254, 4, 2, 0,255, 4, 2, 0, 0, 5, 2, 0, 1, 5, 7, 0, 2, 5,
+ 7, 0, 3, 5, 7, 0, 4, 5, 7, 0, 5, 5, 7, 0, 6, 5, 7, 0, 7, 5, 7, 0, 8, 5, 2, 0, 9, 5, 2, 0, 10, 5,
+ 2, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 18, 0, 7, 0, 14, 5, 7, 0, 15, 5, 31, 0, 79, 0, 46, 0,143, 1,
+ 2, 0,144, 1, 2, 0, 76, 1, 2, 0,186, 2, 25, 0,153, 0, 57, 0, 70, 1,198, 0, 8, 0,198, 0, 0, 0,198, 0, 1, 0,
+ 4, 0,210, 3, 4, 0, 16, 5, 4, 0, 18, 0, 2, 0, 17, 5, 2, 0, 18, 5, 27, 0,167, 0,199, 0, 13, 0, 11, 0, 19, 5,
+ 11, 0, 20, 5, 4, 0, 21, 5, 4, 0, 22, 5, 4, 0, 23, 5, 4, 0, 24, 5, 4, 0, 25, 5, 4, 0, 26, 5, 4, 0, 27, 5,
+ 4, 0, 28, 5, 4, 0, 29, 5, 4, 0, 27, 0, 0, 0, 30, 5,200, 0, 5, 0, 11, 0, 31, 5, 11, 0, 32, 5, 4, 0, 33, 5,
+ 4, 0, 30, 0, 0, 0, 34, 5,201, 0, 17, 0, 4, 0, 35, 5, 4, 0, 36, 5, 4, 0, 37, 5, 4, 0, 38, 5, 4, 0, 39, 5,
+ 4, 0, 40, 5, 4, 0, 41, 5, 4, 0, 42, 5, 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 4, 0, 46, 5, 2, 0, 47, 5,
+ 2, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, 4, 0, 66, 0,202, 0, 17, 0, 4, 0, 16, 0, 4, 0, 37, 5, 4, 0, 51, 5,
+ 4, 0, 52, 5, 4, 0, 53, 5, 4, 0, 54, 5, 4, 0, 55, 5, 4, 0, 56, 5, 7, 0, 57, 5, 4, 0, 58, 5, 4, 0, 91, 0,
+ 4, 0, 59, 5, 4, 0, 60, 5, 4, 0, 61, 5, 4, 0, 62, 5, 4, 0, 63, 5, 21, 0, 31, 0,203, 0, 9, 0, 4, 0, 64, 5,
+ 7, 0, 65, 5, 7, 0, 66, 5, 7, 0, 67, 5, 4, 0, 68, 5, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0, 89, 4, 7, 0, 30, 0,
+204, 0, 13, 0,204, 0, 0, 0,204, 0, 1, 0, 0, 0, 19, 0, 63, 0, 69, 5, 64, 0, 70, 5, 4, 0,210, 3, 4, 0, 71, 5,
+ 4, 0, 72, 5, 4, 0, 73, 5, 4, 0, 74, 5, 4, 0, 75, 5, 4, 0, 76, 5, 4, 0, 27, 0,205, 0, 13, 0, 0, 0, 77, 5,
+ 0, 0,250, 0, 0, 0, 78, 5, 0, 0, 18, 0, 0, 0, 79, 5, 0, 0, 80, 5, 0, 0, 81, 5, 0, 0, 82, 5, 2, 0, 83, 5,
+ 2, 0, 84, 5, 7, 0, 85, 5, 0, 0, 86, 5, 0, 0,123, 0,206, 0,106, 0,205, 0, 87, 5,199, 0, 88, 5,200, 0, 89, 5,
+201, 0, 90, 5,202, 0, 91, 5, 4, 0, 41, 3, 4, 0,128, 0, 4, 0,137, 4, 7, 0, 92, 5, 4, 0, 93, 5, 4, 0, 94, 5,
+ 4, 0, 95, 5, 4, 0, 96, 5, 2, 0, 18, 0, 2, 0, 97, 5, 7, 0, 98, 5, 7, 0, 99, 5, 7, 0,100, 5, 7, 0,101, 5,
+ 7, 0,102, 5, 2, 0,103, 5, 2, 0,104, 5, 2, 0,105, 5, 2, 0,106, 5, 2, 0,250, 0, 2, 0,107, 5, 4, 0,108, 5,
+ 2, 0,109, 5, 2, 0,110, 5, 2, 0,110, 1, 2, 0,107, 0, 2, 0,111, 5, 2, 0,112, 5, 2, 0,113, 5, 2, 0,114, 5,
+ 2, 0,115, 5, 2, 0, 78, 5, 2, 0, 77, 5, 2, 0,116, 5, 2, 0, 79, 5, 2, 0,117, 5, 4, 0,118, 5, 4, 0, 87, 1,
+ 4, 0,119, 5, 2, 0,120, 5, 2, 0, 66, 0, 2, 0,121, 5, 2, 0,122, 5, 2, 0,123, 5, 2, 0,124, 5, 2, 0,125, 5,
+ 2, 0,126, 5, 19, 0,127, 5, 19, 0,128, 5, 18, 0,129, 5, 14, 0,130, 5, 2, 0,131, 5, 2, 0,132, 5, 7, 0,133, 5,
+ 7, 0,134, 5, 7, 0,135, 5, 7, 0,136, 5, 4, 0,137, 5, 7, 0,138, 5, 7, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5,
+ 2, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, 2, 0,146, 5, 2, 0,147, 5, 7, 0,148, 5, 7, 0,149, 5,
+ 7, 0,150, 5, 0, 0,151, 5, 4, 0,152, 5, 2, 0,153, 5, 2, 0,250, 1, 0, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5,
+ 0, 0,157, 5, 0, 0,158, 5, 0, 0,159, 5, 0, 0,160, 5, 4, 0,161, 5, 2, 0,162, 5, 2, 0,163, 5, 7, 0,164, 5,
+ 7, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5, 7, 0,168, 5, 2, 0,169, 5, 2, 0,170, 5, 4, 0,171, 5, 2, 0,172, 5,
+ 2, 0,173, 5, 2, 0,174, 5, 2, 0,175, 5, 7, 0,176, 5, 7, 0, 30, 0, 37, 0,177, 5, 0, 0,178, 5,207, 0, 9, 0,
+207, 0, 0, 0,207, 0, 1, 0, 0, 0,179, 5, 2, 0,180, 5, 2, 0,181, 5, 2, 0,182, 5, 2, 0, 66, 0, 7, 0,183, 5,
+ 7, 0, 30, 0,208, 0, 7, 0, 2, 0,236, 2, 2, 0, 87, 1, 2, 0, 99, 3, 2, 0,184, 5, 7, 0,185, 5, 7, 0, 30, 0,
+ 37, 0,186, 5,209, 0, 5, 0, 7, 0,187, 5, 0, 0, 16, 0, 0, 0, 66, 0, 0, 0, 30, 0, 0, 0,250, 1,210, 0, 15, 0,
+ 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 7, 0,192, 5, 7, 0,193, 5, 7, 0,194, 5, 7, 0,195, 5,
+ 7, 0,196, 5, 7, 0,197, 5, 4, 0,198, 5, 7, 0,199, 5, 7, 0,200, 5, 2, 0, 66, 0, 2, 0, 30, 0,211, 0, 32, 0,
+209, 0,201, 5, 2, 0,202, 5, 2, 0,104, 5, 2, 0,105, 5, 2, 0,106, 5, 2, 0,250, 0, 2, 0,107, 5, 2, 0,203, 5,
+ 2, 0,204, 5, 2, 0,205, 5, 2, 0,206, 5,208, 0,207, 5, 2, 0,208, 5, 2, 0,109, 5, 7, 0,209, 5,210, 0,210, 5,
+ 7, 0,225, 4, 7, 0,226, 4, 4, 0, 18, 0, 2, 0, 87, 1, 2, 0,211, 5, 2, 0,228, 4, 2, 0,229, 4, 2, 0,212, 5,
+ 2, 0, 27, 0, 2, 0,230, 4, 2, 0,231, 4, 2, 0,232, 4, 2, 0,233, 4, 2, 0,213, 5, 2, 0, 66, 0, 7, 0,214, 5,
+212, 0, 6, 0,212, 0, 0, 0,212, 0, 1, 0, 4, 0, 66, 4, 0, 0, 19, 0, 4, 0, 18, 0, 27, 0,215, 5,213, 0, 6, 0,
+214, 0,151, 3, 11, 0,216, 5, 0, 0,217, 5, 4, 0, 91, 0, 4, 0,218, 5, 4, 0, 27, 0,215, 0, 8, 0,213, 0,219, 5,
+ 2, 0, 18, 0, 2, 0, 27, 0, 2, 0,220, 5, 2, 0,221, 5, 2, 0,222, 5, 4, 0, 66, 0, 11, 0,223, 5,216, 0, 6, 0,
+ 2, 0,107, 0, 2, 0, 72, 4, 2, 0,224, 5, 2, 0,230, 2, 4, 0, 18, 0, 7, 0,214, 2,217, 0, 14, 0, 2, 0, 18, 0,
+ 2, 0,225, 5, 2, 0,226, 5, 2, 0,227, 5,216, 0,228, 5, 11, 0,223, 5, 7, 0,229, 5, 7, 0, 55, 0, 4, 0,230, 5,
+ 4, 0,231, 5, 4, 0,232, 5, 4, 0,233, 5, 41, 0,124, 0, 27, 0,167, 0,218, 0, 14, 0,213, 0,219, 5, 4, 0, 91, 0,
+ 4, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 4, 0,238, 5, 4, 0,239, 5, 7, 0,240, 5, 7, 0,241, 5,
+ 4, 0,242, 5, 7, 0,243, 5, 7, 0,244, 5, 4, 0, 27, 0,219, 0, 1, 0,213, 0,219, 5,220, 0, 7, 0,213, 0,219, 5,
+ 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,240, 0, 4, 0,245, 5, 91, 0,246, 5, 11, 0,223, 5,221, 0, 5, 0,221, 0, 0, 0,
+221, 0, 1, 0, 0, 0, 19, 0, 7, 0,247, 5, 4, 0, 27, 0,222, 0, 6, 0, 4, 0,107, 0, 7, 0,248, 5, 7, 0,181, 1,
+ 7, 0, 43, 2, 4, 0, 18, 0, 4, 0, 27, 0,223, 0, 85, 0,220, 0,249, 5,220, 0,250, 5,218, 0,174, 3,219, 0,251, 5,
+ 7, 0,252, 5, 2, 0,253, 5, 2, 0,250, 1, 7, 0,254, 5, 7, 0,255, 5, 2, 0, 72, 4, 2, 0, 0, 6, 7, 0, 1, 6,
+ 7, 0, 2, 6, 7, 0, 3, 6, 2, 0, 4, 6, 2, 0,230, 5, 2, 0, 5, 6, 2, 0, 6, 6, 2, 0, 7, 6, 2, 0, 8, 6,
+ 7, 0, 9, 6, 7, 0, 10, 6, 7, 0, 11, 6, 2, 0, 12, 6, 2, 0, 13, 6, 2, 0, 14, 6, 2, 0, 15, 6, 2, 0, 16, 6,
+ 2, 0, 17, 6, 2, 0, 18, 6, 2, 0, 19, 6,215, 0, 20, 6,217, 0, 21, 6, 7, 0, 22, 6, 7, 0, 23, 6, 7, 0, 24, 6,
+ 2, 0, 25, 6, 2, 0, 26, 6, 0, 0, 27, 6, 0, 0, 28, 6, 2, 0, 29, 6, 7, 0, 30, 6, 7, 0, 31, 6, 7, 0, 32, 6,
+ 7, 0, 33, 6, 7, 0, 34, 6, 7, 0, 35, 6, 7, 0, 36, 6, 7, 0, 37, 6, 7, 0, 38, 6, 7, 0, 39, 6, 2, 0, 40, 6,
+ 0, 0, 41, 6, 0, 0, 42, 6, 0, 0, 43, 6, 0, 0, 44, 6, 27, 0, 45, 6, 0, 0, 46, 6, 0, 0, 47, 6, 0, 0, 48, 6,
+ 0, 0, 49, 6, 0, 0, 50, 6, 0, 0, 51, 6, 0, 0, 52, 6, 0, 0, 53, 6, 0, 0, 54, 6, 0, 0, 55, 6, 2, 0, 56, 6,
+ 2, 0, 57, 6, 2, 0, 58, 6, 2, 0, 59, 6, 0, 0, 60, 6, 0, 0, 61, 6, 0, 0, 62, 6, 0, 0, 63, 6, 4, 0, 64, 6,
+ 4, 0, 65, 6, 4, 0, 66, 6, 4, 0, 67, 6, 2, 0, 68, 6, 2, 0, 66, 0, 4, 0, 69, 6, 7, 0, 70, 6, 7, 0, 71, 6,
+222, 0, 72, 6,224, 0, 8, 0, 4, 0, 73, 6, 4, 0, 74, 6, 4, 0, 75, 6, 4, 0, 76, 6, 4, 0, 77, 6, 4, 0, 78, 6,
+ 4, 0, 52, 0, 4, 0,143, 2,225, 0, 4, 0, 7, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 2, 0, 18, 0,226, 0, 4, 0,
+ 7, 0, 82, 6, 4, 0, 18, 0, 4, 0, 83, 6, 4, 0, 55, 0, 41, 0, 46, 0, 22, 0, 32, 0, 34, 0, 74, 0, 27, 0,215, 5,
+197, 0, 84, 6, 41, 0, 85, 6, 14, 0, 86, 6,198, 0, 87, 6, 27, 0, 88, 6, 7, 0, 89, 6, 7, 0, 90, 6, 7, 0, 91, 6,
+ 7, 0, 92, 6, 4, 0,210, 3, 4, 0, 93, 6, 4, 0, 94, 6, 2, 0, 18, 0, 2, 0, 76, 1, 57, 0, 70, 1,227, 0, 95, 6,
+223, 0, 96, 6,228, 0, 97, 6,206, 0,184, 0,203, 0, 98, 6, 14, 0,101, 0, 14, 0, 99, 6, 11, 0,100, 6, 11, 0,101, 6,
+ 11, 0,102, 6, 11, 0,103, 6, 11, 0,104, 6,229, 0,105, 6, 2, 0,106, 6, 2, 0,107, 6, 2, 0,251, 0, 2, 0,211, 3,
+ 4, 0,221, 3, 4, 0,108, 6, 14, 0,109, 6,209, 0,201, 5,211, 0,110, 6,225, 0,111, 6,179, 0,187, 3,226, 0,112, 6,
+230, 0,113, 6, 10, 0, 12, 4, 10, 0,114, 6,231, 0, 14, 0,231, 0, 0, 0,231, 0, 1, 0, 42, 0,242, 0, 40, 0, 69, 1,
+230, 0,113, 6,232, 0,115, 6, 7, 0,100, 2, 7, 0,101, 2, 7, 0,107, 0, 7, 0,116, 6, 2, 0,117, 6, 2, 0, 18, 0,
+ 2, 0,142, 0, 2, 0, 27, 0,233, 0, 39, 0, 7, 0,118, 6, 7, 0,119, 6, 7, 0,120, 6, 7, 0,121, 6, 7, 0,122, 6,
+ 7, 0,123, 6, 7, 0,124, 6, 7, 0,125, 6, 7, 0,126, 6, 68, 0,127, 6,179, 0,187, 3,233, 0,128, 6,234, 0,129, 6,
+235, 0,130, 6,236, 0,131, 6,237, 0,132, 6,238, 0,133, 6, 7, 0,134, 6, 7, 0,135, 6, 7, 0, 94, 1, 7, 0,136, 6,
+ 7, 0,137, 6, 7, 0,138, 6, 7, 0,139, 6, 7, 0,174, 0, 7, 0,140, 6, 0, 0,141, 6, 0, 0,142, 6, 0, 0,117, 6,
+ 0, 0,143, 6, 2, 0,144, 6, 2, 0,145, 6, 7, 0,146, 6, 2, 0,147, 6, 2, 0,148, 6, 7, 0,149, 6, 7, 0,150, 6,
+ 7, 0,151, 6, 7, 0,152, 6,239, 0, 51, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6,
+ 2, 0,156, 6, 7, 0,135, 6, 7, 0, 94, 1, 7, 0,157, 6, 2, 0,158, 6, 0, 0,216, 2, 4, 0,159, 6, 2, 0,142, 6,
+ 2, 0,117, 6, 27, 0,215, 5, 27, 0,160, 6, 14, 0,161, 6,231, 0,162, 6,239, 0,128, 6, 0, 0,163, 6, 4, 0,210, 3,
+ 4, 0, 93, 6, 2, 0,164, 6, 2, 0,165, 6, 2, 0,166, 6, 2, 0,167, 6, 2, 0, 18, 0, 2, 0, 35, 2, 7, 0,113, 0,
+ 7, 0,168, 6, 7, 0,169, 6, 7, 0,170, 6, 7, 0,174, 0, 7, 0, 89, 6, 2, 0,171, 6, 2, 0,172, 6, 2, 0,173, 6,
+ 0, 0,174, 6, 0, 0,175, 6, 0, 0,176, 6, 0, 0,177, 6, 0, 0,178, 6, 14, 0,179, 6, 14, 0,180, 6, 14, 0,181, 6,
+ 2, 0,182, 6, 2, 0,157, 2, 2, 0,183, 6, 0, 0,184, 6, 11, 0,185, 6,179, 0,187, 3,241, 0, 24, 0, 19, 0,240, 0,
+ 19, 0, 62, 0, 18, 0,186, 6, 18, 0,187, 6, 18, 0,188, 6, 7, 0,189, 6, 7, 0,190, 6, 7, 0,191, 6, 7, 0,192, 6,
+ 2, 0,193, 6, 2, 0,194, 6, 2, 0,195, 6, 2, 0,196, 6, 2, 0,197, 6, 2, 0, 18, 0, 2, 0,198, 6, 2, 0,199, 6,
+ 2, 0,200, 6, 2, 0,201, 6, 2, 0,202, 6, 2, 0,167, 6, 7, 0,203, 6, 4, 0,204, 6, 4, 0,205, 6,240, 0, 6, 0,
+240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6,242, 0, 8, 0,240, 0, 0, 0,
+240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6, 0, 0,206, 6, 0, 0,123, 0,243, 0, 14, 0,
+240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6,241, 0,207, 6,244, 0,208, 6,
+ 14, 0,209, 6, 2, 0, 87, 1, 2, 0,210, 6, 4, 0, 18, 0, 7, 0,211, 6, 4, 0,167, 6,245, 0, 21, 0,240, 0, 0, 0,
+240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6,241, 0,207, 6, 2, 0,212, 6, 2, 0,213, 6,
+ 2, 0,214, 6, 2, 0,215, 6, 2, 0,198, 6, 2, 0,216, 6, 2, 0,217, 6, 0, 0, 18, 0, 0, 0, 27, 0, 11, 0, 76, 2,
+ 4, 0,218, 6, 4, 0,219, 6, 22, 0,220, 6, 11, 0,221, 6,246, 0, 18, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6,
+ 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6,241, 0,207, 6, 7, 0,100, 2, 7, 0,101, 2, 2, 0,212, 6, 2, 0,222, 6,
+ 2, 0,223, 6, 2, 0,224, 6, 4, 0, 18, 0, 7, 0,225, 6, 4, 0,117, 6, 4, 0, 27, 0,179, 0,187, 3,247, 0, 16, 0,
+ 0, 0,226, 6, 0, 0,227, 6, 0, 0,228, 6, 0, 0,229, 6, 0, 0,230, 6, 0, 0,231, 6, 4, 0,232, 6, 4, 0,233, 6,
+ 4, 0,234, 6, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,235, 6, 2, 0,236, 6, 2, 0,193, 1, 2, 0,237, 6, 0, 0,238, 6,
+248, 0, 16, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 4, 0,239, 6,247, 0,240, 6,249, 0,241, 6,
+ 14, 0,242, 6, 14, 0,243, 6,250, 0,244, 6,238, 0,245, 6,251, 0,246, 6, 2, 0,247, 6, 2, 0,248, 6, 2, 0,249, 6,
+ 2, 0, 30, 0,252, 0, 15, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6,
+241, 0,207, 6, 14, 0,250, 6,253, 0,251, 6, 0, 0,252, 6,254, 0,253, 6, 2, 0, 18, 0, 2, 0,254, 6, 2, 0,255, 6,
+ 2, 0, 0, 7,255, 0, 25, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 4, 0, 18, 0, 42, 0,249, 2,
+ 40, 0, 69, 1, 54, 0, 1, 7, 0, 1, 2, 7, 1, 1, 3, 7,179, 0,187, 3, 7, 0, 4, 7, 7, 0,100, 2, 7, 0,101, 2,
+ 7, 0,225, 6, 7, 0, 5, 7, 7, 0, 6, 7, 2, 0, 7, 7, 2, 0, 27, 0, 2, 0, 8, 7, 2, 0, 9, 7, 0, 0, 10, 7,
+ 0, 0, 11, 7, 0, 0, 12, 7, 0, 0,167, 6, 2, 1, 11, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6,
+ 7, 0,155, 6, 2, 0,156, 6, 2, 0,210, 6, 2, 0, 18, 0, 4, 0, 27, 0,244, 0,208, 6,241, 0,207, 6, 3, 1, 31, 0,
+240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6, 37, 0, 13, 7, 4, 0, 14, 7,
+ 4, 0, 15, 7, 2, 0, 91, 0, 2, 0, 16, 7, 2, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 4, 0, 20, 7, 4, 0, 21, 7,
+ 4, 0, 22, 7, 2, 0, 23, 7, 2, 0, 24, 7, 2, 0, 25, 7, 2, 0, 26, 7, 7, 0, 27, 7, 18, 0, 28, 7, 18, 0, 29, 7,
+ 4, 0, 30, 7, 4, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 2, 0, 34, 7, 0, 0,216, 2, 11, 0, 35, 7, 4, 1, 10, 0,
+ 22, 0, 32, 0, 11, 0, 36, 7, 11, 0, 37, 7, 11, 0, 38, 7, 11, 0, 39, 7, 11, 0, 40, 7, 4, 0, 91, 0, 4, 0, 41, 7,
+ 0, 0, 42, 7, 0, 0, 43, 7, 5, 1, 10, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6,
+ 4, 1, 44, 7, 2, 0, 91, 0, 2, 0, 16, 7, 4, 0, 66, 0, 11, 0, 45, 7, 6, 1, 3, 0, 6, 1, 0, 0, 6, 1, 1, 0,
+ 7, 0, 46, 7, 7, 1, 9, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6,241, 0,207, 6,
+ 14, 0, 47, 7, 4, 0, 48, 7, 4, 0, 18, 0, 8, 1, 27, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6,
+ 7, 0,155, 6, 2, 0,156, 6,241, 0,207, 6, 22, 0, 49, 7, 22, 0, 80, 0, 2, 0, 18, 0, 2, 0, 66, 0, 7, 0, 50, 7,
+ 7, 0,100, 2, 7, 0,101, 2, 7, 0,225, 6, 7, 0, 51, 7, 7, 0, 52, 7, 7, 0, 53, 7, 57, 0, 70, 1, 57, 0, 54, 7,
+ 4, 0, 55, 7, 2, 0, 56, 7, 2, 0, 57, 7, 2, 0,251, 0, 2, 0, 86, 1, 14, 0, 58, 7,179, 0,187, 3, 9, 1, 10, 0,
+240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6, 2, 0, 18, 0, 2, 0,219, 3,
+ 4, 0, 27, 0,179, 0,187, 3, 10, 1, 7, 0, 10, 1, 0, 0, 10, 1, 1, 0, 4, 0, 59, 7, 4, 0, 22, 0, 0, 0, 85, 0,
+ 4, 0, 60, 7, 4, 0, 16, 0, 11, 1, 14, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6,
+ 2, 0,156, 6, 4, 0, 17, 7, 4, 0, 27, 0, 14, 0, 61, 7, 14, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, 4, 0, 65, 7,
+ 4, 0, 66, 7, 12, 1, 6, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 4, 0, 27, 0, 0, 0, 67, 7,
+ 13, 1, 28, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,100, 2, 7, 0,101, 2, 7, 0, 68, 7,
+ 7, 0, 69, 7, 7, 0,225, 6,232, 0, 70, 7,230, 0,113, 6, 14, 1, 2, 7, 4, 0, 18, 0, 2, 0, 87, 1, 2, 0,117, 6,
+ 4, 0, 71, 7, 7, 0, 72, 7, 7, 0,153, 3, 7, 0, 99, 3, 4, 0, 27, 0, 7, 0, 73, 7, 7, 0, 74, 7, 4, 0, 75, 7,
+ 4, 0, 30, 0, 11, 0, 76, 7, 2, 0, 77, 7, 2, 0, 78, 7, 4, 0,250, 1, 15, 1, 7, 0, 15, 1, 0, 0, 15, 1, 1, 0,
+ 0, 0, 79, 7, 2, 0, 80, 7, 2, 0, 81, 7, 2, 0, 82, 7, 2, 0, 27, 0, 16, 1, 12, 0, 2, 0, 81, 7, 2, 0, 83, 7,
+ 2, 0, 84, 7, 0, 0,216, 2, 2, 0, 85, 7, 2, 0, 86, 7, 2, 0, 87, 7, 2, 0, 88, 7, 2, 0, 89, 7, 2, 0,198, 6,
+ 7, 0, 90, 7, 7, 0, 91, 7, 17, 1, 18, 0, 17, 1, 0, 0, 17, 1, 1, 0, 0, 0, 19, 0, 16, 1, 92, 7, 16, 1, 93, 7,
+ 16, 1, 94, 7, 16, 1, 95, 7, 7, 0, 96, 7, 2, 0, 97, 7, 2, 0, 98, 7, 2, 0, 99, 7, 2, 0,100, 7, 2, 0,101, 7,
+ 2, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, 2, 0, 27, 0, 18, 1, 10, 0, 0, 0,106, 7, 0, 0,107, 7,
+ 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 2, 0,112, 7, 2, 0,113, 7, 2, 0,114, 7, 2, 0,115, 7,
+ 19, 1, 8, 0, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, 0, 0,121, 7, 7, 0,116, 6,
+ 7, 0, 27, 0, 20, 1, 3, 0, 0, 0,122, 7, 2, 0,123, 7, 2, 0, 27, 0, 21, 1, 22, 0, 18, 1,124, 7, 18, 1,125, 7,
+ 18, 1,126, 7, 18, 1,127, 7, 18, 1,128, 7, 18, 1,129, 7, 18, 1,130, 7, 18, 1,131, 7, 18, 1,132, 7, 18, 1,133, 7,
+ 18, 1,134, 7, 18, 1,135, 7, 18, 1,136, 7, 18, 1,137, 7, 18, 1,138, 7, 18, 1,139, 7, 18, 1,140, 7, 19, 1,141, 7,
+ 20, 1,142, 7, 0, 0,143, 7, 7, 0,144, 7, 7, 0, 27, 0, 22, 1,122, 0, 0, 0,145, 7, 0, 0,146, 7, 0, 0,110, 7,
+ 0, 0,147, 7, 0, 0,122, 7, 0, 0,148, 7, 0, 0,149, 7, 0, 0,150, 7, 0, 0,151, 7, 0, 0,152, 7, 0, 0,153, 7,
+ 0, 0,154, 7, 0, 0,155, 7, 0, 0,156, 7, 0, 0,157, 7, 0, 0,158, 7, 0, 0,159, 7, 0, 0,160, 7, 0, 0,161, 7,
+ 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7,
+ 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7, 0, 0,177, 7,
+ 0, 0,178, 7, 0, 0,179, 7, 0, 0,180, 7, 0, 0,181, 7, 0, 0,182, 7, 0, 0,183, 7, 0, 0,184, 7, 0, 0,185, 7,
+ 0, 0,186, 7, 0, 0,187, 7, 0, 0,188, 7, 0, 0,189, 7, 0, 0,190, 7, 0, 0,191, 7, 0, 0,192, 7, 0, 0,193, 7,
+ 0, 0,194, 7, 0, 0,195, 7, 0, 0,196, 7, 0, 0,197, 7, 0, 0,198, 7, 0, 0,199, 7, 0, 0,200, 7, 0, 0,201, 7,
+ 0, 0,202, 7, 0, 0,203, 7, 0, 0,204, 7, 0, 0,205, 7, 0, 0,206, 7, 0, 0,207, 7, 0, 0,208, 7, 0, 0,209, 7,
+ 0, 0,210, 7, 0, 0,211, 7, 0, 0,212, 7, 0, 0,213, 7, 0, 0,214, 7, 0, 0,215, 7, 0, 0,216, 7, 0, 0,217, 7,
+ 0, 0,218, 7, 0, 0,219, 7, 0, 0,220, 7, 0, 0,221, 7, 0, 0,222, 7, 0, 0,223, 7, 0, 0,224, 7, 0, 0,225, 7,
+ 0, 0,226, 7, 0, 0,227, 7, 0, 0,228, 7, 0, 0,229, 7, 0, 0,230, 7, 0, 0,231, 7, 0, 0,232, 7, 0, 0,233, 7,
+ 0, 0,234, 7, 0, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7, 0, 0,238, 7, 0, 0,239, 7, 0, 0,240, 7, 0, 0,241, 7,
+ 0, 0,242, 7, 0, 0,243, 7, 0, 0,244, 7, 0, 0,245, 7, 0, 0,246, 7, 0, 0,247, 7, 0, 0,248, 7, 0, 0,249, 7,
+ 0, 0,250, 7, 0, 0,251, 7, 0, 0,252, 7, 0, 0,253, 7, 0, 0,254, 7, 0, 0,255, 7, 0, 0, 0, 8, 0, 0, 1, 8,
+ 0, 0, 2, 8, 0, 0, 3, 8, 0, 0, 4, 8, 0, 0, 5, 8, 0, 0, 6, 8, 0, 0, 7, 8, 0, 0, 8, 8, 23, 1, 5, 0,
+ 0, 0, 9, 8, 0, 0,168, 7, 0, 0,174, 7, 2, 0, 18, 0, 2, 0, 27, 0, 24, 1, 24, 0, 24, 1, 0, 0, 24, 1, 1, 0,
+ 0, 0,179, 5, 21, 1, 10, 8, 22, 1, 11, 8, 22, 1, 12, 8, 22, 1, 13, 8, 22, 1, 14, 8, 22, 1, 15, 8, 22, 1, 16, 8,
+ 22, 1, 17, 8, 22, 1, 18, 8, 22, 1, 19, 8, 22, 1, 20, 8, 22, 1, 21, 8, 22, 1, 22, 8, 22, 1, 23, 8, 22, 1, 24, 8,
+ 22, 1, 25, 8, 22, 1, 26, 8, 22, 1, 27, 8, 23, 1, 28, 8, 4, 0, 29, 8, 4, 0, 27, 0, 25, 1, 3, 0, 25, 1, 0, 0,
+ 25, 1, 1, 0, 0, 0, 30, 8, 26, 1, 5, 0, 4, 0, 18, 0, 4, 0, 27, 0, 7, 0,156, 2, 7, 0, 31, 8, 7, 0, 50, 2,
+ 27, 1, 95, 0, 4, 0, 18, 0, 4, 0, 32, 8, 4, 0, 33, 8, 0, 0, 34, 8, 0, 0, 35, 8, 0, 0, 36, 8, 0, 0, 37, 8,
+ 0, 0, 38, 8, 0, 0, 39, 8, 0, 0, 40, 8, 0, 0, 41, 8, 0, 0, 42, 8, 0, 0, 43, 8, 4, 0, 44, 8, 2, 0, 45, 8,
+ 2, 0, 46, 8, 2, 0, 47, 8, 2, 0, 48, 8, 4, 0, 49, 8, 4, 0, 50, 8, 4, 0, 51, 8, 4, 0, 52, 8, 2, 0, 53, 8,
+ 2, 0, 54, 8, 4, 0, 55, 8, 4, 0, 56, 8, 4, 0, 57, 8, 4, 0, 58, 8, 4, 0, 59, 8, 4, 0, 61, 7, 4, 0, 60, 8,
+ 2, 0, 61, 8, 2, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, 14, 0, 65, 8, 14, 0, 66, 8, 14, 0, 67, 8, 14, 0, 68, 8,
+ 14, 0, 69, 8, 14, 0, 70, 8, 0, 0, 71, 8, 2, 0, 72, 8, 2, 0, 73, 8, 2, 0, 74, 8, 2, 0, 75, 8, 2, 0, 76, 8,
+ 2, 0, 77, 8, 2, 0, 78, 8, 2, 0, 79, 8, 26, 1, 80, 8, 2, 0, 81, 8, 2, 0, 82, 8, 2, 0, 83, 8, 2, 0, 84, 8,
+ 2, 0, 85, 8, 2, 0, 86, 8, 2, 0, 87, 8, 2, 0, 88, 8, 4, 0, 89, 8, 4, 0, 90, 8, 2, 0, 91, 8, 2, 0, 92, 8,
+ 2, 0, 93, 8, 2, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8, 2, 0, 97, 8, 2, 0, 98, 8, 2, 0, 99, 8, 2, 0,100, 8,
+ 2, 0,101, 8, 2, 0,102, 8, 2, 0,103, 8, 2, 0,104, 8, 2, 0,105, 8, 2, 0,106, 8, 2, 0,107, 8, 2, 0,108, 8,
+ 7, 0,109, 8, 4, 0,110, 8, 7, 0,111, 8, 2, 0, 25, 6, 2, 0, 26, 6, 2, 0,112, 8, 2, 0,113, 8, 50, 0,114, 8,
+ 7, 0,115, 8, 2, 0,116, 8, 2, 0,250, 1, 0, 0,117, 8, 4, 0,118, 8, 4, 0,119, 8, 7, 0,120, 8, 7, 0, 27, 0,
+ 28, 1, 24, 0, 22, 0, 32, 0, 14, 0,121, 8, 14, 0,122, 8, 14, 0,123, 8, 14, 0,153, 6, 41, 0,124, 0, 41, 0,124, 8,
+ 4, 0,125, 8, 4, 0, 66, 0, 2, 0,126, 8, 2, 0,127, 8, 2, 0,128, 8, 2, 0,129, 8, 2, 0,130, 8, 2, 0,131, 8,
+ 2, 0,132, 8, 2, 0,133, 8, 2, 0,134, 8, 2, 0,135, 8, 2, 0,136, 8, 2, 0, 27, 0,238, 0,137, 8, 11, 0,138, 8,
+ 2, 0,139, 8, 29, 1, 5, 0, 29, 1, 0, 0, 29, 1, 1, 0, 29, 1,140, 8, 15, 0,141, 8, 4, 0, 18, 0, 30, 1, 7, 0,
+ 30, 1, 0, 0, 30, 1, 1, 0, 29, 1,142, 8, 29, 1,143, 8, 2, 0,128, 5, 2, 0, 18, 0, 4, 0, 27, 0, 31, 1, 25, 0,
+ 31, 1, 0, 0, 31, 1, 1, 0, 32, 1,144, 8, 33, 1,246, 6, 0, 0,145, 8, 0, 0,146, 8, 0, 0,147, 8, 2, 0,148, 8,
+ 2, 0,149, 8, 2, 0,150, 8, 2, 0,151, 8, 2, 0,152, 8, 2, 0, 27, 0, 2, 0, 18, 0, 2, 0,153, 8, 2, 0,154, 8,
+ 2, 0,155, 8, 4, 0,156, 8, 31, 1,157, 8, 11, 0,158, 8, 4, 0,159, 8, 4, 0,160, 8, 4, 0,161, 8, 4, 0,162, 8,
+ 0, 0,163, 8, 34, 1, 22, 0, 34, 1, 0, 0, 34, 1, 1, 0, 29, 1,142, 8, 29, 1,143, 8, 29, 1,164, 8, 29, 1,165, 8,
+ 28, 1,166, 8, 18, 0, 50, 0, 0, 0,154, 6, 0, 0,167, 8, 2, 0,199, 6, 2, 0,200, 6, 2, 0,168, 8, 2, 0, 27, 0,
+ 2, 0,130, 8, 2, 0, 60, 7, 2, 0, 18, 0, 35, 1,144, 8, 14, 0,169, 8, 14, 0,153, 6, 14, 0,170, 8, 14, 0,171, 8,
+ 36, 1, 24, 0, 36, 1, 0, 0, 36, 1, 1, 0,241, 0,207, 6, 18, 0,172, 8, 18, 0,173, 8, 2, 0,199, 6, 2, 0,200, 6,
+ 2, 0,174, 8, 2, 0,175, 8, 2, 0,176, 8, 2, 0, 18, 0, 7, 0, 96, 2, 2, 0,150, 8, 2, 0,151, 8, 2, 0,129, 8,
+ 2, 0,177, 8, 2, 0,134, 8, 2, 0, 86, 1, 37, 1,144, 8, 14, 0,178, 8, 14, 0,179, 8, 14, 0,170, 8, 0, 0,180, 8,
+ 11, 0,181, 8, 38, 1, 14, 0, 0, 0,182, 8, 2, 0,183, 8, 2, 0,184, 8, 2, 0,185, 8, 2, 0,186, 8, 2, 0,117, 5,
+ 2, 0,187, 8, 28, 1,188, 8, 41, 0,189, 8, 4, 0,190, 8, 4, 0,191, 8, 4, 0,192, 8, 4, 0, 27, 0, 0, 0, 79, 7,
+ 39, 1, 3, 0, 0, 0,193, 8, 4, 0,194, 8, 4, 0,195, 8, 40, 1, 4, 0, 4, 0, 14, 7, 4, 0,196, 8, 4, 0, 20, 7,
+ 4, 0,197, 8, 41, 1, 2, 0, 4, 0,198, 8, 4, 0,199, 8, 42, 1, 5, 0, 7, 0,200, 8, 7, 0,201, 8, 7, 0,202, 8,
+ 4, 0, 18, 0, 4, 0, 27, 0, 43, 1, 7, 0, 0, 0,203, 8, 0, 0,228, 6, 44, 0,137, 0, 2, 0,204, 8, 2, 0, 79, 5,
+ 2, 0,205, 8, 2, 0,206, 8, 44, 1, 12, 0, 44, 1, 0, 0, 44, 1, 1, 0, 4, 0, 28, 0, 4, 0,207, 8, 4, 0,208, 8,
+ 4, 0,209, 8, 39, 1,210, 8, 0, 0,203, 8, 43, 1,181, 3, 40, 1,211, 8, 41, 1,212, 8, 42, 1,213, 8, 45, 1, 12, 0,
+ 0, 0, 35, 0, 11, 0,226, 0, 0, 0,227, 0, 4, 0,230, 0, 4, 0,238, 0, 11, 0,231, 0, 7, 0,233, 0, 7, 0,234, 0,
+ 11, 0,214, 8, 11, 0,215, 8, 11, 0,235, 0, 11, 0,237, 0, 46, 1, 50, 0, 46, 1, 0, 0, 46, 1, 1, 0, 11, 0,216, 8,
+ 11, 0, 25, 0, 0, 0, 19, 0, 4, 0, 18, 0, 4, 0, 16, 0, 4, 0, 22, 0, 4, 0, 89, 0, 4, 0,217, 8, 4, 0,218, 8,
+ 4, 0,208, 8, 4, 0,209, 8, 4, 0,219, 8, 4, 0,250, 0, 4, 0,220, 8, 4, 0,221, 8, 7, 0,222, 8, 7, 0,223, 8,
+ 7, 0,224, 8, 2, 0,225, 8, 2, 0,226, 8, 4, 0,227, 8, 4, 0,228, 8, 44, 1,229, 8, 31, 0, 79, 0, 41, 0,124, 0,
+ 27, 0,230, 8, 44, 0,137, 0,230, 0,113, 6, 7, 0,231, 8, 7, 0,232, 8, 45, 1, 71, 1, 46, 1,233, 8, 46, 1,234, 8,
+ 46, 1,235, 8, 14, 0,236, 8, 47, 1,237, 8, 11, 0,238, 8, 7, 0, 89, 4, 7, 0,239, 8, 7, 0,240, 8, 7, 0,241, 8,
+ 11, 0,242, 8, 4, 0,243, 8, 4, 0,244, 8, 4, 0,245, 8, 7, 0,246, 8, 4, 0,128, 0, 4, 0, 27, 0, 48, 1, 4, 0,
+ 48, 1, 0, 0, 48, 1, 1, 0, 14, 0,247, 8, 46, 1,248, 8,227, 0, 11, 0, 14, 0,249, 8, 14, 0,236, 8, 14, 0,250, 8,
+ 46, 1,251, 8, 0, 0,252, 8, 0, 0,253, 8, 4, 0,254, 8, 4, 0,255, 8, 4, 0, 0, 9, 4, 0, 27, 0, 19, 0, 1, 9,
+ 49, 1, 4, 0, 7, 0, 2, 9, 7, 0, 99, 3, 2, 0, 3, 9, 2, 0, 4, 9, 50, 1, 6, 0, 7, 0, 5, 9, 7, 0, 6, 9,
+ 7, 0, 7, 9, 7, 0, 8, 9, 4, 0, 9, 9, 4, 0, 10, 9, 51, 1, 8, 0, 7, 0, 11, 9, 7, 0, 12, 9, 7, 0, 13, 9,
+ 7, 0, 14, 9, 7, 0, 15, 9, 4, 0,255, 2, 4, 0, 16, 9, 4, 0, 17, 9, 52, 1, 2, 0, 7, 0,187, 5, 7, 0, 27, 0,
+ 53, 1, 5, 0, 7, 0, 18, 9, 7, 0, 19, 9, 4, 0, 91, 0, 4, 0,217, 2, 4, 0, 20, 9, 54, 1, 6, 0, 54, 1, 0, 0,
+ 54, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 21, 9, 2, 0, 55, 0, 55, 1, 8, 0, 55, 1, 0, 0, 55, 1, 1, 0,
+ 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 21, 9, 2, 0, 55, 0, 7, 0, 22, 0, 7, 0,128, 0, 56, 1, 45, 0, 56, 1, 0, 0,
+ 56, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 21, 9, 2, 0,246, 0, 2, 0,131, 4, 2, 0, 22, 9, 7, 0, 23, 9,
+ 7, 0, 90, 0, 7, 0, 12, 3, 4, 0, 24, 9, 4, 0, 81, 0, 4, 0,219, 2, 7, 0, 25, 9, 7, 0, 26, 9, 7, 0, 27, 9,
+ 7, 0, 28, 9, 7, 0, 29, 9, 7, 0, 30, 9, 7, 0, 9, 3, 7, 0, 68, 1, 7, 0, 31, 9, 7, 0, 32, 9, 7, 0, 27, 0,
+ 7, 0, 33, 9, 7, 0, 34, 9, 7, 0, 35, 9, 2, 0, 36, 9, 2, 0, 37, 9, 2, 0, 38, 9, 2, 0, 39, 9, 2, 0, 40, 9,
+ 2, 0, 41, 9, 2, 0, 42, 9, 2, 0, 43, 9, 2, 0, 35, 2, 2, 0, 44, 9, 2, 0, 32, 2, 2, 0, 45, 9, 0, 0, 46, 9,
+ 0, 0, 47, 9, 7, 0,244, 0, 57, 1, 48, 9, 64, 0,253, 1, 58, 1, 16, 0, 58, 1, 0, 0, 58, 1, 1, 0, 2, 0, 16, 0,
+ 2, 0, 18, 0, 2, 0, 21, 9, 2, 0,246, 0, 7, 0, 4, 3, 7, 0, 5, 3, 7, 0, 6, 3, 7, 0, 85, 2, 7, 0, 7, 3,
+ 7, 0, 8, 3, 7, 0, 49, 9, 7, 0, 9, 3, 7, 0, 11, 3, 7, 0, 12, 3,254, 0, 5, 0, 2, 0, 16, 0, 2, 0, 50, 9,
+ 2, 0, 18, 0, 2, 0, 51, 9, 22, 0, 49, 7,253, 0, 3, 0, 4, 0, 68, 0, 4, 0, 52, 9,254, 0, 2, 0, 59, 1, 7, 0,
+ 59, 1, 0, 0, 59, 1, 1, 0, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 21, 0, 11, 0, 53, 9, 60, 1, 5, 0,
+ 0, 0, 19, 0, 7, 0, 94, 1, 7, 0, 54, 9, 4, 0, 55, 9, 4, 0, 27, 0, 61, 1, 4, 0, 2, 0, 16, 0, 2, 0, 18, 0,
+ 2, 0, 66, 0, 2, 0, 30, 0, 62, 1, 4, 0, 0, 0, 19, 0, 63, 0, 56, 9, 7, 0, 94, 1, 7, 0, 27, 0, 63, 1, 6, 0,
+ 2, 0, 57, 9, 2, 0, 58, 9, 2, 0, 16, 0, 2, 0, 59, 9, 0, 0, 60, 9, 0, 0, 61, 9, 64, 1, 5, 0, 4, 0, 16, 0,
+ 4, 0, 27, 0, 0, 0, 19, 0, 0, 0, 62, 9, 0, 0, 63, 9, 65, 1, 3, 0, 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0,
+ 66, 1, 4, 0, 2, 0, 64, 9, 2, 0, 65, 9, 2, 0, 18, 0, 2, 0, 27, 0, 67, 1, 6, 0, 0, 0, 19, 0, 0, 0, 66, 9,
+ 2, 0, 67, 9, 2, 0, 9, 3, 2, 0, 87, 1, 2, 0, 30, 0, 68, 1, 5, 0, 0, 0, 19, 0, 7, 0, 99, 3, 7, 0,222, 4,
+ 2, 0, 18, 0, 2, 0,231, 2, 69, 1, 3, 0, 0, 0, 19, 0, 4, 0,219, 2, 4, 0, 64, 9, 70, 1, 7, 0, 0, 0, 19, 0,
+ 7, 0,222, 4, 0, 0, 68, 9, 0, 0, 69, 9, 2, 0, 87, 1, 2, 0, 66, 0, 4, 0, 70, 9, 71, 1, 4, 0, 0, 0, 71, 9,
+ 0, 0, 72, 9, 4, 0, 16, 0, 7, 0,235, 2, 72, 1, 3, 0, 27, 0, 73, 9, 0, 0, 74, 9, 0, 0, 75, 9, 73, 1, 18, 0,
+ 73, 1, 0, 0, 73, 1, 1, 0, 2, 0, 16, 0, 2, 0, 76, 9, 2, 0, 18, 0, 2, 0, 77, 9, 2, 0, 78, 9, 2, 0, 79, 9,
+ 2, 0, 66, 0, 2, 0, 30, 0, 0, 0, 19, 0, 11, 0, 2, 0, 74, 1, 80, 9, 27, 0, 43, 0, 2, 0,224, 5, 2, 0,181, 2,
+ 2, 0, 81, 9, 2, 0, 27, 0, 75, 1, 11, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 82, 9, 2, 0, 18, 0, 2, 0,231, 2,
+ 2, 0, 83, 9, 4, 0, 84, 9, 4, 0, 85, 9, 4, 0, 86, 9, 4, 0, 87, 9, 4, 0, 88, 9, 76, 1, 1, 0, 0, 0, 89, 9,
+ 77, 1, 4, 0, 37, 0, 13, 7, 0, 0, 30, 8, 4, 0, 87, 1, 4, 0, 18, 0, 74, 1, 18, 0, 74, 1, 0, 0, 74, 1, 1, 0,
+ 74, 1, 90, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 91, 9, 2, 0, 79, 9, 2, 0, 76, 9, 2, 0, 92, 9, 2, 0, 30, 0,
+ 2, 0,250, 1, 0, 0, 19, 0, 11, 0, 2, 0, 78, 1, 80, 9, 73, 1, 93, 9, 2, 0, 14, 0, 2, 0, 94, 9, 4, 0, 95, 9,
+ 79, 1, 3, 0, 4, 0,245, 2, 4, 0, 27, 0, 27, 0, 43, 0, 80, 1, 15, 0,177, 0, 96, 9, 2, 0, 16, 0, 2, 0, 18, 0,
+ 7, 0, 23, 9, 7, 0, 90, 0, 0, 0, 19, 0, 0, 0, 97, 9, 2, 0, 98, 9, 2, 0, 99, 9, 2, 0,133, 0, 2, 0,100, 9,
+ 2, 0,101, 9, 2, 0, 27, 0, 7, 0,102, 9, 7, 0,103, 9, 81, 1, 8, 0, 7, 0,104, 9, 7, 0,105, 9, 7, 0,106, 9,
+ 7, 0,107, 9, 7, 0,108, 9, 7, 0,109, 9, 7, 0,110, 9, 7, 0,111, 9, 82, 1, 13, 0, 2, 0, 18, 0, 2, 0,112, 9,
+ 4, 0, 66, 0, 4, 0, 30, 0, 2, 0,184, 6, 7, 0, 89, 4, 7, 0,239, 8, 47, 1,237, 8, 81, 1,113, 9, 2, 0, 16, 0,
+ 2, 0,122, 5, 2, 0,221, 3, 2, 0,114, 9, 83, 1, 11, 0, 4, 0,245, 2, 2, 0, 16, 0, 2, 0, 18, 0, 27, 0, 43, 0,
+ 79, 0,115, 9, 0, 0, 19, 0, 7, 0,116, 9, 7, 0,117, 9, 7, 0,227, 3, 2, 0,118, 9, 2, 0,119, 9, 84, 1, 5, 0,
+ 2, 0, 16, 0, 2, 0, 66, 0, 4, 0, 27, 0, 41, 0,124, 0, 27, 0,215, 5, 85, 1, 5, 0, 4, 0, 27, 0, 4, 0, 16, 0,
+ 0, 0, 19, 0, 0, 0, 62, 9, 27, 0, 43, 0, 86, 1, 13, 0, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 76, 9, 2, 0,228, 3,
+ 7, 0,120, 9, 7, 0,121, 9, 7, 0, 86, 1, 7, 0,122, 9, 7, 0,197, 3, 7, 0,201, 3, 7, 0,123, 9, 7, 0,124, 9,
+ 27, 0,125, 9, 87, 1, 10, 0, 2, 0, 18, 0, 2, 0, 16, 0, 7, 0, 23, 9, 7, 0, 90, 0, 0, 0, 19, 0, 0, 0, 97, 9,
+ 2, 0, 66, 0, 2, 0, 30, 0, 2, 0,250, 1, 2, 0,122, 5, 88, 1, 8, 0, 27, 0, 43, 0, 7, 0, 6, 3, 7, 0,126, 9,
+ 7, 0,127, 9, 7, 0,228, 3, 2, 0, 66, 0, 2, 0,231, 2, 7, 0, 30, 0, 89, 1, 12, 0, 2, 0, 16, 0, 2, 0, 87, 1,
+ 2, 0, 18, 0, 2, 0, 9, 3, 2, 0,245, 2, 2, 0,128, 9, 4, 0, 27, 0, 7, 0,129, 9, 7, 0,130, 9, 7, 0,131, 9,
+ 7, 0,132, 9, 0, 0,133, 9, 90, 1, 9, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 23, 9, 4, 0, 90, 0, 0, 0, 19, 0,
+ 2, 0, 86, 1, 2, 0, 62, 0, 2, 0,134, 9, 2, 0,135, 9, 91, 1, 7, 0, 4, 0,219, 2, 4, 0,136, 9, 4, 0,137, 9,
+ 4, 0,138, 9, 7, 0,139, 9, 7, 0,140, 9, 0, 0, 68, 9, 92, 1, 7, 0, 0, 0,141, 9, 27, 0,142, 9, 0, 0, 74, 9,
+ 2, 0,143, 9, 2, 0, 66, 0, 4, 0, 30, 0, 0, 0, 75, 9, 93, 1, 6, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 23, 9,
+ 4, 0, 90, 0, 0, 0,144, 9, 0, 0,145, 9, 94, 1, 1, 0, 4, 0, 18, 0, 95, 1, 6, 0, 0, 0, 93, 0, 2, 0, 16, 0,
+ 2, 0, 18, 0, 4, 0,146, 9, 7, 0,147, 9, 37, 0, 13, 7, 96, 1, 4, 0, 0, 0,186, 2, 2, 0, 18, 0, 4, 0, 16, 0,
+ 27, 0, 43, 0, 97, 1, 2, 0, 4, 0, 16, 0, 4, 0,188, 6, 98, 1, 8, 0, 0, 0, 71, 9, 0, 0, 72, 9, 4, 0, 16, 0,
+ 7, 0, 43, 2, 7, 0,148, 9, 7, 0, 27, 0, 27, 0, 75, 3, 27, 0,149, 9, 99, 1, 11, 0, 0, 0, 61, 6, 0, 0, 18, 0,
+ 2, 0,150, 9, 4, 0, 16, 0, 7, 0, 94, 1, 7, 0,151, 9, 7, 0,152, 9, 7, 0,153, 9, 4, 0,154, 9, 27, 0, 75, 3,
+ 27, 0,155, 9, 78, 1, 10, 0, 78, 1, 0, 0, 78, 1, 1, 0, 78, 1, 90, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 76, 9,
+ 2, 0,156, 9, 0, 0, 19, 0, 11, 0, 2, 0, 27, 0, 43, 0, 47, 1, 17, 0, 22, 0, 32, 0, 0, 0, 35, 0, 38, 0,152, 0,
+ 11, 0,226, 0, 38, 0,157, 9, 31, 0, 79, 0, 7, 0, 89, 4, 7, 0,158, 9, 7, 0,239, 8, 7, 0,104, 9, 7, 0,105, 9,
+ 7, 0,159, 9, 4, 0, 91, 0, 4, 0, 27, 0, 11, 0,160, 9, 11, 0,161, 9, 11, 0,162, 9,100, 1, 6, 0,100, 1, 0, 0,
+100, 1, 1, 0, 27, 0, 43, 0, 11, 0,163, 9, 2, 0,251, 0, 0, 0,216, 2, 64, 0, 4, 0, 22, 0, 32, 0, 14, 0,164, 9,
+ 4, 0,133, 0, 7, 0,165, 9,101, 1, 28, 0,101, 1, 0, 0,101, 1, 1, 0, 21, 0,166, 9,101, 1, 37, 0, 14, 0,167, 9,
+ 0, 0, 19, 0, 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, 4, 0, 18, 0, 7, 0,172, 9, 7, 0,173, 9,
+ 7, 0,174, 9, 7, 0,175, 9, 7, 0, 94, 1, 7, 0, 43, 2, 7, 0,176, 9, 7, 0,217, 2, 7, 0,177, 9, 7, 0,178, 9,
+ 7, 0,179, 9, 7, 0,180, 9, 7, 0,181, 9, 7, 0,175, 0, 4, 0,133, 0, 2, 0, 5, 6, 2, 0,182, 9,102, 1, 27, 0,
+ 22, 0, 32, 0, 34, 0, 74, 0, 14, 0,183, 9, 14, 0,184, 9, 14, 0,185, 9,101, 1,186, 9, 11, 0,187, 9, 11, 0,188, 9,
+ 4, 0, 18, 0, 4, 0,164, 6, 4, 0,189, 9, 4, 0, 27, 0, 2, 0, 13, 3, 2, 0,218, 6, 4, 0,190, 9, 4, 0,133, 0,
+ 4, 0,191, 9, 2, 0,192, 9, 2, 0,193, 9, 2, 0,194, 9, 2, 0,195, 9, 4, 0,196, 9, 4, 0,197, 9, 4, 0,198, 9,
+ 4, 0,199, 9, 4, 0,200, 9, 4, 0,201, 9,103, 1, 2, 0, 7, 0,170, 2, 4, 0, 18, 0,181, 0, 5, 0,103, 1,202, 9,
+ 4, 0,217, 2, 4, 0,203, 9, 4, 0,204, 9, 4, 0, 18, 0,180, 0, 16, 0, 4, 0,205, 9, 4, 0,206, 9, 4, 0,207, 9,
+ 4, 0,208, 9, 2, 0,209, 9, 2, 0,210, 9, 2, 0,211, 9, 2, 0,251, 0, 2, 0,212, 9, 2, 0,213, 9, 2, 0,214, 9,
+ 2, 0,215, 9, 4, 0,216, 9, 4, 0,217, 9, 4, 0,218, 9, 4, 0,219, 9,104, 1, 40, 0,104, 1, 0, 0,104, 1, 1, 0,
+ 21, 0,166, 9, 14, 0, 0, 4, 0, 0, 19, 0, 2, 0, 18, 0, 2, 0,220, 9, 2, 0,214, 3, 2, 0,221, 9, 0, 0,222, 9,
+ 0, 0,223, 9, 0, 0,224, 9,101, 1,225, 9,104, 1, 37, 0,104, 1,226, 9, 14, 0,227, 9, 14, 0,228, 9,181, 0,189, 3,
+ 27, 0,229, 9,104, 1,230, 9, 7, 0, 77, 1, 7, 0,175, 0, 7, 0,231, 9, 7, 0, 22, 2, 7, 0,203, 3, 7, 0,205, 3,
+ 2, 0,237, 3, 2, 0, 27, 0, 7, 0,232, 9, 7, 0,233, 9, 7, 0,208, 3, 7, 0,234, 9, 7, 0,235, 9, 7, 0,236, 9,
+ 7, 0,237, 9, 7, 0,238, 9, 7, 0,239, 9, 7, 0,240, 9, 7, 0,241, 9, 11, 0,242, 9,178, 0, 16, 0, 14, 0,243, 9,
+ 74, 0,244, 9, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,245, 9, 4, 0, 66, 0, 7, 0, 83, 0, 7, 0,246, 9, 7, 0,247, 9,
+ 14, 0,248, 9, 4, 0,249, 9, 4, 0,250, 9, 11, 0,251, 9, 11, 0,252, 9,180, 0,188, 3, 0, 0,253, 9,105, 1, 1, 0,
+ 4, 0,250, 9,106, 1, 12, 0, 4, 0,250, 9, 7, 0, 88, 9, 2, 0,254, 9, 2, 0,255, 9, 7, 0, 0, 10, 7, 0, 1, 10,
+ 2, 0, 2, 10, 2, 0, 18, 0, 7, 0, 3, 10, 7, 0, 4, 10, 7, 0, 5, 10, 7, 0, 6, 10,107, 1, 7, 0,107, 1, 0, 0,
+107, 1, 1, 0, 14, 0, 7, 10, 4, 0, 18, 0, 4, 0, 8, 10, 0, 0, 19, 0, 23, 1, 9, 10,177, 0, 9, 0, 22, 0, 32, 0,
+ 14, 0, 10, 10, 14, 0,243, 9, 14, 0, 11, 10, 14, 0,101, 0, 4, 0, 18, 0, 4, 0, 12, 10, 4, 0, 13, 10, 4, 0, 27, 0,
+244, 0, 8, 0, 22, 0, 14, 10, 14, 0,243, 9, 64, 0, 15, 10, 0, 0, 16, 10, 4, 0, 17, 10, 4, 0, 18, 0, 4, 0, 18, 10,
+ 4, 0, 27, 0,108, 1, 13, 0,240, 0, 0, 0,240, 0, 1, 0, 14, 0,153, 6, 4, 0,154, 6, 7, 0,155, 6, 2, 0,156, 6,
+241, 0,207, 6,177, 0,184, 3,244, 0, 19, 10, 0, 0, 87, 1, 0, 0,210, 6, 2, 0, 18, 0, 7, 0, 20, 10,109, 1, 8, 0,
+109, 1, 0, 0,109, 1, 1, 0,107, 1, 21, 10, 31, 0, 79, 0, 14, 0,190, 3, 4, 0, 18, 0, 0, 0, 19, 0, 4, 0,127, 8,
+110, 1, 5, 0,110, 1, 0, 0,110, 1, 1, 0, 31, 0, 79, 0, 2, 0, 18, 0, 0, 0, 22, 10,111, 1, 14, 0,111, 1, 0, 0,
+111, 1, 1, 0, 11, 0, 2, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 23, 10, 0, 0, 24, 10, 0, 0, 19, 0, 2, 0, 27, 0,
+ 7, 0, 25, 10, 7, 0, 26, 10, 31, 0, 79, 0, 7, 0, 27, 10, 7, 0, 28, 10,112, 1, 9, 0,112, 1, 0, 0,112, 1, 1, 0,
+ 27, 0, 29, 10, 0, 0, 16, 3, 7, 0, 30, 10, 2, 0, 31, 10, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 32, 10,113, 1, 7, 0,
+ 37, 0, 13, 7, 21, 0,166, 9, 4, 0, 18, 0, 4, 0, 33, 10, 14, 0, 34, 10, 27, 0, 29, 10, 0, 0, 16, 3,114, 1, 15, 0,
+ 27, 0, 29, 10, 2, 0, 35, 10, 2, 0, 18, 0, 2, 0, 36, 10, 2, 0, 37, 10, 0, 0, 16, 3, 27, 0, 38, 10, 0, 0, 39, 10,
+ 7, 0, 40, 10, 7, 0, 43, 2, 7, 0, 41, 10, 7, 0, 42, 10, 2, 0, 16, 0, 2, 0, 87, 1, 7, 0, 94, 1,115, 1, 6, 0,
+ 27, 0, 29, 10, 7, 0,202, 9, 2, 0, 43, 10, 2, 0, 44, 10, 2, 0, 18, 0, 2, 0, 45, 10,116, 1, 6, 0, 27, 0, 29, 10,
+ 4, 0, 46, 10, 4, 0, 47, 10, 4, 0, 91, 0, 4, 0, 27, 0, 0, 0, 16, 3,117, 1, 4, 0, 27, 0, 29, 10, 4, 0, 18, 0,
+ 4, 0, 46, 10, 0, 0, 16, 3,118, 1, 4, 0, 27, 0, 29, 10, 4, 0, 18, 0, 4, 0, 46, 10, 0, 0, 16, 3,119, 1, 4, 0,
+ 27, 0, 29, 10, 4, 0, 18, 0, 4, 0, 46, 10, 0, 0, 16, 3,120, 1, 2, 0, 4, 0, 18, 0, 7, 0, 89, 4,121, 1, 2, 0,
+ 27, 0, 29, 10, 0, 0, 16, 3,122, 1, 10, 0, 27, 0, 29, 10, 4, 0, 48, 10, 7, 0,127, 0, 4, 0, 18, 0, 2, 0, 11, 7,
+ 2, 0, 49, 10, 2, 0, 66, 0, 2, 0, 30, 0, 7, 0, 50, 10, 0, 0, 16, 3,123, 1, 10, 0, 27, 0, 29, 10, 2, 0, 16, 0,
+ 2, 0,139, 4, 4, 0, 89, 0, 4, 0, 90, 0, 7, 0,126, 9, 7, 0,127, 9, 4, 0, 27, 0,177, 0, 96, 9, 0, 0, 16, 3,
+124, 1, 4, 0, 27, 0, 29, 10, 4, 0,215, 3, 4, 0, 51, 10, 0, 0, 16, 3,125, 1, 4, 0, 27, 0, 29, 10, 4, 0,215, 3,
+ 4, 0, 27, 0, 0, 0, 16, 3,126, 1, 6, 0, 27, 0, 29, 10, 7, 0,127, 0, 7, 0, 87, 3, 4, 0, 52, 10, 2, 0,215, 3,
+ 2, 0,216, 3,127, 1, 6, 0, 27, 0, 29, 10, 4, 0, 53, 10, 4, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, 0, 0, 16, 3,
+128, 1, 16, 0, 27, 0, 29, 10, 27, 0,226, 9, 4, 0, 16, 0, 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10,
+ 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10, 7, 0, 65, 10, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0, 66, 0,
+ 2, 0, 30, 0,129, 1, 3, 0, 27, 0, 29, 10, 4, 0, 18, 0, 4, 0, 35, 2,130, 1, 5, 0, 27, 0, 29, 10, 4, 0, 18, 0,
+ 4, 0, 27, 0, 7, 0, 66, 10, 0, 0, 16, 3,131, 1, 10, 0, 27, 0, 29, 10, 0, 0, 16, 3, 2, 0, 67, 10, 2, 0, 68, 10,
+ 0, 0, 69, 10, 0, 0, 70, 10, 7, 0, 71, 10, 7, 0, 72, 10, 7, 0, 73, 10, 7, 0, 74, 10,132, 1, 5, 0, 27, 0, 29, 10,
+ 0, 0, 16, 3, 7, 0,225, 2, 2, 0, 75, 10, 2, 0, 18, 0,133, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0,
+ 7, 0, 11, 0, 7, 0, 76, 10, 7, 0, 77, 10, 2, 0, 18, 0, 2, 0, 35, 2,134, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0,
+ 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 76, 10, 7, 0, 77, 10, 2, 0, 18, 0, 2, 0, 35, 2,135, 1, 8, 0, 7, 0, 8, 0,
+ 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 76, 10, 7, 0, 77, 10, 2, 0, 18, 0, 2, 0, 35, 2,136, 1, 7, 0,
+ 27, 0, 29, 10, 0, 0, 16, 3, 7, 0, 94, 1, 7, 0,103, 1, 2, 0, 18, 0, 2, 0, 87, 1, 4, 0, 27, 0,137, 1, 5, 0,
+ 27, 0, 75, 3, 7, 0, 94, 1, 2, 0, 79, 3, 0, 0, 81, 3, 0, 0, 78, 10,138, 1, 7, 0,230, 0,113, 6, 0, 0, 79, 10,
+ 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 80, 10, 27, 0,215, 5, 27, 0, 81, 10,139, 1, 3, 0,230, 0,113, 6, 4, 0, 18, 0,
+ 4, 0, 27, 0,140, 1, 6, 0,230, 0,113, 6, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 80, 10, 7, 0, 66, 10, 27, 0,215, 5,
+141, 1, 10, 0,141, 1, 0, 0,141, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 82, 10, 7, 0, 31, 1, 7, 0, 32, 1,
+ 2, 0, 7, 10, 2, 0, 83, 10, 27, 0, 43, 0,142, 1, 22, 0,142, 1, 0, 0,142, 1, 1, 0, 2, 0, 18, 0, 2, 0, 87, 1,
+ 2, 0, 84, 10, 2, 0, 85, 10, 31, 0, 79, 0,177, 0, 96, 9, 27, 0,167, 0, 7, 0, 89, 0, 7, 0, 90, 0, 7, 0, 86, 10,
+ 7, 0, 87, 10, 7, 0, 88, 10, 7, 0, 89, 10, 7, 0, 2, 3, 7, 0,153, 3, 7, 0, 98, 9, 7, 0, 90, 10, 0, 0, 91, 10,
+ 0, 0, 92, 10, 14, 0,193, 3,143, 1, 11, 0, 7, 0, 50, 2, 7, 0,126, 9, 7, 0,127, 9, 11, 0, 2, 0, 2, 0, 93, 10,
+ 2, 0, 94, 10, 2, 0, 95, 10, 2, 0, 96, 10, 2, 0, 97, 10, 2, 0, 98, 10, 2, 0,186, 2,144, 1, 21, 0,144, 1, 0, 0,
+144, 1, 1, 0,144, 1, 99, 10, 0, 0, 19, 0, 11, 0,100, 10, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,101, 10, 2, 0, 66, 0,
+ 7, 0,102, 10, 7, 0,103, 10, 11, 0,104, 10, 2, 0,105, 10, 2, 0,106, 10, 4, 0,107, 10, 11, 0,160, 9, 4, 0,108, 10,
+ 4, 0,109, 10,144, 1,110, 10,145, 1,111, 10,143, 1,112, 10,146, 1, 4, 0, 0, 0,113, 10, 2, 0,114, 10, 2, 0,115, 10,
+ 4, 0, 27, 0,147, 1, 41, 0,147, 1, 0, 0,147, 1, 1, 0,147, 1,116, 10, 0, 0, 19, 0, 4, 0, 18, 0, 2, 0, 16, 0,
+ 2, 0, 30, 0, 2, 0,207, 8, 2, 0,181, 2, 2, 0,117, 10, 2, 0, 16, 7, 2, 0,105, 10, 2, 0, 50, 9, 7, 0,118, 10,
+ 14, 0, 91, 9, 14, 0,119, 10,147, 1, 37, 0, 22, 0, 49, 7, 11, 0,100, 10, 7, 0,102, 10, 7, 0,103, 10, 7, 0, 85, 2,
+ 7, 0, 6, 3, 7, 0,120, 10, 7, 0,121, 10, 7, 0,122, 10, 4, 0,123, 10, 0, 0,124, 10, 2, 0,125, 10, 2, 0,126, 10,
+ 7, 0,127, 10, 7, 0,128, 10, 2, 0,129, 10, 2, 0,130, 10, 11, 0,131, 10, 19, 0,132, 10, 19, 0,133, 10, 19, 0,134, 10,
+146, 1,153, 0,148, 1,135, 10,149, 1,136, 10,145, 1, 8, 0,145, 1, 0, 0,145, 1, 1, 0,147, 1,137, 10,147, 1,138, 10,
+144, 1,139, 10,144, 1,140, 10, 4, 0, 18, 0, 4, 0, 27, 0, 57, 0, 23, 0, 22, 0, 32, 0, 34, 0, 74, 0,179, 0,187, 3,
+ 14, 0,141, 10, 14, 0,142, 10, 4, 0, 16, 0, 4, 0,143, 10, 4, 0,144, 10, 4, 0, 18, 0, 4, 0,123, 10, 4, 0,145, 10,
+ 2, 0,146, 10, 2, 0,147, 10, 4, 0,148, 10, 14, 0, 91, 9, 14, 0,119, 10,150, 1,149, 10, 11, 0,150, 10, 11, 0,151, 10,
+ 4, 0,152, 10, 11, 0,153, 10, 11, 0,154, 10, 11, 0,155, 10,151, 1, 4, 0, 4, 0, 17, 0, 4, 0,235, 2, 4, 0,126, 9,
+ 4, 0,127, 9,152, 1, 4, 0, 4, 0, 17, 0, 7, 0,235, 2, 7, 0,126, 9, 7, 0,127, 9,153, 1, 2, 0, 0, 0,235, 2,
+ 0, 0, 86, 1,154, 1, 4, 0, 4, 0, 17, 0, 7, 0,156, 10, 7, 0,126, 9, 7, 0,127, 9,155, 1, 1, 0, 7, 0,157, 10,
+156, 1, 2, 0, 2, 0, 18, 0, 2, 0,158, 10,157, 1, 6, 0, 4, 0,126, 0, 4, 0,128, 0, 4, 0, 50, 9, 0, 0,159, 10,
+ 0, 0,160, 10, 2, 0, 27, 0,158, 1, 6, 0, 7, 0, 35, 1, 7, 0, 34, 1, 7, 0,161, 10, 7, 0,162, 10, 7, 0,163, 10,
+ 4, 0, 27, 0,159, 1, 6, 0,158, 1,164, 10,158, 1,165, 10,158, 1,166, 10,158, 1,167, 10, 7, 0,168, 10, 7, 0,169, 10,
+160, 1, 5, 0, 7, 0, 99, 3, 4, 0,170, 10, 7, 0,171, 10, 7, 0,172, 10, 7, 0,173, 10,161, 1, 6, 0, 7, 0, 5, 0,
+ 7, 0, 6, 0, 7, 0,174, 10, 7, 0, 6, 3, 7, 0, 85, 2, 4, 0, 27, 0,162, 1, 6, 0, 7, 0, 5, 0, 7, 0, 6, 0,
+ 7, 0,174, 10, 7, 0, 6, 3, 7, 0, 85, 2, 4, 0, 27, 0,163, 1, 2, 0, 4, 0,175, 10, 4, 0,176, 10,164, 1, 16, 0,
+ 2, 0,150, 8, 2, 0,151, 8, 2, 0, 76, 5, 2, 0,177, 10, 2, 0,178, 10, 2, 0, 67, 0, 2, 0, 50, 7, 2, 0,179, 10,
+ 7, 0, 1, 3, 7, 0,180, 10, 7, 0,181, 10, 2, 0,110, 1, 0, 0,182, 10, 0, 0,161, 10, 4, 0,183, 10, 4, 0,184, 10,
+165, 1, 9, 0, 7, 0,185, 10, 7, 0,186, 10, 7, 0,159, 9, 7, 0, 99, 3, 7, 0,187, 10, 7, 0,225, 6, 2, 0, 97, 3,
+ 0, 0,188, 10, 0, 0, 27, 0,166, 1, 4, 0, 7, 0,189, 10, 7, 0,190, 10, 2, 0, 97, 3, 2, 0, 27, 0,167, 1, 3, 0,
+ 7, 0,191, 10, 7, 0,222, 8, 7, 0, 14, 0,168, 1, 4, 0, 0, 0, 35, 0,205, 0, 87, 5, 4, 0,128, 0, 4, 0,137, 4,
+169, 1, 6, 0, 0, 0,192, 10,205, 0,193, 10, 4, 0,128, 0, 4, 0,137, 4, 4, 0,194, 10, 4, 0, 27, 0,170, 1, 7, 0,
+ 2, 0,195, 10, 2, 0,196, 10, 4, 0, 66, 0, 0, 0, 82, 4,205, 0,193, 10, 0, 0,197, 10, 0, 0,178, 6,171, 1, 9, 0,
+ 7, 0,198, 10, 7, 0,199, 10, 7, 0,200, 10, 7, 0, 96, 2, 7, 0,201, 10, 7, 0,202, 10, 7, 0,203, 10, 2, 0,204, 10,
+ 2, 0,205, 10,172, 1, 8, 0, 2, 0,206, 10, 2, 0,207, 10, 2, 0,208, 10, 2, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10,
+ 7, 0,212, 10, 7, 0,213, 10,173, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,174, 1, 2, 0, 0, 0,169, 0, 0, 0,214, 10,
+175, 1, 1, 0, 0, 0, 19, 0,176, 1, 12, 0, 0, 0,215, 10, 0, 0,216, 10, 0, 0,216, 6, 0, 0,217, 10, 2, 0, 76, 5,
+ 2, 0,218, 10, 7, 0,219, 10, 7, 0,220, 10, 7, 0,221, 10, 7, 0,153, 3, 7, 0,174, 10, 7, 0,222, 10,177, 1, 2, 0,
+ 11, 0,223, 10, 11, 0,224, 10,178, 1, 13, 0, 0, 0, 79, 5, 0, 0, 16, 0, 0, 0, 97, 3, 0, 0, 99, 3, 0, 0,216, 10,
+ 0, 0,107, 0, 0, 0,186, 2, 7, 0,225, 10, 7, 0,226, 10, 7, 0,152, 3, 7, 0,227, 10, 7, 0,228, 10, 7, 0,222, 10,
+179, 1, 8, 0, 7, 0, 57, 9, 7, 0,127, 0, 7, 0,161, 10, 7, 0,177, 2, 7, 0,229, 10, 7, 0,239, 0, 7, 0,230, 10,
+ 4, 0, 16, 0,180, 1, 4, 0, 2, 0,231, 10, 2, 0,232, 10, 2, 0,233, 10, 2, 0, 27, 0,181, 1, 8, 0, 7, 0,234, 10,
+ 7, 0,225, 2, 7, 0,235, 10, 7, 0,200, 8, 7, 0,201, 8, 7, 0,202, 8, 7, 0,236, 10, 7, 0,237, 10,182, 1, 6, 0,
+ 2, 0,238, 10, 2, 0,239, 10, 7, 0,240, 10, 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10,183, 1, 2, 0, 58, 0,244, 10,
+ 59, 0,245, 10,184, 1, 3, 0,183, 1, 86, 6, 7, 0,246, 10, 7, 0,247, 10,185, 1, 3, 0,183, 1, 86, 6, 4, 0,248, 10,
+ 4, 0, 27, 0,186, 1, 1, 0,183, 1, 86, 6,187, 1, 3, 0,183, 1, 86, 6, 4, 0,248, 10, 4, 0,249, 10,188, 1, 3, 0,
+183, 1, 86, 6, 4, 0,250, 10, 4, 0, 27, 0,189, 1, 1, 0,183, 1, 86, 6,190, 1, 3, 0,183, 1, 86, 6, 4, 0,251, 10,
+ 4, 0, 27, 0,191, 1, 3, 0,183, 1, 86, 6, 4, 0,252, 10, 4, 0, 27, 0,192, 1, 3, 0,183, 1, 86, 6, 4, 0,253, 10,
+ 4, 0, 27, 0,193, 1, 3, 0,183, 1, 86, 6, 4, 0,250, 0, 4, 0, 27, 0,194, 1, 1, 0, 0, 0, 19, 0,195, 1, 1, 0,
+ 0, 0, 19, 0,196, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 18, 0, 2, 0,254, 10,197, 1, 10, 0, 2, 0, 67, 4,
+ 2, 0, 18, 0, 7, 0,222, 4, 7, 0,255, 10, 7, 0, 0, 11, 7, 0, 1, 11, 7, 0, 2, 11,196, 1, 3, 11,196, 1, 4, 11,
+196, 1, 5, 11, 54, 0, 11, 0, 4, 0, 18, 0, 4, 0, 62, 0, 4, 0, 6, 11, 4, 0, 7, 11, 19, 0, 8, 11, 19, 0, 9, 11,
+197, 1, 10, 11, 7, 0, 11, 11, 7, 0, 12, 11, 7, 0, 13, 11, 7, 0, 14, 11, 1, 1, 10, 0, 4, 0, 7, 10, 4, 0, 15, 11,
+ 7, 0, 16, 11, 7, 0, 17, 11, 7, 0, 18, 11, 7, 0, 19, 11, 7, 0, 9, 0, 7, 0, 11, 0, 4, 0, 87, 1, 4, 0, 6, 3,
+ 0, 1, 18, 0, 4, 0,131, 0, 4, 0, 20, 11, 4, 0, 21, 11, 7, 0, 22, 11, 4, 0, 23, 11, 7, 0, 24, 11, 7, 0, 25, 11,
+ 4, 0, 26, 11, 7, 0, 27, 11, 4, 0, 28, 11, 7, 0, 29, 11, 1, 1, 30, 11, 7, 0, 31, 11, 7, 0, 32, 11, 7, 0, 33, 11,
+ 7, 0, 34, 11, 4, 0, 35, 11, 4, 0, 27, 0,198, 1, 4, 0, 42, 0,249, 2, 7, 0, 36, 11, 7, 0,181, 1, 7, 0, 27, 0,
+214, 0, 36, 0, 22, 0, 32, 0,198, 1, 37, 11, 54, 0, 3, 11, 46, 0, 38, 11,214, 0, 39, 11, 52, 0, 40, 11, 25, 0,153, 0,
+ 0, 0, 41, 11, 7, 0, 42, 11, 2, 0,116, 6, 2, 0, 43, 11, 7, 0, 43, 2, 4, 0,107, 0, 4, 0, 18, 0, 7, 0, 44, 11,
+ 4, 0, 93, 2, 4, 0, 45, 11, 7, 0, 46, 11, 7, 0, 47, 11, 7, 0, 48, 11, 7, 0,181, 1, 4, 0, 49, 11, 7, 0, 50, 11,
+ 0, 0, 51, 11, 0, 0, 52, 11, 0, 0, 53, 11, 0, 0, 54, 11, 7, 0, 55, 11, 7, 0, 56, 11, 7, 0, 57, 11, 7, 0, 6, 3,
+ 7, 0, 58, 11, 4, 0, 59, 11, 7, 0,248, 5, 7, 0, 60, 11, 7, 0, 61, 11,199, 1, 10, 0, 4, 0, 16, 0, 4, 0,127, 0,
+ 4, 0, 18, 0, 4, 0, 20, 4, 4, 0, 62, 11, 4, 0, 63, 11, 4, 0, 64, 11, 4, 0, 69, 0, 0, 0, 19, 0, 11, 0, 2, 0,
+200, 1, 1, 0, 0, 0, 79, 7, 95, 0, 8, 0,199, 1, 65, 11, 4, 0, 66, 11, 4, 0, 67, 11, 4, 0, 68, 11, 4, 0, 69, 11,
+ 4, 0, 30, 0, 11, 0, 70, 11,200, 1, 71, 11,201, 1, 5, 0, 7, 0,170, 2, 7, 0,245, 2, 7, 0, 43, 2, 2, 0,152, 2,
+ 2, 0, 27, 0,202, 1, 5, 0, 7, 0,170, 2, 7, 0,164, 4, 7, 0, 72, 11, 7, 0, 73, 11, 7, 0,245, 2,203, 1, 5, 0,
+ 27, 0, 74, 11,204, 1, 21, 0, 7, 0, 82, 6, 7, 0, 75, 11, 7, 0, 55, 0,205, 1, 3, 0, 7, 0, 76, 11, 4, 0, 77, 11,
+ 4, 0, 78, 11,206, 1, 7, 0, 4, 0, 79, 11, 4, 0, 80, 11, 4, 0, 81, 11, 7, 0, 82, 11, 7, 0, 83, 11, 7, 0, 84, 11,
+ 7, 0, 55, 0,207, 1, 8, 0,207, 1, 0, 0,207, 1, 1, 0, 27, 0, 43, 0, 4, 0, 3, 1, 2, 0, 18, 0, 2, 0, 87, 1,
+ 7, 0,245, 2, 7, 0, 65, 9,208, 1, 7, 0,208, 1, 0, 0,208, 1, 1, 0, 27, 0, 43, 0, 2, 0,230, 2, 2, 0, 18, 0,
+ 2, 0, 17, 2, 2, 0, 55, 0,209, 1, 17, 0,202, 1, 13, 4,202, 1, 85, 11,201, 1, 86, 11,202, 1, 48, 9,203, 1, 87, 11,
+ 4, 0, 81, 0, 7, 0,245, 2, 7, 0, 12, 3, 7, 0, 88, 11, 4, 0, 79, 11, 4, 0, 89, 11, 7, 0, 83, 11, 7, 0, 84, 11,
+ 7, 0,107, 0, 4, 0, 90, 11, 2, 0, 18, 0, 2, 0, 91, 11,210, 1, 15, 0, 7, 0,255, 0, 7, 0, 92, 11, 7, 0, 76, 11,
+ 7, 0, 93, 11, 7, 0, 94, 11, 7, 0, 95, 11, 7, 0, 96, 11, 7, 0, 97, 11, 7, 0, 98, 11, 7, 0, 99, 11, 7, 0,100, 11,
+ 7, 0,101, 11, 7, 0,102, 11, 4, 0, 18, 0, 4, 0,103, 11,211, 1,128, 0, 22, 0, 32, 0, 34, 0, 74, 0,212, 1,104, 11,
+210, 1,105, 11,188, 0,159, 4, 4, 0, 18, 0, 4, 0, 55, 0, 2, 0, 16, 0, 2, 0, 67, 10, 2, 0,106, 11, 2, 0,124, 1,
+ 2, 0,107, 11, 2, 0,237, 3, 2, 0,108, 11, 2, 0,109, 11, 2, 0,110, 11, 2, 0,111, 11, 2, 0,112, 11, 2, 0,113, 11,
+ 2, 0,114, 11, 2, 0,115, 11, 2, 0,116, 11, 2, 0,232, 5, 2, 0,117, 11, 2, 0,118, 11, 2, 0,119, 11, 2, 0,120, 11,
+ 2, 0,121, 11, 2, 0, 32, 2, 2, 0, 41, 9, 2, 0, 16, 9, 2, 0,122, 11, 2, 0,123, 11, 2, 0, 30, 4, 2, 0, 31, 4,
+ 2, 0,124, 11, 2, 0,125, 11, 2, 0,126, 11, 2, 0,127, 11, 7, 0,128, 11, 7, 0,129, 11, 7, 0,130, 11, 7, 0,131, 11,
+ 7, 0,132, 11, 7, 0,133, 11, 7, 0,134, 11, 2, 0,161, 5, 2, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11, 7, 0,138, 11,
+ 7, 0, 23, 9, 7, 0, 90, 0, 7, 0, 12, 3, 7, 0, 29, 9, 7, 0,139, 11, 7, 0,140, 11, 7, 0,141, 11, 7, 0,142, 11,
+ 7, 0,143, 11, 7, 0,144, 11, 4, 0, 24, 9, 4, 0, 22, 9, 4, 0,145, 11, 4, 0,146, 11, 2, 0,147, 11, 2, 0,148, 11,
+ 7, 0, 25, 9, 7, 0, 26, 9, 7, 0, 27, 9, 7, 0,149, 11, 7, 0,150, 11, 7, 0,151, 11, 7, 0,152, 11, 7, 0,153, 11,
+ 7, 0,154, 11, 7, 0,155, 11, 7, 0,156, 11, 7, 0,157, 11, 7, 0,227, 3, 7, 0,107, 0, 7, 0,158, 11, 7, 0,159, 11,
+ 7, 0,160, 11, 7, 0,161, 11, 7, 0,213, 0, 7, 0,162, 11, 4, 0,163, 11, 4, 0,164, 11, 7, 0,165, 11, 7, 0,166, 11,
+ 7, 0,167, 11, 7, 0,168, 11, 7, 0,169, 11, 7, 0,212, 0, 7, 0,170, 11, 7, 0, 57, 4, 7, 0, 55, 4, 7, 0, 56, 4,
+ 7, 0,171, 11, 7, 0,172, 11, 7, 0,173, 11, 7, 0,174, 11, 7, 0,175, 11, 7, 0,176, 11, 7, 0,177, 11, 7, 0,178, 11,
+ 7, 0,179, 11, 7, 0,180, 11, 7, 0,181, 11, 7, 0,182, 11, 7, 0,183, 11, 7, 0,184, 11, 7, 0,185, 11, 7, 0,186, 11,
+ 7, 0,187, 11, 7, 0,188, 11, 4, 0,189, 11, 4, 0,190, 11, 46, 0,143, 1, 64, 0, 5, 4, 14, 0,191, 11, 64, 0,192, 11,
+ 27, 0,193, 11, 27, 0,194, 11, 31, 0, 79, 0,183, 0, 73, 1,183, 0,195, 11,151, 0, 52, 0,151, 0, 0, 0,151, 0, 1, 0,
+211, 1,196, 11,209, 1,197, 11,206, 1,226, 9,191, 0, 85, 4, 11, 0, 86, 4,213, 1,198, 11,213, 1,199, 11, 14, 0,200, 11,
+ 14, 0,201, 11,136, 0,202, 11,144, 0,203, 11,144, 0,204, 11, 27, 0,205, 11, 27, 0,206, 11, 27, 0, 37, 0, 14, 0, 34, 10,
+ 0, 0, 19, 0, 7, 0,244, 0, 7, 0, 41, 3, 7, 0,207, 11, 7, 0,208, 11, 4, 0,219, 2, 4, 0,209, 11, 4, 0, 18, 0,
+ 4, 0, 24, 9, 4, 0,210, 11, 4, 0,211, 11, 4, 0,212, 11, 4, 0,213, 11, 2, 0,251, 0, 2, 0,214, 11, 2, 0,215, 11,
+ 2, 0,216, 11, 0, 0,217, 11, 2, 0,218, 11, 2, 0,219, 11, 2, 0,220, 11, 11, 0,221, 11,140, 0,158, 4, 14, 0, 26, 3,
+ 14, 0,222, 11,205, 1,223, 11, 4, 0,224, 11, 4, 0,225, 11,214, 1,226, 11,142, 0, 38, 3,215, 1,227, 11, 7, 0,228, 11,
+ 7, 0,229, 11, 7, 0,230, 11,138, 0, 38, 0,216, 1,160, 9, 7, 0,128, 4, 7, 0,231, 11, 7, 0,232, 11, 7, 0, 82, 6,
+ 7, 0,241, 3, 7, 0,227, 3, 7, 0,233, 11, 7, 0, 95, 2, 7, 0,234, 11, 7, 0,235, 11, 7, 0,236, 11, 7, 0,237, 11,
+ 7, 0,238, 11, 7, 0,239, 11, 7, 0,129, 4, 7, 0,240, 11, 7, 0,241, 11, 7, 0,242, 11, 7, 0,130, 4, 7, 0,126, 4,
+ 7, 0,127, 4, 7, 0,243, 11, 7, 0,244, 11, 7, 0,245, 11, 4, 0,246, 11, 4, 0, 91, 0, 4, 0,247, 11, 4, 0,248, 11,
+ 2, 0,249, 11, 2, 0,250, 11, 2, 0,251, 11, 2, 0,252, 11, 2, 0,253, 11, 2, 0,254, 11, 2, 0,255, 11, 2, 0, 27, 0,
+188, 0,159, 4,139, 0, 11, 0,216, 1, 0, 12, 7, 0, 1, 12, 7, 0, 2, 12, 7, 0,254, 1, 7, 0, 3, 12, 7, 0, 4, 12,
+ 7, 0, 5, 12, 4, 0, 91, 0, 2, 0, 6, 12, 2, 0, 7, 12, 64, 0,253, 1,217, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
+ 7, 0, 7, 0, 7, 0, 8, 12,218, 1, 6, 0,218, 1, 0, 0,218, 1, 1, 0,217, 1,202, 9, 4, 0, 1, 1, 2, 0, 9, 12,
+ 2, 0, 18, 0,219, 1, 5, 0,219, 1, 0, 0,219, 1, 1, 0, 14, 0, 10, 12, 4, 0, 11, 12, 4, 0, 18, 0,220, 1, 9, 0,
+220, 1, 0, 0,220, 1, 1, 0, 14, 0,126, 0,219, 1, 12, 12, 4, 0, 18, 0, 2, 0, 9, 12, 2, 0, 13, 12, 7, 0, 92, 0,
+ 0, 0, 14, 12,179, 0, 6, 0, 22, 0, 32, 0, 14, 0,130, 5, 4, 0, 18, 0, 2, 0, 15, 12, 2, 0, 16, 12, 11, 0, 17, 12,
+221, 1, 6, 0, 14, 0, 18, 12, 4, 0, 19, 12, 4, 0, 20, 12, 4, 0, 18, 0, 4, 0, 27, 0,238, 0, 21, 12,222, 1, 19, 0,
+ 22, 0, 32, 0,223, 1, 22, 12,223, 1, 23, 12, 14, 0, 24, 12, 4, 0, 25, 12, 2, 0, 26, 12, 2, 0, 27, 12, 14, 0, 28, 12,
+ 14, 0, 29, 12,221, 1, 30, 12, 14, 0, 31, 12, 14, 0, 32, 12, 14, 0, 33, 12, 14, 0, 34, 12,224, 1, 35, 12,224, 1, 36, 12,
+224, 1, 37, 12, 14, 0, 38, 12,238, 0, 39, 12,223, 1, 32, 0,223, 1, 0, 0,223, 1, 1, 0, 11, 0, 40, 12, 4, 0,128, 8,
+ 2, 0, 41, 12, 2, 0, 27, 0, 28, 1, 42, 12, 28, 1, 43, 12, 0, 0, 44, 12, 2, 0, 45, 12, 2, 0, 46, 12, 2, 0,150, 8,
+ 2, 0,151, 8, 2, 0, 47, 12, 2, 0, 48, 12, 2, 0, 20, 4, 2, 0, 60, 7, 2, 0, 49, 12, 2, 0, 50, 12, 2, 0, 51, 12,
+ 2, 0, 30, 0,225, 1, 52, 12,226, 1, 53, 12,227, 1, 54, 12, 4, 0, 55, 12, 4, 0, 56, 12, 11, 0, 57, 12, 14, 0, 29, 12,
+ 14, 0,170, 8, 14, 0, 58, 12, 14, 0, 59, 12, 14, 0, 60, 12,228, 1, 18, 0,228, 1, 0, 0,228, 1, 1, 0, 0, 0, 61, 12,
+ 21, 0, 31, 0, 0, 0, 62, 12, 2, 0, 63, 12, 2, 0, 16, 0, 2, 0, 14, 0, 2, 0, 64, 12, 2, 0, 65, 12, 2, 0, 66, 12,
+ 2, 0, 67, 12, 2, 0, 68, 12, 2, 0, 18, 0, 2, 0, 69, 12, 2, 0, 32, 0, 2, 0, 27, 0,229, 1, 70, 12,230, 1, 4, 0,
+230, 1, 0, 0,230, 1, 1, 0,228, 1, 71, 12,228, 1, 72, 12,231, 1, 11, 0,231, 1, 0, 0,231, 1, 1, 0, 14, 0, 73, 12,
+ 14, 0, 74, 12, 0, 0, 61, 12, 2, 0, 75, 12, 2, 0, 76, 12, 2, 0, 18, 0, 2, 0, 77, 12, 4, 0, 78, 12, 11, 0, 79, 12,
+224, 1, 7, 0,224, 1, 0, 0,224, 1, 1, 0, 0, 0, 61, 12, 0, 0, 80, 12, 14, 0, 68, 8, 4, 0, 81, 12, 4, 0, 18, 0,
+250, 0, 14, 0,250, 0, 0, 0,250, 0, 1, 0, 0, 0, 61, 12, 21, 0, 31, 0,232, 1,144, 8, 11, 0, 82, 12, 11, 0, 83, 12,
+229, 1, 70, 12,221, 1, 84, 12, 14, 0, 85, 12,250, 0, 86, 12, 33, 1,246, 6, 2, 0, 18, 0, 2, 0, 86, 1,233, 1, 12, 0,
+233, 1, 0, 0,233, 1, 1, 0, 11, 0, 2, 0, 11, 0, 87, 12, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 7, 0,148, 9,
+ 7, 0,128, 0, 7, 0,137, 4, 7, 0, 98, 9, 7, 0, 90, 10,234, 1, 5, 0, 7, 0, 88, 12, 4, 0, 89, 12, 4, 0, 90, 12,
+ 4, 0, 87, 1, 4, 0, 18, 0,235, 1, 6, 0, 7, 0, 91, 12, 7, 0, 92, 12, 7, 0, 93, 12, 7, 0, 94, 12, 4, 0, 16, 0,
+ 4, 0, 18, 0,236, 1, 5, 0, 7, 0,126, 9, 7, 0,127, 9, 7, 0,245, 2, 2, 0, 46, 2, 2, 0, 47, 2,237, 1, 5, 0,
+236, 1, 2, 0, 4, 0, 52, 0, 7, 0, 95, 12, 7, 0,126, 9, 7, 0,127, 9,238, 1, 4, 0, 2, 0, 96, 12, 2, 0, 97, 12,
+ 2, 0, 98, 12, 2, 0, 99, 12,239, 1, 2, 0, 37, 0, 44, 7, 21, 0,166, 9,240, 1, 3, 0, 19, 0,100, 12, 4, 0, 18, 0,
+ 4, 0, 27, 0,241, 1, 6, 0, 7, 0,107, 0, 7, 0,214, 2, 7, 0,101, 12, 7, 0, 27, 0, 2, 0,250, 0, 2, 0,102, 12,
+242, 1, 5, 0, 7, 0,103, 12, 7, 0,127, 0, 7, 0,203, 9, 7, 0,204, 9, 4, 0, 18, 0,243, 1, 6, 0, 22, 0, 49, 7,
+ 0, 0,104, 12, 0, 0,105, 12, 2, 0,106, 12, 2, 0, 18, 0, 4, 0,107, 12,244, 1, 7, 0,244, 1, 0, 0,244, 1, 1, 0,
+ 0, 0, 19, 0,243, 1,108, 12, 2, 0,109, 12, 2, 0, 16, 0, 7, 0, 59, 0,245, 1, 7, 0, 14, 0,110, 12, 0, 0,111, 12,
+ 11, 0,112, 12, 7, 0, 59, 0, 7, 0,148, 9, 4, 0, 16, 0, 4, 0, 18, 0,246, 1, 3, 0, 7, 0,113, 12, 4, 0, 18, 0,
+ 4, 0, 27, 0,247, 1, 15, 0,247, 1, 0, 0,247, 1, 1, 0,107, 1, 21, 10,245, 1, 60, 0, 14, 0,193, 3, 30, 0, 48, 0,
+246, 1,114, 12, 4, 0, 52, 0, 7, 0, 59, 0, 2, 0, 18, 0, 2, 0, 22, 1, 4, 0,115, 12, 0, 0,104, 12, 4, 0,116, 12,
+ 7, 0,118, 10,248, 1, 2, 0, 0, 0,117, 12, 0, 0,118, 12,249, 1, 4, 0,249, 1, 0, 0,249, 1, 1, 0,177, 0, 75, 3,
+ 14, 0,119, 12,250, 1, 25, 0,250, 1, 0, 0,250, 1, 1, 0, 14, 0,120, 12,177, 0, 96, 9,249, 1,121, 12, 14, 0,122, 12,
+ 14, 0,193, 3, 0, 0, 19, 0, 7, 0,148, 9, 7, 0,123, 12, 7, 0, 89, 0, 7, 0, 90, 0, 7, 0, 86, 10, 7, 0, 87, 10,
+ 7, 0, 2, 3, 7, 0,153, 3, 7, 0, 98, 9, 7, 0, 90, 10, 2, 0,124, 12, 2, 0,125, 12, 2, 0, 66, 0, 2, 0, 16, 0,
+ 11, 0,126, 12, 4, 0, 18, 0, 4, 0, 30, 0,251, 1, 6, 0,251, 1, 0, 0,251, 1, 1, 0, 14, 0,120, 12, 4, 0, 18, 0,
+ 4, 0, 17, 2, 0, 0, 19, 0,252, 1, 11, 0,252, 1, 0, 0,252, 1, 1, 0, 22, 0, 49, 7, 0, 0,127, 12, 4, 0,107, 12,
+ 2, 0,128, 12, 2, 0, 27, 0, 0, 0,104, 12, 4, 0,115, 12, 2, 0, 18, 0, 2, 0,129, 12,253, 1, 10, 0,253, 1, 0, 0,
+253, 1, 1, 0, 14, 0,130, 12, 0, 0, 61, 12, 0, 0, 19, 0, 0, 0,131, 12, 0, 0,132, 12, 2, 0, 18, 0, 2, 0,129, 12,
+ 4, 0,133, 12,254, 1, 5, 0,254, 1, 0, 0,254, 1, 1, 0, 0, 0,104, 12, 4, 0,115, 12, 7, 0,235, 2, 34, 0, 12, 0,
+177, 0,184, 3,177, 0,134, 12,249, 1,121, 12, 14, 0,135, 12,250, 1,136, 12, 14, 0,137, 12, 14, 0,138, 12, 4, 0, 18, 0,
+ 4, 0,251, 0, 2, 0,139, 12, 2, 0,140, 12, 7, 0,141, 12,255, 1, 2, 0, 22, 0, 32, 0, 34, 0, 74, 0, 0, 2, 5, 0,
+ 0, 2, 0, 0, 0, 2, 1, 0, 4, 0, 16, 0, 4, 0, 18, 0, 0, 0,179, 5, 1, 2, 6, 0, 0, 2,142, 12, 27, 0, 43, 0,
+ 4, 0,143, 12, 7, 0,144, 12, 4, 0,145, 12, 4, 0, 7, 10, 2, 2, 3, 0, 0, 2,142, 12, 4, 0,143, 12, 7, 0,146, 12,
+ 3, 2, 8, 0, 0, 2,142, 12, 27, 0, 43, 0, 7, 0, 77, 1, 7, 0,147, 12, 7, 0, 41, 3, 7, 0,159, 9, 4, 0,143, 12,
+ 4, 0,148, 12, 4, 2, 5, 0, 0, 2,142, 12, 7, 0,149, 12, 7, 0,181, 2, 7, 0, 8, 3, 7, 0, 55, 0, 5, 2, 3, 0,
+ 0, 2,142, 12, 7, 0,159, 9, 7, 0,150, 12,204, 1, 4, 0, 7, 0,151, 12, 7, 0,159, 11, 2, 0,152, 12, 2, 0, 87, 1,
+ 6, 2, 14, 0, 6, 2, 0, 0, 6, 2, 1, 0, 14, 0,153, 12, 14, 0,154, 12, 14, 0,155, 12, 0, 0,179, 5, 4, 0, 32, 0,
+ 4, 0, 18, 0, 4, 0,156, 12, 7, 0,157, 12, 4, 0,145, 12, 4, 0, 7, 10, 7, 0, 89, 4, 7, 0, 10, 3,212, 1, 23, 0,
+ 4, 0,143, 12, 4, 0,158, 12, 7, 0,159, 12, 7, 0, 6, 3, 7, 0,160, 12, 7, 0,239, 8, 7, 0,151, 12, 7, 0,161, 12,
+ 7, 0,214, 2, 7, 0, 22, 11, 7, 0,222, 4, 7, 0,162, 12, 7, 0,163, 12, 7, 0,164, 12, 7, 0,165, 12, 7, 0,166, 12,
+ 7, 0,167, 12, 7, 0,168, 12, 7, 0,169, 12, 7, 0,170, 12, 7, 0,171, 12, 7, 0,172, 12, 14, 0,173, 12,124, 0, 40, 0,
+123, 0,174, 12, 7, 2,105, 11, 64, 0,175, 12, 64, 0,192, 11, 64, 0,176, 12, 8, 2,177, 12, 43, 0,168, 0, 43, 0,178, 12,
+ 43, 0,179, 12, 7, 0,180, 12, 7, 0,181, 12, 7, 0,182, 12, 7, 0,183, 12, 7, 0,184, 12, 7, 0,127, 8, 7, 0,185, 12,
+ 7, 0,181, 1, 7, 0,186, 12, 4, 0,187, 12, 4, 0,188, 12, 4, 0,189, 12, 4, 0, 91, 0, 4, 0, 27, 0, 4, 0,190, 12,
+ 2, 0,191, 12, 2, 0,192, 12, 4, 0,193, 12, 7, 0,214, 2, 4, 0,194, 12, 7, 0,195, 12, 4, 0,196, 12, 4, 0,197, 12,
+ 4, 0,198, 12,140, 0,199, 12, 14, 0,200, 12,188, 0,159, 4, 4, 0,201, 12, 7, 0,202, 12, 7, 0,203, 12, 4, 0, 30, 0,
+125, 0, 12, 0,123, 0,174, 12,151, 0, 61, 3, 7, 0,146, 1, 7, 0,127, 8, 7, 0,204, 12, 7, 0,205, 12, 7, 0,206, 12,
+ 2, 0,207, 12, 2, 0,208, 12, 2, 0,209, 12, 2, 0, 16, 0, 4, 0, 91, 0,126, 0, 15, 0,123, 0,174, 12,142, 0, 38, 3,
+ 7, 0,202, 9, 7, 0,210, 12, 7, 0,211, 12, 4, 0,212, 12, 7, 0, 79, 1, 7, 0,213, 12, 4, 0, 43, 10, 4, 0, 34, 3,
+ 4, 0,214, 12, 7, 0,183, 12, 2, 0, 16, 0, 2, 0, 27, 0, 4, 0, 30, 0, 9, 2, 15, 0, 22, 0, 32, 0, 34, 0, 74, 0,
+ 47, 1,237, 8, 7, 0,215, 12, 7, 0,216, 12, 7, 0,217, 12, 7, 0,218, 12, 7, 0,158, 9, 7, 0,219, 12, 7, 0,220, 12,
+ 7, 0,221, 12, 7, 0, 89, 4, 7, 0,239, 8, 2, 0, 18, 0, 2, 0,122, 9,232, 0, 3, 0, 4, 0,125, 0, 2, 0,222, 6,
+ 2, 0,222, 12, 10, 2, 5, 0, 0, 0,203, 8, 2, 0,204, 8, 2, 0, 79, 5, 2, 0,223, 12, 2, 0,224, 12,230, 0, 16, 0,
+ 22, 0, 32, 0, 34, 0, 74, 0, 0, 0, 35, 0, 4, 0,142, 0, 4, 0,143, 0, 4, 0,225, 12, 7, 0,161, 0, 7, 0,162, 0,
+ 44, 0,137, 0, 11, 2,160, 9,179, 0,187, 3, 12, 2,226, 12, 11, 0,227, 12, 10, 2,228, 12, 4, 0, 18, 0, 4, 0, 22, 0,
+ 14, 1, 10, 0, 4, 0,131, 0, 4, 0,229, 12, 52, 0,230, 12, 7, 0,231, 12, 2, 0,232, 12, 0, 0,186, 2, 4, 0,125, 0,
+ 13, 2,180, 3, 14, 2,233, 12, 7, 0,234, 12, 15, 2, 3, 0, 4, 0,125, 0, 7, 0,235, 12, 7, 0, 79, 1, 16, 2, 11, 0,
+ 11, 0,236, 12, 7, 0,237, 12, 7, 0,238, 12, 7, 0, 27, 0, 7, 0,239, 12, 2, 0,240, 12, 2, 0, 66, 0, 7, 0,241, 12,
+ 7, 0,242, 12, 7, 0,243, 12, 7, 0,244, 12, 14, 2, 3, 0, 7, 0,245, 12, 4, 0,125, 0, 4, 0, 18, 0, 13, 2, 24, 0,
+ 13, 2, 0, 0, 13, 2, 1, 0, 0, 0, 19, 0, 7, 0,246, 12, 7, 0,247, 12, 7, 0,248, 12, 7, 0,249, 12, 7, 0, 36, 11,
+ 4, 0,250, 12, 4, 0,251, 12, 14, 2,252, 12, 7, 0,253, 12, 7, 0,235, 12, 4, 0, 18, 0, 4, 0,254, 12, 4, 0,255, 12,
+ 7, 0,118, 10, 2, 0, 0, 13, 2, 0,232, 3, 2, 0, 1, 13, 2, 0, 2, 13, 2, 0, 3, 13, 2, 0, 30, 0, 7, 0, 4, 13,
+ 17, 2, 22, 0, 4, 0, 18, 0, 2, 0, 5, 13, 2, 0, 6, 13, 7, 0, 7, 13, 2, 0, 8, 13, 2, 0, 9, 13, 2, 0, 10, 13,
+ 2, 0, 11, 13, 2, 0, 12, 13, 2, 0, 13, 13, 2, 0, 14, 13, 2, 0, 8, 3, 4, 0, 15, 13, 4, 0, 16, 13, 2, 0, 17, 13,
+ 2, 0, 30, 0, 7, 0, 94, 1, 4, 0, 18, 13, 4, 0, 19, 13, 7, 0, 20, 13, 7, 0, 21, 13, 4, 0,250, 1, 18, 2, 12, 0,
+ 4, 0, 18, 0, 4, 0, 22, 13, 4, 0, 23, 13, 7, 0, 24, 13, 13, 2, 25, 13, 7, 0, 26, 13, 7, 0, 27, 13, 7, 0, 28, 13,
+ 4, 0,193, 1, 4, 0,131, 0, 7, 0,153, 3, 52, 0, 29, 13, 19, 2, 5, 0, 4, 0, 18, 0, 7, 0,235, 12, 4, 0, 30, 13,
+ 4, 0, 31, 13, 15, 2, 32, 13, 20, 2, 7, 0, 20, 2, 0, 0, 20, 2, 1, 0, 0, 0, 19, 0, 4, 0, 18, 0, 7, 0,153, 3,
+ 14, 0, 33, 13, 19, 2, 34, 13, 21, 2, 1, 0, 0, 0, 35, 13, 22, 2, 8, 0, 22, 2, 0, 0, 22, 2, 1, 0, 13, 2,180, 3,
+ 4, 0, 27, 0, 4, 0, 36, 13, 4, 0, 37, 13, 4, 0, 38, 13, 4, 0, 39, 13, 23, 2, 6, 0, 4, 0,131, 0, 4, 0, 27, 0,
+ 14, 0, 7, 10, 4, 0, 40, 13, 2, 0, 41, 13, 2, 0, 42, 13, 12, 2, 11, 0, 17, 2, 43, 13, 16, 2, 44, 13, 14, 0, 33, 13,
+ 19, 2, 34, 13, 18, 2, 45, 13, 13, 2, 46, 13, 14, 0, 47, 13, 4, 0, 48, 13, 4, 0, 49, 13, 21, 2, 97, 6, 23, 2, 50, 13,
+ 24, 2, 48, 0, 24, 2, 0, 0, 24, 2, 1, 0,170, 0,150, 3, 25, 2, 2, 0, 64, 0, 51, 13,188, 0,159, 4,140, 0,158, 4,
+ 14, 0, 26, 3, 4, 0, 52, 13, 0, 0, 19, 0, 2, 0,193, 10, 2, 0, 16, 0, 2, 0, 53, 13, 2, 0, 54, 13, 2, 0, 55, 13,
+ 2, 0, 56, 13, 2, 0, 57, 13, 2, 0, 58, 13, 4, 0, 91, 0, 4, 0,191, 3, 4, 0, 59, 13, 4, 0, 60, 13, 4, 0,203, 9,
+ 4, 0,204, 9, 4, 0, 27, 0, 7, 0, 61, 13, 47, 0, 62, 13, 0, 0, 63, 13, 4, 0, 64, 13, 4, 0,193, 12, 7, 0, 65, 13,
+ 7, 0, 66, 13, 7, 0, 67, 13, 7, 0, 68, 13, 7, 0, 69, 13, 7, 0, 70, 13, 7, 0, 71, 13, 7, 0, 72, 13, 7, 0, 73, 13,
+ 7, 0, 74, 13, 7, 0, 75, 13, 7, 0, 76, 13, 7, 0, 77, 13, 7, 0, 78, 13, 0, 0,207, 2, 0, 0, 79, 13, 0, 0, 80, 13,
+ 0, 0, 81, 13,170, 0, 7, 0,169, 0, 82, 13,144, 0, 40, 3, 14, 0, 83, 13, 2, 0, 84, 13, 2, 0, 91, 0, 4, 0, 27, 0,
+ 0, 0, 85, 13,171, 0, 24, 0,169, 0, 82, 13,144, 0, 40, 3,151, 0, 61, 3, 63, 0, 29, 2, 4, 0, 91, 0, 4, 0, 86, 13,
+ 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,181, 1, 7, 0, 87, 13, 7, 0, 88, 13, 7, 0, 89, 13, 7, 0, 90, 13,
+ 50, 0, 91, 13, 50, 0, 92, 13, 2, 0, 93, 13, 2, 0,253, 10, 2, 0, 94, 13, 2, 0, 27, 0, 7, 0, 95, 13, 7, 0, 96, 13,
+ 7, 0, 97, 13, 7, 0, 98, 13, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0};
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 4021b82b2df..f1b31446e4b 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -215,7 +215,7 @@ static void gp_get_3d_reference(tGPsdata *p, float vec[3])
sub_v3_v3v3(vec, fp, ob->loc);
}
else
-#endif
+#endif
{
/* use 3D-cursor */
copy_v3_v3(vec, fp);
diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h
index 192236b7cb8..66e65d114cb 100644
--- a/source/blender/editors/include/ED_node.h
+++ b/source/blender/editors/include/ED_node.h
@@ -49,6 +49,7 @@ void ED_init_node_butfuncs(void);
void ED_node_tree_update(struct SpaceNode *snode, struct Scene *scene);
void ED_node_changed_update(struct ID *id, struct bNode *node);
void ED_node_generic_update(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
+void ED_node_sort(struct bNodeTree *ntree);
/* node_edit.c */
void ED_node_shader_default(struct Scene *scene, struct ID *id);
@@ -57,7 +58,7 @@ void ED_node_texture_default(struct Tex *tex);
void ED_node_link_intersect_test(struct ScrArea *sa, int test);
void ED_node_link_insert(struct ScrArea *sa);
-void ED_node_update_hierarchy(struct bContext *C, struct bNodeTree *ntree);
+void ED_node_post_apply_transform(struct bContext *C, struct bNodeTree *ntree);
void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
/* node ops.c */
diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h
index 4f1bcf057bd..d867532b273 100644
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@ -58,6 +58,7 @@ enum {
TFM_TRANSLATION,
TFM_ROTATION,
TFM_RESIZE,
+ TFM_SKIN_RESIZE,
TFM_TOSPHERE,
TFM_SHEAR,
TFM_WARP,
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index cdc4c492d56..ef7b8ed3a41 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -592,8 +592,8 @@ DEF_ICON(MOD_DYNAMICPAINT)
DEF_ICON(MOD_REMESH)
DEF_ICON(MOD_OCEAN)
DEF_ICON(MOD_WARP)
+DEF_ICON(MOD_SKIN)
#ifndef DEF_ICON_BLANK_SKIP
- DEF_ICON(BLANK165)
DEF_ICON(BLANK166)
DEF_ICON(BLANK167)
DEF_ICON(BLANK168)
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index c0f9d6dd5cd..b82a0c5e480 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -171,6 +171,9 @@ typedef struct uiLayout uiLayout;
#define UI_PANEL_WIDTH 340
#define UI_COMPACT_PANEL_WIDTH 160
+/* uiBut->drawflag */
+#define UI_BUT_DRAW_ENUM_ARROWS (1 << 0) /* draw enum-like up/down arrows for button */
+
/* scale fixed button widths by this to account for DPI
* 8.4852 == sqrtf(72.0f)) */
#define UI_DPI_FAC (sqrtf((float)U.dpi) / 8.48528137423857f)
@@ -427,6 +430,9 @@ int UI_but_active_drop_name(struct bContext *C);
void uiButSetFlag(uiBut *but, int flag);
void uiButClearFlag(uiBut *but, int flag);
+void uiButSetDrawFlag(uiBut *but, int flag);
+void uiButClearDrawFlag(uiBut *but, int flag);
+
/* special button case, only draw it when used actively, for outliner etc */
int uiButActiveOnly(const struct bContext *C, uiBlock *block, uiBut *but);
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index d157db9e993..2d409879ba3 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -198,7 +198,9 @@ enum {
TH_STITCH_PREVIEW_ACTIVE,
TH_MATCH, /* highlight color for search matches */
- TH_SELECT_HIGHLIGHT /* highlight color for selected outliner item */
+ TH_SELECT_HIGHLIGHT, /* highlight color for selected outliner item */
+
+ TH_SKIN_ROOT
};
/* XXX WARNING: previous is saved in file, so do not change order! */
@@ -232,9 +234,10 @@ float UI_GetThemeValuef(int colorid);
int UI_GetThemeValue(int colorid);
// get three color values, scaled to 0.0-1.0 range
-void UI_GetThemeColor3fv(int colorid, float *col);
+void UI_GetThemeColor3fv(int colorid, float col[3]);
// get the color, range 0.0-1.0, complete with shading offset
-void UI_GetThemeColorShade3fv(int colorid, int offset, float *col);
+void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3]);
+void UI_GetThemeColorShade3ubv(int colorid, int offset, unsigned char col[3]);
// get the 3 or 4 byte values
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3]);
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 0c13b5de02e..c0cd17d16d2 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -3356,6 +3356,16 @@ void uiButClearFlag(uiBut *but, int flag)
but->flag &= ~flag;
}
+void uiButSetDrawFlag(uiBut *but, int flag)
+{
+ but->drawflag |= flag;
+}
+
+void uiButClearDrawFlag(uiBut *but, int flag)
+{
+ but->drawflag &= ~flag;
+}
+
int uiButGetRetVal(uiBut *but)
{
return but->retval;
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index 2f9e763a7d0..e535990e7e9 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -79,7 +79,7 @@ int uiGetRoundBox(void)
void uiDrawBox(int mode, float minx, float miny, float maxx, float maxy, float rad)
{
float vec[7][2] = {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293},
- {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+ {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
int a;
/* mult */
@@ -147,7 +147,7 @@ static void round_box_shade_col(const float col1[3], float const col2[3], const
void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, float rad, float shadetop, float shadedown)
{
float vec[7][2] = {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293},
- {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+ {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
const float div = maxy - miny;
const float idiv = 1.0f / div;
float coltop[3], coldown[3], color[4];
@@ -256,7 +256,7 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float
float rad, float shadeLeft, float shadeRight)
{
float vec[7][2] = {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293},
- {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+ {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
const float div = maxx - minx;
const float idiv = 1.0f / div;
float colLeft[3], colRight[3], color[4];
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 8b0c3ecfcf3..428ddb3059f 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -50,6 +50,8 @@
#include "BLI_utildefines.h"
#include "BLI_string_cursor_utf8.h"
+#include "BLF_translation.h"
+
#include "PIL_time.h"
#include "BKE_colortools.h"
@@ -1307,7 +1309,7 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
/* check if position is found */
if (cdist < x) {
- /* check is previous location was infact closer */
+ /* check is previous location was in fact closer */
if (((float)x - cdist) > (cdist_prev - (float)x)) {
but->pos = pos_prev;
}
@@ -4401,10 +4403,10 @@ static int ui_but_menu(bContext *C, uiBut *but)
if (but->rnaprop)
name = RNA_property_ui_name(but->rnaprop);
- else if (but->optype)
- name = but->optype->name;
+ else if (but->optype && but->optype->srna)
+ name = RNA_struct_ui_name(but->optype->srna);
else
- name = "<needs_name>"; // XXX - should never happen.
+ name = IFACE_("<needs_name>"); // XXX - should never happen.
pup = uiPupMenuBegin(C, name, ICON_NONE);
layout = uiPupMenuLayout(pup);
@@ -4424,14 +4426,20 @@ static int ui_but_menu(bContext *C, uiBut *but)
if (but->flag & UI_BUT_ANIMATED_KEY) {
/* replace/delete keyfraemes */
if (length) {
- uiItemBooleanO(layout, "Replace Keyframes", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 1);
- uiItemBooleanO(layout, "Replace Single Keyframe", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
- uiItemBooleanO(layout, "Delete Keyframes", ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 1);
- uiItemBooleanO(layout, "Delete Single Keyframe", ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Replace Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Replace Single Keyframe"),
+ ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Single Keyframe"),
+ ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 0);
}
else {
- uiItemBooleanO(layout, "Replace Keyframe", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
- uiItemBooleanO(layout, "Delete Keyframe", ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Replace Keyframe"),
+ ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Keyframe"),
+ ICON_NONE, "ANIM_OT_keyframe_delete_button", "all", 0);
}
/* keyframe settings */
@@ -4442,11 +4450,14 @@ static int ui_but_menu(bContext *C, uiBut *but)
else if (but->flag & UI_BUT_DRIVEN) ;
else if (is_anim) {
if (length) {
- uiItemBooleanO(layout, "Insert Keyframes", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 1);
- uiItemBooleanO(layout, "Insert Single Keyframe", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Insert Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Insert Single Keyframe"),
+ ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
}
else
- uiItemBooleanO(layout, "Insert Keyframe", ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Insert Keyframe"),
+ ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
}
/* Drivers */
@@ -4454,29 +4465,38 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemS(layout);
if (length) {
- uiItemBooleanO(layout, "Delete Drivers", ICON_NONE, "ANIM_OT_driver_button_remove", "all", 1);
- uiItemBooleanO(layout, "Delete Single Driver", ICON_NONE, "ANIM_OT_driver_button_remove", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Drivers"),
+ ICON_NONE, "ANIM_OT_driver_button_remove", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Single Driver"),
+ ICON_NONE, "ANIM_OT_driver_button_remove", "all", 0);
}
else
- uiItemBooleanO(layout, "Delete Driver", ICON_NONE, "ANIM_OT_driver_button_remove", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Driver"),
+ ICON_NONE, "ANIM_OT_driver_button_remove", "all", 0);
- uiItemO(layout, "Copy Driver", ICON_NONE, "ANIM_OT_copy_driver_button");
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Copy Driver"),
+ ICON_NONE, "ANIM_OT_copy_driver_button");
if (ANIM_driver_can_paste())
- uiItemO(layout, "Paste Driver", ICON_NONE, "ANIM_OT_paste_driver_button");
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Paste Driver"),
+ ICON_NONE, "ANIM_OT_paste_driver_button");
}
else if (but->flag & (UI_BUT_ANIMATED_KEY | UI_BUT_ANIMATED)) ;
else if (is_anim) {
uiItemS(layout);
if (length) {
- uiItemBooleanO(layout, "Add Drivers", ICON_NONE, "ANIM_OT_driver_button_add", "all", 1);
- uiItemBooleanO(layout, "Add Single Driver", ICON_NONE, "ANIM_OT_driver_button_add", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Drivers"),
+ ICON_NONE, "ANIM_OT_driver_button_add", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Single Driver"),
+ ICON_NONE, "ANIM_OT_driver_button_add", "all", 0);
}
else
- uiItemBooleanO(layout, "Add Driver", ICON_NONE, "ANIM_OT_driver_button_add", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Driver"),
+ ICON_NONE, "ANIM_OT_driver_button_add", "all", 0);
if (ANIM_driver_can_paste())
- uiItemO(layout, "Paste Driver", ICON_NONE, "ANIM_OT_paste_driver_button");
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Paste Driver"),
+ ICON_NONE, "ANIM_OT_paste_driver_button");
}
/* Keying Sets */
@@ -4485,13 +4505,18 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemS(layout);
if (length) {
- uiItemBooleanO(layout, "Add All to Keying Set", ICON_NONE, "ANIM_OT_keyingset_button_add", "all", 1);
- uiItemBooleanO(layout, "Add Single to Keying Set", ICON_NONE, "ANIM_OT_keyingset_button_add", "all", 0);
- uiItemO(layout, "Remove from Keying Set", ICON_NONE, "ANIM_OT_keyingset_button_remove");
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add All to Keying Set"),
+ ICON_NONE, "ANIM_OT_keyingset_button_add", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Single to Keying Set"),
+ ICON_NONE, "ANIM_OT_keyingset_button_add", "all", 0);
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Remove from Keying Set"),
+ ICON_NONE, "ANIM_OT_keyingset_button_remove");
}
else {
- uiItemBooleanO(layout, "Add to Keying Set", ICON_NONE, "ANIM_OT_keyingset_button_add", "all", 0);
- uiItemO(layout, "Remove from Keying Set", ICON_NONE, "ANIM_OT_keyingset_button_remove");
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add to Keying Set"),
+ ICON_NONE, "ANIM_OT_keyingset_button_add", "all", 0);
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Remove from Keying Set"),
+ ICON_NONE, "ANIM_OT_keyingset_button_remove");
}
}
@@ -4503,14 +4528,19 @@ static int ui_but_menu(bContext *C, uiBut *but)
//Paste Property Value
if (length) {
- uiItemBooleanO(layout, "Reset All to Default Values", ICON_NONE, "UI_OT_reset_default_button", "all", 1);
- uiItemBooleanO(layout, "Reset Single to Default Value", ICON_NONE, "UI_OT_reset_default_button", "all", 0);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Reset All to Default Values"),
+ ICON_NONE, "UI_OT_reset_default_button", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Reset Single to Default Value"),
+ ICON_NONE, "UI_OT_reset_default_button", "all", 0);
}
else
- uiItemO(layout, "Reset to Default Value", ICON_NONE, "UI_OT_reset_default_button");
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Reset to Default Value"),
+ ICON_NONE, "UI_OT_reset_default_button");
- uiItemO(layout, "Copy Data Path", ICON_NONE, "UI_OT_copy_data_path_button");
- uiItemO(layout, "Copy To Selected", ICON_NONE, "UI_OT_copy_to_selected_button");
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Copy Data Path"),
+ ICON_NONE, "UI_OT_copy_data_path_button");
+ uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Copy To Selected"),
+ ICON_NONE, "UI_OT_copy_to_selected_button");
uiItemS(layout);
}
@@ -4534,15 +4564,18 @@ static int ui_but_menu(bContext *C, uiBut *but)
// would rather use a block but, but gets weirdly positioned...
//uiDefBlockBut(block, menu_change_shortcut, but, "Change Shortcut", 0, 0, uiLayoutGetWidth(layout), UI_UNIT_Y, "");
- but2 = uiDefIconTextBut(block, BUT, 0, 0, "Change Shortcut", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ but2 = uiDefIconTextBut(block, BUT, 0, 0, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Change Shortcut"),
+ 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
uiButSetFunc(but2, popup_change_shortcut_func, but, NULL);
- but2 = uiDefIconTextBut(block, BUT, 0, 0, "Remove Shortcut", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ but2 = uiDefIconTextBut(block, BUT, 0, 0, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Remove Shortcut"),
+ 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
uiButSetFunc(but2, remove_shortcut_func, but, NULL);
}
/* only show 'add' if there's a suitable key map for it to go in */
else if (WM_keymap_guess_opname(C, but->optype->idname)) {
- but2 = uiDefIconTextBut(block, BUT, 0, 0, "Add Shortcut", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ but2 = uiDefIconTextBut(block, BUT, 0, 0, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Shortcut"),
+ 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
uiButSetFunc(but2, popup_add_shortcut_func, but, NULL);
}
@@ -4560,7 +4593,8 @@ static int ui_but_menu(bContext *C, uiBut *but)
WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
RNA_string_set(&ptr_props, "doc_id", buf);
- uiItemFullO(layout, "WM_OT_doc_view", "Python Documentation", ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_view", CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Python Documentation"),
+ ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
/* XXX inactive option, not for public! */
#if 0
@@ -4576,19 +4610,22 @@ static int ui_but_menu(bContext *C, uiBut *but)
WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
RNA_string_set(&ptr_props, "doc_id", buf);
- uiItemFullO(layout, "WM_OT_doc_view", "Python Documentation", ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_view", CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Python Documentation"),
+ ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");
RNA_string_set(&ptr_props, "doc_id", buf);
RNA_string_set(&ptr_props, "doc_new", but->optype->description);
- uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", ICON_NONE, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_edit", CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Submit Description"),
+ ICON_NONE, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
}
}
/* perhaps we should move this into (G.debug & G_DEBUG) - campbell */
- uiItemFullO(layout, "UI_OT_editsource", "Edit Source", ICON_NONE, NULL, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "UI_OT_editsource", CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Edit Source"),
+ ICON_NONE, NULL, WM_OP_INVOKE_DEFAULT, 0);
uiPupMenuEnd(C, pup);
@@ -5185,7 +5222,7 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA
but->block->auto_open = FALSE;
if (type == BUTTON_ACTIVATE_OVER) {
- data->used_mouse = 1;
+ data->used_mouse = TRUE;
}
button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT);
@@ -5714,7 +5751,8 @@ static int ui_handle_list_event(bContext *C, wmEvent *event, ARegion *ar)
Panel *pa = but->block->panel;
if (ELEM(event->type, UPARROWKEY, DOWNARROWKEY) ||
- ((ELEM(event->type, WHEELUPMOUSE, WHEELDOWNMOUSE) && event->alt))) {
+ ((ELEM(event->type, WHEELUPMOUSE, WHEELDOWNMOUSE) && event->alt)))
+ {
/* activate up/down the list */
value = RNA_property_int_get(&but->rnapoin, but->rnaprop);
@@ -5808,7 +5846,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut *
else {
if (ISKEYBOARD(event->type)) {
/* keyboard menu hierarchy navigation, going back to previous level */
- but->active->used_mouse = 0;
+ but->active->used_mouse = FALSE;
button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT);
}
else {
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 2c4ec9ac482..5d12bdf71da 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -150,7 +150,7 @@ typedef struct {
struct uiBut {
struct uiBut *next, *prev;
- int flag;
+ int flag, drawflag;
short type, pointype, bit, bitnr, retval, strwidth, ofs, pos, selsta, selend, alignnr;
short pad1;
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 958ee9f5420..4c2d86de502 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -2679,7 +2679,7 @@ void ui_layout_add_but(uiLayout *layout, uiBut *but)
if (layout->context) {
but->context = layout->context;
- but->context->used = 1;
+ but->context->used = TRUE;
}
}
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index f2a43580fd8..dfd2d0cc4d0 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -368,7 +368,7 @@ static void UI_OT_reset_default_button(wmOperatorType *ot)
static int copy_to_selected_list(bContext *C, PointerRNA *ptr, ListBase *lb, int *use_path)
{
- *use_path = 0;
+ *use_path = FALSE;
if (RNA_struct_is_a(ptr->type, &RNA_EditBone))
*lb = CTX_data_collection_get(C, "selected_editable_bones");
@@ -381,7 +381,7 @@ static int copy_to_selected_list(bContext *C, PointerRNA *ptr, ListBase *lb, int
if (id && GS(id->name) == ID_OB) {
*lb = CTX_data_collection_get(C, "selected_editable_objects");
- *use_path = 1;
+ *use_path = TRUE;
}
else
return 0;
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index dc2c3b4eea9..cbe44505263 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -754,14 +754,14 @@ static int uiAlignPanelStep(ScrArea *sa, ARegion *ar, float fac, int drag)
}
/* we interpolate */
- done = 0;
+ done = FALSE;
ps = panelsort;
for (a = 0; a < tot; a++, ps++) {
if ((ps->pa->flag & PNL_SELECT) == 0) {
if ((ps->orig->ofsx != ps->pa->ofsx) || (ps->orig->ofsy != ps->pa->ofsy)) {
ps->orig->ofsx = floorf(0.5f + fac * (float)ps->pa->ofsx + (1.0f - fac) * (float)ps->orig->ofsx);
ps->orig->ofsy = floorf(0.5f + fac * (float)ps->pa->ofsy + (1.0f - fac) * (float)ps->orig->ofsy);
- done = 1;
+ done = TRUE;
}
}
}
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index a36b2dd2c45..5459f689e9f 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -442,7 +442,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
if (ELEM(but->type, ROW, MENU)) {
EnumPropertyItem *item;
int i, totitem, free;
- int value = (but->type == ROW) ? but->hardmax : ui_get_but_val(but);
+ int value = (but->type == ROW) ? (int)but->hardmax : (int)ui_get_but_val(but);
RNA_property_enum_items_gettexted(C, &but->rnapoin, but->rnaprop, &item, &totitem, &free);
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index b8969dcd634..30f8003afbd 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -376,6 +376,9 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
else if (flag & UI_ID_BROWSE) {
but = uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X * 1.6, UI_UNIT_Y,
TIP_(template_id_browse_tip(type)));
+
+ uiButSetDrawFlag(but, UI_BUT_DRAW_ENUM_ARROWS);
+
if (type) {
but->icon = RNA_struct_ui_icon(type);
/* default dragging of icon for id browse buttons */
@@ -2156,11 +2159,11 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
manode = give_node_material(ma);
if (manode) {
char str[MAX_ID_NAME + 12];
- BLI_snprintf(str, sizeof(str), "Node %s", manode->id.name + 2);
+ BLI_snprintf(str, sizeof(str), IFACE_("Node %s"), manode->id.name + 2);
uiItemL(sub, str, ui_id_icon_get(C, &manode->id, 1));
}
else if (ma->use_nodes) {
- uiItemL(sub, "Node <none>", ICON_NONE);
+ uiItemL(sub, IFACE_("Node <none>"), ICON_NONE);
}
}
}
@@ -2194,7 +2197,9 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
uiDefButR(block, OPTION, 0, "", 0, 0, UI_UNIT_X, UI_UNIT_Y, itemptr, "lock_weight", 0, 0, 0, 0, 0, NULL);
#else
uiBlockSetEmboss(block, UI_EMBOSSN);
- uiDefIconButBitC(block, TOG, DG_LOCK_WEIGHT, 0, (dg->flag & DG_LOCK_WEIGHT) ? ICON_LOCKED : ICON_UNLOCKED, 0, 0, UI_UNIT_X, UI_UNIT_Y, &dg->flag, 0, 0, 0, 0, "Maintain relative weights while painting");
+ uiDefIconButBitC(block, TOG, DG_LOCK_WEIGHT, 0, (dg->flag & DG_LOCK_WEIGHT) ? ICON_LOCKED : ICON_UNLOCKED,
+ 0, 0, UI_UNIT_X, UI_UNIT_Y, &dg->flag, 0, 0, 0, 0,
+ TIP_("Maintain relative weights while painting"));
uiBlockSetEmboss(block, UI_EMBOSS);
#endif
}
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index fe7a4e85418..4d483b69ca2 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -127,8 +127,11 @@ typedef struct uiWidgetType {
/* *********************** draw data ************************** */
-static float cornervec[WIDGET_CURVE_RESOLU][2] = {{0.0, 0.0}, {0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169},
- {0.707, 0.293}, {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}, {1.0, 1.0}};
+static float cornervec[WIDGET_CURVE_RESOLU][2] = {
+ {0.0, 0.0}, {0.195, 0.02}, {0.383, 0.067},
+ {0.55, 0.169}, {0.707, 0.293}, {0.831, 0.45},
+ {0.924, 0.617}, {0.98, 0.805}, {1.0, 1.0}
+};
#define WIDGET_AA_JITTER 8
static float jit[WIDGET_AA_JITTER][2] = {
@@ -158,10 +161,12 @@ static unsigned int scroll_circle_face[14][3] = {
{6, 13, 12}, {6, 12, 7}, {7, 12, 11}, {7, 11, 8}, {8, 11, 10}, {8, 10, 9}
};
-static float menu_tria_vert[6][2] = {
- {-0.41, 0.16}, {0.41, 0.16}, {0, 0.82},
- {0, -0.82}, {-0.41, -0.16}, {0.41, -0.16}
-};
+
+static float menu_tria_vert[6][2]= {
+{-0.33, 0.16}, {0.33, 0.16}, {0, 0.82},
+{0, -0.82}, {-0.33, -0.16}, {0.33, -0.16}};
+
+
static unsigned int menu_tria_face[2][3] = {{2, 0, 1}, {3, 5, 4}};
@@ -1160,11 +1165,13 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
if (fstyle->kerning == 1)
BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
-
- // ui_rasterpos_safe(x, y, but->aspect);
-// if (but->type==IDPOIN) transopts= 0; // no translation, of course!
-// else transopts= ui_translate_buttons();
-
+
+#if 0
+ ui_rasterpos_safe(x, y, but->aspect);
+ if (but->type == IDPOIN) transopts = 0; // no translation, of course!
+ else transopts = ui_translate_buttons();
+#endif
+
/* cut string in 2 parts - only for menu entries */
if ((but->block->flag & UI_BLOCK_LOOP)) {
if (ELEM5(but->type, SLI, NUM, TEX, NUMSLI, NUMABS) == 0) {
@@ -3123,10 +3130,18 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
case MENU:
case BLOCK:
case ICONTEXTROW:
+ /* new node-link button, not active yet XXX */
if (but->flag & UI_BUT_NODE_LINK)
wt = widget_type(UI_WTYPE_MENU_NODE_LINK);
- else if (!but->str[0] && but->icon)
- wt = widget_type(UI_WTYPE_MENU_ICON_RADIO);
+
+ /* no text, with icon */
+ else if (!but->str[0] && but->icon) {
+ if (but->drawflag & UI_BUT_DRAW_ENUM_ARROWS)
+ wt = widget_type(UI_WTYPE_MENU_RADIO); /* with arrows */
+ else
+ wt = widget_type(UI_WTYPE_MENU_ICON_RADIO); /* no arrows */
+ }
+ /* with menu arrows */
else
wt = widget_type(UI_WTYPE_MENU_RADIO);
break;
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 1589bbc123f..0d16e0f4dc0 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -469,6 +469,10 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
case TH_SELECT_HIGHLIGHT:
cp = ts->selected_highlight;
break;
+
+ case TH_SKIN_ROOT:
+ cp = ts->skin_root;
+ break;
}
}
}
@@ -702,6 +706,8 @@ void ui_theme_init_default(void)
rgba_char_args_set(btheme->tv3d.bundle_solid, 200, 200, 200, 255);
rgba_char_args_set(btheme->tv3d.camera_path, 0x00, 0x00, 0x00, 255);
+
+ rgba_char_args_set(btheme->tv3d.skin_root, 180, 77, 77, 255);
/* space buttons */
/* to have something initialized */
@@ -837,7 +843,7 @@ void ui_theme_init_default(void)
/* space node, re-uses syntax color storage */
btheme->tnode = btheme->tv3d;
- rgba_char_args_set(btheme->tnode.edge_select, 255, 255, 255, 255);
+ rgba_char_args_set(btheme->tnode.edge_select, 255, 255, 255, 255); /* wire selected */
rgba_char_args_set(btheme->tnode.syntaxl, 155, 155, 155, 160); /* TH_NODE, backdrop */
rgba_char_args_set(btheme->tnode.syntaxn, 100, 100, 100, 255); /* in/output */
rgba_char_args_set(btheme->tnode.syntaxb, 108, 105, 111, 255); /* operator */
@@ -1028,7 +1034,7 @@ int UI_GetThemeValue(int colorid)
// get the color, range 0.0-1.0
-void UI_GetThemeColor3fv(int colorid, float *col)
+void UI_GetThemeColor3fv(int colorid, float col[3])
{
const unsigned char *cp;
@@ -1039,7 +1045,7 @@ void UI_GetThemeColor3fv(int colorid, float *col)
}
// get the color, range 0.0-1.0, complete with shading offset
-void UI_GetThemeColorShade3fv(int colorid, int offset, float *col)
+void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3])
{
int r, g, b;
const unsigned char *cp;
@@ -1058,6 +1064,25 @@ void UI_GetThemeColorShade3fv(int colorid, int offset, float *col)
col[2] = ((float)b) / 255.0f;
}
+void UI_GetThemeColorShade3ubv(int colorid, int offset, unsigned char col[3])
+{
+ int r, g, b;
+ const unsigned char *cp;
+
+ cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
+
+ r = offset + (int) cp[0];
+ CLAMP(r, 0, 255);
+ g = offset + (int) cp[1];
+ CLAMP(g, 0, 255);
+ b = offset + (int) cp[2];
+ CLAMP(b, 0, 255);
+
+ col[0] = r;
+ col[1] = g;
+ col[2] = b;
+}
+
// get the color, in char pointer
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
{
@@ -1746,7 +1771,7 @@ void init_userdef_do_versions(void)
rgba_char_args_set_fl(btheme->toops.selected_highlight, 0.51, 0.53, 0.55, 0.3);
}
- U.use_16bit_textures = 1;
+ U.use_16bit_textures = TRUE;
}
if (bmain->versionfile < 262 || (bmain->versionfile == 262 && bmain->subversionfile < 2)) {
@@ -1789,6 +1814,12 @@ void init_userdef_do_versions(void)
}
}
+ if (bmain->versionfile < 263 || (bmain->versionfile == 263 && bmain->subversionfile < 6)) {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next)
+ rgba_char_args_set(btheme->tv3d.skin_root, 180, 77, 77, 255);
+ }
+
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {
U.texcollectrate = 60;
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index ed010dc973a..1d315e9a5b8 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -419,14 +419,14 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
/* check if we should restore aspect ratio (if view size changed) */
if (v2d->keepzoom & V2D_KEEPASPECT) {
- short do_x = 0, do_y = 0, do_cur /* , do_win */ /* UNUSED */;
+ short do_x = FALSE, do_y = FALSE, do_cur /* , do_win */ /* UNUSED */;
float /* curRatio, */ /* UNUSED */ winRatio;
/* when a window edge changes, the aspect ratio can't be used to
* find which is the best new 'cur' rect. thats why it stores 'old'
*/
- if (winx != v2d->oldwinx) do_x = 1;
- if (winy != v2d->oldwiny) do_y = 1;
+ if (winx != v2d->oldwinx) do_x = TRUE;
+ if (winy != v2d->oldwiny) do_y = TRUE;
/* curRatio= height / width; */ /* UNUSED */
winRatio = winy / winx;
@@ -435,11 +435,11 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
if (do_x == do_y) {
if (do_x && do_y) {
/* here is 1,1 case, so all others must be 0,0 */
- if (ABS(winx - v2d->oldwinx) > ABS(winy - v2d->oldwiny)) do_y = 0;
- else do_x = 0;
+ if (ABS(winx - v2d->oldwinx) > ABS(winy - v2d->oldwiny)) do_y = FALSE;
+ else do_x = FALSE;
}
- else if (winRatio > 1.0f) do_x = 0;
- else do_x = 1;
+ else if (winRatio > 1.0f) do_x = FALSE;
+ else do_x = TRUE;
}
do_cur = do_x;
/* do_win= do_y; */ /* UNUSED */
@@ -1442,7 +1442,7 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
v2d->scroll |= V2D_SCROLL_HORIZONTAL_FULLR;
scrollers->horfull = 1;
}
- else
+ else
v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_FULLR;
}
}
@@ -1484,7 +1484,7 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
v2d->scroll |= V2D_SCROLL_VERTICAL_FULLR;
scrollers->vertfull = 1;
}
- else
+ else
v2d->scroll &= ~V2D_SCROLL_VERTICAL_FULLR;
}
}
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index 63704f5b8e6..3da2b4711f3 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -231,7 +231,7 @@ static void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int ind
MLoop *ml;
MEdge *med;
char *linkflag;
- int a, b, doit = 1, mark = 0;
+ int a, b, do_it = TRUE, mark = 0;
ehash = BLI_edgehash_new();
seamhash = BLI_edgehash_new();
@@ -259,8 +259,8 @@ static void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int ind
}
}
- while (doit) {
- doit = 0;
+ while (do_it) {
+ do_it = FALSE;
/* expand selection */
mp = me->mpoly;
@@ -283,7 +283,7 @@ static void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int ind
if (mark) {
linkflag[a] = 1;
hash_add_face(ehash, mp, me->mloop + mp->loopstart);
- doit = 1;
+ do_it = TRUE;
}
}
}
@@ -860,7 +860,7 @@ void ED_mesh_mirrtopo_init(Mesh *me, const int ob_mode, MirrTopoStore_t *mesh_to
}
if (tot_unique <= tot_unique_prev) {
- /* Finish searching for unique valus when 1 loop dosnt give a
+ /* Finish searching for unique values when 1 loop dosnt give a
* higher number of unique values compared to the previous loop */
break;
}
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index a9ec893adb7..6bbcd1d253e 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -308,7 +308,7 @@ static KnifeVert *get_bm_knife_vert(KnifeTool_OpData *kcd, BMVert *v)
/**
* get a KnifeEdge wrapper for an existing BMEdge
- * \note #knife_get_face_kedges / #get_bm_knife_edge are called recusively - KEEP STACK MEM USAGE LOW */
+ * \note #knife_get_face_kedges / #get_bm_knife_edge are called recursively - KEEP STACK MEM USAGE LOW */
static KnifeEdge *get_bm_knife_edge(KnifeTool_OpData *kcd, BMEdge *e)
{
KnifeEdge *kfe = BLI_ghash_lookup(kcd->origedgemap, e);
@@ -365,7 +365,7 @@ static void knife_start_cut(KnifeTool_OpData *kcd)
}
/**
- * \note #knife_get_face_kedges / #get_bm_knife_edge are called recusively - KEEP STACK MEM USAGE LOW */
+ * \note #knife_get_face_kedges / #get_bm_knife_edge are called recursively - KEEP STACK MEM USAGE LOW */
static ListBase *knife_get_face_kedges(KnifeTool_OpData *kcd, BMFace *f)
{
ListBase *lst = BLI_ghash_lookup(kcd->kedgefacemap, f);
@@ -889,7 +889,7 @@ static void knifetool_draw_angle_snapping(KnifeTool_OpData *kcd)
static void knife_init_colors(KnifeColors *colors)
{
/* possible BMESH_TODO: add explicit themes or calculate these by
- * figuring out constrasting colors with grid / edges / verts
+ * figuring out contrasting colors with grid / edges / verts
* a la UI_make_axis_color */
UI_GetThemeColor3ubv(TH_NURB_VLINE, colors->line);
UI_GetThemeColor3ubv(TH_NURB_ULINE, colors->edge);
diff --git a/source/blender/editors/mesh/editmesh_rip.c b/source/blender/editors/mesh/editmesh_rip.c
index b74e8797d72..1bcd5cee111 100644
--- a/source/blender/editors/mesh/editmesh_rip.c
+++ b/source/blender/editors/mesh/editmesh_rip.c
@@ -139,7 +139,7 @@ static float edbm_rip_edge_side_measure(BMEdge *e, BMLoop *e_l,
* connected edge loops.
* The reason for using loops like this is because when the edges are split we don't which face user gets the newly
* created edge (its as good as random so we cant assume new edges will be on once side).
- * After splittingm, its very simple to walk along boundary loops since each only has one edge from a single side.
+ * After splitting, its very simple to walk along boundary loops since each only has one edge from a single side.
* - The end loop pairs are stored in an array however to support multiple edge-selection-islands, so you can rip
* multiple selections at once.
* - * Execute the split *
@@ -348,7 +348,8 @@ static int edbm_rip_call_edgesplit(BMEditMesh *em, wmOperator *op)
BMOperator bmop;
if (!EDBM_op_init(em, &bmop, op, "edgesplit edges=%he verts=%hv use_verts=%b",
- BM_ELEM_TAG, BM_ELEM_SELECT, TRUE)) {
+ BM_ELEM_TAG, BM_ELEM_SELECT, TRUE))
+ {
return FALSE;
}
BMO_op_exec(em->bm, &bmop);
@@ -710,7 +711,7 @@ static int edbm_rip_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* running in face mode hardly makes sense, so convert to region loop and rip */
if (em->bm->totfacesel) {
- /* highly nifty but hard to sypport since the operator can fail and we're left
+ /* highly nifty but hard to support since the operator can fail and we're left
* with modified selection */
// WM_operator_name_call(C, "MESH_OT_region_to_loop", WM_OP_INVOKE_DEFAULT, NULL);
diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c
index 2df89a3df6c..55f575bbdea 100644
--- a/source/blender/editors/mesh/editmesh_select.c
+++ b/source/blender/editors/mesh/editmesh_select.c
@@ -931,23 +931,16 @@ static int edbm_loop_multiselect_exec(bContext *C, wmOperator *op)
BMIter iter;
int totedgesel = 0;
- for (eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL);
- eed; eed = BM_iter_step(&iter)) {
-
+ BM_ITER_MESH (eed, &iter, em->bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
totedgesel++;
}
}
-
edarray = MEM_mallocN(sizeof(BMEdge *) * totedgesel, "edge array");
edindex = 0;
- for (eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL);
- eed;
- eed = BM_iter_step(&iter))
- {
-
+ BM_ITER_MESH (eed, &iter, em->bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
edarray[edindex] = eed;
edindex++;
@@ -1277,7 +1270,7 @@ static int edgetag_shortest_path(Scene *scene, BMEditMesh *em, BMEdge *source, B
* path found so far to edge n. The visitedhash will of course contain entries
* for edges that have been visited, cost[n] will contain the length of the shortest
* path to edge n found so far, Finally, heap is a priority heap which is built on the
- * the same data as the cost arry, but inverted: it is a worklist of edges prioritized
+ * the same data as the cost array, but inverted: it is a worklist of edges prioritized
* by the shortest path found so far to the edge.
*/
@@ -2245,8 +2238,6 @@ static int edbm_select_sharp_edges_exec(bContext *C, wmOperator *op)
BMLoop *l1, *l2;
float sharp = RNA_float_get(op->ptr, "sharpness"), angle;
- sharp = DEG2RADF(sharp);
-
BM_ITER_MESH (e, &iter, em->bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(e, BM_ELEM_HIDDEN) || !e->l)
continue;
@@ -2273,9 +2264,11 @@ static int edbm_select_sharp_edges_exec(bContext *C, wmOperator *op)
void MESH_OT_edges_select_sharp(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Select Sharp Edges";
- ot->description = "Marked selected edges as sharp";
+ ot->description = "Select all sharp-enough edges";
ot->idname = "MESH_OT_edges_select_sharp";
/* api callbacks */
@@ -2286,7 +2279,9 @@ void MESH_OT_edges_select_sharp(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* props */
- RNA_def_float(ot->srna, "sharpness", 1.0f, 0.01f, FLT_MAX, "sharpness", "", 1.0f, 180.0f);
+ prop = RNA_def_float_rotation(ot->srna, "sharpness", 0, NULL, DEG2RADF(0.01f), DEG2RADF(180.0f),
+ "Sharpness", "", DEG2RADF(1.0f), DEG2RADF(180.0f));
+ RNA_def_property_float_default(prop, DEG2RADF(1.0f));
}
static int edbm_select_linked_flat_faces_exec(bContext *C, wmOperator *op)
@@ -2300,8 +2295,6 @@ static int edbm_select_linked_flat_faces_exec(bContext *C, wmOperator *op)
float sharp = RNA_float_get(op->ptr, "sharpness");
int i;
- sharp = (sharp * (float)M_PI) / 180.0f;
-
BM_ITER_MESH (f, &iter, em->bm, BM_FACES_OF_MESH) {
BM_elem_flag_disable(f, BM_ELEM_TAG);
}
@@ -2354,6 +2347,8 @@ static int edbm_select_linked_flat_faces_exec(bContext *C, wmOperator *op)
void MESH_OT_faces_select_linked_flat(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Select Linked Flat Faces";
ot->description = "Select linked faces by angle";
@@ -2367,7 +2362,9 @@ void MESH_OT_faces_select_linked_flat(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* props */
- RNA_def_float(ot->srna, "sharpness", 1.0f, 0.01f, FLT_MAX, "sharpness", "", 1.0f, 180.0f);
+ prop = RNA_def_float_rotation(ot->srna, "sharpness", 0, NULL, DEG2RADF(0.01f), DEG2RADF(180.0f),
+ "Sharpness", "", DEG2RADF(1.0f), DEG2RADF(180.0f));
+ RNA_def_property_float_default(prop, DEG2RADF(1.0f));
}
static int edbm_select_non_manifold_exec(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 57f663aa571..708273df109 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -722,7 +722,7 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
BMVert *v1;
BMIter iter;
float min[3], max[3];
- int done = 0;
+ int done = FALSE;
short use_proj;
em_setup_viewcontext(C, &vc);
@@ -735,7 +735,7 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
BM_ITER_MESH (v1, &iter, vc.em->bm, BM_VERTS_OF_MESH) {
if (BM_elem_flag_test(v1, BM_ELEM_SELECT)) {
minmax_v3v3_v3(min, max, v1->co);
- done = 1;
+ done = TRUE;
}
}
@@ -753,7 +753,7 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
mval_f[1] = (float)event->mval[1];
/* check for edges that are half selected, use for rotation */
- done = 0;
+ done = FALSE;
BM_ITER_MESH (eed, &iter, vc.em->bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
float co1[3], co2[3];
@@ -776,7 +776,7 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
nor[1] += -(co2[0] - co1[0]);
}
}
- done = 1;
+ done = TRUE;
}
if (done) {
@@ -3534,8 +3534,7 @@ static int edbm_select_by_number_vertices_exec(bContext *C, wmOperator *op)
int numverts = RNA_int_get(op->ptr, "number");
int type = RNA_enum_get(op->ptr, "type");
- for (efa = BM_iter_new(&iter, em->bm, BM_FACES_OF_MESH, NULL);
- efa; efa = BM_iter_step(&iter)) {
+ BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
int select = 0;
@@ -3598,17 +3597,13 @@ static int edbm_select_loose_verts_exec(bContext *C, wmOperator *UNUSED(op))
BMEdge *eed;
BMIter iter;
- for (eve = BM_iter_new(&iter, em->bm, BM_VERTS_OF_MESH, NULL);
- eve; eve = BM_iter_step(&iter)) {
-
+ BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
if (!eve->e) {
BM_vert_select_set(em->bm, eve, TRUE);
}
}
- for (eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL);
- eed; eed = BM_iter_step(&iter)) {
-
+ BM_ITER_MESH (eed, &iter, em->bm, BM_EDGES_OF_MESH) {
if (!eed->l) {
BM_edge_select_set(em->bm, eed, TRUE);
}
@@ -3967,7 +3962,7 @@ static void sort_bmelem_flag(bContext *C, const int types, const int flag, const
else if (action == SRT_RANDOMIZE) {
if (totelem[0]) {
- /* Re-init random generator for each element type, to get consistant random when
+ /* Re-init random generator for each element type, to get consistent random when
* enabling/disabling an element type. */
BLI_srandom(seed);
pb = pblock[0] = MEM_callocN(sizeof(char) * totelem[0], "sort_bmelem vert pblock");
@@ -4322,7 +4317,7 @@ typedef struct {
static void edbm_bevel_update_header(wmOperator *op, bContext *C)
{
- static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RClick), factor: %f, , Use Dist (D): %s: Use Even (E): %s";
+ static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RMB), factor: %f, Use Dist (D): %s: Use Even (E): %s";
char msg[HEADER_LENGTH];
ScrArea *sa = CTX_wm_area(C);
@@ -4546,7 +4541,7 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
mdiff[1] = opdata->mcenter[1] - event->mval[1];
factor = len_v2(mdiff) / opdata->initial_length;
- factor = MAX2(1.0 - factor, 0.0);
+ factor = MAX2(1.0f - factor, 0.0f);
RNA_float_set(op->ptr, "percent", factor);
@@ -4842,7 +4837,7 @@ static int edbm_inset_modal(bContext *C, wmOperator *op, wmEvent *event)
else {
amount = opdata->old_thickness - (len_v2(mdiff)
- opdata->initial_length) / opdata->initial_length;
- amount = MAX2(amount, 0.0);
+ amount = MAX2(amount, 0.0f);
RNA_float_set(op->ptr, "thickness", amount);
}
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c
index bc11a627be6..19ca30b9c45 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.c
@@ -309,44 +309,44 @@ int ED_mesh_uv_loop_reset(struct bContext *C, struct Mesh *me)
int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_set)
{
BMEditMesh *em;
- int layernum;
+ int layernum_dst;
short is_init = FALSE;
if (me->edit_btmesh) {
em = me->edit_btmesh;
- layernum = CustomData_number_of_layers(&em->bm->pdata, CD_MTEXPOLY);
- if (layernum >= MAX_MTFACE)
+ layernum_dst = CustomData_number_of_layers(&em->bm->pdata, CD_MTEXPOLY);
+ if (layernum_dst >= MAX_MTFACE)
return -1;
/* CD_MTEXPOLY */
BM_data_layer_add_named(em->bm, &em->bm->pdata, CD_MTEXPOLY, name);
/* copy data from active UV */
- if (layernum) {
- const int layernum_dst = CustomData_get_active_layer(&em->bm->pdata, CD_MTEXPOLY);
- BM_data_layer_copy(em->bm, &em->bm->pdata, CD_MTEXPOLY, layernum, layernum_dst);
+ if (layernum_dst) {
+ const int layernum_src = CustomData_get_active_layer(&em->bm->pdata, CD_MTEXPOLY);
+ BM_data_layer_copy(em->bm, &em->bm->pdata, CD_MTEXPOLY, layernum_src, layernum_dst);
}
- if (active_set || layernum == 0) {
- CustomData_set_layer_active(&em->bm->pdata, CD_MTEXPOLY, layernum);
+ if (active_set || layernum_dst == 0) {
+ CustomData_set_layer_active(&em->bm->pdata, CD_MTEXPOLY, layernum_dst);
}
/* CD_MLOOPUV */
BM_data_layer_add_named(em->bm, &em->bm->ldata, CD_MLOOPUV, name);
/* copy data from active UV */
- if (layernum) {
- const int layernum_dst = CustomData_get_active_layer(&em->bm->ldata, CD_MLOOPUV);
- BM_data_layer_copy(em->bm, &em->bm->ldata, CD_MLOOPUV, layernum, layernum_dst);
+ if (layernum_dst) {
+ const int layernum_src = CustomData_get_active_layer(&em->bm->ldata, CD_MLOOPUV);
+ BM_data_layer_copy(em->bm, &em->bm->ldata, CD_MLOOPUV, layernum_src, layernum_dst);
is_init = TRUE;
}
- if (active_set || layernum == 0) {
- CustomData_set_layer_active(&em->bm->ldata, CD_MLOOPUV, layernum);
+ if (active_set || layernum_dst == 0) {
+ CustomData_set_layer_active(&em->bm->ldata, CD_MLOOPUV, layernum_dst);
}
}
else {
- layernum = CustomData_number_of_layers(&me->pdata, CD_MTEXPOLY);
- if (layernum >= MAX_MTFACE)
+ layernum_dst = CustomData_number_of_layers(&me->pdata, CD_MTEXPOLY);
+ if (layernum_dst >= MAX_MTFACE)
return -1;
if (me->mtpoly) {
@@ -361,11 +361,11 @@ int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_s
CustomData_add_layer_named(&me->fdata, CD_MTFACE, CD_DEFAULT, NULL, me->totface, name);
}
- if (active_set || layernum == 0) {
- CustomData_set_layer_active(&me->pdata, CD_MTEXPOLY, layernum);
- CustomData_set_layer_active(&me->ldata, CD_MLOOPUV, layernum);
+ if (active_set || layernum_dst == 0) {
+ CustomData_set_layer_active(&me->pdata, CD_MTEXPOLY, layernum_dst);
+ CustomData_set_layer_active(&me->ldata, CD_MLOOPUV, layernum_dst);
- CustomData_set_layer_active(&me->fdata, CD_MTFACE, layernum);
+ CustomData_set_layer_active(&me->fdata, CD_MTFACE, layernum_dst);
}
mesh_update_customdata_pointers(me, TRUE);
@@ -373,13 +373,13 @@ int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_s
/* don't overwrite our copied coords */
if (is_init == FALSE) {
- ED_mesh_uv_loop_reset_ex(C, me, layernum);
+ ED_mesh_uv_loop_reset_ex(C, me, layernum_dst);
}
DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM | ND_DATA, me);
- return layernum;
+ return layernum_dst;
}
int ED_mesh_uv_texture_remove(bContext *C, Object *ob, Mesh *me)
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 69aae5c4f06..fe5fafb0ca0 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -735,7 +735,7 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op)
if (BKE_scene_use_new_shading_nodes(scene)) {
ED_node_shader_default(scene, &la->id);
- la->use_nodes = 1;
+ la->use_nodes = TRUE;
}
return OPERATOR_FINISHED;
@@ -901,7 +901,7 @@ static int object_delete_exec(bContext *C, wmOperator *op)
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
const short use_global = RNA_boolean_get(op->ptr, "use_global");
- /* int islamp= 0; */ /* UNUSED */
+ /* int is_lamp = FALSE; */ /* UNUSED */
if (CTX_data_edit_object(C))
return OPERATOR_CANCELLED;
@@ -909,7 +909,7 @@ static int object_delete_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN (C, Base *, base, selected_bases)
{
- /* if (base->object->type==OB_LAMP) islamp= 1; */
+ /* if (base->object->type==OB_LAMP) is_lamp = TRUE; */
/* deselect object -- it could be used in other scenes */
base->object->flag &= ~SELECT;
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index cea9a0aae6b..810fe244984 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -434,7 +434,7 @@ static void do_multires_bake(MultiresBakeRender *bkr, Image *ima, MPassKnownData
bkr->baked_faces++;
if (bkr->do_update)
- *bkr->do_update = 1;
+ *bkr->do_update = TRUE;
if (bkr->progress)
*bkr->progress = ((float)bkr->baked_objects + (float)bkr->baked_faces / tot_face) / bkr->tot_obj;
@@ -534,7 +534,7 @@ static void get_ccgdm_data(DerivedMesh *lodm, DerivedMesh *hidm, const int *orig
int grid_index = origindex[face_index];
int loc_offs = face_index % (1 << (2 * lvl));
int cell_index = loc_offs % ((side - 1) * (side - 1));
- int cell_side = grid_size / (side - 1);
+ int cell_side = (grid_size - 1) / (side - 1);
int row = cell_index / (side - 1);
int col = cell_index % (side - 1);
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index c97ad9c62f9..107b19b0ed7 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -764,7 +764,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
Base *base;
Curve *cu, *cu1;
Nurb *nu;
- int do_scene_sort = 0;
+ int do_scene_sort = FALSE;
if (scene->id.lib) return;
@@ -949,7 +949,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
/* Copy the constraint channels over */
copy_constraints(&base->object->constraints, &ob->constraints, TRUE);
- do_scene_sort = 1;
+ do_scene_sort = TRUE;
}
else if (event == 23) {
base->object->softflag = ob->softflag;
@@ -1284,7 +1284,7 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
Curve *cu;
Nurb *nu;
int clear = (strcmp(op->idname, "OBJECT_OT_shade_flat") == 0);
- int done = 0;
+ int done = FALSE;
CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects)
{
@@ -1295,7 +1295,7 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);
- done = 1;
+ done = TRUE;
}
else if (ELEM(ob->type, OB_SURF, OB_CURVE)) {
cu = ob->data;
@@ -1308,7 +1308,7 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);
- done = 1;
+ done = TRUE;
}
}
CTX_DATA_END;
@@ -1369,7 +1369,7 @@ static void UNUSED_FUNCTION(image_aspect) (Scene * scene, View3D * v3d)
for (base = FIRSTBASE; base; base = base->next) {
if (TESTBASELIB(v3d, base)) {
ob = base->object;
- done = 0;
+ done = FALSE;
for (a = 1; a <= ob->totcol; a++) {
ma = give_current_material(ob, a);
@@ -1398,7 +1398,7 @@ static void UNUSED_FUNCTION(image_aspect) (Scene * scene, View3D * v3d)
if (x > y) ob->size[0] = ob->size[1] * x / y;
else ob->size[1] = ob->size[0] * y / x;
- done = 1;
+ done = TRUE;
DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
}
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index e834c93b0d8..4b33c5663ba 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -160,6 +160,10 @@ void OBJECT_OT_multires_external_pack(struct wmOperatorType *ot);
void OBJECT_OT_meshdeform_bind(struct wmOperatorType *ot);
void OBJECT_OT_explode_refresh(struct wmOperatorType *ot);
void OBJECT_OT_ocean_bake(struct wmOperatorType *ot);
+void OBJECT_OT_skin_root_mark(struct wmOperatorType *ot);
+void OBJECT_OT_skin_loose_mark_clear(struct wmOperatorType *ot);
+void OBJECT_OT_skin_radii_equalize(struct wmOperatorType *ot);
+void OBJECT_OT_skin_armature_create(struct wmOperatorType *ot);
/* object_constraint.c */
void OBJECT_OT_constraint_add(struct wmOperatorType *ot);
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 191677989b9..9e891353f35 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -35,6 +35,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
+#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
@@ -42,9 +43,11 @@
#include "DNA_object_force.h"
#include "DNA_scene_types.h"
+#include "BLI_bitmap.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
+#include "BLI_string_utf8.h"
#include "BLI_path_util.h"
#include "BLI_utildefines.h"
@@ -84,6 +87,8 @@
#include "object_intern.h"
+static void modifier_skin_customdata_ensure(struct Object *ob);
+
/******************************** API ****************************/
ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type)
@@ -125,8 +130,9 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
else
BLI_addtail(&ob->modifiers, new_md);
- if (name)
- BLI_strncpy(new_md->name, name, sizeof(new_md->name));
+ if (name) {
+ BLI_strncpy_utf8(new_md->name, name, sizeof(new_md->name));
+ }
/* make sure modifier data has unique name */
@@ -155,6 +161,10 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
/* ensure that grid paint mask layer is created */
ED_sculpt_mask_layers_ensure(ob, (MultiresModifierData *)new_md);
}
+ else if (type == eModifierType_Skin) {
+ /* ensure skin-node customdata exists */
+ modifier_skin_customdata_ensure(ob);
+ }
}
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
@@ -223,7 +233,8 @@ static int object_modifier_remove(Object *ob, ModifierData *md, int *sort_depsgr
}
if (ELEM(md->type, eModifierType_Softbody, eModifierType_Cloth) &&
- ob->particlesystem.first == NULL) {
+ ob->particlesystem.first == NULL)
+ {
ob->mode &= ~OB_MODE_PARTICLE_EDIT;
}
@@ -1128,7 +1139,7 @@ static int multires_reshape_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- CTX_DATA_BEGIN (C, Object *, selob, selected_editable_objects)
+ CTX_DATA_BEGIN(C, Object *, selob, selected_editable_objects)
{
if (selob->type == OB_MESH && selob != ob) {
secondob = selob;
@@ -1324,6 +1335,409 @@ void OBJECT_OT_multires_base_apply(wmOperatorType *ot)
}
+/************************** skin modifier ***********************/
+
+static void modifier_skin_customdata_ensure(Object *ob)
+{
+ Mesh *me = ob->data;
+ BMesh *bm = me->edit_btmesh ? me->edit_btmesh->bm : NULL;
+ MVertSkin *vs;
+
+ if (bm && !CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ BMVert *v;
+ BMIter iter;
+
+ BM_data_layer_add(bm, &bm->vdata, CD_MVERT_SKIN);
+
+ /* Mark an arbitrary vertex as root */
+ BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
+ vs = CustomData_bmesh_get(&bm->vdata, v->head.data,
+ CD_MVERT_SKIN);
+ vs->flag |= MVERT_SKIN_ROOT;
+ break;
+ }
+ }
+ else if (!CustomData_has_layer(&me->vdata, CD_MVERT_SKIN)) {
+ vs = CustomData_add_layer(&me->vdata,
+ CD_MVERT_SKIN,
+ CD_DEFAULT,
+ NULL,
+ me->totvert);
+
+ /* Mark an arbitrary vertex as root */
+ vs->flag |= MVERT_SKIN_ROOT;
+ }
+}
+
+static int skin_poll(bContext *C)
+{
+ return (!CTX_data_edit_object(C) &&
+ edit_modifier_poll_generic(C, &RNA_SkinModifier, (1 << OB_MESH)));
+}
+
+static int skin_edit_poll(bContext *C)
+{
+ return (CTX_data_edit_object(C) &&
+ edit_modifier_poll_generic(C, &RNA_SkinModifier, (1 << OB_MESH)));
+}
+
+static void skin_root_clear(BMesh *bm, BMVert *bm_vert, GHash *visited)
+{
+ BMEdge *bm_edge;
+ BMIter bm_iter;
+
+ BM_ITER_ELEM (bm_edge, &bm_iter, bm_vert, BM_EDGES_OF_VERT) {
+ BMVert *v2 = BM_edge_other_vert(bm_edge, bm_vert);
+
+ if (!BLI_ghash_lookup(visited, v2)) {
+ MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
+ v2->head.data,
+ CD_MVERT_SKIN);
+
+ /* clear vertex root flag and add to visited set */
+ vs->flag &= ~MVERT_SKIN_ROOT;
+ BLI_ghash_insert(visited, v2, v2);
+
+ skin_root_clear(bm, v2, visited);
+ }
+ }
+}
+
+static int skin_root_mark_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Object *ob = CTX_data_edit_object(C);
+ Mesh *me = ob->data;
+ BMesh *bm = me->edit_btmesh->bm;
+ BMVert *bm_vert;
+ BMIter bm_iter;
+ GHash *visited;
+
+ visited = BLI_ghash_ptr_new("skin_root_mark_exec visited");
+
+ modifier_skin_customdata_ensure(ob);
+
+ BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
+ if (!BLI_ghash_lookup(visited, bm_vert) &&
+ bm_vert->head.hflag & BM_ELEM_SELECT)
+ {
+ MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
+ bm_vert->head.data,
+ CD_MVERT_SKIN);
+
+ /* mark vertex as root and add to visited set */
+ vs->flag |= MVERT_SKIN_ROOT;
+ BLI_ghash_insert(visited, bm_vert, bm_vert);
+
+ /* clear root flag from all connected vertices (recursively) */
+ skin_root_clear(bm, bm_vert, visited);
+ }
+ }
+
+ BLI_ghash_free(visited, NULL, NULL);
+
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_skin_root_mark(wmOperatorType *ot)
+{
+ ot->name = "Skin Root Mark";
+ ot->description = "Mark selected vertices as roots";
+ ot->idname = "OBJECT_OT_skin_root_mark";
+
+ ot->poll = skin_edit_poll;
+ ot->exec = skin_root_mark_exec;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+typedef enum {
+ SKIN_LOOSE_MARK,
+ SKIN_LOOSE_CLEAR
+} SkinLooseAction;
+
+static int skin_loose_mark_clear_exec(bContext *C, wmOperator *op)
+{
+ Object *ob = CTX_data_edit_object(C);
+ Mesh *me = ob->data;
+ BMesh *bm = me->edit_btmesh->bm;
+ BMVert *bm_vert;
+ BMIter bm_iter;
+ SkinLooseAction action = RNA_enum_get(op->ptr, "action");
+
+ BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
+ if (bm_vert->head.hflag & BM_ELEM_SELECT) {
+ MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
+ bm_vert->head.data,
+ CD_MVERT_SKIN);
+
+
+ switch (action) {
+ case SKIN_LOOSE_MARK:
+ vs->flag |= MVERT_SKIN_LOOSE;
+ break;
+ case SKIN_LOOSE_CLEAR:
+ vs->flag &= ~MVERT_SKIN_LOOSE;
+ break;
+ }
+ }
+ }
+
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_skin_loose_mark_clear(wmOperatorType *ot)
+{
+ static EnumPropertyItem action_items[] = {
+ {SKIN_LOOSE_MARK, "MARK", 0, "Mark", "Mark selected vertices as loose"},
+ {SKIN_LOOSE_CLEAR, "CLEAR", 0, "Clear", "Set selected vertices as not loose"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ ot->name = "Skin Mark/Clear Loose";
+ ot->description = "Mark/clear selected vertices as loose";
+ ot->idname = "OBJECT_OT_skin_loose_mark_clear";
+
+ ot->poll = skin_edit_poll;
+ ot->exec = skin_loose_mark_clear_exec;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "action", action_items, SKIN_LOOSE_MARK, "Action", NULL);
+}
+
+static int skin_radii_equalize_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Object *ob = CTX_data_edit_object(C);
+ Mesh *me = ob->data;
+ BMesh *bm = me->edit_btmesh->bm;
+ BMVert *bm_vert;
+ BMIter bm_iter;
+
+ BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
+ if (bm_vert->head.hflag & BM_ELEM_SELECT) {
+ MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
+ bm_vert->head.data,
+ CD_MVERT_SKIN);
+ float avg = (vs->radius[0] + vs->radius[1]) * 0.5f;
+
+ vs->radius[0] = vs->radius[1] = avg;
+ }
+ }
+
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_skin_radii_equalize(wmOperatorType *ot)
+{
+ ot->name = "Skin Radii Equalize";
+ ot->description = "Make skin radii of selected vertices equal";
+ ot->idname = "OBJECT_OT_skin_radii_equalize";
+
+ ot->poll = skin_edit_poll;
+ ot->exec = skin_radii_equalize_exec;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+static void skin_armature_bone_create(Object *skin_ob,
+ MVert *mvert, MEdge *medge,
+ bArmature *arm,
+ BLI_bitmap edges_visited,
+ const MeshElemMap *emap,
+ EditBone *parent_bone,
+ int parent_v)
+{
+ int i;
+
+ for (i = 0; i < emap[parent_v].count; i++) {
+ int endx = emap[parent_v].indices[i];
+ const MEdge *e = &medge[endx];
+ EditBone *bone;
+ bDeformGroup *dg;
+ int v;
+
+ /* ignore edge if already visited */
+ if (BLI_BITMAP_GET(edges_visited, endx))
+ continue;
+ BLI_BITMAP_SET(edges_visited, endx);
+
+ v = (e->v1 == parent_v ? e->v2 : e->v1);
+
+ bone = MEM_callocN(sizeof(EditBone),
+ "skin_armature_bone_create EditBone");
+
+ bone->parent = parent_bone;
+ bone->layer = 1;
+ bone->flag |= BONE_CONNECTED;
+
+ copy_v3_v3(bone->head, mvert[parent_v].co);
+ copy_v3_v3(bone->tail, mvert[v].co);
+ bone->rad_head = bone->rad_tail = 0.25;
+ BLI_snprintf(bone->name, sizeof(bone->name), "Bone.%.2d", endx);
+
+ BLI_addtail(arm->edbo, bone);
+
+ /* add bDeformGroup */
+ if ((dg = ED_vgroup_add_name(skin_ob, bone->name))) {
+ ED_vgroup_vert_add(skin_ob, dg, parent_v, 1, WEIGHT_REPLACE);
+ ED_vgroup_vert_add(skin_ob, dg, v, 1, WEIGHT_REPLACE);
+ }
+
+ skin_armature_bone_create(skin_ob,
+ mvert, medge,
+ arm,
+ edges_visited,
+ emap,
+ bone,
+ v);
+ }
+}
+
+static Object *modifier_skin_armature_create(struct Scene *scene,
+ Object *skin_ob)
+{
+ BLI_bitmap edges_visited;
+ DerivedMesh *deform_dm;
+ MVert *mvert;
+ Mesh *me = skin_ob->data;
+ Object *arm_ob;
+ bArmature *arm;
+ MVertSkin *mvert_skin;
+ MeshElemMap *emap;
+ int *emap_mem;
+ int v;
+
+ deform_dm = mesh_get_derived_deform(scene, skin_ob, CD_MASK_BAREMESH);
+ mvert = deform_dm->getVertArray(deform_dm);
+
+ /* add vertex weights to original mesh */
+ CustomData_add_layer(&me->vdata,
+ CD_MDEFORMVERT,
+ CD_CALLOC,
+ NULL,
+ me->totvert);
+
+ arm_ob = BKE_object_add(scene, OB_ARMATURE);
+ BKE_object_transform_copy(arm_ob, skin_ob);
+ arm = arm_ob->data;
+ arm->layer = 1;
+ arm_ob->dtx |= OB_DRAWXRAY;
+ arm->drawtype = ARM_LINE;
+ arm->edbo = MEM_callocN(sizeof(ListBase), "edbo armature");
+
+ mvert_skin = CustomData_get_layer(&me->vdata, CD_MVERT_SKIN);
+ create_vert_edge_map(&emap, &emap_mem,
+ me->medge, me->totvert, me->totedge);
+
+ edges_visited = BLI_BITMAP_NEW(me->totedge, "edge_visited");
+
+ /* note: we use EditBones here, easier to set them up and use
+ * edit-armature functions to convert back to regular bones */
+ for (v = 0; v < me->totvert; v++) {
+ if (mvert_skin[v].flag & MVERT_SKIN_ROOT) {
+ EditBone *bone = NULL;
+
+ /* Unless the skin root has just one adjacent edge, create
+ * a fake root bone (have it going off in the Y direction
+ * (arbitrary) */
+ if (emap[v].count > 1) {
+ bone = MEM_callocN(sizeof(EditBone), "EditBone");
+
+ copy_v3_v3(bone->head, me->mvert[v].co);
+ copy_v3_v3(bone->tail, me->mvert[v].co);
+ bone->layer = 1;
+
+ bone->head[1] = 1.0f;
+ bone->rad_head = bone->rad_tail = 0.25;
+
+ BLI_addtail(arm->edbo, bone);
+ }
+
+ if (emap[v].count >= 1) {
+ skin_armature_bone_create(skin_ob,
+ mvert, me->medge,
+ arm,
+ edges_visited,
+ emap,
+ bone,
+ v);
+ }
+ }
+ }
+
+ MEM_freeN(edges_visited);
+ MEM_freeN(emap);
+ MEM_freeN(emap_mem);
+
+ ED_armature_from_edit(arm_ob);
+ ED_armature_edit_free(arm_ob);
+
+ return arm_ob;
+}
+
+static int skin_armature_create_exec(bContext *C, wmOperator *op)
+{
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ Object *ob = CTX_data_active_object(C), *arm_ob;
+ ModifierData *skin_md;
+ ArmatureModifierData *arm_md;
+
+ /* create new armature */
+ arm_ob = modifier_skin_armature_create(scene, ob);
+
+ /* add a modifier to connect the new armature to the mesh */
+ arm_md = (ArmatureModifierData *)modifier_new(eModifierType_Armature);
+ if (arm_md) {
+ skin_md = edit_modifier_property_get(op, ob, eModifierType_Skin);
+ BLI_insertlinkafter(&ob->modifiers, skin_md, arm_md);
+
+ arm_md->object = arm_ob;
+ arm_md->deformflag = ARM_DEF_VGROUP | ARM_DEF_QUATERNION;
+ DAG_scene_sort(bmain, scene);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ }
+
+ WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+static int skin_armature_create_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return skin_armature_create_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void OBJECT_OT_skin_armature_create(wmOperatorType *ot)
+{
+ ot->name = "Skin Armature Create";
+ ot->description = "Create an armature that parallels the skin layout";
+ ot->idname = "OBJECT_OT_skin_armature_create";
+
+ ot->poll = skin_poll;
+ ot->invoke = skin_armature_create_invoke;
+ ot->exec = skin_armature_create_exec;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ edit_modifier_properties(ot);
+}
+
/************************ mdef bind operator *********************/
static int meshdeform_poll(bContext *C)
@@ -1513,7 +1927,7 @@ static void oceanbake_free(void *customdata)
/* called by oceanbake, only to check job 'stop' value */
static int oceanbake_breakjob(void *UNUSED(customdata))
{
- //OceanBakeJob *ob= (OceanBakeJob *)customdata;
+ //OceanBakeJob *ob = (OceanBakeJob *)customdata;
//return *(ob->stop);
/* this is not nice yet, need to make the jobs list template better
@@ -1530,7 +1944,7 @@ static void oceanbake_update(void *customdata, float progress, int *cancel)
if (oceanbake_breakjob(oj))
*cancel = 1;
- *(oj->do_update) = 1;
+ *(oj->do_update) = TRUE;
*(oj->progress) = progress;
}
@@ -1546,7 +1960,7 @@ static void oceanbake_startjob(void *customdata, short *stop, short *do_update,
BKE_bake_ocean(oj->ocean, oj->och, oceanbake_update, (void *)oj);
- *do_update = 1;
+ *do_update = TRUE;
*stop = 0;
}
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index b7dc3fd7bea..01f6b641709 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -139,6 +139,11 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_multires_base_apply);
WM_operatortype_append(OBJECT_OT_multires_external_save);
WM_operatortype_append(OBJECT_OT_multires_external_pack);
+ WM_operatortype_append(OBJECT_OT_skin_root_mark);
+ WM_operatortype_append(OBJECT_OT_skin_loose_mark_clear);
+ WM_operatortype_append(OBJECT_OT_skin_radii_equalize);
+ WM_operatortype_append(OBJECT_OT_skin_armature_create);
+
WM_operatortype_append(OBJECT_OT_meshdeform_bind);
WM_operatortype_append(OBJECT_OT_explode_refresh);
WM_operatortype_append(OBJECT_OT_ocean_bake);
@@ -429,7 +434,7 @@ void ED_object_generic_keymap(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyM
RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_edit_falloff");
// Object mode
- if (do_pet == 1) {
+ if (do_pet == TRUE) {
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_edit_objects");
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index b3e16c8d4eb..2b622b21d2c 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -1108,7 +1108,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
View3D *v3d = CTX_wm_view3d(C);
unsigned int lay, local;
- /* int islamp= 0; */ /* UNUSED */
+ /* int is_lamp = FALSE; */ /* UNUSED */
lay = move_to_layer_init(C, op);
lay &= 0xFFFFFF;
@@ -1125,7 +1125,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
base->object->lay = lay;
base->object->flag &= ~SELECT;
base->flag &= ~SELECT;
- /* if (base->object->type==OB_LAMP) islamp= 1; */
+ /* if (base->object->type==OB_LAMP) is_lamp = TRUE; */
}
CTX_DATA_END;
}
@@ -1138,7 +1138,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
local = base->lay & 0xFF000000;
base->lay = lay + local;
base->object->lay = lay;
- /* if (base->object->type==OB_LAMP) islamp= 1; */
+ /* if (base->object->type==OB_LAMP) is_lamp = TRUE; */
}
CTX_DATA_END;
}
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index 3a932b58fd9..fa86f089387 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -506,7 +506,7 @@ static short select_grouped_siblings(bContext *C, Object *ob)
CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
{
- if ((base->object->parent == ob->parent) && !(base->flag & SELECT)) {
+ if ((base->object->parent == ob->parent) && !(base->flag & SELECT)) {
ED_base_object_select(base, BA_SELECT);
changed = 1;
}
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 2e21fe9cdfe..07557d8ea4c 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -382,7 +382,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
float rsmat[3][3], tmat[3][3], obmat[3][3], iobmat[3][3], mat[4][4], scale;
- int a, change = 0;
+ int a, change = 1;
/* first check if we can execute */
CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects)
@@ -391,19 +391,19 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
if (ob->type == OB_MESH) {
if (ID_REAL_USERS(ob->data) > 1) {
BKE_report(reports, RPT_ERROR, "Can't apply to a multi user mesh, doing nothing");
- return OPERATOR_CANCELLED;
+ change = 0;
}
}
else if (ob->type == OB_ARMATURE) {
if (ID_REAL_USERS(ob->data) > 1) {
BKE_report(reports, RPT_ERROR, "Can't apply to a multi user armature, doing nothing");
- return OPERATOR_CANCELLED;
+ change = 0;
}
}
else if (ob->type == OB_LATTICE) {
if (ID_REAL_USERS(ob->data) > 1) {
BKE_report(reports, RPT_ERROR, "Can't apply to a multi user lattice, doing nothing");
- return OPERATOR_CANCELLED;
+ change = 0;
}
}
else if (ELEM(ob->type, OB_CURVE, OB_SURF)) {
@@ -411,23 +411,28 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
if (ID_REAL_USERS(ob->data) > 1) {
BKE_report(reports, RPT_ERROR, "Can't apply to a multi user curve, doing nothing");
- return OPERATOR_CANCELLED;
+ change = 0;
}
cu = ob->data;
if (!(cu->flag & CU_3D) && (apply_rot || apply_loc)) {
BKE_report(reports, RPT_ERROR, "Neither rotation nor location could be applied to a 2d curve, doing nothing");
- return OPERATOR_CANCELLED;
+ change = 0;
}
if (cu->key) {
BKE_report(reports, RPT_ERROR, "Can't apply to a curve with vertex keys, doing nothing");
- return OPERATOR_CANCELLED;
+ change = 0;
}
}
}
CTX_DATA_END;
+ if (!change)
+ return OPERATOR_CANCELLED;
+
+ change = 0;
+
/* now execute */
CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects)
{
diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c
index 5a56672f766..c8ca75835e4 100644
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@ -540,7 +540,7 @@ static void export_fluid_objects(ListBase *fobjects, Scene *scene, int length)
fsmesh.volumeInitType = fluidmd->fss->volumeInitType;
fsmesh.obstacleImpactFactor = fluidmd->fss->surfaceSmoothing; // misused value
- if (fsmesh.type == OB_FLUIDSIM_CONTROL) {
+ if (fsmesh.type == OB_FLUIDSIM_CONTROL) {
fsmesh.cpsTimeStart = fluidmd->fss->cpsTimeStart;
fsmesh.cpsTimeEnd = fluidmd->fss->cpsTimeEnd;
fsmesh.cpsQuality = fluidmd->fss->cpsQuality;
@@ -708,7 +708,7 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
strncpy(domainSettings->surfdataPath, newSurfdataPath, FILE_MAXDIR);
BLI_path_abs(targetDir, G.main->name); // fixed #frame-no
}
-#endif
+#endif
return outStringsChanged;
}
@@ -750,8 +750,8 @@ static void fluidbake_updatejob(void *customdata, float progress)
{
FluidBakeJob *fb= (FluidBakeJob *)customdata;
- *(fb->do_update)= 1;
- *(fb->progress)= progress;
+ *(fb->do_update) = TRUE;
+ *(fb->progress) = progress;
}
static void fluidbake_startjob(void *customdata, short *stop, short *do_update, float *progress)
@@ -765,7 +765,7 @@ static void fluidbake_startjob(void *customdata, short *stop, short *do_update,
G.afbreek= 0; /* XXX shared with render - replace with job 'stop' switch */
elbeemSimulate();
- *do_update= 1;
+ *do_update = TRUE;
*stop = 0;
}
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 595b51d22c4..7b4dda1a48f 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -340,7 +340,7 @@ static void image_renderinfo_cb(void *rjv, RenderStats *rs)
RE_ReleaseResult(rj->re);
/* make jobs timer to send notifier */
- *(rj->do_update) = 1;
+ *(rj->do_update) = TRUE;
}
@@ -352,7 +352,7 @@ static void render_progress_update(void *rjv, float progress)
*rj->progress = progress;
/* make jobs timer to send notifier */
- *(rj->do_update) = 1;
+ *(rj->do_update) = TRUE;
}
}
@@ -372,7 +372,7 @@ static void image_rect_update(void *rjv, RenderResult *rr, volatile rcti *renrec
image_buffer_rect_update(rj->scene, rr, ibuf, renrect);
/* make jobs timer to send notifier */
- *(rj->do_update) = 1;
+ *(rj->do_update) = TRUE;
}
BKE_image_release_ibuf(ima, lock);
}
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index f7024444e86..6357cb48a3d 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -473,7 +473,7 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int
Render *re;
RenderResult rres;
char name[32];
- int do_gamma_correct = 0, do_predivide = 0;
+ int do_gamma_correct = FALSE, do_predivide = FALSE;
int offx = 0, newx = rect->xmax - rect->xmin, newy = rect->ymax - rect->ymin;
if (id && GS(id->name) != ID_TE) {
@@ -583,7 +583,7 @@ static void shader_preview_draw(void *spv, RenderResult *UNUSED(rr), volatile st
{
ShaderPreview *sp = spv;
- *(sp->do_update) = 1;
+ *(sp->do_update) = TRUE;
}
/* called by renderer, checks job value */
@@ -737,7 +737,7 @@ static void shader_preview_startjob(void *customdata, short *stop, short *do_upd
else
shader_preview_render(sp, sp->id, 0, 0);
- *do_update = 1;
+ *do_update = TRUE;
}
static void shader_preview_free(void *customdata)
@@ -910,7 +910,7 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat
icon_copy_rect(ibuf, sp->sizex, sp->sizey, sp->pr_rect);
- *do_update = 1;
+ *do_update = TRUE;
}
else if (idtype == ID_BR) {
Brush *br = (Brush *)id;
@@ -924,7 +924,7 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat
icon_copy_rect(br->icon_imbuf, sp->sizex, sp->sizey, sp->pr_rect);
- *do_update = 1;
+ *do_update = TRUE;
}
else {
/* re-use shader job */
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 95312c07df1..21cd02c96f2 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -379,7 +379,7 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op))
if (BKE_scene_use_new_shading_nodes(scene)) {
ED_node_shader_default(scene, &ma->id);
- ma->use_nodes = 1;
+ ma->use_nodes = TRUE;
}
}
@@ -479,7 +479,7 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op))
if (BKE_scene_use_new_shading_nodes(scene)) {
ED_node_shader_default(scene, &wo->id);
- wo->use_nodes = 1;
+ wo->use_nodes = TRUE;
}
}
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 0f286d91613..9771fef2d58 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -145,7 +145,7 @@ void ED_area_do_refresh(bContext *C, ScrArea *sa)
if (sa->type && sa->type->refresh) {
sa->type->refresh(C, sa);
}
- sa->do_refresh = 0;
+ sa->do_refresh = FALSE;
}
/* based on screen region draw tags, set draw tags in azones, and future region tabs etc */
@@ -162,7 +162,7 @@ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar)
/* test if inside */
if (BLI_in_rcti(&ar->winrct, xs, ys)) {
- az->do_draw = 1;
+ az->do_draw = TRUE;
}
}
}
@@ -384,7 +384,7 @@ void ED_area_overdraw(bContext *C)
}
}
- az->do_draw = 0;
+ az->do_draw = FALSE;
}
}
}
@@ -487,7 +487,7 @@ void ED_region_do_draw(bContext *C, ARegion *ar)
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_PIXEL);
- ar->do_draw = 0;
+ ar->do_draw = FALSE;
memset(&ar->drawrct, 0, sizeof(ar->drawrct));
uiFreeInactiveBlocks(C, &ar->uiblocks);
@@ -559,7 +559,7 @@ void ED_area_tag_redraw_regiontype(ScrArea *sa, int regiontype)
void ED_area_tag_refresh(ScrArea *sa)
{
if (sa)
- sa->do_refresh = 1;
+ sa->do_refresh = TRUE;
}
/* *************************************************************** */
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index d714f82b58b..f973d3cc070 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -421,7 +421,7 @@ bScreen *ED_screen_add(wmWindow *win, Scene *scene, const char *name)
sc = BKE_libblock_alloc(&G.main->screen, ID_SCR, name);
sc->scene = scene;
- sc->do_refresh = 1;
+ sc->do_refresh = TRUE;
sc->redraws_flag = TIME_ALL_3D_WIN | TIME_ALL_ANIM_WIN;
sc->winid = win->winid;
@@ -944,7 +944,7 @@ bScreen *ED_screen_duplicate(wmWindow *win, bScreen *sc)
}
/* screen sets cursor based on swinid */
-static void region_cursor_set(wmWindow *win, int swinid)
+static void region_cursor_set(wmWindow *win, int swinid, int swin_changed)
{
ScrArea *sa = win->screen->areabase.first;
@@ -952,10 +952,12 @@ static void region_cursor_set(wmWindow *win, int swinid)
ARegion *ar = sa->regionbase.first;
for (; ar; ar = ar->next) {
if (ar->swinid == swinid) {
- if (ar->type && ar->type->cursor)
- ar->type->cursor(win, sa, ar);
- else
- WM_cursor_set(win, CURSOR_STD);
+ if (swin_changed || (ar->type && ar->type->event_cursor)) {
+ if (ar->type && ar->type->cursor)
+ ar->type->cursor(win, sa, ar);
+ else
+ WM_cursor_set(win, CURSOR_STD);
+ }
return;
}
}
@@ -970,20 +972,20 @@ void ED_screen_do_listen(bContext *C, wmNotifier *note)
switch (note->category) {
case NC_WM:
if (note->data == ND_FILEREAD)
- win->screen->do_draw = 1;
+ win->screen->do_draw = TRUE;
break;
case NC_WINDOW:
- win->screen->do_draw = 1;
+ win->screen->do_draw = TRUE;
break;
case NC_SCREEN:
if (note->data == ND_SUBWINACTIVE)
uiFreeActiveButtons(C, win->screen);
if (note->action == NA_EDITED)
- win->screen->do_draw = win->screen->do_refresh = 1;
+ win->screen->do_draw = win->screen->do_refresh = TRUE;
break;
case NC_SCENE:
if (note->data == ND_MODE)
- region_cursor_set(win, note->swinid);
+ region_cursor_set(win, note->swinid, TRUE);
break;
}
}
@@ -1055,7 +1057,7 @@ void ED_screen_draw(wmWindow *win)
glDisable(GL_BLEND);
}
- win->screen->do_draw = 0;
+ win->screen->do_draw = FALSE;
}
/* helper call for below, dpi changes headers */
@@ -1108,7 +1110,7 @@ void ED_screen_refresh(wmWindowManager *wm, wmWindow *win)
if (G.debug & G_DEBUG_EVENTS) {
printf("%s: set screen\n", __func__);
}
- win->screen->do_refresh = 0;
+ win->screen->do_refresh = FALSE;
win->screen->context = ed_screen_context;
}
@@ -1239,9 +1241,7 @@ static void screen_cursor_set(wmWindow *win, wmEvent *event)
else
WM_cursor_set(win, CURSOR_X_MOVE);
}
- else
- WM_cursor_set(win, CURSOR_STD);
- }
+ }
}
@@ -1276,11 +1276,11 @@ void ED_screen_set_subwinactive(bContext *C, wmEvent *event)
if (oldswin != scr->subwinactive) {
for (sa = scr->areabase.first; sa; sa = sa->next) {
- int do_draw = 0;
+ int do_draw = FALSE;
for (ar = sa->regionbase.first; ar; ar = ar->next)
if (ar->swinid == oldswin || ar->swinid == scr->subwinactive)
- do_draw = 1;
+ do_draw = TRUE;
if (do_draw) {
for (ar = sa->regionbase.first; ar; ar = ar->next)
@@ -1294,9 +1294,13 @@ void ED_screen_set_subwinactive(bContext *C, wmEvent *event)
if (scr->subwinactive == scr->mainwin) {
screen_cursor_set(win, event);
}
- else if (oldswin != scr->subwinactive) {
- region_cursor_set(win, scr->subwinactive);
- WM_event_add_notifier(C, NC_SCREEN | ND_SUBWINACTIVE, scr);
+ else {
+ if (oldswin != scr->subwinactive) {
+ region_cursor_set(win, scr->subwinactive, TRUE);
+ WM_event_add_notifier(C, NC_SCREEN | ND_SUBWINACTIVE, scr);
+ }
+ else
+ region_cursor_set(win, scr->subwinactive, FALSE);
}
}
}
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 2126a1291c1..f8fad8d037a 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -37,6 +37,8 @@
#include "BLI_dlrbTree.h"
#include "BLI_utildefines.h"
+#include "BLF_translation.h"
+
#include "DNA_armature_types.h"
#include "DNA_lattice_types.h"
#include "DNA_object_types.h"
@@ -1474,7 +1476,7 @@ static int area_split_modal(bContext *C, wmOperator *op, wmEvent *event)
}
}
- CTX_wm_window(C)->screen->do_draw = 1;
+ CTX_wm_window(C)->screen->do_draw = TRUE;
}
@@ -1543,7 +1545,7 @@ static EnumPropertyItem prop_direction_items[] = {
static void SCREEN_OT_area_split(wmOperatorType *ot)
{
- ot->name = "Split area";
+ ot->name = "Split Area";
ot->description = "Split selected area into new windows";
ot->idname = "SCREEN_OT_area_split";
@@ -1919,7 +1921,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
ActKeyColumn *ak;
float cfra;
short next = RNA_boolean_get(op->ptr, "next");
- short done = 0;
+ short done = FALSE;
/* sanity checks */
if (scene == NULL)
@@ -1950,7 +1952,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
if (CFRA != (int)ak->cfra) {
/* this changes the frame, so set the frame and we're done */
CFRA = (int)ak->cfra;
- done = 1;
+ done = TRUE;
}
else {
/* make this the new starting point for the search */
@@ -2359,7 +2361,7 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event)
static void SCREEN_OT_area_join(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Join area";
+ ot->name = "Join Area";
ot->description = "Join selected areas into new window";
ot->idname = "SCREEN_OT_area_join";
@@ -2390,7 +2392,7 @@ static int screen_area_options_invoke(bContext *C, wmOperator *op, wmEvent *even
if (actedge == NULL) return OPERATOR_CANCELLED;
- pup = uiPupMenuBegin(C, op->type->name, ICON_NONE);
+ pup = uiPupMenuBegin(C, RNA_struct_ui_name(op->type->srna), ICON_NONE);
layout = uiPupMenuLayout(pup);
WM_operator_properties_create(&ptr1, "SCREEN_OT_area_join");
@@ -2407,8 +2409,8 @@ static int screen_area_options_invoke(bContext *C, wmOperator *op, wmEvent *even
RNA_int_set(&ptr2, "mouse_x", event->x);
RNA_int_set(&ptr2, "mouse_y", event->y);
- uiItemFullO(layout, "SCREEN_OT_area_split", "Split Area", ICON_NONE, ptr2.data, WM_OP_INVOKE_DEFAULT, 0);
- uiItemFullO(layout, "SCREEN_OT_area_join", "Join Area", ICON_NONE, ptr1.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "SCREEN_OT_area_split", NULL, ICON_NONE, ptr2.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "SCREEN_OT_area_join", NULL, ICON_NONE, ptr1.data, WM_OP_INVOKE_DEFAULT, 0);
uiPupMenuEnd(C, pup);
@@ -2507,11 +2509,11 @@ static int repeat_history_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(ev
if (items == 0)
return OPERATOR_CANCELLED;
- pup = uiPupMenuBegin(C, op->type->name, ICON_NONE);
+ pup = uiPupMenuBegin(C, RNA_struct_ui_name(op->type->srna), ICON_NONE);
layout = uiPupMenuLayout(pup);
for (i = items - 1, lastop = wm->operators.last; lastop; lastop = lastop->prev, i--)
- uiItemIntO(layout, lastop->type->name, ICON_NONE, op->type->idname, "index", i);
+ uiItemIntO(layout, RNA_struct_ui_name(lastop->type->srna), ICON_NONE, op->type->idname, "index", i);
uiPupMenuEnd(C, pup);
diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c
index 256df21b79a..77289360f98 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -333,7 +333,7 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update, float
sj->stop = stop;
sj->do_update = do_update;
- *do_update = 1; // wait for opengl rect
+ *do_update = TRUE; /* wait for opengl rect */
while (*stop == 0) {
@@ -377,7 +377,7 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update, float
MEM_freeN(sj->dumprect);
sj->dumprect = NULL;
- *do_update = 1;
+ *do_update = TRUE;
rd.cfra++;
diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c
index ebc255f4e43..b5d44676cf6 100644
--- a/source/blender/editors/sculpt_paint/paint_cursor.c
+++ b/source/blender/editors/sculpt_paint/paint_cursor.c
@@ -342,7 +342,8 @@ static int sculpt_get_brush_geometry(bContext *C, ViewContext *vc,
window[1] = y + vc->ar->winrct.ymin;
if (vc->obact->sculpt && vc->obact->sculpt->pbvh &&
- sculpt_stroke_get_location(C, location, window)) {
+ sculpt_stroke_get_location(C, location, window))
+ {
*pixel_radius =
project_brush_radius(vc,
BKE_brush_unprojected_radius_get(scene, brush),
diff --git a/source/blender/editors/sculpt_paint/paint_hide.c b/source/blender/editors/sculpt_paint/paint_hide.c
index 87bc89f810c..cd8b9164862 100644
--- a/source/blender/editors/sculpt_paint/paint_hide.c
+++ b/source/blender/editors/sculpt_paint/paint_hide.c
@@ -90,7 +90,7 @@ static int is_effected(PartialVisArea area,
if (area == PARTIALVIS_ALL)
return 1;
else if (area == PARTIALVIS_MASKED) {
- return mask > 0.5;
+ return mask > 0.5f;
}
else {
int inside = planes_contain_v3(planes, 4, co);
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 9effba5b433..88fb728f334 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -2131,7 +2131,9 @@ static void project_bucket_clip_face(
/* remove doubles */
/* first/last check */
- if (fabsf(isectVCosSS[0][0] - isectVCosSS[(*tot) - 1][0]) < PROJ_GEOM_TOLERANCE && fabsf(isectVCosSS[0][1] - isectVCosSS[(*tot) - 1][1]) < PROJ_GEOM_TOLERANCE) {
+ if (fabsf(isectVCosSS[0][0] - isectVCosSS[(*tot) - 1][0]) < PROJ_GEOM_TOLERANCE &&
+ fabsf(isectVCosSS[0][1] - isectVCosSS[(*tot) - 1][1]) < PROJ_GEOM_TOLERANCE)
+ {
(*tot)--;
}
@@ -2340,7 +2342,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
/* Use tf_uv_pxoffset instead of tf->uv so we can offset the UV half a pixel
- * this is done so we can avoid offseting all the pixels by 0.5 which causes
+ * this is done so we can avoid offsetting all the pixels by 0.5 which causes
* problems when wrapping negative coords */
xhalfpx = (0.5f + (PROJ_GEOM_TOLERANCE / 3.0f) ) / ibuf_xf;
yhalfpx = (0.5f + (PROJ_GEOM_TOLERANCE / 4.0f) ) / ibuf_yf;
@@ -2433,8 +2435,8 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
/* Note about IsectPoly2Df_twoside, checking the face or uv flipping doesnt work,
* could check the poly direction but better to do this */
- if ((do_backfacecull && IsectPoly2Df(uv, uv_clip, uv_clip_tot)) ||
- (do_backfacecull == 0 && IsectPoly2Df_twoside(uv, uv_clip, uv_clip_tot)))
+ if ((do_backfacecull == TRUE && IsectPoly2Df(uv, uv_clip, uv_clip_tot)) ||
+ (do_backfacecull == FALSE && IsectPoly2Df_twoside(uv, uv_clip, uv_clip_tot)))
{
has_x_isect = has_isect = 1;
@@ -2453,7 +2455,9 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
/* Is this UV visible from the view? - raytrace */
/* project_paint_PickFace is less complex, use for testing */
//if (project_paint_PickFace(ps, pixelScreenCo, w, &side) == face_index) {
- if (ps->do_occlude == 0 || !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo)) {
+ if ((ps->do_occlude == FALSE) ||
+ !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo))
+ {
mask = project_paint_uvpixel_mask(ps, face_index, side, w);
@@ -2629,8 +2633,9 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
pixelScreenCo[2] = pixelScreenCo[2] / pixelScreenCo[3]; /* Use the depth for bucket point occlusion */
}
- if (ps->do_occlude == 0 || !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo)) {
-
+ if ((ps->do_occlude == FALSE) ||
+ !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo))
+ {
/* Only bother calculating the weights if we intersect */
if (ps->do_mask_normal || ps->dm_mtface_clone) {
#if 1
@@ -3005,7 +3010,7 @@ static void project_paint_begin(ProjPaintState *ps)
ps->dm_mtface_clone = CustomData_get_layer_n(&ps->dm->faceData, CD_MTFACE, layer_num);
if (ps->dm_mtface_clone == NULL || ps->dm_mtface_clone == ps->dm_mtface) {
- ps->do_layer_clone = 0;
+ ps->do_layer_clone = FALSE;
ps->dm_mtface_clone = NULL;
printf("ACK!\n");
}
@@ -3018,7 +3023,7 @@ static void project_paint_begin(ProjPaintState *ps)
ps->dm_mtface_stencil = CustomData_get_layer_n(&ps->dm->faceData, CD_MTFACE, layer_num);
if (ps->dm_mtface_stencil == NULL || ps->dm_mtface_stencil == ps->dm_mtface) {
- ps->do_layer_stencil = 0;
+ ps->do_layer_stencil = FALSE;
ps->dm_mtface_stencil = NULL;
}
}
@@ -3850,7 +3855,7 @@ static void *do_projectpaint_thread(void *ph_v)
float falloff;
int bucket_index;
int is_floatbuf = 0;
- int use_color_correction = 0;
+ int use_color_correction = FALSE;
const short tool = ps->tool;
rctf bucket_bounds;
@@ -4808,7 +4813,7 @@ static void project_state_init(bContext *C, Object *ob, ProjPaintState *ps)
ps->normal_angle_range = ps->normal_angle - ps->normal_angle_inner;
if (ps->normal_angle_range <= 0.0f)
- ps->do_mask_normal = 0; /* no need to do blending */
+ ps->do_mask_normal = FALSE; /* no need to do blending */
}
static void paint_brush_init_tex(Brush *brush)
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index a97563b258f..de149bf2806 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -52,7 +52,7 @@ struct wmOperatorType;
/* paint_stroke.c */
typedef int (*StrokeGetLocation)(struct bContext *C, float location[3], float mouse[2]);
-typedef int (*StrokeTestStart)(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+typedef int (*StrokeTestStart)(struct bContext *C, struct wmOperator *op, const float mouse[2]);
typedef void (*StrokeUpdateStep)(struct bContext *C, struct PaintStroke *stroke, struct PointerRNA *itemptr);
typedef void (*StrokeDone)(const struct bContext *C, struct PaintStroke *stroke);
diff --git a/source/blender/editors/sculpt_paint/paint_mask.c b/source/blender/editors/sculpt_paint/paint_mask.c
index 000f43b0dec..298ecf764d6 100644
--- a/source/blender/editors/sculpt_paint/paint_mask.c
+++ b/source/blender/editors/sculpt_paint/paint_mask.c
@@ -64,7 +64,7 @@ static void mask_flood_fill_set_elem(float *elem,
PaintMaskFloodMode mode,
float value)
{
- switch(mode) {
+ switch (mode) {
case PAINT_MASK_FLOOD_VALUE:
(*elem) = value;
break;
@@ -96,7 +96,7 @@ static int mask_flood_fill_exec(bContext *C, wmOperator *op)
sculpt_undo_push_begin("Mask flood fill");
- for(i = 0; i < totnode; i++) {
+ for (i = 0; i < totnode; i++) {
PBVHVertexIter vi;
sculpt_undo_push_node(ob, nodes[i], SCULPT_UNDO_MASK);
@@ -106,13 +106,13 @@ static int mask_flood_fill_exec(bContext *C, wmOperator *op)
} BLI_pbvh_vertex_iter_end;
BLI_pbvh_node_mark_update(nodes[i]);
- if(BLI_pbvh_type(pbvh) == PBVH_GRIDS)
+ if (BLI_pbvh_type(pbvh) == PBVH_GRIDS)
multires_mark_as_modified(ob, MULTIRES_COORDS_MODIFIED);
}
sculpt_undo_push_end();
- if(nodes)
+ if (nodes)
MEM_freeN(nodes);
ED_region_tag_redraw(ar);
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index 368729723eb..23d1c0090a0 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -225,7 +225,8 @@ static Brush *brush_tool_cycle(Main *bmain, Brush *brush_orig, const int tool, c
brush = brush->id.next ? brush->id.next : bmain->brush.first)
{
if ((brush->ob_mode & ob_mode) &&
- (brush_tool(brush, tool_offset) == tool)) {
+ (brush_tool(brush, tool_offset) == tool))
+ {
return brush;
}
}
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c
index 9832bcf1528..987ab932fd6 100644
--- a/source/blender/editors/sculpt_paint/paint_stroke.c
+++ b/source/blender/editors/sculpt_paint/paint_stroke.c
@@ -60,6 +60,12 @@
#include <float.h>
#include <math.h>
+typedef struct PaintSample {
+ float mouse[2];
+
+ /* TODO: other input properties, e.g. tablet pressure */
+} PaintSample;
+
typedef struct PaintStroke {
void *mode_data;
void *smooth_stroke_cursor;
@@ -70,6 +76,12 @@ typedef struct PaintStroke {
bglMats mats;
Brush *brush;
+ /* Paint stroke can use up to PAINT_MAX_INPUT_SAMPLES prior inputs
+ * to smooth the stroke */
+ PaintSample samples[PAINT_MAX_INPUT_SAMPLES];
+ int num_samples;
+ int cur_sample;
+
float last_mouse_position[2];
/* Set whether any stroke step has yet occurred
@@ -182,10 +194,11 @@ static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *ev
}
/* Returns zero if no sculpt changes should be made, non-zero otherwise */
-static int paint_smooth_stroke(PaintStroke *stroke, float output[2], wmEvent *event)
+static int paint_smooth_stroke(PaintStroke *stroke, float output[2],
+ const PaintSample *sample)
{
- output[0] = event->x;
- output[1] = event->y;
+ output[0] = sample->mouse[0];
+ output[1] = sample->mouse[1];
if ((stroke->brush->flag & BRUSH_SMOOTH_STROKE) &&
!ELEM4(stroke->brush->sculpt_tool,
@@ -197,15 +210,16 @@ static int paint_smooth_stroke(PaintStroke *stroke, float output[2], wmEvent *ev
!(stroke->brush->flag & BRUSH_RESTORE_MESH))
{
float u = stroke->brush->smooth_stroke_factor, v = 1.0f - u;
- float dx = stroke->last_mouse_position[0] - event->x, dy = stroke->last_mouse_position[1] - event->y;
+ float dx = stroke->last_mouse_position[0] - sample->mouse[0];
+ float dy = stroke->last_mouse_position[1] - sample->mouse[1];
/* If the mouse is moving within the radius of the last move,
* don't update the mouse position. This allows sharp turns. */
if (dx * dx + dy * dy < stroke->brush->smooth_stroke_radius * stroke->brush->smooth_stroke_radius)
return 0;
- output[0] = event->x * v + stroke->last_mouse_position[0] * u;
- output[1] = event->y * v + stroke->last_mouse_position[1] * u;
+ output[0] = sample->mouse[0] * v + stroke->last_mouse_position[0] * u;
+ output[1] = sample->mouse[1] * v + stroke->last_mouse_position[1] * u;
}
return 1;
@@ -343,12 +357,52 @@ struct wmKeyMap *paint_stroke_modal_keymap(struct wmKeyConfig *keyconf)
return keymap;
}
+static void paint_stroke_add_sample(const Paint *paint,
+ PaintStroke *stroke,
+ float x, float y)
+{
+ PaintSample *sample = &stroke->samples[stroke->cur_sample];
+ int max_samples = MIN2(PAINT_MAX_INPUT_SAMPLES,
+ MAX2(paint->num_input_samples, 1));
+
+ sample->mouse[0] = x;
+ sample->mouse[1] = y;
+
+ stroke->cur_sample++;
+ if (stroke->cur_sample >= max_samples)
+ stroke->cur_sample = 0;
+ if (stroke->num_samples < max_samples)
+ stroke->num_samples++;
+}
+
+static void paint_stroke_sample_average(const PaintStroke *stroke,
+ PaintSample *average)
+{
+ int i;
+
+ memset(average, 0, sizeof(*average));
+
+ BLI_assert(stroke->num_samples > 0);
+
+ for (i = 0; i < stroke->num_samples; i++)
+ add_v2_v2(average->mouse, stroke->samples[i].mouse);
+
+ mul_v2_fl(average->mouse, 1.0f / stroke->num_samples);
+
+ /*printf("avg=(%f, %f), num=%d\n", average->mouse[0], average->mouse[1], stroke->num_samples);*/
+}
+
int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event)
{
+ Paint *p = paint_get_active(CTX_data_scene(C));
PaintStroke *stroke = op->customdata;
+ PaintSample sample_average;
float mouse[2];
int first = 0;
+ paint_stroke_add_sample(p, stroke, event->x, event->y);
+ paint_stroke_sample_average(stroke, &sample_average);
+
// let NDOF motion pass through to the 3D view so we can paint and rotate simultaneously!
// this isn't perfect... even when an extra MOUSEMOVE is spoofed, the stroke discards it
// since the 2D deltas are zero -- code in this file needs to be updated to use the
@@ -357,9 +411,8 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_PASS_THROUGH;
if (!stroke->stroke_started) {
- stroke->last_mouse_position[0] = event->x;
- stroke->last_mouse_position[1] = event->y;
- stroke->stroke_started = stroke->test_start(C, op, event);
+ copy_v2_v2(stroke->last_mouse_position, sample_average.mouse);
+ stroke->stroke_started = stroke->test_start(C, op, sample_average.mouse);
if (stroke->stroke_started) {
stroke->smooth_stroke_cursor =
@@ -390,7 +443,7 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event)
(event->type == TIMER && (event->customdata == stroke->timer)) )
{
if (stroke->stroke_started) {
- if (paint_smooth_stroke(stroke, mouse, event)) {
+ if (paint_smooth_stroke(stroke, mouse, &sample_average)) {
if (paint_space_stroke_enabled(stroke->brush)) {
if (!paint_space_stroke(C, op, event, mouse)) {
//ED_region_tag_redraw(ar);
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index d544183ced8..c5c08a94ae5 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -259,8 +259,6 @@ static void do_shared_vertex_tesscol(Mesh *me)
void do_shared_vertexcol(Mesh *me, int do_tessface)
{
const int use_face_sel = (me->editflag & ME_EDIT_PAINT_MASK);
- MLoop *ml = me->mloop;
- MLoopCol *lcol = me->mloopcol;
MPoly *mp;
float (*scol)[4];
int i, j, has_shared = 0;
@@ -274,8 +272,8 @@ void do_shared_vertexcol(Mesh *me, int do_tessface)
for (i = 0, mp = me->mpoly; i < me->totpoly; i++, mp++) {
if ((use_face_sel == FALSE) || (mp->flag & ME_FACE_SEL)) {
- ml = me->mloop + mp->loopstart;
- lcol = me->mloopcol + mp->loopstart;
+ MLoop *ml = me->mloop + mp->loopstart;
+ MLoopCol *lcol = me->mloopcol + mp->loopstart;
for (j = 0; j < mp->totloop; j++, ml++, lcol++) {
scol[ml->v][0] += lcol->r;
scol[ml->v][1] += lcol->g;
@@ -295,8 +293,8 @@ void do_shared_vertexcol(Mesh *me, int do_tessface)
for (i = 0, mp = me->mpoly; i < me->totpoly; i++, mp++) {
if ((use_face_sel == FALSE) || (mp->flag & ME_FACE_SEL)) {
- ml = me->mloop + mp->loopstart;
- lcol = me->mloopcol + mp->loopstart;
+ MLoop *ml = me->mloop + mp->loopstart;
+ MLoopCol *lcol = me->mloopcol + mp->loopstart;
for (j = 0; j < mp->totloop; j++, ml++, lcol++) {
lcol->r = scol[ml->v][0];
lcol->g = scol[ml->v][1];
@@ -1867,7 +1865,7 @@ static void do_weight_paint_vertex(
*
* So! just balance out the 2 weights, it keeps them equal and everything normalized.
*
- * While it wont hit the desired weight immediatelty as the user waggles their mouse,
+ * While it wont hit the desired weight immediately as the user waggles their mouse,
* constant painting and re-normalizing will get there. this is also just simpler logic.
* - campbell */
dw_mirr->weight = dw->weight = (dw_mirr->weight + dw->weight) * 0.5f;
@@ -1952,7 +1950,7 @@ static void do_weight_paint_vertex(
/* dv may have been altered greatly */
dw = defvert_find_index(dv, vgroup);
#else
- dw = NULL; /* UNUSED after assignment, set to NULL to ensuyre we don't
+ dw = NULL; /* UNUSED after assignment, set to NULL to ensure we don't
* use again, we thats needed un-ifdef the line above */
(void)dw; /* quiet warnigns */
#endif
@@ -2125,7 +2123,7 @@ static char *wpaint_make_validmap(Object *ob)
return vgroup_validmap;
}
-static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+static int wpaint_stroke_test_start(bContext *C, wmOperator *op, const float UNUSED(mouse[2]))
{
Scene *scene = CTX_data_scene(C);
struct PaintStroke *stroke = op->customdata;
@@ -2673,7 +2671,7 @@ static void vpaint_build_poly_facemap(struct VPaintData *vd, Mesh *me)
}
}
-static int vpaint_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent *UNUSED(event))
+static int vpaint_stroke_test_start(bContext *C, struct wmOperator *op, const float UNUSED(mouse[2]))
{
ToolSettings *ts = CTX_data_tool_settings(C);
struct PaintStroke *stroke = op->customdata;
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 7e766ea3388..7b8337ff957 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -350,7 +350,8 @@ static int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d,
bb_max,
ar,
rv3d,
- ob)) {
+ ob))
+ {
return 0;
}
@@ -1884,14 +1885,14 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
SculptSession *ss = ob->sculpt;
Brush *brush = paint_brush(&sd->paint);
float bstrength = ss->cache->bstrength;
- float area_normal[3], offset[3];
+ float offset[3];
float lim = brush->height;
int n;
if (bstrength < 0)
lim = -lim;
- mul_v3_v3v3(offset, ss->cache->scale, area_normal);
+ mul_v3_v3v3(offset, ss->cache->scale, ss->cache->sculpt_normal_symm);
#pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for (n = 0; n < totnode; n++) {
@@ -1917,7 +1918,8 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
{
if (sculpt_brush_test(&test, origco[vd.i])) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
- area_normal, vd.no, vd.fno, *vd.mask);
+ ss->cache->sculpt_normal_symm,
+ vd.no, vd.fno, *vd.mask);
float *disp = &layer_disp[vd.i];
float val[3];
@@ -2775,7 +2777,8 @@ static void do_brush_action(Sculpt *sd, Object *ob, Brush *brush)
}
if (!ELEM(brush->sculpt_tool, SCULPT_TOOL_SMOOTH, SCULPT_TOOL_MASK) &&
- brush->autosmooth_factor > 0) {
+ brush->autosmooth_factor > 0)
+ {
if (brush->flag & BRUSH_INVERSE_SMOOTH_PRESSURE) {
smooth(sd, ob, nodes, totnode, brush->autosmooth_factor * (1 - ss->cache->pressure), FALSE);
}
@@ -2867,7 +2870,7 @@ static void sculpt_update_keyblock(Object *ob)
SculptSession *ss = ob->sculpt;
float (*vertCos)[3];
- /* Keyblock update happens after hadning deformation caused by modifiers,
+ /* Keyblock update happens after handling deformation caused by modifiers,
* so ss->orig_cos would be updated with new stroke */
if (ss->orig_cos) vertCos = ss->orig_cos;
else vertCos = BLI_pbvh_get_vertCos(ss->pbvh);
@@ -3195,7 +3198,8 @@ static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss)
for (md = ob->modifiers.first; md; md = md->next) {
if (md->type == eModifierType_Mirror &&
- (md->mode & eModifierMode_Realtime)) {
+ (md->mode & eModifierMode_Realtime))
+ {
MirrorModifierData *mmd = (MirrorModifierData *)md;
if (mmd->flag & MOD_MIR_CLIPPING) {
@@ -3220,7 +3224,7 @@ static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss)
}
/* Initialize the stroke cache invariants from operator properties */
-static void sculpt_update_cache_invariants(bContext *C, Sculpt *sd, SculptSession *ss, wmOperator *op, wmEvent *event)
+static void sculpt_update_cache_invariants(bContext *C, Sculpt *sd, SculptSession *ss, wmOperator *op, const float mouse[2])
{
StrokeCache *cache = MEM_callocN(sizeof(StrokeCache), "stroke cache");
Brush *brush = paint_brush(&sd->paint);
@@ -3243,14 +3247,7 @@ static void sculpt_update_cache_invariants(bContext *C, Sculpt *sd, SculptSessio
sculpt_init_mirror_clipping(ob, ss);
/* Initial mouse location */
- if (event) {
- ss->cache->initial_mouse[0] = event->x;
- ss->cache->initial_mouse[1] = event->y;
- }
- else {
- ss->cache->initial_mouse[0] = 0;
- ss->cache->initial_mouse[1] = 0;
- }
+ copy_v2_v2(ss->cache->initial_mouse, mouse);
mode = RNA_enum_get(op->ptr, "mode");
cache->invert = mode == BRUSH_STROKE_INVERT;
@@ -3354,7 +3351,8 @@ static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush)
if (ELEM5(tool,
SCULPT_TOOL_GRAB, SCULPT_TOOL_NUDGE,
SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_SNAKE_HOOK,
- SCULPT_TOOL_THUMB)) {
+ SCULPT_TOOL_THUMB))
+ {
float grab_location[3], imat[4][4], delta[3], loc[3];
if (cache->first_time) {
@@ -3763,18 +3761,18 @@ static int over_mesh(bContext *C, struct wmOperator *UNUSED(op), float x, float
}
static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op,
- wmEvent *event)
+ const float mouse[2])
{
/* Don't start the stroke until mouse goes over the mesh.
* note: event will only be null when re-executing the saved stroke. */
- if (event == NULL || over_mesh(C, op, event->x, event->y)) {
+ if (over_mesh(C, op, mouse[0], mouse[1])) {
Object *ob = CTX_data_active_object(C);
SculptSession *ss = ob->sculpt;
Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
ED_view3d_init_mats_rv3d(ob, CTX_wm_region_view3d(C));
- sculpt_update_cache_invariants(C, sd, ss, op, event);
+ sculpt_update_cache_invariants(C, sd, ss, op, mouse);
sculpt_undo_push_begin(sculpt_tool_name(sd));
diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c
index e91b29ff0c1..17c4dc37371 100644
--- a/source/blender/editors/sound/sound_ops.c
+++ b/source/blender/editors/sound/sound_ops.c
@@ -362,6 +362,81 @@ static int sound_mixdown_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static EnumPropertyItem container_items[] = {
+#ifdef WITH_FFMPEG
+ {AUD_CONTAINER_AC3, "AC3", 0, "ac3", "Dolby Digital ATRAC 3"},
+#endif
+ {AUD_CONTAINER_FLAC, "FLAC", 0, "flac", "Free Lossless Audio Codec"},
+#ifdef WITH_FFMPEG
+ {AUD_CONTAINER_MATROSKA, "MATROSKA", 0, "mkv", "Matroska"},
+ {AUD_CONTAINER_MP2, "MP2", 0, "mp2", "MPEG-1 Audio Layer II"},
+ {AUD_CONTAINER_MP3, "MP3", 0, "mp3", "MPEG-2 Audio Layer III"},
+#endif
+ {AUD_CONTAINER_OGG, "OGG", 0, "ogg", "Xiph.Org Ogg Container"},
+ {AUD_CONTAINER_WAV, "WAV", 0, "wav", "Waveform Audio File Format"},
+ {0, NULL, 0, NULL, NULL}};
+
+static const char *snd_ext_sound[] = {
+ ".ac3",
+ ".flac",
+ ".mkv",
+ ".mp2",
+ ".mp3",
+ ".ogg",
+ ".wav",
+ NULL
+};
+
+static int sound_mixdown_check(bContext *UNUSED(C), wmOperator *op)
+{
+ AUD_Container container = RNA_enum_get(op->ptr, "container");
+
+ const char* extension = NULL;
+
+ EnumPropertyItem* item = container_items;
+ while(item->identifier != NULL)
+ {
+ if(item->value == container)
+ {
+ const char** ext = snd_ext_sound;
+ while(*ext != NULL)
+ {
+ if(!strcmp(*ext + 1, item->name))
+ {
+ extension = *ext;
+ break;
+ }
+
+ ext++;
+ }
+ }
+ item++;
+ }
+
+ if (extension) {
+ PropertyRNA *prop;
+ char filepath[FILE_MAX];
+
+ int check;
+
+ prop = RNA_struct_find_property(op->ptr, "filepath");
+ RNA_property_string_get(op->ptr, prop, filepath);
+
+ if(BLI_testextensie_array(filepath, snd_ext_sound))
+ check = BLI_replace_extension(filepath, FILE_MAX, extension);
+ else
+ check = BLI_ensure_extension(filepath, FILE_MAX, extension);
+
+ if(!check)
+ return check;
+
+ RNA_property_string_set(op->ptr, prop, filepath);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static int sound_mixdown_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
if (RNA_struct_property_is_set(op->ptr, "filepath"))
@@ -544,20 +619,6 @@ static void SOUND_OT_mixdown(wmOperatorType *ot)
{AUD_FORMAT_FLOAT64, "F64", 0, "F64", "64 bit floating point"},
{0, NULL, 0, NULL, NULL}};
- static EnumPropertyItem container_items[] = {
-#ifdef WITH_FFMPEG
- {AUD_CONTAINER_AC3, "AC3", 0, "ac3", "Dolby Digital ATRAC 3"},
-#endif
- {AUD_CONTAINER_FLAC, "FLAC", 0, "flac", "Free Lossless Audio Codec"},
-#ifdef WITH_FFMPEG
- {AUD_CONTAINER_MATROSKA, "MATROSKA", 0, "mkv", "Matroska"},
- {AUD_CONTAINER_MP2, "MP2", 0, "mp2", "MPEG-1 Audio Layer II"},
- {AUD_CONTAINER_MP3, "MP3", 0, "mp3", "MPEG-2 Audio Layer III"},
-#endif
- {AUD_CONTAINER_OGG, "OGG", 0, "ogg", "Xiph.Org Ogg Container"},
- {AUD_CONTAINER_WAV, "WAV", 0, "wav", "Waveform Audio File Format"},
- {0, NULL, 0, NULL, NULL}};
-
static EnumPropertyItem codec_items[] = {
#ifdef WITH_FFMPEG
{AUD_CODEC_AAC, "AAC", 0, "AAC", "Advanced Audio Coding"},
@@ -582,6 +643,7 @@ static void SOUND_OT_mixdown(wmOperatorType *ot)
/* api callbacks */
ot->exec = sound_mixdown_exec;
ot->invoke = sound_mixdown_invoke;
+ ot->check = sound_mixdown_check;
#ifdef WITH_AUDASPACE
ot->ui = sound_mixdown_draw;
@@ -590,7 +652,7 @@ static void SOUND_OT_mixdown(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
#ifdef WITH_AUDASPACE
RNA_def_int(ot->srna, "accuracy", 1024, 1, 16777216, "Accuracy", "Sample accuracy, important for animation data (the lower the value, the more accurate)", 1, 16777216);
RNA_def_enum(ot->srna, "container", container_items, AUD_CONTAINER_FLAC, "Container", "File format");
diff --git a/source/blender/editors/space_clip/clip_draw.c b/source/blender/editors/space_clip/clip_draw.c
index d654dc9cc77..c0ac262d996 100644
--- a/source/blender/editors/space_clip/clip_draw.c
+++ b/source/blender/editors/space_clip/clip_draw.c
@@ -263,7 +263,7 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
}
}
- /* if texture buffers aren't efifciently supported or texture is too large to
+ /* if texture buffers aren't efficiently supported or texture is too large to
* be binder fallback to simple draw pixels solution */
if (need_fallback) {
/* set zoom */
diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c
index 117e599cbbb..5131b728646 100644
--- a/source/blender/editors/space_clip/clip_ops.c
+++ b/source/blender/editors/space_clip/clip_ops.c
@@ -381,7 +381,7 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_FINISHED;
default:
- if (event->type == vpd->event_type && event->val == KM_RELEASE) {
+ if (event->type == vpd->event_type && event->val == KM_RELEASE) {
view_pan_exit(C, op, 0);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c
index 5d63a223c08..5ed384d22af 100644
--- a/source/blender/editors/space_console/console_ops.c
+++ b/source/blender/editors/space_console/console_ops.c
@@ -277,7 +277,7 @@ static int console_move_exec(bContext *C, wmOperator *op)
ConsoleLine *ci = console_history_verify(C);
int type = RNA_enum_get(op->ptr, "type");
- int done = 0;
+ int done = FALSE;
int pos;
switch (type) {
@@ -448,7 +448,7 @@ static int console_delete_exec(bContext *C, wmOperator *op)
int stride;
const short type = RNA_enum_get(op->ptr, "type");
- int done = 0;
+ int done = FALSE;
if (ci->len == 0) {
return OPERATOR_CANCELLED;
@@ -466,7 +466,7 @@ static int console_delete_exec(bContext *C, wmOperator *op)
if (stride) {
memmove(ci->line + ci->cursor, ci->line + ci->cursor + stride, (ci->len - ci->cursor) + 1);
ci->len -= stride;
- done = 1;
+ done = TRUE;
}
}
break;
@@ -482,7 +482,7 @@ static int console_delete_exec(bContext *C, wmOperator *op)
ci->cursor -= stride; /* same as above */
memmove(ci->line + ci->cursor, ci->line + ci->cursor + stride, (ci->len - ci->cursor) + 1);
ci->len -= stride;
- done = 1;
+ done = TRUE;
}
}
break;
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 3ff9c3c0520..4bb5a21cb3d 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -241,7 +241,7 @@ static int file_border_select_modal(bContext *C, wmOperator *op, wmEvent *event)
result= WM_border_select_modal(C, op, event);
- if (result==OPERATOR_RUNNING_MODAL) {
+ if (result == OPERATOR_RUNNING_MODAL) {
rect.xmin = RNA_int_get(op->ptr, "xmin");
rect.ymin = RNA_int_get(op->ptr, "ymin");
@@ -820,9 +820,13 @@ void FILE_OT_parent(struct wmOperatorType *ot)
static int file_refresh_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
+ struct FSMenu* fsmenu = fsmenu_get();
ED_fileselect_clear(C, sfile);
+ /* refresh system directory menu */
+ fsmenu_refresh_system_category(fsmenu);
+
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c
index 9fe1940e87b..a17a7edbd80 100644
--- a/source/blender/editors/space_file/file_panels.c
+++ b/source/blender/editors/space_file/file_panels.c
@@ -174,7 +174,7 @@ static void file_panel_operator_header(const bContext *C, Panel *pa)
SpaceFile *sfile= CTX_wm_space_file(C);
wmOperator *op= sfile->op;
- BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname));
+ BLI_strncpy(pa->drawname, RNA_struct_ui_name(op->type->srna), sizeof(pa->drawname));
}
static int file_panel_check_prop(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index 107acbf49b1..d84214413da 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -1299,7 +1299,7 @@ static void thumbnails_startjob(void *tjv, short *stop, short *do_update, float
limg->flags |= MOVIEFILE_ICON;
}
}
- *do_update = 1;
+ *do_update = TRUE;
PIL_sleep_ms(10);
limg = limg->next;
}
@@ -1319,7 +1319,7 @@ static void thumbnails_update(void *tjv)
tj->filelist->filelist[limg->index].flags &= ~MOVIEFILE;
tj->filelist->filelist[limg->index].flags |= MOVIEFILE_ICON;
}
- limg->done=1;
+ limg->done = TRUE;
}
limg = limg->next;
}
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index b17ca5ee319..b0818d40e53 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -300,8 +300,9 @@ FileSelection ED_fileselect_layout_offset_rect(FileLayout* layout, const rcti* r
colmax = (rect->xmax)/(layout->tile_w + 2*layout->tile_border_x);
rowmax = (rect->ymax)/(layout->tile_h + 2*layout->tile_border_y);
- if ( is_inside(colmin, rowmin, layout->columns, layout->rows) ||
- is_inside(colmax, rowmax, layout->columns, layout->rows) ) {
+ if (is_inside(colmin, rowmin, layout->columns, layout->rows) ||
+ is_inside(colmax, rowmax, layout->columns, layout->rows) )
+ {
CLAMP(colmin, 0, layout->columns-1);
CLAMP(rowmin, 0, layout->rows-1);
CLAMP(colmax, 0, layout->columns-1);
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index 50261175852..6d2381e64d5 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -39,6 +39,7 @@
#include "DNA_space_types.h" /* FILE_MAX */
+#include "BLI_utildefines.h"
#include "BLI_blenlib.h"
#include "BLI_linklist.h"
#include "BLI_dynstr.h"
@@ -295,7 +296,7 @@ void fsmenu_read_bookmarks(struct FSMenu *fsmenu, const char *filename)
fclose(fp);
}
-void fsmenu_read_system(struct FSMenu *fsmenu)
+void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
{
char line[256];
#ifdef WIN32
@@ -319,10 +320,12 @@ void fsmenu_read_system(struct FSMenu *fsmenu)
}
/* Adding Desktop and My Documents */
- SHGetSpecialFolderPath(0, line, CSIDL_PERSONAL, 0);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
- SHGetSpecialFolderPath(0, line, CSIDL_DESKTOPDIRECTORY, 0);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ if (read_bookmarks) {
+ SHGetSpecialFolderPath(0, line, CSIDL_PERSONAL, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ SHGetSpecialFolderPath(0, line, CSIDL_DESKTOPDIRECTORY, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ }
}
#else
#ifdef __APPLE__
@@ -352,7 +355,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu)
* assume they are the standard ones
* TODO : replace hardcoded paths with proper BLI_get_folder calls */
home = getenv("HOME");
- if (home) {
+ if (read_bookmarks && home) {
BLI_snprintf(line, 256, "%s/", home);
fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
BLI_snprintf(line, 256, "%s/Desktop/", home);
@@ -437,32 +440,34 @@ void fsmenu_read_system(struct FSMenu *fsmenu)
}
/* Finally get user favorite places */
- list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL);
- pathesArray = LSSharedFileListCopySnapshot(list, &seed);
- pathesCount = CFArrayGetCount(pathesArray);
-
- for (i = 0; i < pathesCount; i++) {
- itemRef = (LSSharedFileListItemRef)CFArrayGetValueAtIndex(pathesArray, i);
-
- err = LSSharedFileListItemResolve(itemRef,
- kLSSharedFileListNoUserInteraction |
- kLSSharedFileListDoNotMountVolumes,
- &cfURL, NULL);
- if (err != noErr)
- continue;
-
- pathString = CFURLCopyFileSystemPath(cfURL, kCFURLPOSIXPathStyle);
+ if (read_bookmarks) {
+ list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL);
+ pathesArray = LSSharedFileListCopySnapshot(list, &seed);
+ pathesCount = CFArrayGetCount(pathesArray);
- if (!CFStringGetCString(pathString, line, 256, kCFStringEncodingASCII))
- continue;
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ for (i = 0; i < pathesCount; i++) {
+ itemRef = (LSSharedFileListItemRef)CFArrayGetValueAtIndex(pathesArray, i);
+
+ err = LSSharedFileListItemResolve(itemRef,
+ kLSSharedFileListNoUserInteraction |
+ kLSSharedFileListDoNotMountVolumes,
+ &cfURL, NULL);
+ if (err != noErr)
+ continue;
+
+ pathString = CFURLCopyFileSystemPath(cfURL, kCFURLPOSIXPathStyle);
+
+ if (!CFStringGetCString(pathString, line, 256, kCFStringEncodingASCII))
+ continue;
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+
+ CFRelease(pathString);
+ CFRelease(cfURL);
+ }
- CFRelease(pathString);
- CFRelease(cfURL);
+ CFRelease(pathesArray);
+ CFRelease(list);
}
-
- CFRelease(pathesArray);
- CFRelease(list);
#endif /* OSX 10.5+ */
}
#else
@@ -470,7 +475,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu)
{
const char *home = getenv("HOME");
- if (home) {
+ if (read_bookmarks && home) {
BLI_snprintf(line, FILE_MAXDIR, "%s/", home);
fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
BLI_snprintf(line, FILE_MAXDIR, "%s/Desktop/", home);
@@ -537,6 +542,15 @@ static void fsmenu_free_category(struct FSMenu *fsmenu, FSMenuCategory category)
}
}
+void fsmenu_refresh_system_category(struct FSMenu *fsmenu)
+{
+ fsmenu_free_category(fsmenu, FS_CATEGORY_SYSTEM);
+ fsmenu_set_category(fsmenu, FS_CATEGORY_SYSTEM, NULL);
+
+ /* Add all entries to system category */
+ fsmenu_read_system(fsmenu, FALSE);
+}
+
void fsmenu_free(struct FSMenu *fsmenu)
{
fsmenu_free_category(fsmenu, FS_CATEGORY_SYSTEM);
diff --git a/source/blender/editors/space_file/fsmenu.h b/source/blender/editors/space_file/fsmenu.h
index c926a4f382c..e5b3d54ac9f 100644
--- a/source/blender/editors/space_file/fsmenu.h
+++ b/source/blender/editors/space_file/fsmenu.h
@@ -74,10 +74,13 @@ void fsmenu_write_file (struct FSMenu* fsmenu, const char *filename);
void fsmenu_read_bookmarks (struct FSMenu* fsmenu, const char *filename);
/** adds system specific directories */
-void fsmenu_read_system (struct FSMenu* fsmenu);
+void fsmenu_read_system (struct FSMenu* fsmenu, int read_bookmarks);
/** Free's all the memory associated with the fsmenu */
void fsmenu_free (struct FSMenu* fsmenu);
+ /** Refresh system directory menu */
+void fsmenu_refresh_system_category (struct FSMenu* fsmenu);
+
#endif
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index dac5d1e1347..a90daa7e1e9 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -151,6 +151,9 @@ static void file_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
SpaceFile *sfile= (SpaceFile*)sa->spacedata.first;
//printf("file_init\n");
+ /* refresh system directory list */
+ fsmenu_refresh_system_category(fsmenu_get());
+
if (sfile->layout) sfile->layout->dirty= TRUE;
}
@@ -613,7 +616,7 @@ void ED_file_init(void)
{
char *cfgdir = BLI_get_folder(BLENDER_USER_CONFIG, NULL);
- fsmenu_read_system(fsmenu_get());
+ fsmenu_read_system(fsmenu_get(), TRUE);
if (cfgdir) {
char name[FILE_MAX];
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 7371202b4fb..2d9a7baa213 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -2032,7 +2032,7 @@ static int graphkeys_smooth_exec(bContext *C, wmOperator *UNUSED(op))
/* smooth keyframes */
for (ale = anim_data.first; ale; ale = ale->next) {
/* For now, we can only smooth by flattening handles AND smoothing curve values.
- * Perhaps the mode argument could be removed, as that functionality is offerred through
+ * Perhaps the mode argument could be removed, as that functionality is offered through
* Snap->Flatten Handles anyway.
*/
smooth_fcurve(ale->key_data);
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 58fbceb999d..31389bcb20c 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -313,7 +313,7 @@ static int image_view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
image_view_pan_exec(C, op);
break;
default:
- if (event->type == vpd->event_type && event->val == KM_RELEASE) {
+ if (event->type == vpd->event_type && event->val == KM_RELEASE) {
image_view_pan_exit(C, op, 0);
return OPERATOR_FINISHED;
}
@@ -2210,7 +2210,7 @@ static int image_record_composite_apply(bContext *C, wmOperator *op)
BKE_image_all_free_anim_ibufs(scene->r.cfra);
ntreeCompositTagAnimated(scene->nodetree);
- ntreeCompositExecTree(scene->nodetree, &scene->r, scene->r.cfra != rcd->old_cfra); /* 1 is no previews */
+ ntreeCompositExecTree(scene->nodetree, &scene->r, 0, scene->r.cfra != rcd->old_cfra); /* 1 is no previews */
ED_area_tag_redraw(CTX_wm_area(C));
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index 97b6c32d81d..dd21fca93ce 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -775,7 +775,7 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
bSensor *sens;
bController *cont;
unsigned int lay;
- int a, nr, doit;
+ int a, nr, do_it;
/* we need a sorted object list */
/* set scavisflags flags in Objects to indicate these should be evaluated */
@@ -815,9 +815,9 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
/* BUTS_XXX_STATE are similar to BUTS_XXX_LINK for selecting the object */
if (scavisflag & (BUTS_SENS_LINK|BUTS_CONT_LINK|BUTS_ACT_LINK|BUTS_SENS_STATE|BUTS_ACT_STATE)) {
- doit= 1;
- while (doit) {
- doit= 0;
+ do_it = TRUE;
+ while (do_it) {
+ do_it = FALSE;
ob= bmain->object.first;
while (ob) {
@@ -830,32 +830,32 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
if (sens->links[a]) {
obt= (Object *)sens->links[a]->mynew;
if (obt && (obt->scavisflag & OB_VIS_CONT)) {
- doit= 1;
+ do_it = TRUE;
ob->scavisflag |= OB_VIS_SENS;
break;
}
}
}
- if (doit) break;
+ if (do_it) break;
sens= sens->next;
}
}
/* 2nd case: select cont when act selected */
- if ((scavisflag & BUTS_CONT_LINK) && (ob->scavisflag & OB_VIS_CONT)==0) {
+ if ((scavisflag & BUTS_CONT_LINK) && (ob->scavisflag & OB_VIS_CONT)==0) {
cont= ob->controllers.first;
while (cont) {
for (a=0; a<cont->totlinks; a++) {
if (cont->links[a]) {
obt= (Object *)cont->links[a]->mynew;
if (obt && (obt->scavisflag & OB_VIS_ACT)) {
- doit= 1;
+ do_it = TRUE;
ob->scavisflag |= OB_VIS_CONT;
break;
}
}
}
- if (doit) break;
+ if (do_it) break;
cont= cont->next;
}
}
@@ -868,7 +868,7 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
if (sens->links[a]) {
obt= (Object *)sens->links[a]->mynew;
if (obt && (obt->scavisflag & OB_VIS_CONT)==0) {
- doit= 1;
+ do_it = TRUE;
obt->scavisflag |= OB_VIS_CONT;
}
}
@@ -878,14 +878,14 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
}
/* 4th case: select actuator when controller selected */
- if ( (scavisflag & (BUTS_ACT_LINK|BUTS_ACT_STATE)) && (ob->scavisflag & OB_VIS_CONT)) {
+ if ( (scavisflag & (BUTS_ACT_LINK|BUTS_ACT_STATE)) && (ob->scavisflag & OB_VIS_CONT)) {
cont= ob->controllers.first;
while (cont) {
for (a=0; a<cont->totlinks; a++) {
if (cont->links[a]) {
obt= (Object *)cont->links[a]->mynew;
if (obt && (obt->scavisflag & OB_VIS_ACT)==0) {
- doit= 1;
+ do_it = TRUE;
obt->scavisflag |= OB_VIS_ACT;
}
}
@@ -3333,7 +3333,7 @@ static void draw_sensor_joystick(uiLayout *layout, PointerRNA *ptr)
uiItemR(layout, ptr, "use_all_events", 0, NULL, ICON_NONE);
col = uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events") == FALSE);
uiItemR(col, ptr, "button_number", 0, NULL, ICON_NONE);
break;
case SENS_JOY_AXIS:
@@ -3343,7 +3343,7 @@ static void draw_sensor_joystick(uiLayout *layout, PointerRNA *ptr)
uiItemR(layout, ptr, "use_all_events", 0, NULL, ICON_NONE);
col = uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events") == FALSE);
uiItemR(col, ptr, "axis_direction", 0, NULL, ICON_NONE);
break;
case SENS_JOY_HAT:
@@ -3351,7 +3351,7 @@ static void draw_sensor_joystick(uiLayout *layout, PointerRNA *ptr)
uiItemR(layout, ptr, "use_all_events", 0, NULL, ICON_NONE);
col = uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events") == FALSE);
uiItemR(col, ptr, "hat_direction", 0, NULL, ICON_NONE);
break;
case SENS_JOY_AXIS_SINGLE:
@@ -3371,13 +3371,13 @@ static void draw_sensor_keyboard(uiLayout *layout, PointerRNA *ptr)
row = uiLayoutRow(layout, 0);
uiItemL(row, "Key:", ICON_NONE);
col = uiLayoutColumn(row, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_keys")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_keys") == FALSE);
uiItemR(col, ptr, "key", UI_ITEM_R_EVENT, "", ICON_NONE);
col = uiLayoutColumn(row, 0);
uiItemR(col, ptr, "use_all_keys", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
col = uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_keys")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_keys") == FALSE);
row = uiLayoutRow(col, 0);
uiItemL(row, "First Modifier:", ICON_NONE);
uiItemR(row, ptr, "modifier_key_1", UI_ITEM_R_EVENT, "", ICON_NONE);
@@ -3843,7 +3843,7 @@ static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr, bContext
col = uiLayoutColumn(row, 1);
uiItemR(col, ptr, "use_force_distance", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
sub = uiLayoutColumn(col, 0);
- uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_force_distance")==1);
+ uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_force_distance") == TRUE);
uiItemR(sub, ptr, "distance", 0, "", ICON_NONE);
uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
@@ -3976,7 +3976,7 @@ static void draw_actuator_filter_2d(uiLayout *layout, PointerRNA *ptr)
case ACT_2DFILTER_MOTIONBLUR:
split=uiLayoutSplit(layout, 0.75, 1);
row= uiLayoutRow(split, 0);
- uiLayoutSetActive(row, RNA_boolean_get(ptr, "use_motion_blur")==1);
+ uiLayoutSetActive(row, RNA_boolean_get(ptr, "use_motion_blur") == TRUE);
uiItemR(row, ptr, "motion_blur_factor", 0, NULL, ICON_NONE);
uiItemR(split, ptr, "use_motion_blur", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
break;
@@ -4080,21 +4080,21 @@ static void draw_actuator_motion(uiLayout *layout, PointerRNA *ptr)
col = uiLayoutColumn(row, 0);
uiItemR(col, ptr, "use_servo_limit_x", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
sub = uiLayoutColumn(col, 1);
- uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_servo_limit_x")==1);
+ uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_servo_limit_x") == TRUE);
uiItemR(sub, ptr, "force_max_x", 0, NULL, ICON_NONE);
uiItemR(sub, ptr, "force_min_x", 0, NULL, ICON_NONE);
col = uiLayoutColumn(row, 0);
uiItemR(col, ptr, "use_servo_limit_y", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
sub = uiLayoutColumn(col, 1);
- uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_servo_limit_y")==1);
+ uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_servo_limit_y") == TRUE);
uiItemR(sub, ptr, "force_max_y", 0, NULL, ICON_NONE);
uiItemR(sub, ptr, "force_min_y", 0, NULL, ICON_NONE);
col = uiLayoutColumn(row, 0);
uiItemR(col, ptr, "use_servo_limit_z", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
sub = uiLayoutColumn(col, 1);
- uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_servo_limit_z")==1);
+ uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_servo_limit_z") == TRUE);
uiItemR(sub, ptr, "force_max_z", 0, NULL, ICON_NONE);
uiItemR(sub, ptr, "force_min_z", 0, NULL, ICON_NONE);
@@ -4122,7 +4122,7 @@ static void draw_actuator_parent(uiLayout *layout, PointerRNA *ptr)
row = uiLayoutRow(layout, 0);
uiItemR(row, ptr, "use_compound", 0, NULL, ICON_NONE);
sub= uiLayoutRow(row, 0);
- uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_compound")==1);
+ uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_compound") == TRUE);
uiItemR(sub, ptr, "use_ghost", 0, NULL, ICON_NONE);
}
}
@@ -4305,7 +4305,7 @@ static void draw_actuator_sound(uiLayout *layout, PointerRNA *ptr, bContext *C)
uiItemR(layout, ptr, "use_sound_3d", 0, NULL, ICON_NONE);
col = uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_sound_3d")==1);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_sound_3d") == TRUE);
row = uiLayoutRow(col, 0);
uiItemR(row, ptr, "gain_3d_min", 0, NULL, ICON_NONE);
@@ -4565,7 +4565,7 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
subsplit= uiLayoutSplit(split, 0.85, 0);
col= uiLayoutColumn(subsplit, 0);
row= uiLayoutRow(col, 0);
- uiLayoutSetActive(row, RNA_boolean_get(&settings_ptr, "use_all_states")==0);
+ uiLayoutSetActive(row, RNA_boolean_get(&settings_ptr, "use_all_states") == FALSE);
uiTemplateLayers(row, &settings_ptr, "states_visible", &settings_ptr, "used_states", 0);
row= uiLayoutRow(col, 0);
uiTemplateLayers(row, &settings_ptr, "states_initial", &settings_ptr, "used_states", 0);
@@ -5070,8 +5070,8 @@ void logic_buttons(bContext *C, ARegion *ar)
if (!(slogic->scaflag & BUTS_ACT_STATE) ||
!(act->flag & ACT_LINKED) || /* always display actuators without links so that is can be edited */
(act->flag & ACT_VISIBLE) || /* this actuator has visible connection, display it */
- (act->flag & ACT_PIN && slogic->scaflag & BUTS_ACT_STATE)) {
-
+ (act->flag & ACT_PIN && slogic->scaflag & BUTS_ACT_STATE))
+ {
pin = (slogic->scaflag & BUTS_ACT_STATE && (act->flag & SENS_SHOW || act->flag & SENS_PIN)) ? 1 : 0;
act->flag |= ACT_VISIBLE; /* mark the actuator as visible to help implementing the up/down action */
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index 95a56176523..63e518e5aaa 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -335,11 +335,11 @@ static void nla_panel_properties(const bContext *C, Panel *pa)
* - blend in/out can only be set when autoblending is off
*/
column = uiLayoutColumn(layout, 1);
- uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_influence") == 0);
+ uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_influence") == FALSE);
uiItemR(column, &strip_ptr, "use_auto_blend", 0, NULL, ICON_NONE); // XXX as toggle?
sub = uiLayoutColumn(column, 1);
- uiLayoutSetActive(sub, RNA_boolean_get(&strip_ptr, "use_auto_blend") == 0);
+ uiLayoutSetActive(sub, RNA_boolean_get(&strip_ptr, "use_auto_blend") == FALSE);
uiItemR(sub, &strip_ptr, "blend_in", 0, NULL, ICON_NONE);
uiItemR(sub, &strip_ptr, "blend_out", 0, NULL, ICON_NONE);
@@ -383,7 +383,7 @@ static void nla_panel_actclip(const bContext *C, Panel *pa)
/* action usage */
column = uiLayoutColumn(layout, 1);
- uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_time") == 0);
+ uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_time") == FALSE);
uiItemL(column, "Playback Settings:", ICON_NONE);
uiItemR(column, &strip_ptr, "scale", 0, NULL, ICON_NONE);
uiItemR(column, &strip_ptr, "repeat", 0, NULL, ICON_NONE);
diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c
index c12cd6f2d39..a6578ffb3f7 100644
--- a/source/blender/editors/space_nla/nla_draw.c
+++ b/source/blender/editors/space_nla/nla_draw.c
@@ -676,7 +676,7 @@ static void draw_nla_channel_list_gl(bAnimContext *ac, ListBase *anim_data, View
short indent = 0, offset = 0, sel = 0, group = 0, nonSolo = 0;
int expand = -1, protect = -1, special = -1, mute = -1;
char name[128];
- short doDraw = 0;
+ short do_draw = FALSE;
/* determine what needs to be drawn */
switch (ale->type) {
@@ -695,7 +695,7 @@ static void draw_nla_channel_list_gl(bAnimContext *ac, ListBase *anim_data, View
if (((nlt->flag & NLATRACK_ACTIVE) && (nlt->flag & NLATRACK_DISABLED)) == 0) {
if (nlt->flag & NLATRACK_MUTED)
mute = ICON_MUTE_IPO_ON;
- else
+ else
mute = ICON_MUTE_IPO_OFF;
if (EDITABLE_NLT(nlt))
@@ -716,8 +716,8 @@ static void draw_nla_channel_list_gl(bAnimContext *ac, ListBase *anim_data, View
sel = SEL_NLT(nlt);
BLI_strncpy(name, nlt->name, sizeof(name));
- // draw manually still
- doDraw = 1;
+ /* draw manually still */
+ do_draw = TRUE;
}
break;
case ANIMTYPE_NLAACTION: /* NLA Action-Line */
@@ -733,8 +733,8 @@ static void draw_nla_channel_list_gl(bAnimContext *ac, ListBase *anim_data, View
else
BLI_strncpy(name, "<No Action>", sizeof(name));
- // draw manually still
- doDraw = 1;
+ /* draw manually still */
+ do_draw = TRUE;
}
break;
@@ -745,7 +745,7 @@ static void draw_nla_channel_list_gl(bAnimContext *ac, ListBase *anim_data, View
}
/* if special types, draw manually for now... */
- if (doDraw) {
+ if (do_draw) {
if (ale->id) {
/* special exception for textures */
if (GS(ale->id->name) == ID_TE) {
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index 8a7e2a8a904..5c9994e46d3 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -503,7 +503,7 @@ static int nlaedit_add_transition_exec(bContext *C, wmOperator *op)
bAnimListElem *ale;
int filter;
- int done = 0;
+ int done = FALSE;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -822,7 +822,7 @@ static int nlaedit_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
bAnimListElem *ale;
int filter;
- short done = 0;
+ short done = FALSE;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 31fd3177406..fcc92ff9ed7 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -53,6 +53,8 @@
#include "BKE_main.h"
#include "BKE_node.h"
+#include "BLF_api.h"
+
#include "NOD_composite.h"
#include "NOD_shader.h"
@@ -79,6 +81,9 @@
#include "node_intern.h"
+// XXX interface.h
+extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select);
+
/* ****************** SOCKET BUTTON DRAW FUNCTIONS ***************** */
static void node_sync_cb(bContext *UNUSED(C), void *snode_v, void *node_v)
@@ -474,15 +479,21 @@ static int node_resize_area_default(bNode *node, int x, int y)
rctf totr= node->totr;
/* right part of node */
totr.xmin = node->totr.xmax-20.0f;
- return BLI_in_rctf(&totr, x, y);
+ if (BLI_in_rctf(&totr, x, y))
+ return NODE_RESIZE_RIGHT;
+ else
+ return 0;
}
else {
- /* rect we're interested in is just the bottom right corner */
+ const float size = 10.0f;
rctf totr= node->totr;
- /* bottom right corner */
- totr.xmin = totr.xmax-10.0f;
- totr.ymax = totr.ymin+10.0f;
- return BLI_in_rctf(&totr, x, y);
+ int dir = 0;
+
+ if (x >= totr.xmax-size && x < totr.xmax && y >= totr.ymin && y < totr.ymax)
+ dir |= NODE_RESIZE_RIGHT;
+ if (x >= totr.xmin && x < totr.xmin+size && y >= totr.ymin && y < totr.ymax)
+ dir |= NODE_RESIZE_LEFT;
+ return dir;
}
}
@@ -511,7 +522,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
int dy;
/* get "global" coords */
- nodeSpaceCoords(gnode, &locx, &locy);
+ nodeToView(gnode, 0.0f, 0.0f, &locx, &locy);
/* center them, is a bit of abuse of locx and locy though */
node_update_nodetree(C, ngroup, locx, locy);
@@ -906,20 +917,166 @@ static void node_common_buts_whileloop(uiLayout *layout, bContext *UNUSED(C), Po
uiItemR(layout, ptr, "max_iterations", 0, NULL, 0);
}
-static void node_update_frame(const bContext *UNUSED(C), bNodeTree *UNUSED(ntree), bNode *node)
+/* XXX Does a bounding box update by iterating over all children.
+ * Not ideal to do this in every draw call, but doing as transform callback doesn't work,
+ * since the child node totr rects are not updated properly at that point.
+ */
+static void node_update_frame(const bContext *UNUSED(C), bNodeTree *ntree, bNode *node)
+{
+ const float margin = 30.0f;
+ NodeFrame *data = (NodeFrame *)node->storage;
+ int bbinit;
+ bNode *tnode;
+ rctf rect, noderect;
+ float xmax, ymax;
+
+ /* init rect from current frame size */
+ nodeToView(node, node->offsetx, node->offsety, &rect.xmin, &rect.ymax);
+ nodeToView(node, node->offsetx+node->width, node->offsety-node->height, &rect.xmax, &rect.ymin);
+
+ /* frame can be resized manually only if shrinking is disabled or no children are attached */
+ data->flag |= NODE_FRAME_RESIZEABLE;
+ /* for shrinking bbox, initialize the rect from first child node */
+ bbinit = (data->flag & NODE_FRAME_SHRINK);
+ /* fit bounding box to all children */
+ for (tnode=ntree->nodes.first; tnode; tnode=tnode->next) {
+ if (tnode->parent!=node)
+ continue;
+
+ /* add margin to node rect */
+ noderect = tnode->totr;
+ noderect.xmin -= margin;
+ noderect.xmax += margin;
+ noderect.ymin -= margin;
+ noderect.ymax += margin;
+
+ /* first child initializes frame */
+ if (bbinit) {
+ bbinit = 0;
+ rect = noderect;
+ data->flag &= ~NODE_FRAME_RESIZEABLE;
+ }
+ else
+ BLI_union_rctf(&rect, &noderect);
+ }
+
+ /* now adjust the frame size from view-space bounding box */
+ nodeFromView(node, rect.xmin, rect.ymax, &node->offsetx, &node->offsety);
+ nodeFromView(node, rect.xmax, rect.ymin, &xmax, &ymax);
+ node->width = xmax - node->offsetx;
+ node->height = -ymax + node->offsety;
+
+ node->totr = rect;
+}
+
+static void node_draw_frame_label(bNode *node)
+{
+ /* XXX font id is crap design */
+ const int fontid = blf_mono_font;
+ NodeFrame *data = (NodeFrame *)node->storage;
+ rctf *rct= &node->totr;
+ int color_id= node_get_colorid(node);
+ char label[128];
+ /* XXX a bit hacky, should use separate align values for x and y */
+ float width, ascender;
+ float x, y;
+
+ BLI_strncpy(label, nodeLabel(node), sizeof(label));
+ BLF_size(fontid, data->label_size, U.dpi);
+
+ /* title color */
+ UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.8f, 10);
+
+ width = BLF_width(fontid, label);
+ ascender = BLF_ascender(fontid);
+
+ x = 0.5f*(rct->xmin + rct->xmax) - 0.5f*width;
+ y = rct->ymax - NODE_DYS - ascender;
+
+ BLF_position(fontid, x, y, 0);
+ BLF_draw(fontid, label, BLF_DRAW_STR_DUMMY_MAX);
+}
+
+static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *UNUSED(ntree), bNode *node)
{
- float locx, locy;
+ rctf *rct= &node->totr;
+ int color_id= node_get_colorid(node);
+
+ /* skip if out of view */
+ if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax ||
+ node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
+
+ uiEndBlock(C, node->block);
+ node->block= NULL;
+ return;
+ }
+
+ /* shadow */
+ node_draw_shadow(snode, node, BASIS_RAD);
+
+ /* body */
+ if (node->flag & NODE_CUSTOM_COLOR)
+ glColor3fv(node->color);
+ else
+ UI_ThemeColor4(TH_NODE);
+ glEnable(GL_BLEND);
+ uiSetRoundBox(UI_CNR_ALL);
+ uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
+ glDisable(GL_BLEND);
- /* get "global" coords */
- nodeSpaceCoords(node, &locx, &locy);
+ /* outline active and selected emphasis */
+ if ( node->flag & (NODE_ACTIVE|SELECT) ) {
+ glEnable(GL_BLEND);
+ glEnable( GL_LINE_SMOOTH );
+
+ if (node->flag & NODE_ACTIVE)
+ UI_ThemeColorShadeAlpha(TH_ACTIVE, 0, -40);
+ else
+ UI_ThemeColorShadeAlpha(TH_SELECT, 0, -40);
+ uiSetRoundBox(UI_CNR_ALL);
+ uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
+
+ glDisable( GL_LINE_SMOOTH );
+ glDisable(GL_BLEND);
+ }
+
+ /* label */
+ node_draw_frame_label(node);
+
+ UI_ThemeClearColor(color_id);
+
+ uiEndBlock(C, node->block);
+ uiDrawBlock(C, node->block);
+ node->block= NULL;
+}
- node->prvr.xmin = locx + NODE_DYS;
- node->prvr.xmax = locx + node->width- NODE_DYS;
+static int node_resize_area_frame(bNode *node, int x, int y)
+{
+ const float size = 10.0f;
+ NodeFrame *data = (NodeFrame *)node->storage;
+ rctf totr= node->totr;
+ int dir = 0;
+
+ /* shrinking frame size is determined by child nodes */
+ if (!(data->flag & NODE_FRAME_RESIZEABLE))
+ return 0;
+
+ if (x >= totr.xmax-size && x < totr.xmax && y >= totr.ymin && y < totr.ymax)
+ dir |= NODE_RESIZE_RIGHT;
+ if (x >= totr.xmin && x < totr.xmin+size && y >= totr.ymin && y < totr.ymax)
+ dir |= NODE_RESIZE_LEFT;
+ if (x >= totr.xmin && x < totr.xmax && y >= totr.ymax-size && y < totr.ymax)
+ dir |= NODE_RESIZE_TOP;
+ if (x >= totr.xmin && x < totr.xmax && y >= totr.ymin && y < totr.ymin+size)
+ dir |= NODE_RESIZE_BOTTOM;
+
+ return dir;
+}
- node->totr.xmin = locx;
- node->totr.xmax = locx + node->width;
- node->totr.ymax = locy;
- node->totr.ymin = locy - node->height;
+static void node_buts_frame_details(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "label_size", 0, "Label Size", ICON_NONE);
+ uiItemR(layout, ptr, "shrink", 0, "Shrink", ICON_NONE);
}
static void node_common_set_butfunc(bNodeType *ntype)
@@ -941,7 +1098,10 @@ static void node_common_set_butfunc(bNodeType *ntype)
ntype->drawupdatefunc= node_update_group;
break;
case NODE_FRAME:
+ ntype->drawfunc= node_draw_frame;
ntype->drawupdatefunc= node_update_frame;
+ ntype->uifuncbut= node_buts_frame_details;
+ ntype->resize_area_func= node_resize_area_frame;
break;
}
}
@@ -1136,7 +1296,6 @@ static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *
/* only once called */
static void node_shader_set_butfunc(bNodeType *ntype)
{
- ntype->uifuncbut = NULL;
switch (ntype->type) {
/* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */
@@ -1215,7 +1374,6 @@ static void node_shader_set_butfunc(bNodeType *ntype)
ntype->uifunc= node_shader_buts_dynamic;
break;
}
- if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc;
}
/* ****************** BUTTON CALLBACKS FOR COMPOSITE NODES ***************** */
@@ -1262,6 +1420,9 @@ static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA *
}
col= uiLayoutColumn(layout, 0);
+
+ if (RNA_enum_get(&imaptr, "type")== IMA_TYPE_MULTILAYER)
+ uiItemR(col, ptr, "layer", 0, NULL, ICON_NONE);
}
static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -1376,7 +1537,7 @@ static void node_composit_buts_defocus(uiLayout *layout, bContext *UNUSED(C), Po
uiItemR(layout, ptr, "use_gamma_correction", 0, NULL, ICON_NONE);
col = uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer")==1);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer") == TRUE);
uiItemR(col, ptr, "f_stop", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "blur_max", 0, NULL, ICON_NONE);
@@ -1391,7 +1552,7 @@ static void node_composit_buts_defocus(uiLayout *layout, bContext *UNUSED(C), Po
col = uiLayoutColumn(layout, 0);
uiItemR(col, ptr, "use_zbuffer", 0, NULL, ICON_NONE);
sub = uiLayoutColumn(col, 0);
- uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer")==0);
+ uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer") == FALSE);
uiItemR(sub, ptr, "z_scale", 0, NULL, ICON_NONE);
}
@@ -1453,7 +1614,7 @@ static void node_composit_buts_lensdist(uiLayout *layout, bContext *UNUSED(C), P
uiItemR(col, ptr, "use_projector", 0, NULL, ICON_NONE);
col = uiLayoutColumn(col, 0);
- uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_projector")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_projector") == FALSE);
uiItemR(col, ptr, "use_jitter", 0, NULL, ICON_NONE);
uiItemR(col, ptr, "use_fit", 0, NULL, ICON_NONE);
}
@@ -1579,7 +1740,11 @@ static void node_composit_buts_hue_sat(uiLayout *layout, bContext *UNUSED(C), Po
static void node_composit_buts_dilateerode(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
+ uiItemR(layout, ptr, "type", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "distance", 0, NULL, ICON_NONE);
+ if (RNA_enum_get(ptr, "type") == CMP_NODE_DILATEERODE_DISTANCE) {
+ uiItemR(layout, ptr, "edge", 0, NULL, ICON_NONE);
+ }
}
static void node_composit_buts_diff_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@@ -1624,7 +1789,7 @@ static void node_composit_buts_color_spill(uiLayout *layout, bContext *UNUSED(C)
uiItemR(col, ptr, "ratio", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(col, ptr, "use_unspill", 0, NULL, ICON_NONE);
- if (RNA_boolean_get(ptr, "use_unspill")== 1) {
+ if (RNA_boolean_get(ptr, "use_unspill") == TRUE) {
uiItemR(col, ptr, "unspill_red", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(col, ptr, "unspill_green", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(col, ptr, "unspill_blue", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
@@ -1815,7 +1980,7 @@ static void node_composit_buts_file_output_details(uiLayout *layout, bContext *C
uiItemR(col, &active_input_ptr, "use_node_format", 0, NULL, 0);
col= uiLayoutColumn(layout, 0);
- uiLayoutSetActive(col, RNA_boolean_get(&active_input_ptr, "use_node_format")==0);
+ uiLayoutSetActive(col, RNA_boolean_get(&active_input_ptr, "use_node_format") == FALSE);
uiTemplateImageSettings(col, &imfptr);
}
}
@@ -1967,6 +2132,262 @@ static void node_composit_buts_moviedistortion(uiLayout *layout, bContext *C, Po
uiItemR(layout, ptr, "distortion_type", 0, "", 0);
}
+static void node_composit_buts_colorcorrection(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *row;
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "red", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "green", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "blue", 0, NULL, ICON_NONE);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemL(row, "", 0);
+ uiItemL(row, "Saturation", 0);
+ uiItemL(row, "Contrast", 0);
+ uiItemL(row, "Gamma", 0);
+ uiItemL(row, "Gain", 0);
+ uiItemL(row, "Lift", 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemL(row, "Master", 0);
+ uiItemR(row, ptr, "master_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "master_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "master_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "master_gain", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "master_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemL(row, "Highlights", 0);
+ uiItemR(row, ptr, "highlights_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "highlights_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "highlights_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "highlights_gain", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "highlights_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemL(row, "Midtones", 0);
+ uiItemR(row, ptr, "midtones_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "midtones_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "midtones_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "midtones_gain", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "midtones_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemL(row, "Shadows", 0);
+ uiItemR(row, ptr, "shadows_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "shadows_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "shadows_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "shadows_gain", UI_ITEM_R_SLIDER, "", ICON_NONE);
+ uiItemR(row, ptr, "shadows_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "midtones_start", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_end", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+}
+
+static void node_composit_buts_colorcorrection_but(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) {
+ uiLayout *row;
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "red", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "green", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "blue", 0, NULL, ICON_NONE);
+ row = layout;
+ uiItemL(row, "Saturation", 0);
+ uiItemR(row, ptr, "master_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "highlights_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "shadows_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ uiItemL(row, "Contrast", 0);
+ uiItemR(row, ptr, "master_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "highlights_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "shadows_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ uiItemL(row, "Gamma", 0);
+ uiItemR(row, ptr, "master_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "highlights_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "shadows_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ uiItemL(row, "Gain", 0);
+ uiItemR(row, ptr, "master_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "highlights_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "shadows_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ uiItemL(row, "Lift", 0);
+ uiItemR(row, ptr, "master_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "highlights_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "shadows_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "midtones_start", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "midtones_end", 0, NULL, ICON_NONE);
+}
+
+static void node_composit_buts_switch(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "check", 0, NULL, ICON_NONE);
+}
+
+static void node_composit_buts_boxmask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *row;
+
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "x", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "y", 0, NULL, ICON_NONE);
+
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "width", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "height", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ uiItemR(layout, ptr, "rotation", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "mask_type", 0, NULL, ICON_NONE);
+}
+
+static void node_composit_buts_bokehimage(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "flaps", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "angle", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "rounding", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "catadioptric", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "shift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+}
+
+void node_composit_backdrop_viewer(SpaceNode* snode, ImBuf* backdrop, bNode* node, int x, int y)
+{
+// node_composit_backdrop_canvas(snode, backdrop, node, x, y);
+ if (node->custom1 == 0) { /// @todo: why did we need this one?
+ const float backdropWidth = backdrop->x;
+ const float backdropHeight = backdrop->y;
+ const float cx = x+snode->zoom*backdropWidth*node->custom3;
+ const float cy = y+snode->zoom*backdropHeight*node->custom4;
+
+ glColor3f(1.0, 1.0, 1.0);
+
+ glBegin(GL_LINES);
+ glVertex2f(cx-25, cy-25);
+ glVertex2f(cx+25, cy+25);
+ glVertex2f(cx+25, cy-25);
+ glVertex2f(cx-25, cy+25);
+ glEnd();
+ }
+}
+
+void node_composit_backdrop_boxmask(SpaceNode* snode, ImBuf* backdrop, bNode* node, int x, int y)
+{
+ NodeBoxMask *boxmask = node->storage;
+ const float backdropWidth = backdrop->x;
+ const float backdropHeight = backdrop->y;
+ const float aspect = backdropWidth/backdropHeight;
+ const float rad = DEG2RADF(-boxmask->rotation);
+ const float cosine = cosf(rad);
+ const float sine = sinf(rad);
+ const float halveBoxWidth = backdropWidth * (boxmask->width / 2.0f);
+ const float halveBoxHeight = backdropHeight * (boxmask->height / 2.0f) * aspect;
+
+ float cx, cy, x1, x2, x3, x4;
+ float y1, y2, y3, y4;
+
+
+ /* keep this, saves us from a version patch */
+ if (snode->zoom == 0.0f) snode->zoom = 1.0f;
+
+ glColor3f(1.0, 1.0, 1.0);
+
+ cx = x+snode->zoom*backdropWidth*boxmask->x;
+ cy = y+snode->zoom*backdropHeight*boxmask->y;
+
+ x1 = cx - (cosine*halveBoxWidth+sine*halveBoxHeight)*snode->zoom;
+ x2 = cx - (cosine*-halveBoxWidth+sine*halveBoxHeight)*snode->zoom;
+ x3 = cx - (cosine*-halveBoxWidth+sine*-halveBoxHeight)*snode->zoom;
+ x4 = cx - (cosine*halveBoxWidth+sine*-halveBoxHeight)*snode->zoom;
+ y1 = cy - (-sine*halveBoxWidth + cosine*halveBoxHeight)*snode->zoom;
+ y2 = cy - (-sine*-halveBoxWidth + cosine*halveBoxHeight)*snode->zoom;
+ y3 = cy - (-sine*-halveBoxWidth + cosine*-halveBoxHeight)*snode->zoom;
+ y4 = cy - (-sine*halveBoxWidth + cosine*-halveBoxHeight)*snode->zoom;
+
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(x1, y1);
+ glVertex2f(x2, y2);
+ glVertex2f(x3, y3);
+ glVertex2f(x4, y4);
+ glEnd();
+}
+
+void node_composit_backdrop_ellipsemask(SpaceNode* snode, ImBuf* backdrop, bNode* node, int x, int y)
+{
+ NodeEllipseMask * ellipsemask = node->storage;
+ const float backdropWidth = backdrop->x;
+ const float backdropHeight = backdrop->y;
+ const float aspect = backdropWidth / backdropHeight;
+ const float rad = DEG2RADF(-ellipsemask->rotation);
+ const float cosine = cosf(rad);
+ const float sine = sinf(rad);
+ const float halveBoxWidth = backdropWidth * (ellipsemask->width / 2.0f);
+ const float halveBoxHeight = backdropHeight * (ellipsemask->height / 2.0f) * aspect;
+
+ float cx, cy, x1, x2, x3, x4;
+ float y1, y2, y3, y4;
+
+
+ /* keep this, saves us from a version patch */
+ if (snode->zoom == 0.0f) snode->zoom = 1.0f;
+
+ glColor3f(1.0, 1.0, 1.0);
+
+ cx = x+snode->zoom*backdropWidth*ellipsemask->x;
+ cy = y+snode->zoom*backdropHeight*ellipsemask->y;
+
+ x1 = cx - (cosine*halveBoxWidth+sine*halveBoxHeight)*snode->zoom;
+ x2 = cx - (cosine*-halveBoxWidth+sine*halveBoxHeight)*snode->zoom;
+ x3 = cx - (cosine*-halveBoxWidth+sine*-halveBoxHeight)*snode->zoom;
+ x4 = cx - (cosine*halveBoxWidth+sine*-halveBoxHeight)*snode->zoom;
+ y1 = cy - (-sine*halveBoxWidth + cosine*halveBoxHeight)*snode->zoom;
+ y2 = cy - (-sine*-halveBoxWidth + cosine*halveBoxHeight)*snode->zoom;
+ y3 = cy - (-sine*-halveBoxWidth + cosine*-halveBoxHeight)*snode->zoom;
+ y4 = cy - (-sine*halveBoxWidth + cosine*-halveBoxHeight)*snode->zoom;
+
+ glBegin(GL_LINE_LOOP);
+
+ glVertex2f(x1, y1);
+ glVertex2f(x2, y2);
+ glVertex2f(x3, y3);
+ glVertex2f(x4, y4);
+ glEnd();
+}
+
+static void node_composit_buts_ellipsemask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *row;
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "x", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "y", 0, NULL, ICON_NONE);
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "width", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(row, ptr, "height", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+
+ uiItemR(layout, ptr, "rotation", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "mask_type", 0, NULL, ICON_NONE);
+}
+
+static void node_composit_buts_viewer_but(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *col;
+
+ uiItemR(layout, ptr, "tile_order", 0, NULL, ICON_NONE);
+ if (RNA_enum_get(ptr, "tile_order")==0) {
+ col= uiLayoutColumn(layout, 1);
+ uiItemR(col, ptr, "center_x", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "center_y", 0, NULL, ICON_NONE);
+ }
+}
+
static void node_composit_buts_mask(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiTemplateID(layout, C, ptr, "mask", NULL, NULL, NULL);
@@ -1975,7 +2396,6 @@ static void node_composit_buts_mask(uiLayout *layout, bContext *C, PointerRNA *p
/* only once called */
static void node_composit_set_butfunc(bNodeType *ntype)
{
- ntype->uifuncbut = NULL;
switch (ntype->type) {
/* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */
@@ -2139,14 +2559,36 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_MOVIEDISTORTION:
ntype->uifunc= node_composit_buts_moviedistortion;
break;
+ case CMP_NODE_COLORCORRECTION:
+ ntype->uifunc=node_composit_buts_colorcorrection;
+ ntype->uifuncbut=node_composit_buts_colorcorrection_but;
+ break;
+ case CMP_NODE_SWITCH:
+ ntype->uifunc= node_composit_buts_switch;
+ break;
+ case CMP_NODE_MASK_BOX:
+ ntype->uifunc= node_composit_buts_boxmask;
+ ntype->uibackdropfunc = node_composit_backdrop_boxmask;
+ break;
+ case CMP_NODE_MASK_ELLIPSE:
+ ntype->uifunc= node_composit_buts_ellipsemask;
+ ntype->uibackdropfunc = node_composit_backdrop_ellipsemask;
+ break;
+ case CMP_NODE_BOKEHIMAGE:
+ ntype->uifunc= node_composit_buts_bokehimage;
+ break;
+ case CMP_NODE_VIEWER:
+ ntype->uifunc = NULL;
+ ntype->uifuncbut= node_composit_buts_viewer_but;
+ ntype->uibackdropfunc = node_composit_backdrop_viewer;
+ break;
case CMP_NODE_MASK:
ntype->uifunc= node_composit_buts_mask;
break;
+
default:
ntype->uifunc= NULL;
}
- if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc;
-
}
/* ****************** BUTTON CALLBACKS FOR TEXTURE NODES ***************** */
@@ -2257,7 +2699,6 @@ static void node_texture_buts_output(uiLayout *layout, bContext *UNUSED(C), Poin
/* only once called */
static void node_texture_set_butfunc(bNodeType *ntype)
{
- ntype->uifuncbut = NULL;
if ( ntype->type >= TEX_NODE_PROC && ntype->type < TEX_NODE_PROC_MAX ) {
ntype->uifunc = node_texture_buts_proc;
}
@@ -2301,10 +2742,6 @@ static void node_texture_set_butfunc(bNodeType *ntype)
break;
}
}
-
- if (ntype->uifuncbut == NULL) {
- ntype->uifuncbut = ntype->uifunc;
- }
}
/* ******* init draw callbacks for all tree types, only called in usiblender.c, once ************* */
@@ -2440,6 +2877,19 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
glPixelZoom(1.0f, 1.0f);
}
}
+
+ /// @note draw selected info on backdrop
+ if (snode->edittree) {
+ bNode *node = snode->edittree->nodes.first;
+ while (node) {
+ if (node->flag & NODE_SELECT) {
+ if (node->typeinfo->uibackdropfunc) {
+ node->typeinfo->uibackdropfunc(snode, ibuf, node, x, y);
+ }
+ }
+ node = node->next;
+ }
+ }
glMatrixMode(GL_PROJECTION);
glPopMatrix();
@@ -2694,8 +3144,8 @@ void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int
/* note; this is used for fake links in groups too */
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
{
- int do_shaded= 0, th_col1= TH_HEADER, th_col2= TH_HEADER;
- int do_triple= 0, th_col3= TH_WIRE;
+ int do_shaded= FALSE, th_col1= TH_HEADER, th_col2= TH_HEADER;
+ int do_triple= FALSE, th_col3= TH_WIRE;
if (link->fromsock==NULL && link->tosock==NULL)
return;
@@ -2703,7 +3153,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
/* new connection */
if (!link->fromsock || !link->tosock) {
th_col1 = TH_ACTIVE;
- do_triple = 1;
+ do_triple = TRUE;
}
else {
/* going to give issues once... */
@@ -2715,7 +3165,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
/* a bit ugly... but thats how we detect the internal group links */
if (!link->fromnode || !link->tonode) {
UI_ThemeColorBlend(TH_BACK, TH_WIRE, 0.5f);
- do_shaded= 0;
+ do_shaded = FALSE;
}
else {
/* check cyclic */
@@ -2731,8 +3181,8 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
if (link->tonode->flag & SELECT)
th_col2= TH_EDGE_SELECT;
}
- do_shaded= 1;
- do_triple= 1;
+ do_shaded = TRUE;
+ do_triple = TRUE;
}
else {
th_col1 = TH_REDALERT;
diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c
index c92abf116c4..f2ec2289ad1 100644
--- a/source/blender/editors/space_node/node_buttons.c
+++ b/source/blender/editors/space_node/node_buttons.c
@@ -89,8 +89,8 @@ static void active_node_panel(const bContext *C, Panel *pa)
SpaceNode *snode= CTX_wm_space_node(C);
bNodeTree *ntree= (snode) ? snode->edittree : NULL;
bNode *node = (ntree) ? nodeGetActive(ntree) : NULL; // xxx... for editing group nodes
- uiLayout *layout;
- PointerRNA ptr;
+ uiLayout *layout, *row, *col, *sub;
+ PointerRNA ptr, opptr;
/* verify pointers, and create RNA pointer for the node */
if (ELEM(NULL, ntree, node))
@@ -100,7 +100,6 @@ static void active_node_panel(const bContext *C, Panel *pa)
//else
RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr);
- /* XXX nicer way to make sub-layout? */
layout = uiLayoutColumn(pa->layout, 0);
uiLayoutSetContextPointer(layout, "node", &ptr);
@@ -112,12 +111,35 @@ static void active_node_panel(const bContext *C, Panel *pa)
uiItemO(layout, NULL, 0, "NODE_OT_hide_socket_toggle");
uiItemS(layout);
+ uiItemS(layout);
+ row = uiLayoutRow(layout, 0);
+
+ col = uiLayoutColumn(row, 1);
+ uiItemM(col, (bContext *)C, "NODE_MT_node_color_presets", NULL, 0);
+ uiItemR(col, &ptr, "use_custom_color", UI_ITEM_R_ICON_ONLY, NULL, ICON_NONE);
+ sub = uiLayoutRow(col, 0);
+ if (!(node->flag & NODE_CUSTOM_COLOR))
+ uiLayoutSetEnabled(sub, 0);
+ uiItemR(sub, &ptr, "color", 0, "", 0);
+
+ col = uiLayoutColumn(row, 1);
+ uiItemO(col, "", ICON_ZOOMIN, "node.node_color_preset_add");
+ opptr = uiItemFullO(col, "node.node_color_preset_add", "", ICON_ZOOMOUT, NULL, WM_OP_INVOKE_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_boolean_set(&opptr, "remove_active", 1);
+ uiItemM(col, (bContext *)C, "NODE_MT_node_color_specials", "", ICON_DOWNARROW_HLT);
+
/* draw this node's settings */
- if (node->typeinfo && node->typeinfo->uifuncbut)
+ if (node->typeinfo && node->typeinfo->uifuncbut) {
+ uiItemS(layout);
+ uiItemS(layout);
node->typeinfo->uifuncbut(layout, (bContext *)C, &ptr);
- else if (node->typeinfo && node->typeinfo->uifunc)
+ }
+ else if (node->typeinfo && node->typeinfo->uifunc) {
+ uiItemS(layout);
+ uiItemS(layout);
node->typeinfo->uifunc(layout, (bContext *)C, &ptr);
+ }
}
static int node_sockets_poll(const bContext *C, PanelType *UNUSED(pt))
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index d93b1b1fcc8..7011d605a7e 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -167,6 +167,110 @@ void ED_node_generic_update(Main *bmain, bNodeTree *ntree, bNode *node)
ntreeTexCheckCyclics(ntree);
}
+static int compare_nodes(bNode *a, bNode *b)
+{
+ bNode *parent;
+ /* These tell if either the node or any of the parent nodes is selected.
+ * A selected parent means an unselected node is also in foreground!
+ */
+ int a_select=(a->flag & NODE_SELECT), b_select=(b->flag & NODE_SELECT);
+ int a_active=(a->flag & NODE_ACTIVE), b_active=(b->flag & NODE_ACTIVE);
+
+ /* if one is an ancestor of the other */
+ /* XXX there might be a better sorting algorithm for stable topological sort, this is O(n^2) worst case */
+ for (parent = a->parent; parent; parent=parent->parent) {
+ /* if b is an ancestor, it is always behind a */
+ if (parent==b)
+ return 1;
+ /* any selected ancestor moves the node forward */
+ if (parent->flag & NODE_ACTIVE)
+ a_active = 1;
+ if (parent->flag & NODE_SELECT)
+ a_select = 1;
+ }
+ for (parent = b->parent; parent; parent=parent->parent) {
+ /* if a is an ancestor, it is always behind b */
+ if (parent==a)
+ return 0;
+ /* any selected ancestor moves the node forward */
+ if (parent->flag & NODE_ACTIVE)
+ b_active = 1;
+ if (parent->flag & NODE_SELECT)
+ b_select = 1;
+ }
+
+ /* if one of the nodes is in the background and the other not */
+ if ((a->flag & NODE_BACKGROUND) && !(b->flag & NODE_BACKGROUND))
+ return 0;
+ else if (!(a->flag & NODE_BACKGROUND) && (b->flag & NODE_BACKGROUND))
+ return 1;
+
+ /* if one has a higher selection state (active > selected > nothing) */
+ if (!b_active && a_active)
+ return 1;
+ else if (!b_select && (a_active || a_select))
+ return 1;
+
+ return 0;
+}
+
+/* Sorts nodes by selection: unselected nodes first, then selected,
+ * then the active node at the very end. Relative order is kept intact!
+ */
+void ED_node_sort(bNodeTree *ntree)
+{
+ /* merge sort is the algorithm of choice here */
+ bNode *first_a, *first_b, *node_a, *node_b, *tmp;
+ int totnodes= BLI_countlist(&ntree->nodes);
+ int k, a, b;
+
+ k = 1;
+ while (k < totnodes) {
+ first_a = first_b = ntree->nodes.first;
+
+ do {
+ /* setup first_b pointer */
+ for (b=0; b < k && first_b; ++b) {
+ first_b = first_b->next;
+ }
+ /* all batches merged? */
+ if (first_b==NULL)
+ break;
+
+ /* merge batches */
+ node_a = first_a;
+ node_b = first_b;
+ a = b = 0;
+ while (a < k && b < k && node_b) {
+ if (compare_nodes(node_a, node_b)==0) {
+ node_a = node_a->next;
+ ++a;
+ }
+ else {
+ tmp = node_b;
+ node_b = node_b->next;
+ ++b;
+ BLI_remlink(&ntree->nodes, tmp);
+ BLI_insertlinkbefore(&ntree->nodes, node_a, tmp);
+ }
+ }
+
+ /* setup first pointers for next batch */
+ first_b = node_b;
+ for (; b < k; ++b) {
+ /* all nodes sorted? */
+ if (first_b==NULL)
+ break;
+ first_b = first_b->next;
+ }
+ first_a = first_b;
+ } while (first_b);
+
+ k = k << 1;
+ }
+}
+
+
static void do_node_internal_buttons(bContext *C, void *node_v, int event)
{
if (event==B_NODE_EXEC) {
@@ -176,24 +280,6 @@ static void do_node_internal_buttons(bContext *C, void *node_v, int event)
}
}
-
-static void node_scaling_widget(int color_id, float aspect, float xmin, float ymin, float xmax, float ymax)
-{
- float dx;
- float dy;
-
- dx= 0.5f*(xmax-xmin);
- dy= 0.5f*(ymax-ymin);
-
- UI_ThemeColorShade(color_id, +30);
- fdrawline(xmin, ymin, xmax, ymax);
- fdrawline(xmin+dx, ymin, xmax, ymax-dy);
-
- UI_ThemeColorShade(color_id, -10);
- fdrawline(xmin, ymin+aspect, xmax, ymax+aspect);
- fdrawline(xmin+dx, ymin+aspect, xmax, ymax-dy+aspect);
-}
-
static void node_uiblocks_init(const bContext *C, bNodeTree *ntree)
{
bNode *node;
@@ -223,7 +309,7 @@ static void node_update_basis(const bContext *C, bNodeTree *ntree, bNode *node)
int buty;
/* get "global" coords */
- nodeSpaceCoords(node, &locx, &locy);
+ nodeToView(node, 0.0f, 0.0f, &locx, &locy);
dy= locy;
/* header */
@@ -350,7 +436,7 @@ static void node_update_hidden(bNode *node)
int totin=0, totout=0, tot;
/* get "global" coords */
- nodeSpaceCoords(node, &locx, &locy);
+ nodeToView(node, 0.0f, 0.0f, &locx, &locy);
/* calculate minimal radius */
for (nsock= node->inputs.first; nsock; nsock= nsock->next)
@@ -410,7 +496,7 @@ void node_update_default(const bContext *C, bNodeTree *ntree, bNode *node)
node_update_basis(C, ntree, node);
}
-static int node_get_colorid(bNode *node)
+int node_get_colorid(bNode *node)
{
if (node->typeinfo->nclass==NODE_CLASS_INPUT)
return TH_NODE_IN_OUT;
@@ -573,6 +659,24 @@ static void node_toggle_button_cb(struct bContext *C, void *node_argv, void *op_
WM_operator_name_call(C, opname, WM_OP_INVOKE_DEFAULT, NULL);
}
+void node_draw_shadow(SpaceNode *snode, bNode *node, float radius)
+{
+ rctf *rct = &node->totr;
+
+ uiSetRoundBox(UI_CNR_ALL);
+ if (node->parent==NULL)
+ ui_dropshadow(rct, radius, snode->aspect, node->flag & SELECT);
+ else {
+ const float margin = 3.0f;
+
+ glColor4f(0.0f, 0.0f, 0.0f, 0.33f);
+ glEnable(GL_BLEND);
+ uiRoundBox(rct->xmin-margin, rct->ymin-margin,
+ rct->xmax+margin, rct->ymax+margin, radius+margin);
+ glDisable(GL_BLEND);
+ }
+}
+
static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node)
{
bNodeSocket *sock;
@@ -597,8 +701,8 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
return;
}
- uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_LEFT);
- ui_dropshadow(rct, BASIS_RAD, snode->aspect, node->flag & SELECT);
+ /* shadow */
+ node_draw_shadow(snode, node, BASIS_RAD);
/* header */
if (color_id==TH_NODE)
@@ -644,7 +748,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
/* title */
if (node->flag & SELECT)
- UI_ThemeColor(TH_TEXT_HI);
+ UI_ThemeColor(TH_SELECT);
else
UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.4f, 10);
@@ -680,27 +784,27 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
(int)(iconofs - rct->xmin-18.0f), NODE_DY, NULL, 0, 0, 0, 0, "");
/* body */
- UI_ThemeColor4(TH_NODE);
+ if (node->flag & NODE_CUSTOM_COLOR)
+ glColor3fv(node->color);
+ else
+ UI_ThemeColor4(TH_NODE);
glEnable(GL_BLEND);
- uiSetRoundBox(UI_CNR_BOTTOM_LEFT);
+ uiSetRoundBox(UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT);
uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax-NODE_DY, BASIS_RAD);
glDisable(GL_BLEND);
- /* scaling indicator */
- node_scaling_widget(TH_NODE, snode->aspect, rct->xmax-BASIS_RAD*snode->aspect, rct->ymin, rct->xmax, rct->ymin+BASIS_RAD*snode->aspect);
-
/* outline active and selected emphasis */
if ( node->flag & (NODE_ACTIVE|SELECT) ) {
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
- /* using different shades of TH_TEXT_HI for the empasis, like triangle */
- if ( node->flag & NODE_ACTIVE )
- UI_ThemeColorShadeAlpha(TH_TEXT_HI, 0, -40);
- else
- UI_ThemeColorShadeAlpha(TH_TEXT_HI, -20, -120);
- uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_LEFT); // round all corners except lower right
- uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
-
+
+ if (node->flag & NODE_ACTIVE)
+ UI_ThemeColorShadeAlpha(TH_ACTIVE, 0, -40);
+ else
+ UI_ThemeColorShadeAlpha(TH_SELECT, 0, -40);
+ uiSetRoundBox(UI_CNR_ALL);
+ uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
+
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
}
@@ -758,8 +862,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
char showname[128]; /* 128 is used below */
/* shadow */
- uiSetRoundBox(UI_CNR_ALL);
- ui_dropshadow(rct, hiddenrad, snode->aspect, node->flag & SELECT);
+ node_draw_shadow(snode, node, hiddenrad);
/* body */
UI_ThemeColor(color_id);
@@ -771,19 +874,20 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
if ( node->flag & (NODE_ACTIVE|SELECT) ) {
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
- /* using different shades of TH_TEXT_HI for the empasis, like triangle */
- if ( node->flag & NODE_ACTIVE )
- UI_ThemeColorShadeAlpha(TH_TEXT_HI, 0, -40);
- else
- UI_ThemeColorShadeAlpha(TH_TEXT_HI, -20, -120);
- uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, hiddenrad);
+
+ if (node->flag & NODE_ACTIVE)
+ UI_ThemeColorShadeAlpha(TH_ACTIVE, 0, -40);
+ else
+ UI_ThemeColorShadeAlpha(TH_SELECT, 0, -40);
+ uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, hiddenrad);
+
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
}
/* title */
if (node->flag & SELECT)
- UI_ThemeColor(TH_TEXT_HI);
+ UI_ThemeColor(TH_SELECT);
else
UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.4f, 10);
@@ -807,7 +911,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
node_draw_mute_line(&ar->v2d, snode, node);
if (node->flag & SELECT)
- UI_ThemeColor(TH_TEXT_HI);
+ UI_ThemeColor(TH_SELECT);
else
UI_ThemeColor(TH_TEXT);
@@ -848,6 +952,45 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
node->block= NULL;
}
+int node_get_resize_cursor(int directions)
+{
+ if (directions==0)
+ return CURSOR_STD;
+ else if ((directions & ~(NODE_RESIZE_TOP|NODE_RESIZE_BOTTOM))==0)
+ return CURSOR_Y_MOVE;
+ else if ((directions & ~(NODE_RESIZE_RIGHT|NODE_RESIZE_LEFT))==0)
+ return CURSOR_X_MOVE;
+ else
+ return CURSOR_EDIT;
+}
+
+void node_set_cursor(wmWindow *win, SpaceNode *snode)
+{
+ bNodeTree *ntree = snode->edittree;
+ bNode *node;
+ bNodeSocket *sock;
+ int cursor = CURSOR_STD;
+
+ if (ntree) {
+ if (node_find_indicated_socket(snode, &node, &sock, SOCK_IN|SOCK_OUT)) {
+ /* pass */
+ }
+ else {
+ /* check nodes front to back */
+ for (node=ntree->nodes.last; node; node=node->prev) {
+ if (BLI_in_rctf(&node->totr, snode->mx, snode->my))
+ break; /* first hit on node stops */
+ }
+ if (node) {
+ int dir = node->typeinfo->resize_area_func(node, snode->mx, snode->my);
+ cursor = node_get_resize_cursor(dir);
+ }
+ }
+ }
+
+ WM_cursor_set(win, cursor);
+}
+
void node_draw_default(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node)
{
if (node->flag & NODE_HIDDEN)
@@ -866,7 +1009,8 @@ void node_update_nodetree(const bContext *C, bNodeTree *ntree, float offsetx, fl
{
bNode *node;
- for (node= ntree->nodes.first; node; node= node->next) {
+ /* update nodes front to back, so children sizes get updated before parents */
+ for (node= ntree->nodes.last; node; node= node->prev) {
/* XXX little hack */
node->locx += offsetx;
node->locy += offsety;
@@ -892,6 +1036,14 @@ void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeT
if (ntree==NULL) return; /* groups... */
+ /* draw background nodes, last nodes in front */
+ for (a=0, node= ntree->nodes.first; node; node=node->next, a++) {
+ if (!(node->flag & NODE_BACKGROUND))
+ continue;
+ node->nr= a; /* index of node in list, used for exec event code */
+ node_draw(C, ar, snode, ntree, node);
+ }
+
/* node lines */
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
@@ -900,8 +1052,10 @@ void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeT
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
- /* draw nodes, last nodes in front */
+ /* draw foreground nodes, last nodes in front */
for (a=0, node= ntree->nodes.first; node; node=node->next, a++) {
+ if (node->flag & NODE_BACKGROUND)
+ continue;
node->nr= a; /* index of node in list, used for exec event code */
node_draw(C, ar, snode, ntree, node);
}
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index c23f6c76650..c4ea8c4025f 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -125,7 +125,7 @@ static void compo_redrawjob(void *cjv, char *UNUSED(str))
{
CompoJob *cj= cjv;
- *(cj->do_update)= 1;
+ *(cj->do_update) = TRUE;
}
static void compo_freejob(void *cjv)
@@ -169,7 +169,7 @@ static void compo_startjob(void *cjv, short *stop, short *do_update, float *prog
CompoJob *cj= cjv;
bNodeTree *ntree= cj->localtree;
- if (cj->scene->use_nodes==0)
+ if (cj->scene->use_nodes == FALSE)
return;
cj->stop= stop;
@@ -185,8 +185,8 @@ static void compo_startjob(void *cjv, short *stop, short *do_update, float *prog
// XXX BIF_store_spare();
- ntreeCompositExecTree(ntree, &cj->scene->r, 1); /* 1 is do_previews */
-
+ ntreeCompositExecTree(ntree, &cj->scene->r, 0, 1); /* 1 is do_previews */
+
ntree->test_break= NULL;
ntree->stats_draw= NULL;
ntree->progress= NULL;
@@ -405,6 +405,10 @@ void ED_node_composit_default(Scene *sce)
}
sce->nodetree= ntreeAddTree("Compositing Nodetree", NTREE_COMPOSIT, 0);
+
+ sce->nodetree->chunksize = 256;
+ sce->nodetree->edit_quality = NTREE_QUALITY_HIGH;
+ sce->nodetree->render_quality = NTREE_QUALITY_HIGH;
ntemp.type = CMP_NODE_COMPOSITE;
out= nodeAddNode(sce->nodetree, &ntemp);
@@ -707,55 +711,13 @@ void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node)
}
}
-static int inside_rctf(rctf *bounds, rctf *rect)
-{
- return (bounds->xmin <= rect->xmin &&
- bounds->xmax >= rect->xmax &&
- bounds->ymin <= rect->ymin &&
- bounds->ymax >= rect->ymax);
-}
-
-static void node_frame_attach_nodes(bNodeTree *UNUSED(ntree), bNode *frame)
-{
- bNode *node;
-
- /* only check nodes on top of the frame for attaching */
- for (node=frame->next; node; node=node->next) {
- if (node->parent==frame) {
- /* detach nodes that went outside the frame */
- if (!inside_rctf(&frame->totr, &node->totr))
- nodeDetachNode(node);
- }
- else if (node->flag & NODE_SELECT && node->parent==NULL) {
- /* attach selected, still unparented nodes */
- if (inside_rctf(&frame->totr, &node->totr))
- nodeAttachNode(node, frame);
- }
- }
-}
-
-void ED_node_update_hierarchy(bContext *UNUSED(C), bNodeTree *ntree)
+void ED_node_post_apply_transform(bContext *UNUSED(C), bNodeTree *UNUSED(ntree))
{
- bNode *node;
-
/* XXX This does not work due to layout functions relying on node->block,
* which only exists during actual drawing. Can we rely on valid totr rects?
*/
/* make sure nodes have correct bounding boxes after transform */
-// node_update_nodetree(C, ntree, 0.0f, 0.0f);
-
- /* all selected nodes are re-parented */
- for (node=ntree->nodes.last; node; node=node->prev) {
- if (node->flag & NODE_SELECT && node->parent)
- nodeDetachNode(node);
- }
-
- /* update higher Z-level nodes first */
- for (node=ntree->nodes.last; node; node=node->prev) {
- /* XXX callback? */
- if (node->type==NODE_FRAME)
- node_frame_attach_nodes(ntree, node);
- }
+ /* node_update_nodetree(C, ntree, 0.0f, 0.0f); */
}
/* ***************** generic operator functions for nodes ***************** */
@@ -1513,36 +1475,130 @@ void NODE_OT_backimage_sample(wmOperatorType *ot)
typedef struct NodeSizeWidget {
float mxstart, mystart;
+ float oldlocx, oldlocy;
+ float oldoffsetx, oldoffsety;
float oldwidth, oldheight;
float oldminiwidth;
+ int directions;
} NodeSizeWidget;
+static void node_resize_init(bContext *C, wmOperator *op, wmEvent *UNUSED(event), bNode *node, int dir)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ NodeSizeWidget *nsw= MEM_callocN(sizeof(NodeSizeWidget), "size widget op data");
+
+ op->customdata= nsw;
+ nsw->mxstart= snode->mx;
+ nsw->mystart= snode->my;
+
+ /* store old */
+ nsw->oldlocx= node->locx;
+ nsw->oldlocy= node->locy;
+ nsw->oldoffsetx= node->offsetx;
+ nsw->oldoffsety= node->offsety;
+ nsw->oldwidth= node->width;
+ nsw->oldheight= node->height;
+ nsw->oldminiwidth= node->miniwidth;
+ nsw->directions = dir;
+
+ WM_cursor_modal(CTX_wm_window(C), node_get_resize_cursor(dir));
+ /* add modal handler */
+ WM_event_add_modal_handler(C, op);
+}
+
+static void node_resize_exit(bContext *C, wmOperator *op, int UNUSED(cancel))
+{
+ WM_cursor_restore(CTX_wm_window(C));
+
+ MEM_freeN(op->customdata);
+ op->customdata= NULL;
+}
+
static int node_resize_modal(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceNode *snode= CTX_wm_space_node(C);
ARegion *ar= CTX_wm_region(C);
bNode *node= editnode_get_active(snode->edittree);
NodeSizeWidget *nsw= op->customdata;
- float mx, my;
+ float mx, my, dx, dy;
switch (event->type) {
case MOUSEMOVE:
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
- &mx, &my);
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &mx, &my);
+ dx = mx - nsw->mxstart;
+ dy = my - nsw->mystart;
if (node) {
if (node->flag & NODE_HIDDEN) {
- node->miniwidth= nsw->oldminiwidth + mx - nsw->mxstart;
- CLAMP(node->miniwidth, 0.0f, 100.0f);
+ float widthmin = 0.0f;
+ float widthmax = 100.0f;
+ if (nsw->directions & NODE_RESIZE_RIGHT) {
+ node->miniwidth= nsw->oldminiwidth + dx;
+ CLAMP(node->miniwidth, widthmin, widthmax);
+ }
+ if (nsw->directions & NODE_RESIZE_LEFT) {
+ float locmax = nsw->oldlocx + nsw->oldminiwidth;
+
+ node->locx= nsw->oldlocx + dx;
+ CLAMP(node->locx, locmax - widthmax, locmax - widthmin);
+ node->miniwidth= locmax - node->locx;
+ }
}
else {
- node->width= nsw->oldwidth + mx - nsw->mxstart;
- CLAMP(node->width, UI_DPI_FAC*node->typeinfo->minwidth, UI_DPI_FAC*node->typeinfo->maxwidth);
+ float widthmin = UI_DPI_FAC*node->typeinfo->minwidth;
+ float widthmax = UI_DPI_FAC*node->typeinfo->maxwidth;
+ if (nsw->directions & NODE_RESIZE_RIGHT) {
+ node->width= nsw->oldwidth + dx;
+ CLAMP(node->width, widthmin, widthmax);
+ }
+ if (nsw->directions & NODE_RESIZE_LEFT) {
+ float locmax = nsw->oldlocx + nsw->oldwidth;
+
+ node->locx= nsw->oldlocx + dx;
+ CLAMP(node->locx, locmax - widthmax, locmax - widthmin);
+ node->width= locmax - node->locx;
+ }
}
+
/* height works the other way round ... */
- node->height= nsw->oldheight - my + nsw->mystart;
- CLAMP(node->height, node->typeinfo->minheight, node->typeinfo->maxheight);
+ {
+ float heightmin = UI_DPI_FAC*node->typeinfo->minheight;
+ float heightmax = UI_DPI_FAC*node->typeinfo->maxheight;
+ if (nsw->directions & NODE_RESIZE_TOP) {
+ float locmin = nsw->oldlocy - nsw->oldheight;
+
+ node->locy= nsw->oldlocy + dy;
+ CLAMP(node->locy, locmin + heightmin, locmin + heightmax);
+ node->height= node->locy - locmin;
+ }
+ if (nsw->directions & NODE_RESIZE_BOTTOM) {
+ node->height= nsw->oldheight - dy;
+ CLAMP(node->height, heightmin, heightmax);
+ }
+ }
+
+ /* XXX make callback? */
+ if (node->type == NODE_FRAME) {
+ /* keep the offset symmetric around center point */
+ if (nsw->directions & NODE_RESIZE_LEFT) {
+ node->locx = nsw->oldlocx + 0.5f*dx;
+ node->offsetx = nsw->oldoffsetx + 0.5f*dx;
+ }
+ if (nsw->directions & NODE_RESIZE_RIGHT) {
+ node->locx = nsw->oldlocx + 0.5f*dx;
+ node->offsetx = nsw->oldoffsetx - 0.5f*dx;
+ }
+ if (nsw->directions & NODE_RESIZE_TOP) {
+ node->locy = nsw->oldlocy + 0.5f*dy;
+ node->offsety = nsw->oldoffsety + 0.5f*dy;
+ }
+ if (nsw->directions & NODE_RESIZE_BOTTOM) {
+ node->locy = nsw->oldlocy + 0.5f*dy;
+ node->offsety = nsw->oldoffsety - 0.5f*dy;
+ }
+ }
}
ED_region_tag_redraw(ar);
@@ -1553,10 +1609,8 @@ static int node_resize_modal(bContext *C, wmOperator *op, wmEvent *event)
case MIDDLEMOUSE:
case RIGHTMOUSE:
- MEM_freeN(nsw);
- op->customdata= NULL;
-
- ED_node_update_hierarchy(C, snode->edittree);
+ node_resize_exit(C, op, 0);
+ ED_node_post_apply_transform(C, snode->edittree);
return OPERATOR_FINISHED;
}
@@ -1569,37 +1623,24 @@ static int node_resize_invoke(bContext *C, wmOperator *op, wmEvent *event)
SpaceNode *snode= CTX_wm_space_node(C);
ARegion *ar= CTX_wm_region(C);
bNode *node= editnode_get_active(snode->edittree);
+ int dir;
if (node) {
/* convert mouse coordinates to v2d space */
UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
- &snode->mx, &snode->my);
-
- if (node->typeinfo->resize_area_func(node, snode->mx, snode->my)) {
- NodeSizeWidget *nsw= MEM_callocN(sizeof(NodeSizeWidget), "size widget op data");
-
- op->customdata= nsw;
- nsw->mxstart= snode->mx;
- nsw->mystart= snode->my;
-
- /* store old */
- nsw->oldwidth= node->width;
- nsw->oldheight= node->height;
- nsw->oldminiwidth= node->miniwidth;
-
- /* add modal handler */
- WM_event_add_modal_handler(C, op);
-
+ &snode->mx, &snode->my);
+ dir = node->typeinfo->resize_area_func(node, snode->mx, snode->my);
+ if (dir != 0) {
+ node_resize_init(C, op, event, node, dir);
return OPERATOR_RUNNING_MODAL;
}
}
return OPERATOR_CANCELLED|OPERATOR_PASS_THROUGH;
}
-static int node_resize_cancel(bContext *UNUSED(C), wmOperator *op)
+static int node_resize_cancel(bContext *C, wmOperator *op)
{
- MEM_freeN(op->customdata);
- op->customdata= NULL;
+ node_resize_exit(C, op, 1);
return OPERATOR_CANCELLED;
}
@@ -2176,6 +2217,27 @@ bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, bNodeTemplate
/* ****************** Duplicate *********************** */
+static void node_duplicate_reparent_recursive(bNode *node)
+{
+ bNode *parent;
+
+ node->flag |= NODE_TEST;
+
+ /* find first selected parent */
+ for (parent=node->parent; parent; parent=parent->parent) {
+ if (parent->flag & SELECT) {
+ if (!(parent->flag & NODE_TEST))
+ node_duplicate_reparent_recursive(parent);
+ break;
+ }
+ }
+ /* reparent node copy to parent copy */
+ if (parent) {
+ nodeDetachNode(node->new_node);
+ nodeAttachNode(node->new_node, parent->new_node);
+ }
+}
+
static int node_duplicate_exec(bContext *C, wmOperator *op)
{
SpaceNode *snode= CTX_wm_space_node(C);
@@ -2238,6 +2300,19 @@ static int node_duplicate_exec(bContext *C, wmOperator *op)
break;
}
+ /* clear flags for recursive depth-first iteration */
+ for (node= ntree->nodes.first; node; node= node->next)
+ node->flag &= ~NODE_TEST;
+ /* reparent copied nodes */
+ for (node= ntree->nodes.first; node; node= node->next) {
+ if ((node->flag & SELECT) && !(node->flag & NODE_TEST))
+ node_duplicate_reparent_recursive(node);
+
+ /* only has to check old nodes */
+ if (node==lastnode)
+ break;
+ }
+
/* deselect old nodes, select the copies instead */
for (node= ntree->nodes.first; node; node= node->next) {
if (node->flag & SELECT) {
@@ -2362,7 +2437,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
ntreeUpdateTree(snode->edittree);
}
else {
- int do_update = 0;
+ int do_update = FALSE;
for (linkdata=nldrag->links.first; linkdata; linkdata=linkdata->next) {
link = linkdata->data;
@@ -2373,11 +2448,12 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
link->tosock= NULL;
snode->edittree->update |= NTREE_UPDATE_LINKS;
- do_update = 1;
+ do_update = TRUE;
}
}
- if (do_update)
+ if (do_update) {
ntreeUpdateTree(snode->edittree);
+ }
}
}
else {
@@ -2404,7 +2480,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
ntreeUpdateTree(snode->edittree);
}
else {
- int do_update = 0;
+ int do_update = FALSE;
for (linkdata=nldrag->links.first; linkdata; linkdata=linkdata->next) {
link = linkdata->data;
@@ -2415,11 +2491,12 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
link->fromsock= NULL;
snode->edittree->update |= NTREE_UPDATE_LINKS;
- do_update = 1;
+ do_update = TRUE;
}
}
- if (do_update)
+ if (do_update) {
ntreeUpdateTree(snode->edittree);
+ }
}
}
@@ -2444,7 +2521,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
/* when linking to group outputs, update the socket type */
/* XXX this should all be part of a generic update system */
if (!link->tonode) {
- if(link->tosock->type != link->fromsock->type)
+ if (link->tosock->type != link->fromsock->type)
nodeSocketSetType(link->tosock, link->fromsock->type);
}
}
@@ -3776,3 +3853,354 @@ void NODE_OT_output_file_move_active_socket(wmOperatorType *ot)
RNA_def_enum(ot->srna, "direction", direction_items, 2, "Direction", "");
}
+
+/* ****************** Copy Node Color ******************* */
+
+static int node_copy_color_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node, *tnode;
+
+ if (!ntree)
+ return OPERATOR_CANCELLED;
+ node = nodeGetActive(ntree);
+ if (!node)
+ return OPERATOR_CANCELLED;
+
+ for (tnode=ntree->nodes.first; tnode; tnode=tnode->next) {
+ if (tnode->flag & NODE_SELECT && tnode != node) {
+ if (node->flag & NODE_CUSTOM_COLOR) {
+ tnode->flag |= NODE_CUSTOM_COLOR;
+ copy_v3_v3(tnode->color, node->color);
+ }
+ else
+ tnode->flag &= ~NODE_CUSTOM_COLOR;
+ }
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE|ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_node_copy_color(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Copy Color";
+ ot->description = "Copy color to all selected nodes";
+ ot->idname = "NODE_OT_node_copy_color";
+
+ /* api callbacks */
+ ot->exec = node_copy_color_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ****************** Set Parent ******************* */
+
+static int node_parent_set_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *frame = nodeGetActive(ntree), *node;
+ if (!frame || frame->type != NODE_FRAME)
+ return OPERATOR_CANCELLED;
+
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (node == frame)
+ continue;
+ if (node->flag & NODE_SELECT) {
+ nodeDetachNode(node);
+ nodeAttachNode(node, frame);
+ }
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE|ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_parent_set(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Make Parent";
+ ot->description = "Attach selected nodes";
+ ot->idname = "NODE_OT_parent_set";
+
+ /* api callbacks */
+ ot->exec = node_parent_set_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ****************** Clear Parent ******************* */
+
+static int node_parent_clear_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node;
+
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (node->flag & NODE_SELECT) {
+ nodeDetachNode(node);
+ }
+ }
+
+ WM_event_add_notifier(C, NC_NODE|ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_parent_clear(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Clear Parent";
+ ot->description = "Detach selected nodes";
+ ot->idname = "NODE_OT_parent_clear";
+
+ /* api callbacks */
+ ot->exec = node_parent_clear_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ****************** Join Nodes ******************* */
+
+/* tags for depth-first search */
+#define NODE_JOIN_DONE 1
+#define NODE_JOIN_IS_DESCENDANT 2
+
+static void node_join_attach_recursive(bNode *node, bNode *frame)
+{
+ node->done |= NODE_JOIN_DONE;
+
+ if (node == frame) {
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ }
+ else if (node->parent) {
+ /* call recursively */
+ if (!(node->parent->done & NODE_JOIN_DONE))
+ node_join_attach_recursive(node->parent, frame);
+
+ /* in any case: if the parent is a descendant, so is the child */
+ if (node->parent->done & NODE_JOIN_IS_DESCENDANT)
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ else if (node->flag & NODE_TEST) {
+ /* if parent is not an decendant of the frame, reattach the node */
+ nodeDetachNode(node);
+ nodeAttachNode(node, frame);
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ }
+ }
+ else if (node->flag & NODE_TEST) {
+ nodeAttachNode(node, frame);
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ }
+}
+
+static int node_join_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node, *frame;
+ bNodeTemplate ntemp;
+
+ /* XXX save selection: node_add_node call below sets the new frame as single active+selected node */
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (node->flag & NODE_SELECT)
+ node->flag |= NODE_TEST;
+ else
+ node->flag &= ~NODE_TEST;
+ }
+
+ ntemp.main = bmain;
+ ntemp.scene = scene;
+ ntemp.type = NODE_FRAME;
+ frame = node_add_node(snode, bmain, scene, &ntemp, 0.0f, 0.0f);
+
+ /* reset tags */
+ for (node=ntree->nodes.first; node; node=node->next)
+ node->done = 0;
+
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (!(node->done & NODE_JOIN_DONE))
+ node_join_attach_recursive(node, frame);
+ }
+
+ /* restore selection */
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (node->flag & NODE_TEST)
+ node->flag |= NODE_SELECT;
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE|ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_join(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Join Nodes";
+ ot->description = "Attaches selected nodes to a new common frame";
+ ot->idname = "NODE_OT_join";
+
+ /* api callbacks */
+ ot->exec = node_join_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ****************** Attach ******************* */
+
+static int node_attach_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *frame;
+
+ /* check nodes front to back */
+ for (frame=ntree->nodes.last; frame; frame=frame->prev) {
+ /* skip selected, those are the nodes we want to attach */
+ if ((frame->type != NODE_FRAME) || (frame->flag & NODE_SELECT))
+ continue;
+ if (BLI_in_rctf(&frame->totr, snode->mx, snode->my))
+ break;
+ }
+ if (frame) {
+ bNode *node, *parent;
+ for (node=ntree->nodes.last; node; node=node->prev) {
+ if (node->flag & NODE_SELECT) {
+ if (node->parent == NULL) {
+ /* attach all unparented nodes */
+ nodeAttachNode(node, frame);
+ }
+ else {
+ /* attach nodes which share parent with the frame */
+ for (parent=frame->parent; parent; parent=parent->parent)
+ if (parent == node->parent)
+ break;
+ if (parent) {
+ nodeDetachNode(node);
+ nodeAttachNode(node, frame);
+ }
+ }
+ }
+ }
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE|ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_attach_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar= CTX_wm_region(C);
+ SpaceNode *snode= CTX_wm_space_node(C);
+
+ /* convert mouse coordinates to v2d space */
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &snode->mx, &snode->my);
+
+ return node_attach_exec(C, op);
+}
+
+void NODE_OT_attach(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Attach Nodes";
+ ot->description = "Attaches active node to a frame";
+ ot->idname = "NODE_OT_attach";
+
+ /* api callbacks */
+ ot->exec = node_attach_exec;
+ ot->invoke = node_attach_invoke;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ****************** Detach ******************* */
+
+/* tags for depth-first search */
+#define NODE_DETACH_DONE 1
+#define NODE_DETACH_IS_DESCENDANT 2
+
+static void node_detach_recursive(bNode *node)
+{
+ node->done |= NODE_DETACH_DONE;
+
+ if (node->parent) {
+ /* call recursively */
+ if (!(node->parent->done & NODE_DETACH_DONE))
+ node_detach_recursive(node->parent);
+
+ /* in any case: if the parent is a descendant, so is the child */
+ if (node->parent->done & NODE_DETACH_IS_DESCENDANT)
+ node->done |= NODE_DETACH_IS_DESCENDANT;
+ else if (node->flag & NODE_SELECT) {
+ /* if parent is not a decendant of a selected node, detach */
+ nodeDetachNode(node);
+ node->done |= NODE_DETACH_IS_DESCENDANT;
+ }
+ }
+ else if (node->flag & NODE_SELECT) {
+ node->done |= NODE_DETACH_IS_DESCENDANT;
+ }
+}
+
+/* detach the root nodes in the current selection */
+static int node_detach_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node;
+
+ /* reset tags */
+ for (node=ntree->nodes.first; node; node=node->next)
+ node->done = 0;
+ /* detach nodes recursively
+ * relative order is preserved here!
+ */
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (!(node->done & NODE_DETACH_DONE))
+ node_detach_recursive(node);
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE|ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_detach(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Detach Nodes";
+ ot->description = "Detaches selected nodes from parents";
+ ot->idname = "NODE_OT_detach";
+
+ /* api callbacks */
+ ot->exec = node_detach_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index 802c471c7aa..60177192e2a 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -40,7 +40,9 @@ struct ARegion;
struct ARegionType;
struct View2D;
struct bContext;
+struct wmWindow;
struct wmWindowManager;
+struct wmEvent;
struct bNodeTemplate;
struct bNode;
struct bNodeSocket;
@@ -67,13 +69,18 @@ ARegion *node_has_buttons_region(ScrArea *sa);
void node_menus_register(void);
/* node_draw.c */
+int node_get_colorid(struct bNode *node);
void node_socket_circle_draw(struct bNodeTree *ntree, struct bNodeSocket *sock, float size);
+int node_get_resize_cursor(int directions);
+void node_draw_shadow(struct SpaceNode *snode, struct bNode *node, float radius);
void node_draw_default(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node);
void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node);
void node_update_nodetree(const struct bContext *C, struct bNodeTree *ntree, float offsetx, float offsety);
void node_draw_nodetree(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree);
void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d);
+void node_set_cursor(struct wmWindow *win, struct SpaceNode *snode);
+
/* node_buttons.c */
void node_buttons_register(struct ARegionType *art);
void NODE_OT_properties(struct wmOperatorType *ot);
@@ -151,6 +158,7 @@ void NODE_OT_hide_toggle(struct wmOperatorType *ot);
void NODE_OT_hide_socket_toggle(struct wmOperatorType *ot);
void NODE_OT_preview_toggle(struct wmOperatorType *ot);
void NODE_OT_options_toggle(struct wmOperatorType *ot);
+void NODE_OT_node_copy_color(struct wmOperatorType *ot);
void NODE_OT_show_cyclic_dependencies(struct wmOperatorType *ot);
void NODE_OT_link_viewer(struct wmOperatorType *ot);
@@ -170,6 +178,12 @@ void NODE_OT_output_file_add_socket(struct wmOperatorType *ot);
void NODE_OT_output_file_remove_active_socket(struct wmOperatorType *ot);
void NODE_OT_output_file_move_active_socket(struct wmOperatorType *ot);
+void NODE_OT_parent_set(struct wmOperatorType *ot);
+void NODE_OT_parent_clear(struct wmOperatorType *ot);
+void NODE_OT_join(struct wmOperatorType *ot);
+void NODE_OT_attach(struct wmOperatorType *ot);
+void NODE_OT_detach(struct wmOperatorType *ot);
+
extern const char *node_context_dir[];
// XXXXXX
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index 5d586f08eb0..781a14fca59 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -68,6 +68,7 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_options_toggle);
WM_operatortype_append(NODE_OT_hide_socket_toggle);
WM_operatortype_append(NODE_OT_show_cyclic_dependencies);
+ WM_operatortype_append(NODE_OT_node_copy_color);
WM_operatortype_append(NODE_OT_duplicate);
WM_operatortype_append(NODE_OT_delete);
@@ -104,6 +105,12 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_output_file_add_socket);
WM_operatortype_append(NODE_OT_output_file_remove_active_socket);
WM_operatortype_append(NODE_OT_output_file_move_active_socket);
+
+ WM_operatortype_append(NODE_OT_parent_set);
+ WM_operatortype_append(NODE_OT_parent_clear);
+ WM_operatortype_append(NODE_OT_join);
+ WM_operatortype_append(NODE_OT_attach);
+ WM_operatortype_append(NODE_OT_detach);
}
void ED_operatormacros_node(void)
@@ -111,10 +118,32 @@ void ED_operatormacros_node(void)
wmOperatorType *ot;
wmOperatorTypeMacro *mot;
- ot = WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate", "Duplicate selected nodes and move them",
+ ot = WM_operatortype_append_macro("NODE_OT_select_link_viewer", "Link Viewer",
+ "Select node and link it to a viewer node",
+ OPTYPE_UNDO);
+ WM_operatortype_macro_define(ot, "NODE_OT_select");
+ WM_operatortype_macro_define(ot, "NODE_OT_link_viewer");
+
+ ot = WM_operatortype_append_macro("NODE_OT_translate_attach", "Move and Attach",
+ "Move nodes and attach to frame",
+ OPTYPE_UNDO|OPTYPE_REGISTER);
+ mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+ RNA_boolean_set(mot->ptr, "release_confirm", TRUE);
+ WM_operatortype_macro_define(ot, "NODE_OT_attach");
+
+ ot = WM_operatortype_append_macro("NODE_OT_detach_translate_attach", "Detach and Move",
+ "Detach nodes, move and attach to frame",
+ OPTYPE_UNDO|OPTYPE_REGISTER);
+ WM_operatortype_macro_define(ot, "NODE_OT_detach");
+ mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+ RNA_boolean_set(mot->ptr, "release_confirm", TRUE);
+ WM_operatortype_macro_define(ot, "NODE_OT_attach");
+
+ ot = WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate",
+ "Duplicate selected nodes and move them",
OPTYPE_UNDO|OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
- WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+ WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
/* modified operator call for duplicating with input links */
ot = WM_operatortype_append_macro("NODE_OT_duplicate_move_keep_inputs", "Duplicate",
@@ -122,12 +151,7 @@ void ED_operatormacros_node(void)
OPTYPE_UNDO|OPTYPE_REGISTER);
mot = WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
RNA_boolean_set(mot->ptr, "keep_inputs", TRUE);
- WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
-
- ot = WM_operatortype_append_macro("NODE_OT_select_link_viewer", "Link Viewer",
- "Select node and link it to a viewer node", OPTYPE_UNDO);
- WM_operatortype_macro_define(ot, "NODE_OT_select");
- WM_operatortype_macro_define(ot, "NODE_OT_link_viewer");
+ WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
ot = WM_operatortype_append_macro("NODE_OT_move_detach_links", "Detach", "Move a node to detach links",
OPTYPE_UNDO|OPTYPE_REGISTER);
@@ -137,8 +161,30 @@ void ED_operatormacros_node(void)
ot = WM_operatortype_append_macro("NODE_OT_move_detach_links_release", "Detach", "Move a node to detach links",
OPTYPE_UNDO|OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_links_detach");
- mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
- RNA_boolean_set(mot->ptr, "release_confirm", TRUE);
+ mot = WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
+}
+
+/* helper function for repetitive select operator keymap */
+static void node_select_keymap(wmKeyMap *keymap, int extend)
+{
+ /* modifier combinations */
+ const int mod_single[] = { 0, KM_CTRL, KM_ALT, KM_CTRL|KM_ALT,
+ -1 /* terminator */
+ };
+ const int mod_extend[] = { KM_SHIFT, KM_SHIFT|KM_CTRL,
+ KM_SHIFT|KM_ALT, KM_SHIFT|KM_CTRL|KM_ALT,
+ -1 /* terminator */
+ };
+ const int *mod = (extend ? mod_extend : mod_single);
+ wmKeyMapItem *kmi;
+ int i;
+
+ for (i=0; mod[i] >= 0; ++i) {
+ kmi = WM_keymap_add_item(keymap, "NODE_OT_select", ACTIONMOUSE, KM_PRESS, mod[i], 0);
+ RNA_boolean_set(kmi->ptr, "extend", extend);
+ kmi = WM_keymap_add_item(keymap, "NODE_OT_select", SELECTMOUSE, KM_PRESS, mod[i], 0);
+ RNA_boolean_set(kmi->ptr, "extend", extend);
+ }
}
void node_keymap(struct wmKeyConfig *keyconf)
@@ -157,15 +203,12 @@ void node_keymap(struct wmKeyConfig *keyconf)
/* mouse select in nodes used to be both keys, but perhaps this should be reduced?
* NOTE: mouse-clicks on left-mouse will fall through to allow transform-tweak, but also link/resize
* NOTE 2: socket select is part of the node select operator, to handle overlapping cases
+ * NOTE 3: select op is registered for various combinations of modifier key, so the specialized
+ * grab operators (unlink, attach, etc.) can work easily on single nodes.
*/
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select", ACTIONMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", FALSE);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", FALSE);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", TRUE);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", TRUE);
+ node_select_keymap(keymap, FALSE);
+ node_select_keymap(keymap, TRUE);
+
kmi = WM_keymap_add_item(keymap, "NODE_OT_select_border", EVT_TWEAK_S, KM_ANY, 0, 0);
RNA_boolean_set(kmi->ptr, "tweak", TRUE);
@@ -195,6 +238,10 @@ void node_keymap(struct wmKeyConfig *keyconf)
/* modified operator call for duplicating with input links */
WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_join", JKEY, KM_PRESS, KM_CTRL, 0);
+
WM_keymap_add_item(keymap, "NODE_OT_hide_toggle", HKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_mute_toggle", MKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_preview_toggle", HKEY, KM_PRESS, KM_SHIFT, 0);
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index a540f18b3a5..9098c8a4255 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -70,109 +70,6 @@ static bNode *node_under_mouse(bNodeTree *ntree, int mx, int my)
return NULL;
}
-static int compare_nodes(bNode *a, bNode *b)
-{
- bNode *parent;
- /* These tell if either the node or any of the parent nodes is selected.
- * A selected parent means an unselected node is also in foreground!
- */
- int a_select=(a->flag & NODE_SELECT), b_select=(b->flag & NODE_SELECT);
- int a_active=(a->flag & NODE_ACTIVE), b_active=(b->flag & NODE_ACTIVE);
-
- /* if one is an ancestor of the other */
- /* XXX there might be a better sorting algorithm for stable topological sort, this is O(n^2) worst case */
- for (parent = a->parent; parent; parent=parent->parent) {
- /* if b is an ancestor, it is always behind a */
- if (parent==b)
- return 1;
- /* any selected ancestor moves the node forward */
- if (parent->flag & NODE_ACTIVE)
- a_active = 1;
- if (parent->flag & NODE_SELECT)
- a_select = 1;
- }
- for (parent = b->parent; parent; parent=parent->parent) {
- /* if a is an ancestor, it is always behind b */
- if (parent==a)
- return 0;
- /* any selected ancestor moves the node forward */
- if (parent->flag & NODE_ACTIVE)
- b_active = 1;
- if (parent->flag & NODE_SELECT)
- b_select = 1;
- }
-
- /* if one of the nodes is in the background and the other not */
- if ((a->flag & NODE_BACKGROUND) && !(b->flag & NODE_BACKGROUND))
- return 0;
- else if (!(a->flag & NODE_BACKGROUND) && (b->flag & NODE_BACKGROUND))
- return 1;
-
- /* if one has a higher selection state (active > selected > nothing) */
- if (!b_active && a_active)
- return 1;
- else if (!b_select && (a_active || a_select))
- return 1;
-
- return 0;
-}
-
-/* Sorts nodes by selection: unselected nodes first, then selected,
- * then the active node at the very end. Relative order is kept intact!
- */
-static void node_sort(bNodeTree *ntree)
-{
- /* merge sort is the algorithm of choice here */
- bNode *first_a, *first_b, *node_a, *node_b, *tmp;
- int totnodes= BLI_countlist(&ntree->nodes);
- int k, a, b;
-
- k = 1;
- while (k < totnodes) {
- first_a = first_b = ntree->nodes.first;
-
- do {
- /* setup first_b pointer */
- for (b=0; b < k && first_b; ++b) {
- first_b = first_b->next;
- }
- /* all batches merged? */
- if (first_b==NULL)
- break;
-
- /* merge batches */
- node_a = first_a;
- node_b = first_b;
- a = b = 0;
- while (a < k && b < k && node_b) {
- if (compare_nodes(node_a, node_b)==0) {
- node_a = node_a->next;
- ++a;
- }
- else {
- tmp = node_b;
- node_b = node_b->next;
- ++b;
- BLI_remlink(&ntree->nodes, tmp);
- BLI_insertlinkbefore(&ntree->nodes, node_a, tmp);
- }
- }
-
- /* setup first pointers for next batch */
- first_b = node_b;
- for (; b < k; ++b) {
- /* all nodes sorted? */
- if (first_b==NULL)
- break;
- first_b = first_b->next;
- }
- first_a = first_b;
- } while (first_b);
-
- k = k << 1;
- }
-}
-
void node_select(bNode *node)
{
node->flag |= SELECT;
@@ -407,7 +304,7 @@ void node_select_single(bContext *C, bNode *node)
ED_node_set_active(bmain, snode->edittree, node);
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
}
@@ -479,7 +376,7 @@ static int node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const i
/* update node order */
if (selected)
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
return selected;
}
@@ -573,7 +470,7 @@ static int node_borderselect_exec(bContext *C, wmOperator *op)
}
}
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
@@ -645,7 +542,7 @@ static int node_select_all_exec(bContext *C, wmOperator *UNUSED(op))
node_select(node);
}
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
@@ -687,7 +584,7 @@ static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op))
node_select(node);
}
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
@@ -729,7 +626,7 @@ static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op))
node_select(node);
}
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
@@ -758,7 +655,7 @@ static int node_select_same_type_exec(bContext *C, wmOperator *UNUSED(op))
node_select_same_type(snode);
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
@@ -787,7 +684,7 @@ static int node_select_same_type_next_exec(bContext *C, wmOperator *UNUSED(op))
node_select_same_type_np(snode, 0);
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
@@ -815,7 +712,7 @@ static int node_select_same_type_prev_exec(bContext *C, wmOperator *UNUSED(op))
node_select_same_type_np(snode, 1);
- node_sort(snode->edittree);
+ ED_node_sort(snode->edittree);
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c
index 785eafeb7c9..bd79b9dde00 100644
--- a/source/blender/editors/space_node/node_templates.c
+++ b/source/blender/editors/space_node/node_templates.c
@@ -291,7 +291,7 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR])
if (node->id)
BLI_strncpy(node_name, node->id->name+2, UI_MAX_NAME_STR);
else
- BLI_strncpy(node_name, "Group", UI_MAX_NAME_STR);
+ BLI_strncpy(node_name, N_("Group"), UI_MAX_NAME_STR);
}
else
BLI_strncpy(node_name, node->typeinfo->name, UI_MAX_NAME_STR);
@@ -300,16 +300,16 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR])
node->outputs.first != node->outputs.last &&
!(node->typeinfo->flag & NODE_OPTIONS))
{
- BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", node_name, sock->link->fromsock->name);
+ BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", IFACE_(node_name), IFACE_(sock->link->fromsock->name));
}
else {
- BLI_strncpy(name, node_name, UI_MAX_NAME_STR);
+ BLI_strncpy(name, IFACE_(node_name), UI_MAX_NAME_STR);
}
}
else if (sock->type == SOCK_SHADER)
- BLI_strncpy(name, "None", UI_MAX_NAME_STR);
+ BLI_strncpy(name, IFACE_("None"), UI_MAX_NAME_STR);
else
- BLI_strncpy(name, "Default", UI_MAX_NAME_STR);
+ BLI_strncpy(name, IFACE_("Default"), UI_MAX_NAME_STR);
}
static int ui_compatible_sockets(int typeA, int typeB)
@@ -360,7 +360,7 @@ static void ui_node_menu_column(NodeLinkArg *arg, int nclass, const char *cname)
column= uiLayoutColumn(layout, 0);
uiBlockSetCurLayout(block, column);
- uiItemL(column, cname, ICON_NODE);
+ uiItemL(column, IFACE_(cname), ICON_NODE);
but= block->buttons.last;
but->flag= UI_TEXT_LEFT;
@@ -381,7 +381,7 @@ static void ui_node_menu_column(NodeLinkArg *arg, int nclass, const char *cname)
BLI_strncpy(name, ngroup->id.name+2, UI_MAX_NAME_STR);
but = uiDefBut(block, BUT, 0, ngroup->id.name+2, 0, 0, UI_UNIT_X*4, UI_UNIT_Y,
- NULL, 0.0, 0.0, 0.0, 0.0, "Add node to input");
+ NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Add node to input"));
argN = MEM_dupallocN(arg);
argN->type = NODE_GROUP;
@@ -417,7 +417,7 @@ static void ui_node_menu_column(NodeLinkArg *arg, int nclass, const char *cname)
column= uiLayoutColumn(layout, 0);
uiBlockSetCurLayout(block, column);
- uiItemL(column, cname, ICON_NODE);
+ uiItemL(column, IFACE_(cname), ICON_NODE);
but= block->buttons.last;
but->flag= UI_TEXT_LEFT;
@@ -426,19 +426,19 @@ static void ui_node_menu_column(NodeLinkArg *arg, int nclass, const char *cname)
if (num > 1) {
if (j == 0) {
- uiItemL(column, ntype->name, ICON_NODE);
+ uiItemL(column, IFACE_(ntype->name), ICON_NODE);
but= block->buttons.last;
but->flag= UI_TEXT_LEFT;
}
- BLI_snprintf(name, UI_MAX_NAME_STR, " %s", stemp->name);
+ BLI_snprintf(name, UI_MAX_NAME_STR, " %s", IFACE_(stemp->name));
j++;
}
else
- BLI_strncpy(name, ntype->name, UI_MAX_NAME_STR);
+ BLI_strncpy(name, IFACE_(ntype->name), UI_MAX_NAME_STR);
but = uiDefBut(block, BUT, 0, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y,
- NULL, 0.0, 0.0, 0.0, 0.0, "Add node to input");
+ NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Add node to input"));
argN = MEM_dupallocN(arg);
argN->type = ntype->type;
@@ -486,16 +486,16 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_
but= block->buttons.last;
but->flag= UI_TEXT_LEFT;
- but = uiDefBut(block, BUT, 0, "Remove", 0, 0, UI_UNIT_X*4, UI_UNIT_Y,
- NULL, 0.0, 0.0, 0.0, 0.0, "Remove nodes connected to the input");
+ but = uiDefBut(block, BUT, 0, IFACE_("Remove"), 0, 0, UI_UNIT_X*4, UI_UNIT_Y,
+ NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Remove nodes connected to the input"));
uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_REMOVE));
- but = uiDefBut(block, BUT, 0, "Disconnect", 0, 0, UI_UNIT_X*4, UI_UNIT_Y,
- NULL, 0.0, 0.0, 0.0, 0.0, "Disconnect nodes connected to the input");
+ but = uiDefBut(block, BUT, 0, IFACE_("Disconnect"), 0, 0, UI_UNIT_X*4, UI_UNIT_Y,
+ NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Disconnect nodes connected to the input"));
uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_DISCONNECT));
}
- ui_node_menu_column(arg, NODE_CLASS_GROUP, IFACE_("Group"));
+ ui_node_menu_column(arg, NODE_CLASS_GROUP, N_("Group"));
}
void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSocket *sock)
@@ -586,7 +586,7 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree,
/* indented label */
memset(label, ' ', indent);
label[indent] = '\0';
- BLI_snprintf(label, UI_MAX_NAME_STR, "%s%s:", label, input->name);
+ BLI_snprintf(label, UI_MAX_NAME_STR, "%s%s:", label, IFACE_(input->name));
/* split in label and value */
split = uiLayoutSplit(layout, 0.35f, 0);
@@ -615,7 +615,7 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree,
if (dependency_loop) {
row = uiLayoutRow(split, 0);
- uiItemL(row, "Dependency Loop", ICON_ERROR);
+ uiItemL(row, IFACE_("Dependency Loop"), ICON_ERROR);
}
else if (lnode) {
/* input linked to a node */
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 119b350052e..e29f9647a7b 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -346,6 +346,17 @@ static void node_buttons_area_draw(const bContext *C, ARegion *ar)
ED_region_panels(C, ar, 1, NULL, -1);
}
+static void node_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
+{
+ SpaceNode *snode= sa->spacedata.first;
+
+ /* convert mouse coordinates to v2d space */
+ UI_view2d_region_to_view(&ar->v2d, win->eventstate->x - ar->winrct.xmin, win->eventstate->y - ar->winrct.ymin,
+ &snode->mx, &snode->my);
+
+ node_set_cursor(win, snode);
+}
+
/* Initialize main area, setting handlers. */
static void node_main_area_init(wmWindowManager *wm, ARegion *ar)
{
@@ -529,6 +540,8 @@ void ED_spacetype_node(void)
art->init= node_main_area_init;
art->draw= node_main_area_draw;
art->listener= node_region_listener;
+ art->cursor = node_cursor;
+ art->event_cursor = TRUE;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_GPENCIL;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index 7813bbcd9a6..fddd7af93f1 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -932,7 +932,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
{
Object *ob = (Object *)tselem->id;
ModifierData *md = BLI_findlink(&ob->modifiers, tselem->nr);
- switch (md->type) {
+ switch ((ModifierType)md->type) {
case eModifierType_Subsurf:
UI_icon_draw(x, y, ICON_MOD_SUBSURF); break;
case eModifierType_Armature:
@@ -986,6 +986,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
case eModifierType_Explode:
UI_icon_draw(x, y, ICON_MOD_EXPLODE); break;
case eModifierType_Collision:
+ case eModifierType_Surface:
UI_icon_draw(x, y, ICON_MOD_PHYSICS); break;
case eModifierType_Fluidsim:
UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break;
@@ -1009,7 +1010,13 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
UI_icon_draw(x, y, ICON_MOD_OCEAN); break;
case eModifierType_Warp:
UI_icon_draw(x, y, ICON_MOD_WARP); break;
- default:
+ case eModifierType_Skin:
+ UI_icon_draw(x, y, ICON_MOD_SKIN); break;
+
+ /* Default */
+ case eModifierType_None:
+ case eModifierType_ShapeKey:
+ case NUM_MODIFIER_TYPES:
UI_icon_draw(x, y, ICON_DOT); break;
}
break;
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index 2c3924e5407..97bfe1bafc2 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -89,6 +89,8 @@
static void sequencer_generic_props__internal(wmOperatorType *ot, int flag)
{
+ PropertyRNA *prop;
+
if (flag & SEQPROP_STARTFRAME)
RNA_def_int(ot->srna, "frame_start", 0, INT_MIN, INT_MAX, "Start Frame", "Start frame of the sequence strip", INT_MIN, INT_MAX);
@@ -99,7 +101,9 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag)
RNA_def_boolean(ot->srna, "replace_sel", 1, "Replace Selection", "Replace the current selection");
- RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips");
+ /* only for python scripts which import strips and place them after */
+ prop = RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
}
static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op, const char *identifier)
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 49fadf300e2..392e7793a0f 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -367,7 +367,8 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short dire
/* draw! */
if (seq->type < SEQ_EFFECT ||
- get_sequence_effect_num_inputs(seq->type) == 0) {
+ get_sequence_effect_num_inputs(seq->type) == 0)
+ {
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 1590d08b4a1..2543b49a48d 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -840,7 +840,7 @@ static int insert_gap(Scene *scene, int gap, int cfra)
{
Sequence *seq;
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- int done = 0;
+ int done = FALSE;
/* all strips >= cfra are shifted */
@@ -851,7 +851,7 @@ static int insert_gap(Scene *scene, int gap, int cfra)
if (seq->startdisp >= cfra) {
seq->start += gap;
calc_sequence(scene, seq);
- done = 1;
+ done = TRUE;
}
}
SEQ_END
@@ -971,7 +971,7 @@ static void UNUSED_FUNCTION(no_gaps) (Scene * scene)
if (evaluate_seq_frame(scene, cfra) ) first = 1;
}
else {
- done = 1;
+ done = TRUE;
while (evaluate_seq_frame(scene, cfra) == 0) {
done = insert_gap(scene, -1, cfra);
if (done == 0) break;
@@ -1365,8 +1365,8 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
/* see reassigning would create a cycle */
if (seq_is_predecessor(seq1, last_seq) ||
seq_is_predecessor(seq2, last_seq) ||
- seq_is_predecessor(seq3, last_seq)
- ) {
+ seq_is_predecessor(seq3, last_seq))
+ {
BKE_report(op->reports, RPT_ERROR, "Can't reassign inputs: no cycles allowed");
return OPERATOR_CANCELLED;
}
@@ -2109,8 +2109,8 @@ static int sequencer_view_all_preview_exec(bContext *C, wmOperator *UNUSED(op))
imgwidth = (int)(imgwidth * (scene->r.xasp / scene->r.yasp));
if (((imgwidth >= width) || (imgheight >= height)) &&
- ((width > 0) && (height > 0))) {
-
+ ((width > 0) && (height > 0)))
+ {
/* Find the zoom value that will fit the image in the image space */
zoomX = ((float)width) / ((float)imgwidth);
zoomY = ((float)height) / ((float)imgheight);
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index a59570a09e1..811a89b07a8 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -1100,7 +1100,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq)
actseq->tmp = SET_INT_IN_POINTER(TRUE);
- for (seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) {
+ for (seq_begin(ed, &iter, TRUE); iter.valid; seq_next(&iter)) {
seq = iter.seq;
/* Ignore all seqs already selected! */
@@ -1129,7 +1129,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq)
/* Unfortunately, we must restart checks from the beginning. */
seq_end(&iter);
- seq_begin(ed, &iter, 1);
+ seq_begin(ed, &iter, TRUE);
}
/* Video strips bellow active one, or any strip for audio (order do no matters here!). */
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index ffb686b6810..463a262c09c 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -1174,7 +1174,7 @@ static void calc_text_rcts(SpaceText *st, ARegion *ar, rcti *scroll, rcti *back)
/* push hl start down */
hlstart = barstart + barheight;
}
- else if (lhlend > st->top && lhlstart < st->top && hlstart > barstart) {
+ else if (lhlend > st->top && lhlstart < st->top && hlstart > barstart) {
/*fill out start */
hlstart = barstart;
}
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index 04408173928..3ebc4eb974c 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -2888,7 +2888,7 @@ static int text_insert_exec(bContext *C, wmOperator *op)
SpaceText *st = CTX_wm_space_text(C);
Text *text = CTX_data_edit_text(C);
char *str;
- int done = 0;
+ int done = FALSE;
size_t i = 0;
unsigned int code;
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index 9e44d5207c0..01d27aaa0b3 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -354,7 +354,7 @@ static void time_draw_keyframes(const bContext *C, SpaceTime *stime, ARegion *ar
time_draw_idblock_keyframes(v2d, (ID *)ob, onlysel);
}
else {
- short active_done = 0;
+ short active_done = FALSE;
/* draw keyframes from all selected objects */
CTX_DATA_BEGIN (C, Object *, obsel, selected_objects)
@@ -364,7 +364,7 @@ static void time_draw_keyframes(const bContext *C, SpaceTime *stime, ARegion *ar
/* if this object is the active one, set flag so that we don't draw again */
if (obsel == ob)
- active_done = 1;
+ active_done = TRUE;
}
CTX_DATA_END;
diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c
index 6c683eba085..248f73b9ab6 100644
--- a/source/blender/editors/space_userpref/space_userpref.c
+++ b/source/blender/editors/space_userpref/space_userpref.c
@@ -149,7 +149,7 @@ static void userpref_header_listener(ARegion *UNUSED(ar), wmNotifier *UNUSED(wmn
default:
break;
}
-#endif
+#endif
}
/* only called once, from space/spacetypes.c */
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c
index 2211b1ddb62..6a070070379 100644
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@ -1667,7 +1667,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
GLfloat tmp;
float smat[4][4], imat[4][4], bmat[4][4];
int index = -1;
- short do_dashed = 3, draw_wire = 0;
+ short do_dashed = 3, draw_wire = FALSE;
int flag;
/* being set below */
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index b5c44fd1a8c..de1d9f22667 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -233,7 +233,7 @@ static Material *give_current_material_or_def(Object *ob, int matnr)
static struct TextureDrawState {
Object *ob;
- int islit, istex;
+ int is_lit, is_tex;
int color_profile;
unsigned char obcol[4];
} Gtexdraw = {NULL, 0, 0, 0, {0, 0, 0, 0}};
@@ -263,12 +263,12 @@ static int set_draw_settings_cached(int clearcache, MTFace *texface, Material *m
c_has_texface = -1;
}
else {
- textured = gtexdraw.istex;
+ textured = gtexdraw.is_tex;
litob = gtexdraw.ob;
}
/* convert number of lights into boolean */
- if (gtexdraw.islit) lit = 1;
+ if (gtexdraw.is_lit) lit = 1;
if (ma) {
alphablend = ma->game.alpha_blend;
@@ -343,7 +343,7 @@ static int set_draw_settings_cached(int clearcache, MTFace *texface, Material *m
static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob)
{
unsigned char obcol[4];
- int istex, solidtex;
+ int is_tex, solidtex;
// XXX scene->obedit warning
@@ -351,27 +351,27 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O
* with face selection in weight paint is not lit. */
if ((v3d->drawtype <= OB_WIRE) && (ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT))) {
solidtex = FALSE;
- Gtexdraw.islit = 0;
+ Gtexdraw.is_lit = 0;
}
else if (v3d->drawtype == OB_SOLID || ((ob->mode & OB_MODE_EDIT) && v3d->drawtype != OB_TEXTURE)) {
/* draw with default lights in solid draw mode and edit mode */
solidtex = TRUE;
- Gtexdraw.islit = -1;
+ Gtexdraw.is_lit = -1;
}
else {
/* draw with lights in the scene otherwise */
solidtex = FALSE;
- Gtexdraw.islit = GPU_scene_object_lights(scene, ob, v3d->lay, rv3d->viewmat, !rv3d->is_persp);
+ Gtexdraw.is_lit = GPU_scene_object_lights(scene, ob, v3d->lay, rv3d->viewmat, !rv3d->is_persp);
}
rgba_float_to_uchar(obcol, ob->col);
glCullFace(GL_BACK); glEnable(GL_CULL_FACE);
- if (solidtex || v3d->drawtype == OB_TEXTURE) istex = 1;
- else istex = 0;
+ if (solidtex || v3d->drawtype == OB_TEXTURE) is_tex = 1;
+ else is_tex = 0;
Gtexdraw.ob = ob;
- Gtexdraw.istex = istex;
+ Gtexdraw.is_tex = is_tex;
Gtexdraw.color_profile = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
memcpy(Gtexdraw.obcol, obcol, sizeof(obcol));
set_draw_settings_cached(1, NULL, NULL, Gtexdraw);
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 00622f368f0..9633917344f 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -143,6 +143,17 @@ typedef struct drawDMVerts_userData {
int sel;
BMVert *eve_act;
+
+ /* cached theme values */
+ unsigned char th_editmesh_active[4];
+ unsigned char th_vertex_select[4];
+ unsigned char th_vertex[4];
+ unsigned char th_skin_root[4];
+ float th_vertex_size;
+
+ /* for skin node drawing */
+ int has_vskin;
+ float imat[4][4];
} drawDMVerts_userData;
typedef struct drawDMEdgesSel_userData {
@@ -1967,7 +1978,7 @@ static void drawlattice(Scene *scene, View3D *v3d, Object *ob)
Lattice *lt = ob->data;
DispList *dl;
int u, v, w;
- int use_wcol = 0, is_edit = (lt->editlatt != NULL);
+ int use_wcol = FALSE, is_edit = (lt->editlatt != NULL);
/* now we default make displist, this will modifiers work for non animated case */
if (ob->disp.first == NULL)
@@ -2400,20 +2411,37 @@ static void draw_dm_verts__mapFunc(void *userData, int index, const float co[3],
BMVert *eve = EDBM_vert_at_index(data->em, index);
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN) && BM_elem_flag_test(eve, BM_ELEM_SELECT) == data->sel) {
+ /* skin nodes: draw a red circle around the root
+ * node(s) */
+ if (data->has_vskin) {
+ const MVertSkin *vs = CustomData_bmesh_get(&data->em->bm->vdata,
+ eve->head.data,
+ CD_MVERT_SKIN);
+ if (vs->flag & MVERT_SKIN_ROOT) {
+ float radius = (vs->radius[0] + vs->radius[1]) * 0.5f;
+ bglEnd();
+
+ glColor4ubv(data->th_skin_root);
+ drawcircball(GL_LINES, co, radius, data->imat);
+
+ glColor4ubv(data->sel ? data->th_vertex_select : data->th_vertex);
+ bglBegin(GL_POINTS);
+ }
+ }
+
/* draw active larger - need to stop/start point drawing for this :/ */
if (eve == data->eve_act) {
- float size = UI_GetThemeValuef(TH_VERTEX_SIZE);
- UI_ThemeColor4(TH_EDITMESH_ACTIVE);
+ glColor4ubv(data->th_editmesh_active);
bglEnd();
- glPointSize(size);
+ glPointSize(data->th_vertex_size);
bglBegin(GL_POINTS);
bglVertex3fv(co);
bglEnd();
-
- UI_ThemeColor4(data->sel ? TH_VERTEX_SELECT : TH_VERTEX);
- glPointSize(size);
+
+ glColor4ubv(data->sel ? data->th_vertex_select : data->th_vertex);
+ glPointSize(data->th_vertex_size);
bglBegin(GL_POINTS);
}
else {
@@ -2422,13 +2450,27 @@ static void draw_dm_verts__mapFunc(void *userData, int index, const float co[3],
}
}
-static void draw_dm_verts(BMEditMesh *em, DerivedMesh *dm, int sel, BMVert *eve_act)
+static void draw_dm_verts(BMEditMesh *em, DerivedMesh *dm, int sel, BMVert *eve_act,
+ RegionView3D *rv3d)
{
drawDMVerts_userData data;
data.sel = sel;
data.eve_act = eve_act;
data.em = em;
+ /* Cache theme values */
+ UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, data.th_editmesh_active);
+ UI_GetThemeColor4ubv(TH_VERTEX_SELECT, data.th_vertex_select);
+ UI_GetThemeColor4ubv(TH_VERTEX, data.th_vertex);
+ UI_GetThemeColor4ubv(TH_SKIN_ROOT, data.th_skin_root);
+ data.th_vertex_size = UI_GetThemeValuef(TH_VERTEX_SIZE);
+
+ /* For skin root drawing */
+ data.has_vskin = CustomData_has_layer(&em->bm->vdata, CD_MVERT_SKIN);
+ /* view-aligned matrix */
+ mult_m4_m4m4(data.imat, rv3d->viewmat, em->ob->obmat);
+ invert_m4(data.imat);
+
bglBegin(GL_POINTS);
dm->foreachMappedVert(dm, draw_dm_verts__mapFunc, &data);
bglEnd();
@@ -2711,7 +2753,8 @@ static void draw_dm_bweights(BMEditMesh *em, Scene *scene, DerivedMesh *dm)
/* EditMesh drawing routines*/
static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit,
- BMEditMesh *em, DerivedMesh *cageDM, BMVert *eve_act)
+ BMEditMesh *em, DerivedMesh *cageDM, BMVert *eve_act,
+ RegionView3D *rv3d)
{
ToolSettings *ts = scene->toolsettings;
int sel;
@@ -2750,7 +2793,7 @@ static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit,
if (ts->selectmode & SCE_SELECT_VERTEX) {
glPointSize(size);
glColor4ubv(col);
- draw_dm_verts(em, cageDM, sel, eve_act);
+ draw_dm_verts(em, cageDM, sel, eve_act, rv3d);
}
if (check_ob_drawface_dot(scene, v3d, obedit->dt)) {
@@ -2951,6 +2994,7 @@ static void draw_em_measure_stats(View3D *v3d, Object *ob, BMEditMesh *em, UnitS
if (me->drawflag & ME_DRAWEXTRA_FACEANG) {
BMFace *efa;
+ int is_rad = unit->system_rotation == USER_UNIT_ROT_RADIANS;
UI_GetThemeColor3ubv(TH_DRAWEXTRA_FACEANG, col);
@@ -2961,37 +3005,41 @@ static void draw_em_measure_stats(View3D *v3d, Object *ob, BMEditMesh *em, UnitS
if (is_face_sel || do_moving) {
BMIter liter;
BMLoop *loop;
- int cent_ok = FALSE;
+ int is_first = TRUE;
- BM_ITER_ELEM(loop, &liter, efa, BM_LOOPS_OF_FACE) {
+ BM_ITER_ELEM (loop, &liter, efa, BM_LOOPS_OF_FACE) {
if (is_face_sel || (do_moving && BM_elem_flag_test(loop->v, BM_ELEM_SELECT))) {
- /* yes, we should avoid triple matrix multiply every vertex for 'global' */
float angle;
/* lazy init center calc */
- if (cent_ok == FALSE) {
+ if (is_first) {
BM_face_calc_center_bounds(efa, vmid);
- cent_ok = TRUE;
+ /* Avoid triple matrix multiply every vertex for 'global' */
+ if (do_global) {
+ copy_v3_v3(v1, loop->prev->v->co);
+ copy_v3_v3(v2, loop->v->co);
+ mul_mat3_m4_v3(ob->obmat, v1);
+ mul_mat3_m4_v3(ob->obmat, v2);
+ }
+ is_first = FALSE;
}
if (do_global) {
- copy_v3_v3(v1, loop->prev->v->co);
- copy_v3_v3(v2, loop->v->co);
copy_v3_v3(v3, loop->next->v->co);
- mul_mat3_m4_v3(ob->obmat, v1);
- mul_mat3_m4_v3(ob->obmat, v2);
mul_mat3_m4_v3(ob->obmat, v3);
angle = angle_v3v3v3(v1, v2, v3);
interp_v3_v3v3(fvec, vmid, v2, 0.8f);
+ copy_v3_v3(v1, v2);
+ copy_v3_v3(v2, v3);
}
else {
angle = angle_v3v3v3(loop->prev->v->co, loop->v->co, loop->next->v->co);
interp_v3_v3v3(fvec, vmid, loop->v->co, 0.8f);
}
- BLI_snprintf(numstr, sizeof(numstr), "%.3f", RAD2DEGF(angle));
+ BLI_snprintf(numstr, sizeof(numstr), "%.3f", is_rad ? angle : RAD2DEGF(angle));
view3d_cached_text_draw_add(fvec, numstr, 0, txt_flag, col);
}
}
@@ -3223,7 +3271,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
draw_em_fancy_edges(em, scene, v3d, me, cageDM, 0, eed_act);
}
if (em) {
- draw_em_fancy_verts(scene, v3d, ob, em, cageDM, eve_act);
+ draw_em_fancy_verts(scene, v3d, ob, em, cageDM, eve_act, rv3d);
if (me->drawflag & ME_DRAWNORMALS) {
UI_ThemeColor(TH_NORMAL);
@@ -3241,7 +3289,8 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
}
if ((G.debug & G_DEBUG) && (me->drawflag & ME_DRAWEXTRA_INDICES) &&
- !(v3d->flag2 & V3D_RENDER_OVERRIDE)) {
+ !(v3d->flag2 & V3D_RENDER_OVERRIDE))
+ {
draw_em_indices(em);
}
}
@@ -3543,7 +3592,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
Object *obedit = scene->obedit;
Mesh *me = ob->data;
BMEditMesh *em = me->edit_btmesh;
- int do_alpha_after = 0, drawlinked = 0, retval = 0, glsl, check_alpha, i;
+ int do_alpha_after = FALSE, drawlinked = 0, retval = 0, glsl, check_alpha, i;
/* If we are drawing shadows and any of the materials don't cast a shadow,
* then don't draw the object */
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index fe142ced7fa..bec07d81b84 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -160,7 +160,11 @@ static void view3d_draw_clipping(RegionView3D *rv3d)
{1, 5, 6, 2},
{7, 4, 0, 3}};
- UI_ThemeColorShade(TH_BACK, -8);
+ /* fill in zero alpha for rendering & re-projection [#31530] */
+ unsigned char col[4];
+ UI_GetThemeColorShade3ubv(TH_BACK, -8, col);
+ col[3] = 0;
+ glColor4ubv(col);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, bb->vec);
@@ -1296,7 +1300,8 @@ static void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
/* do nothing */
}
else if (scene->obedit && v3d->drawtype > OB_WIRE &&
- (v3d->flag & V3D_ZBUF_SELECT)) {
+ (v3d->flag & V3D_ZBUF_SELECT))
+ {
/* do nothing */
}
else {
@@ -1848,7 +1853,7 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
/* generate displist, test for new object */
if (dob_prev && dob_prev->ob != dob->ob) {
- if (use_displist == 1)
+ if (use_displist == TRUE)
glDeleteLists(displist, 1);
use_displist = -1;
@@ -1870,7 +1875,7 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
!(bb_tmp = BKE_object_boundbox_get(dob->ob)))
{
// printf("draw_dupli_objects_color: skipping displist for %s\n", dob->ob->id.name+2);
- use_displist = 0;
+ use_displist = FALSE;
}
else {
// printf("draw_dupli_objects_color: using displist for %s\n", dob->ob->id.name+2);
@@ -1886,7 +1891,7 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
draw_object(scene, ar, v3d, &tbase, DRAW_CONSTCOLOR);
glEndList();
- use_displist = 1;
+ use_displist = TRUE;
BKE_object_boundbox_flag(dob->ob, OB_BB_DISABLED, 0);
}
}
@@ -2330,6 +2335,9 @@ CustomDataMask ED_view3d_object_datamask(Scene *scene)
if (ob->mode & OB_MODE_WEIGHT_PAINT) {
mask |= CD_MASK_PREVIEW_MCOL;
}
+
+ if (ob->mode & OB_MODE_EDIT)
+ mask |= CD_MASK_MVERT_SKIN;
}
return mask;
@@ -2434,7 +2442,9 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar,
ar->winrct.ymin = 0;
ar->winrct.xmax = winx;
ar->winrct.ymax = winy;
-
+
+ /* set theme */
+ UI_SetTheme(SPACE_VIEW3D, RGN_TYPE_WINDOW);
/* set flags */
G.f |= G_RENDER_OGL;
@@ -2732,8 +2742,8 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar)
}
#endif
- /* is this more then half a frame behind? */
- if (fps + 0.5f < (float)(FPS)) {
+ /* is this more then half a frame behind? */
+ if (fps + 0.5f < (float)(FPS)) {
UI_ThemeColor(TH_REDALERT);
BLI_snprintf(printable, sizeof(printable), "fps: %.2f", fps);
}
@@ -3003,7 +3013,7 @@ static void view3d_main_area_draw_info(const bContext *C, ARegion *ar, const cha
if (U.uiflag & USER_SHOW_ROTVIEWICON)
draw_view_axis(rv3d);
- else
+ else
draw_view_icon(rv3d);
ob = OBACT;
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 4bfb6dd9fd6..8ba0d75c786 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -2051,7 +2051,7 @@ static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in
int center = RNA_boolean_get(op->ptr, "center");
float size, min[3], max[3], afm[3];
- int ok = 1, onedone = 0;
+ int ok = 1, onedone = FALSE;
if (center) {
/* in 2.4x this also move the cursor to (0, 0, 0) (with shift+c). */
@@ -2066,7 +2066,7 @@ static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in
for (base = scene->base.first; base; base = base->next) {
if (BASE_VISIBLE(v3d, base)) {
- onedone = 1;
+ onedone = TRUE;
if (skip_camera && base->object == v3d->camera) {
continue;
diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c
index 2dab26e7781..06cae3585cd 100644
--- a/source/blender/editors/space_view3d/view3d_fly.c
+++ b/source/blender/editors/space_view3d/view3d_fly.c
@@ -580,7 +580,7 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
fly->pan_view = TRUE;
break;
case FLY_MODAL_PAN_DISABLE:
-//XXX2.5 warp_pointer(cent_orig[0], cent_orig[1]);
+//XXX2.5 WM_cursor_warp(CTX_wm_window(C), cent_orig[0], cent_orig[1]);
fly->pan_view = FALSE;
break;
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 583736716c6..0bbd03c10bb 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -405,7 +405,7 @@ static void do_lasso_select_mesh__doSelectEdge(void *userData, BMEdge *eed, int
BLI_lasso_is_point_inside(data->mcords, data->moves, x1, y1, IS_CLIPPED))
{
BM_edge_select_set(data->vc->em->bm, eed, data->select);
- data->done = 1;
+ data->done = TRUE;
}
}
else {
@@ -443,7 +443,7 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves,
data.mcords = mcords;
data.moves = moves;
data.select = select;
- data.done = 0;
+ data.done = FALSE;
data.pass = 0;
if (extend == 0 && select)
@@ -1180,19 +1180,19 @@ static Base *mouse_select_eval_buffer(ViewContext *vc, unsigned int *buffer, int
View3D *v3d = vc->v3d;
Base *base, *basact = NULL;
static int lastmval[2] = {-100, -100};
- int a, donearest = 0;
+ int a, do_nearest = FALSE;
/* define if we use solid nearest select or not */
if (v3d->drawtype > OB_WIRE) {
- donearest = 1;
+ do_nearest = TRUE;
if (ABS(mval[0] - lastmval[0]) < 3 && ABS(mval[1] - lastmval[1]) < 3) {
if (!has_bones) /* hrms, if theres bones we always do nearest */
- donearest = 0;
+ do_nearest = FALSE;
}
}
lastmval[0] = mval[0]; lastmval[1] = mval[1];
- if (donearest) {
+ if (do_nearest) {
unsigned int min = 0xFFFFFFFF;
int selcol = 0, notcol = 0;
@@ -1623,7 +1623,7 @@ static void do_mesh_box_select__doSelectEdge(void *userData, BMEdge *eed, int x0
if (data->pass == 0) {
if (edge_fully_inside_rect(data->rect, x0, y0, x1, y1)) {
BM_edge_select_set(data->vc->em->bm, eed, data->select);
- data->done = 1;
+ data->done = TRUE;
}
}
else {
@@ -1651,7 +1651,7 @@ static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exten
data.rect = rect;
data.select = select;
data.pass = 0;
- data.done = 0;
+ data.done = FALSE;
if (extend == 0 && select)
EDBM_flag_disable_all(vc->em, BM_ELEM_SELECT);
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index 82ab6cd7193..ff896a95941 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -64,7 +64,7 @@
#include "UI_interface.h"
#include "UI_resources.h"
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
/* ******************* view3d space & buttons ************** */
@@ -78,15 +78,17 @@ static void view3d_panel_operator_redo_header(const bContext *C, Panel *pa)
{
wmOperator *op = WM_operator_last_redo(C);
- if (op) BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname));
- else BLI_strncpy(pa->drawname, IFACE_("Operator"), sizeof(pa->drawname));
+ if (op)
+ BLI_strncpy(pa->drawname, RNA_struct_ui_name(op->type->srna), sizeof(pa->drawname));
+ else
+ BLI_strncpy(pa->drawname, IFACE_("Operator"), sizeof(pa->drawname));
}
static void view3d_panel_operator_redo_operator(const bContext *C, Panel *pa, wmOperator *op)
{
if (op->type->flag & OPTYPE_MACRO) {
for (op = op->macro.first; op; op = op->next) {
- uiItemL(pa->layout, op->type->name, ICON_NONE);
+ uiItemL(pa->layout, RNA_struct_ui_name(op->type->srna), ICON_NONE);
view3d_panel_operator_redo_operator(C, pa, op);
}
}
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 95ae0ac971f..8fb012a18d6 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -142,7 +142,7 @@ void smooth_view(bContext *C, View3D *v3d, ARegion *ar, Object *oldcamera, Objec
sms.to_camera = 0;
/* note on camera locking, this is a little confusing but works ok.
- * we may be changing the view 'as if' there is no active camera, but infact
+ * we may be changing the view 'as if' there is no active camera, but in fact
* there is an active camera which is locked to the view.
*
* In the case where smooth view is moving _to_ a camera we don't want that
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 480edf2d855..a9f4ce273d6 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -586,6 +586,12 @@ static void view_editmove(unsigned short UNUSED(event))
#define TFM_MODAL_AUTOIK_LEN_INC 22
#define TFM_MODAL_AUTOIK_LEN_DEC 23
+#define TFM_MODAL_EDGESLIDE_UP 24
+#define TFM_MODAL_EDGESLIDE_DOWN 25
+
+#define TFM_WHEEL_DOWN_EVT TFM_MODAL_PROPSIZE_DOWN|TFM_MODAL_EDGESLIDE_DOWN
+#define TFM_WHEEL_UP_EVT TFM_MODAL_PROPSIZE_UP|TFM_MODAL_EDGESLIDE_UP
+
/* called in transform_ops.c, on each regeneration of keymaps */
wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
{
@@ -613,6 +619,8 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
{TFM_MODAL_PROPSIZE_DOWN, "PROPORTIONAL_SIZE_DOWN", 0, "Decrease Proportional Influence", ""},
{TFM_MODAL_AUTOIK_LEN_INC, "AUTOIK_CHAIN_LEN_UP", 0, "Increase Max AutoIK Chain Length", ""},
{TFM_MODAL_AUTOIK_LEN_DEC, "AUTOIK_CHAIN_LEN_DOWN", 0, "Decrease Max AutoIK Chain Length", ""},
+ {TFM_MODAL_EDGESLIDE_UP, "EDGESLIDE_EDGE_NEXT", 0, "Select next Edge Slide Edge", ""},
+ {TFM_MODAL_EDGESLIDE_DOWN, "EDGESLIDE_PREV_NEXT", 0, "Select previous Edge Slide Edge", ""},
{0, NULL, 0, NULL, NULL}};
wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map");
@@ -645,8 +653,8 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
+ WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_WHEEL_UP_EVT);
+ WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_WHEEL_DOWN_EVT);
WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
@@ -656,6 +664,72 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
return keymap;
}
+static void transform_event_xyz_constraint(TransInfo *t, short key_type, char cmode)
+{
+ if (!(t->flag & T_NO_CONSTRAINT)) {
+ int constraint_axis, constraint_plane;
+ int edit_2d = (t->flag & T_2D_EDIT);
+ char msg1[] = "along _";
+ char msg2[] = "along %s _";
+ char msg3[] = "locking %s _";
+ char axis;
+
+ /* Initialize */
+ switch (key_type) {
+ case XKEY:
+ axis = 'X';
+ constraint_axis = CON_AXIS0;
+ break;
+ case YKEY:
+ axis = 'Y';
+ constraint_axis = CON_AXIS1;
+ break;
+ case ZKEY:
+ axis = 'Z';
+ constraint_axis = CON_AXIS2;
+ break;
+ default:
+ /* Invalid key */
+ return;
+ }
+ msg1[sizeof(msg1) - 2] = axis;
+ msg2[sizeof(msg2) - 2] = axis;
+ msg3[sizeof(msg3) - 2] = axis;
+ constraint_plane = ((CON_AXIS0 | CON_AXIS1 | CON_AXIS2) &
+ (~constraint_axis));
+
+ if (edit_2d && (key_type != ZKEY)) {
+ if (cmode == axis) {
+ stopConstraint(t);
+ }
+ else {
+ setUserConstraint(t, V3D_MANIP_GLOBAL, constraint_axis, msg1);
+ }
+ }
+ else if (!edit_2d) {
+ if (cmode == axis) {
+ if (t->con.orientation != V3D_MANIP_GLOBAL) {
+ stopConstraint(t);
+ }
+ else {
+ short orientation = (t->current_orientation != V3D_MANIP_GLOBAL ?
+ t->current_orientation : V3D_MANIP_LOCAL);
+ if (!(t->modifiers & MOD_CONSTRAINT_PLANE))
+ setUserConstraint(t, orientation, constraint_axis, msg2);
+ else if (t->modifiers & MOD_CONSTRAINT_PLANE)
+ setUserConstraint(t, orientation, constraint_plane, msg3);
+ }
+ }
+ else {
+ if (!(t->modifiers & MOD_CONSTRAINT_PLANE))
+ setUserConstraint(t, V3D_MANIP_GLOBAL, constraint_axis, msg2);
+ else if (t->modifiers & MOD_CONSTRAINT_PLANE)
+ setUserConstraint(t, V3D_MANIP_GLOBAL, constraint_plane, msg3);
+ }
+ }
+ t->redraw |= TREDRAW_HARD;
+ }
+}
int transformEvent(TransInfo *t, wmEvent *event)
{
@@ -853,7 +927,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
removeSnapPoint(t);
t->redraw |= TREDRAW_HARD;
break;
- case TFM_MODAL_PROPSIZE_UP:
+ case TFM_WHEEL_UP_EVT:
if (t->flag & T_PROP_EDIT) {
t->prop_size*= 1.1f;
if (t->spacetype==SPACE_VIEW3D && t->persp != RV3D_ORTHO)
@@ -862,7 +936,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
}
t->redraw |= TREDRAW_HARD;
break;
- case TFM_MODAL_PROPSIZE_DOWN:
+ case TFM_WHEEL_DOWN_EVT:
if (t->flag & T_PROP_EDIT) {
t->prop_size*= 0.90909090f;
calculatePropRatio(t);
@@ -1008,93 +1082,9 @@ int transformEvent(TransInfo *t, wmEvent *event)
}
break;
case XKEY:
- if ((t->flag & T_NO_CONSTRAINT)==0) {
- if (t->flag & T_2D_EDIT) {
- if (cmode == 'X') {
- stopConstraint(t);
- }
- else {
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0), "along X");
- }
- }
- else {
- if (cmode == 'X') {
- if (t->con.orientation != V3D_MANIP_GLOBAL) {
- stopConstraint(t);
- }
- else {
- short orientation = t->current_orientation != V3D_MANIP_GLOBAL ? t->current_orientation : V3D_MANIP_LOCAL;
- if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0)
- setUserConstraint(t, orientation, (CON_AXIS0), "along %s X");
- else if (t->modifiers & MOD_CONSTRAINT_PLANE)
- setUserConstraint(t, orientation, (CON_AXIS1|CON_AXIS2), "locking %s X");
- }
- }
- else {
- if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0)
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0), "along %s X");
- else if (t->modifiers & MOD_CONSTRAINT_PLANE)
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1|CON_AXIS2), "locking %s X");
- }
- }
- t->redraw |= TREDRAW_HARD;
- }
- break;
case YKEY:
- if ((t->flag & T_NO_CONSTRAINT)==0) {
- if (t->flag & T_2D_EDIT) {
- if (cmode == 'Y') {
- stopConstraint(t);
- }
- else {
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1), "along Y");
- }
- }
- else {
- if (cmode == 'Y') {
- if (t->con.orientation != V3D_MANIP_GLOBAL) {
- stopConstraint(t);
- }
- else {
- short orientation = t->current_orientation != V3D_MANIP_GLOBAL ? t->current_orientation : V3D_MANIP_LOCAL;
- if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0)
- setUserConstraint(t, orientation, (CON_AXIS1), "along %s Y");
- else if (t->modifiers & MOD_CONSTRAINT_PLANE)
- setUserConstraint(t, orientation, (CON_AXIS0|CON_AXIS2), "locking %s Y");
- }
- }
- else {
- if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0)
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1), "along %s Y");
- else if (t->modifiers & MOD_CONSTRAINT_PLANE)
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0|CON_AXIS2), "locking %s Y");
- }
- }
- t->redraw |= TREDRAW_HARD;
- }
- break;
case ZKEY:
- if ((t->flag & (T_NO_CONSTRAINT|T_2D_EDIT))==0) {
- if (cmode == 'Z') {
- if (t->con.orientation != V3D_MANIP_GLOBAL) {
- stopConstraint(t);
- }
- else {
- short orientation = t->current_orientation != V3D_MANIP_GLOBAL ? t->current_orientation : V3D_MANIP_LOCAL;
- if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0)
- setUserConstraint(t, orientation, (CON_AXIS2), "along %s Z");
- else if (t->modifiers & MOD_CONSTRAINT_PLANE)
- setUserConstraint(t, orientation, (CON_AXIS0|CON_AXIS1), "locking %s Z");
- }
- }
- else {
- if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0)
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS2), "along %s Z");
- else if (t->modifiers & MOD_CONSTRAINT_PLANE)
- setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0|CON_AXIS1), "locking %s Z");
- }
- t->redraw |= TREDRAW_HARD;
- }
+ transform_event_xyz_constraint(t, event->type, cmode);
break;
case OKEY:
if (t->flag & T_PROP_EDIT && event->shift) {
@@ -1217,9 +1207,11 @@ int calculateTransformCenter(bContext *C, int centerMode, float *cent3d, int *ce
calculateCenter(t);
- if(cent2d)
+ if (cent2d) {
copy_v2_v2_int(cent2d, t->center2d);
- if(cent3d) {
+ }
+
+ if (cent3d) {
// Copy center from constraint center. Transform center can be local
copy_v3_v3(cent3d, t->con.center);
}
@@ -1466,6 +1458,7 @@ static void drawTransformView(const struct bContext *C, struct ARegion *UNUSED(a
drawConstraint(t);
drawPropCircle(C, t);
drawSnapping(C, t);
+ drawNonPropEdge(C, t);
}
#if 0
@@ -1713,6 +1706,9 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
case TFM_RESIZE:
initResize(t);
break;
+ case TFM_SKIN_RESIZE:
+ initSkinResize(t);
+ break;
case TFM_TOSPHERE:
initToSphere(t);
break;
@@ -2191,7 +2187,7 @@ static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
bConstraintTypeInfo *cti= get_constraint_typeinfo(CONSTRAINT_TYPE_ROTLIMIT);
bConstraintOb cob;
bConstraint *con;
- int dolimit = 0;
+ int do_limit = FALSE;
/* Evaluate valid constraints */
for (con= td->con; con; con= con->next) {
@@ -2213,9 +2209,9 @@ static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
continue;
/* only do conversion if necessary, to preserve quats and eulers */
- if (!dolimit) {
+ if (do_limit == FALSE) {
constraintob_from_transdata(&cob, td);
- dolimit= 1;
+ do_limit = TRUE;
}
/* do space conversions */
@@ -2237,7 +2233,7 @@ static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
}
}
- if (dolimit) {
+ if (do_limit) {
/* copy results from cob->matrix */
if (td->ext->rotOrder == ROT_MODE_QUAT) {
/* quats */
@@ -2391,8 +2387,8 @@ int handleEventWarp(TransInfo *t, wmEvent *event)
if (event->type == MIDDLEMOUSE && event->val == KM_PRESS) {
// Use customData pointer to signal warp direction
- if (t->customData == NULL)
- t->customData = (void*)1;
+ if (t->customData == NULL)
+ t->customData = (void *)1;
else
t->customData = NULL;
@@ -2531,7 +2527,7 @@ int handleEventShear(TransInfo *t, wmEvent *event)
if (event->type == MIDDLEMOUSE && event->val == KM_PRESS) {
// Use customData pointer to signal Shear direction
- if (t->customData == NULL) {
+ if (t->customData == NULL) {
initMouseInputMode(t, &t->mouse, INPUT_VERTICAL_ABSOLUTE);
t->customData = (void*)1;
}
@@ -2784,7 +2780,7 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3])
constraintSizeLim(t, td);
}
-
+
/* For individual element center, Editmode need to use iloc */
if (t->flag & T_POINTS)
sub_v3_v3v3(vec, td->iloc, center);
@@ -2882,6 +2878,96 @@ int Resize(TransInfo *t, const int mval[2])
return 1;
}
+/* ************************** SKIN *************************** */
+
+void initSkinResize(TransInfo *t)
+{
+ t->mode = TFM_SKIN_RESIZE;
+ t->transform = SkinResize;
+
+ initMouseInputMode(t, &t->mouse, INPUT_SPRING_FLIP);
+
+ t->flag |= T_NULL_ONE;
+ t->num.flag |= NUM_NULL_ONE;
+ t->num.flag |= NUM_AFFECT_ALL;
+ if (!t->obedit) {
+ t->flag |= T_NO_ZERO;
+ t->num.flag |= NUM_NO_ZERO;
+ }
+
+ t->idx_max = 2;
+ t->num.idx_max = 2;
+ t->snap[0] = 0.0f;
+ t->snap[1] = 0.1f;
+ t->snap[2] = t->snap[1] * 0.1f;
+
+ t->num.increment = t->snap[1];
+}
+
+int SkinResize(TransInfo *t, const int UNUSED(mval[2]))
+{
+ TransData *td;
+ float size[3], mat[3][3];
+ float ratio;
+ int i;
+ char str[200];
+
+ ratio = t->values[0];
+ size[0] = size[1] = size[2] = ratio;
+
+ snapGrid(t, size);
+
+ if (hasNumInput(&t->num)) {
+ applyNumInput(&t->num, size);
+ constraintNumInput(t, size);
+ }
+
+ applySnapping(t, size);
+
+ if (t->flag & T_AUTOVALUES) {
+ copy_v3_v3(size, t->auto_values);
+ }
+
+ copy_v3_v3(t->values, size);
+
+ size_to_mat3(mat, size);
+
+ headerResize(t, size, str);
+
+ for (i = 0, td = t->data; i < t->total; i++, td++) {
+ float tmat[3][3], smat[3][3];
+ float fsize[3];
+
+ if (td->flag & TD_NOACTION)
+ break;
+
+ if (td->flag & TD_SKIP)
+ continue;
+
+ if (t->flag & T_EDIT) {
+ mul_m3_m3m3(smat, mat, td->mtx);
+ mul_m3_m3m3(tmat, td->smtx, smat);
+ }
+ else {
+ copy_m3_m3(tmat, mat);
+ }
+
+ if (t->con.applySize) {
+ t->con.applySize(t, NULL, tmat);
+ }
+
+ mat3_to_size(fsize, tmat);
+ td->val[0] = td->ext->isize[0] * (1 + (fsize[0] - 1) * td->factor);
+ td->val[1] = td->ext->isize[1] * (1 + (fsize[1] - 1) * td->factor);
+ }
+
+ recalcData(t);
+
+ ED_area_headerprint(t->sa, str);
+
+ return 1;
+}
+
/* ************************** TOSPHERE *************************** */
void initToSphere(TransInfo *t)
@@ -3183,7 +3269,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* rotation */
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't rotate objects itself
/* euler or quaternion? */
- if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
+ if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
mul_serie_m3(fmat, td->mtx, mat, td->smtx, NULL, NULL, NULL, NULL, NULL);
mat3_to_quat(quat, fmat); // Actual transform
@@ -4460,6 +4546,41 @@ static BMLoop *get_next_loop(BMVert *v, BMLoop *l,
return NULL;
}
+static void calcNonProportionalEdgeSlide(TransInfo *t, SlideData *sld, const float mval[2])
+{
+ TransDataSlideVert *sv = sld->sv;
+
+ if (sld->totsv > 0) {
+ int i = 0;
+
+ float v_proj[3];
+ float dist = 0;
+ float min_dist = FLT_MAX;
+
+ float up_p[3];
+ float dw_p[3];
+
+ for (i = 0; i < sld->totsv; i++, sv++) {
+ /* Set length */
+ add_v3_v3v3(up_p, sv->origvert.co, sv->upvec);
+ add_v3_v3v3(dw_p, sv->origvert.co, sv->downvec);
+ sv->edge_len = len_v3v3(dw_p, up_p);
+
+ mul_v3_m4v3(v_proj, t->obedit->obmat, sv->v->co);
+ project_float_noclip(t->ar, v_proj, v_proj);
+
+ dist = len_squared_v2v2(mval, v_proj);
+ if (dist < min_dist) {
+ min_dist = dist;
+ sld->curr_sv_index = i;
+ }
+ }
+ }
+ else {
+ sld->curr_sv_index = 0;
+ }
+}
+
static int createSlideVerts(TransInfo *t)
{
Mesh *me = t->obedit->data;
@@ -4477,10 +4598,15 @@ static int createSlideVerts(TransInfo *t)
RegionView3D *rv3d = t->ar ? t->ar->regiondata : NULL; /* background mode support */
ARegion *ar = t->ar;
float projectMat[4][4];
+ float mval[2] = {(float)t->mval[0], (float)t->mval[1]};
float start[3] = {0.0f, 0.0f, 0.0f}, dir[3], end[3] = {0.0f, 0.0f, 0.0f};
float vec[3], vec2[3], lastvec[3] /*, size, dis=0.0, z */ /* UNUSED */;
int numsel, i, j;
+ sld->is_proportional = TRUE;
+ sld->curr_sv_index = 0;
+ sld->flipped_vtx = FALSE;
+
if (!v3d) {
/* ok, let's try to survive this */
unit_m4(projectMat);
@@ -4743,7 +4869,10 @@ static int createSlideVerts(TransInfo *t)
BLI_smallhash_insert(&sld->vhash, (uintptr_t)sv_array->v, sv_array);
}
-
+
+ calcNonProportionalEdgeSlide(t, sld, mval);
+
+
sld->origfaces_init = TRUE;
sld->em = em;
@@ -4752,7 +4881,7 @@ static int createSlideVerts(TransInfo *t)
/*dir holds a vector along edge loop*/
copy_v3_v3(end, dir);
- mul_v3_fl(end, 0.5);
+ mul_v3_fl(end, 0.5f);
sld->start[0] = t->mval[0] + start[0];
sld->start[1] = t->mval[1] + start[1];
@@ -4798,7 +4927,7 @@ void projectSVData(TransInfo *t, int final)
/* BMESH_TODO, this interpolates between vertex/loops which are not moved
* (are only apart of a face attached to a slide vert), couldn't we iterate BM_LOOPS_OF_VERT
- * here and only iterpolate those? */
+ * here and only interpolate those? */
BM_ITER_ELEM (f, &fiter, sv->v, BM_FACES_OF_VERT) {
BMIter liter;
BMLoop *l;
@@ -4977,7 +5106,8 @@ void initEdgeSlide(TransInfo *t)
t->mode = TFM_EDGE_SLIDE;
t->transform = EdgeSlide;
-
+ t->handleEvent = handleEventEdgeSlide;
+
if (!createSlideVerts(t)) {
t->state= TRANS_CANCEL;
return;
@@ -5005,6 +5135,122 @@ void initEdgeSlide(TransInfo *t)
t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
+int handleEventEdgeSlide(struct TransInfo *t, struct wmEvent *event)
+{
+ if (t->flag & TFM_EDGE_SLIDE) {
+ SlideData *sld = t->customData;
+
+ if (sld) {
+ switch (event->type) {
+ case EKEY:
+ if (event->val == KM_PRESS) {
+ sld->is_proportional = !sld->is_proportional;
+ return 1;
+ }
+ break;
+ case FKEY: {
+ if (event->val == KM_PRESS) {
+ if (sld->is_proportional == FALSE) {
+ sld->flipped_vtx = !sld->flipped_vtx;
+ }
+ return 1;
+ }
+ break;
+ }
+ case EVT_MODAL_MAP: {
+ switch (event->val) {
+ case TFM_WHEEL_DOWN_EVT: {
+ sld->curr_sv_index = ((sld->curr_sv_index - 1) + sld->totsv) % sld->totsv;
+ break;
+ }
+ case TFM_WHEEL_UP_EVT: {
+ sld->curr_sv_index = (sld->curr_sv_index + 1) % sld->totsv;
+ break;
+ }
+ }
+ }
+ default:
+ break;
+ }
+ }
+ }
+ return 0;
+}
+
+void drawNonPropEdge(const struct bContext *C, TransInfo *t)
+{
+ if (t->flag & TFM_EDGE_SLIDE) {
+ SlideData *sld = (SlideData *)t->customData;
+ /* Non-Prop mode */
+ if (sld && sld->is_proportional == FALSE) {
+ View3D *v3d = CTX_wm_view3d(C);
+ float marker[3];
+ float v1[3], v2[3];
+ float interp_v;
+ TransDataSlideVert *curr_sv = &sld->sv[sld->curr_sv_index];
+ const float ctrl_size = UI_GetThemeValuef(TH_FACEDOT_SIZE) + 1.5;
+ const float guide_size = ctrl_size - 0.5f;
+ const float line_size = UI_GetThemeValuef(TH_OUTLINE_WIDTH) + 0.5f;
+ const int alpha_shade = -30;
+
+ add_v3_v3v3(v1, curr_sv->origvert.co, curr_sv->upvec);
+ add_v3_v3v3(v2, curr_sv->origvert.co, curr_sv->downvec);
+
+ interp_v = (sld->perc + 1.0f) / 2.0f;
+ interp_v3_v3v3(marker, v2, v1, interp_v);
+
+ if (v3d && v3d->zbuf)
+ glDisable(GL_DEPTH_TEST);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glPushAttrib(GL_CURRENT_BIT | GL_LINE_BIT | GL_POINT_BIT);
+ glPushMatrix();
+
+ glMultMatrixf(t->obedit->obmat);
+
+ glLineWidth(line_size);
+ UI_ThemeColorShadeAlpha(TH_EDGE_SELECT, 80, alpha_shade);
+ glBegin(GL_LINES);
+ glVertex3fv(curr_sv->up->co);
+ glVertex3fv(curr_sv->origvert.co);
+ glVertex3fv(curr_sv->down->co);
+ glVertex3fv(curr_sv->origvert.co);
+ bglEnd();
+
+
+ UI_ThemeColorShadeAlpha(TH_SELECT, -30, alpha_shade);
+ glPointSize(ctrl_size);
+ if (sld->flipped_vtx) {
+ bglBegin(GL_POINTS);
+ bglVertex3fv(curr_sv->down->co);
+ bglEnd();
+ }
+ else {
+ bglBegin(GL_POINTS);
+ bglVertex3fv(curr_sv->up->co);
+ bglEnd();
+ }
+
+ UI_ThemeColorShadeAlpha(TH_SELECT, 255, alpha_shade);
+ glPointSize(guide_size);
+ bglBegin(GL_POINTS);
+ bglVertex3fv(marker);
+ bglEnd();
+
+
+ glPopMatrix();
+ glPopAttrib();
+
+ glDisable(GL_BLEND);
+
+ if (v3d && v3d->zbuf)
+ glEnable(GL_DEPTH_TEST);
+ }
+ }
+}
+
static int doEdgeSlide(TransInfo *t, float perc)
{
SlideData *sld = t->customData;
@@ -5016,6 +5262,30 @@ static int doEdgeSlide(TransInfo *t, float perc)
sv = svlist;
for (i=0; i<sld->totsv; i++, sv++) {
+ if (sld->is_proportional == FALSE) {
+ TransDataSlideVert *curr_sv = &sld->sv[sld->curr_sv_index];
+ float cur_sel = curr_sv->edge_len;
+ float cur_sv = sv->edge_len;
+ float extd = 0.0f;
+ float recip_cur_sv = 0.0f;
+
+ if (cur_sel == 0.0f) cur_sel = 1.0f;
+ if (cur_sv == 0.0f) cur_sv = 1.0f;
+
+ recip_cur_sv = 1.0f / cur_sv;
+
+ if (!sld->flipped_vtx) {
+ extd = (cur_sv - cur_sel) * recip_cur_sv;
+ }
+ else {
+ extd = (cur_sel - cur_sv) * recip_cur_sv;
+ }
+
+ extd += (sld->perc * cur_sel) * recip_cur_sv;
+ CLAMP(extd, -1.0f, 1.0f);
+ perc = extd;
+ }
+
if (perc > 0.0f) {
copy_v3_v3(vec, sv->upvec);
mul_v3_fl(vec, perc);
@@ -5035,8 +5305,11 @@ static int doEdgeSlide(TransInfo *t, float perc)
int EdgeSlide(TransInfo *t, const int UNUSED(mval[2]))
{
- char str[50];
+ char str[128];
float final;
+ SlideData *sld = t->customData;
+ int flipped = sld->flipped_vtx;
+ int is_proportional = sld->is_proportional;
final = t->values[0];
@@ -5052,10 +5325,12 @@ int EdgeSlide(TransInfo *t, const int UNUSED(mval[2]))
outputNumInput(&(t->num), c);
- sprintf(str, "Edge Slide: %s", &c[0]);
+ BLI_snprintf(str, sizeof(str), "Edge Slide: %s (E)ven: %s, (F)lipped: %s",
+ &c[0], !is_proportional ? "ON" : "OFF", flipped ? "ON" : "OFF" );
}
else {
- sprintf(str, "Edge Slide: %.2f", final);
+ BLI_snprintf(str, sizeof(str), "Edge Slide: %.2f (E)ven: %s, (F)lipped: %s",
+ final, !is_proportional ? "ON" : "OFF", flipped ? "ON" : "OFF" );
}
CLAMP(final, -1.0f, 1.0f);
@@ -5525,10 +5800,10 @@ static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, TransData2D *td2d,
/* snap key to nearest frame? */
if (autosnap == SACTSNAP_FRAME) {
-#if 0 /* 'doTime' disabled for now */
+#if 0 /* 'do_time' disabled for now */
const Scene *scene= t->scene;
- const short doTime= 0; //getAnimEdit_DrawTime(t); // NOTE: this works, but may be confusing behavior given the option's label, hence disabled
+ const short do_time= 0; //getAnimEdit_DrawTime(t); // NOTE: this works, but may be confusing behavior given the option's label, hence disabled
const double secf= FPS;
#endif
double val;
@@ -5539,16 +5814,16 @@ static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, TransData2D *td2d,
else
val= *(td->val);
-#if 0 /* 'doTime' disabled for now */
+#if 0 /* 'do_time' disabled for now */
/* do the snapping to nearest frame/second */
- if (doTime) {
+ if (do_time) {
val= (float)(floor((val/secf) + 0.5f) * secf);
}
else
#endif
{
- val= floorf(val+0.5f);
+ val = floor(val + 0.5);
}
/* convert frame out of nla-action time */
@@ -5627,19 +5902,19 @@ static void headerTimeTranslate(TransInfo *t, char *str)
else {
const Scene *scene = t->scene;
const short autosnap= getAnimEdit_SnapMode(t);
- const short doTime = getAnimEdit_DrawTime(t);
+ const short do_time = getAnimEdit_DrawTime(t);
const double secf= FPS;
float val = t->values[0];
/* apply snapping + frame->seconds conversions */
if (autosnap == SACTSNAP_STEP) {
- if (doTime)
- val= floorf((double)val/secf + 0.5f);
+ if (do_time)
+ val= floorf((double)val / secf + 0.5);
else
val= floorf(val + 0.5f);
}
else {
- if (doTime)
+ if (do_time)
val= (float)((double)val / secf);
}
@@ -5659,7 +5934,7 @@ static void applyTimeTranslate(TransInfo *t, float UNUSED(sval))
Scene *scene = t->scene;
int i;
- const short doTime= getAnimEdit_DrawTime(t);
+ const short do_time= getAnimEdit_DrawTime(t);
const double secf= FPS;
const short autosnap= getAnimEdit_SnapMode(t);
@@ -5681,10 +5956,10 @@ static void applyTimeTranslate(TransInfo *t, float UNUSED(sval))
deltax = t->values[0];
if (autosnap == SACTSNAP_STEP) {
- if (doTime)
- deltax= (float)(floor((deltax/secf) + 0.5f) * secf);
+ if (do_time)
+ deltax = (float)(floor(((double)deltax / secf) + 0.5) * secf);
else
- deltax= (float)(floor(deltax + 0.5f));
+ deltax = (float)(floor(deltax + 0.5f));
}
val = BKE_nla_tweakedit_remap(adt, td->ival, NLATIME_CONVERT_MAP);
@@ -5695,10 +5970,10 @@ static void applyTimeTranslate(TransInfo *t, float UNUSED(sval))
deltax = val = t->values[0];
if (autosnap == SACTSNAP_STEP) {
- if (doTime)
- val= (float)(floor((deltax/secf) + 0.5f) * secf);
+ if (do_time)
+ val = (float)(floor(((double)deltax / secf) + 0.5) * secf);
else
- val= (float)(floor(val + 0.5f));
+ val = (float)(floor(val + 0.5f));
}
*(td->val) = td->ival + val;
@@ -5933,7 +6208,7 @@ static void applyTimeScale(TransInfo *t)
int i;
const short autosnap= getAnimEdit_SnapMode(t);
- const short doTime= getAnimEdit_DrawTime(t);
+ const short do_time= getAnimEdit_DrawTime(t);
const double secf= FPS;
@@ -5947,10 +6222,10 @@ static void applyTimeScale(TransInfo *t)
float fac= t->values[0];
if (autosnap == SACTSNAP_STEP) {
- if (doTime)
- fac= (float)(floor(fac/secf + 0.5f) * secf);
+ if (do_time)
+ fac = (float)(floor((double)fac / secf + 0.5) * secf);
else
- fac= (float)(floor(fac + 0.5f));
+ fac = (float)(floor(fac + 0.5f));
}
/* check if any need to apply nla-mapping */
@@ -5958,9 +6233,7 @@ static void applyTimeScale(TransInfo *t)
startx= BKE_nla_tweakedit_remap(adt, startx, NLATIME_CONVERT_UNMAP);
/* now, calculate the new value */
- *(td->val) = td->ival - startx;
- *(td->val) *= fac;
- *(td->val) += startx;
+ *(td->val) = ((td->ival - startx) * fac) + startx;
/* apply nearest snapping */
doAnimEdit_SnapFrame(t, td, td2d, adt, autosnap);
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index a1f2c2c8002..59688f1436e 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -194,6 +194,8 @@ typedef struct TransDataSlideVert {
struct BMVert *up, *down;
struct BMVert *v;
+ float edge_len;
+
float upvec[3], downvec[3];
} TransDataSlideVert;
@@ -206,9 +208,16 @@ typedef struct SlideData {
int start[2], end[2];
struct BMEditMesh *em;
- float perc;
+
/* flag that is set when origfaces is initialized */
int origfaces_init;
+
+ float perc;
+
+ int is_proportional;
+ int flipped_vtx;
+
+ int curr_sv_index;
} SlideData;
typedef struct TransData {
@@ -464,6 +473,9 @@ int Shear(TransInfo *t, const int mval[2]);
void initResize(TransInfo *t);
int Resize(TransInfo *t, const int mval[2]);
+void initSkinResize(TransInfo *t);
+int SkinResize(TransInfo *t, const int mval[2]);
+
void initTranslation(TransInfo *t);
int Translation(TransInfo *t, const int mval[2]);
@@ -508,6 +520,7 @@ void initBoneRoll(TransInfo *t);
int BoneRoll(TransInfo *t, const int mval[2]);
void initEdgeSlide(TransInfo *t);
+int handleEventEdgeSlide(TransInfo *t, struct wmEvent *event);
int EdgeSlide(TransInfo *t, const int mval[2]);
void initTimeTranslate(TransInfo *t);
@@ -651,6 +664,8 @@ void resetTransRestrictions(TransInfo *t);
void drawLine(TransInfo *t, float *center, float *dir, char axis, short options);
+void drawNonPropEdge(const struct bContext *C, TransInfo *t);
+
/* DRAWLINE options flags */
#define DRAWLIGHT 1
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index e40a051546d..74afdfee7c9 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -1396,10 +1396,10 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
if (bezt->hide==0) {
TransDataCurveHandleFlags *hdata = NULL;
- if ( propmode ||
- ((bezt->f2 & SELECT) && hide_handles) ||
- ((bezt->f1 & SELECT) && hide_handles == 0)
- ) {
+ if (propmode ||
+ ((bezt->f2 & SELECT) && hide_handles) ||
+ ((bezt->f1 & SELECT) && hide_handles == 0))
+ {
copy_v3_v3(td->iloc, bezt->vec[0]);
td->loc= bezt->vec[0];
copy_v3_v3(td->center, bezt->vec[(hide_handles || bezt->f2 & SELECT) ? 1:0]);
@@ -1458,10 +1458,10 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
count++;
tail++;
}
- if ( propmode ||
- ((bezt->f2 & SELECT) && hide_handles) ||
- ((bezt->f3 & SELECT) && hide_handles == 0)
- ) {
+ if (propmode ||
+ ((bezt->f2 & SELECT) && hide_handles) ||
+ ((bezt->f3 & SELECT) && hide_handles == 0))
+ {
copy_v3_v3(td->iloc, bezt->vec[2]);
td->loc= bezt->vec[2];
copy_v3_v3(td->center, bezt->vec[(hide_handles || bezt->f2 & SELECT) ? 1:2]);
@@ -1888,7 +1888,8 @@ static void get_edge_center(float cent_r[3], BMVert *eve)
}
/* way to overwrite what data is edited with transform */
-static void VertsToTransData(TransInfo *t, TransData *td, BMEditMesh *em, BMVert *eve, float *bweight)
+static void VertsToTransData(TransInfo *t, TransData *td, TransDataExtension *tx,
+ BMEditMesh *em, BMVert *eve, float *bweight)
{
td->flag = 0;
//if (key)
@@ -1922,12 +1923,23 @@ static void VertsToTransData(TransInfo *t, TransData *td, BMEditMesh *em, BMVert
td->val = bweight;
td->ival = bweight ? *(bweight) : 1.0f;
}
+ else if (t->mode == TFM_SKIN_RESIZE) {
+ MVertSkin *vs = CustomData_bmesh_get(&em->bm->vdata,
+ eve->head.data,
+ CD_MVERT_SKIN);
+ /* skin node size */
+ td->ext = tx;
+ copy_v3_v3(tx->isize, vs->radius);
+ tx->size = vs->radius;
+ td->val = vs->radius;
+ }
}
static void createTransEditVerts(bContext *C, TransInfo *t)
{
ToolSettings *ts = CTX_data_tool_settings(C);
TransData *tob = NULL;
+ TransDataExtension *tx = NULL;
BMEditMesh *em = BMEdit_FromObject(t->obedit);
BMesh *bm = em->bm;
BMVert *eve;
@@ -2033,6 +2045,10 @@ static void createTransEditVerts(bContext *C, TransInfo *t)
else t->total = countsel;
tob= t->data= MEM_callocN(t->total*sizeof(TransData), "TransObData(Mesh EditMode)");
+ if (t->mode == TFM_SKIN_RESIZE) {
+ tx = t->ext = MEM_callocN(t->total * sizeof(TransDataExtension),
+ "TransObData ext");
+ }
copy_m3_m4(mtx, t->obedit->obmat);
invert_m3_m3(smtx, mtx);
@@ -2084,7 +2100,9 @@ static void createTransEditVerts(bContext *C, TransInfo *t)
if (propmode || selstate[a]) {
float *bweight = CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_BWEIGHT);
- VertsToTransData(t, tob, em, eve, bweight);
+ VertsToTransData(t, tob, tx, em, eve, bweight);
+ if (tx)
+ tx++;
/* selected */
if (selstate[a]) tob->flag |= TD_SELECTED;
@@ -2183,7 +2201,6 @@ void flushTransNodes(TransInfo *t)
if (t->total==1) {
ED_node_link_intersect_test(t->sa, 1);
}
-
}
/* *** SEQUENCE EDITOR *** */
@@ -3708,9 +3725,9 @@ void flushTransGraphData(TransInfo *t)
switch (sipo->autosnap) {
case SACTSNAP_FRAME: /* snap to nearest frame (or second if drawing seconds) */
if (sipo->flag & SIPO_DRAWTIME)
- td2d->loc[0] = (float)(floorf((td2d->loc[0]/secf) + 0.5f) * secf);
+ td2d->loc[0] = floorf((td2d->loc[0] / secf) + 0.5) * secf;
else
- td2d->loc[0] = (float)(floorf(td2d->loc[0]+0.5f));
+ td2d->loc[0] = floorf(td2d->loc[0] + 0.5);
break;
case SACTSNAP_MARKER: /* snap to nearest marker */
@@ -3760,42 +3777,42 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
/* *** Extend Transform *** */
- Scene * scene= t->scene;
+ Scene *scene = t->scene;
int cfra= CFRA;
int left= seq_tx_get_final_left(seq, 1);
int right= seq_tx_get_final_right(seq, 1);
if (seq->depth == 0 && ((seq->flag & SELECT) == 0 || (seq->flag & SEQ_LOCK))) {
- *recursive= 0;
- *count= 0;
- *flag= 0;
+ *recursive = FALSE;
+ *count = 0;
+ *flag = 0;
}
- else if (seq->type ==SEQ_META) {
+ else if (seq->type == SEQ_META) {
/* for meta's we only ever need to extend their children, no matter what depth
* just check the meta's are in the bounds */
- if (t->frame_side=='R' && right <= cfra) *recursive= 0;
- else if (t->frame_side=='L' && left >= cfra) *recursive= 0;
- else *recursive= 1;
+ if (t->frame_side=='R' && right <= cfra) *recursive = FALSE;
+ else if (t->frame_side=='L' && left >= cfra) *recursive = FALSE;
+ else *recursive = TRUE;
*count= 1;
*flag= (seq->flag | SELECT) & ~(SEQ_LEFTSEL|SEQ_RIGHTSEL);
}
else {
- *recursive= 0; /* not a meta, so no thinking here */
- *count= 1; /* unless its set to 0, extend will never set 2 handles at once */
- *flag= (seq->flag | SELECT) & ~(SEQ_LEFTSEL|SEQ_RIGHTSEL);
+ *recursive = FALSE; /* not a meta, so no thinking here */
+ *count = 1; /* unless its set to 0, extend will never set 2 handles at once */
+ *flag = (seq->flag | SELECT) & ~(SEQ_LEFTSEL|SEQ_RIGHTSEL);
if (t->frame_side=='R') {
- if (right <= cfra) *count= *flag= 0; /* ignore */
- else if (left > cfra) ; /* keep the selection */
- else *flag |= SEQ_RIGHTSEL;
+ if (right <= cfra) *count = *flag= 0; /* ignore */
+ else if (left > cfra) ; /* keep the selection */
+ else *flag |= SEQ_RIGHTSEL;
}
else {
- if (left >= cfra) *count= *flag= 0; /* ignore */
- else if (right < cfra) ; /* keep the selection */
- else *flag |= SEQ_LEFTSEL;
+ if (left >= cfra) *count = *flag= 0; /* ignore */
+ else if (right < cfra) ; /* keep the selection */
+ else *flag |= SEQ_LEFTSEL;
}
}
}
@@ -3811,9 +3828,9 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
/* Non nested strips (resect selection and handles) */
if ((seq->flag & SELECT) == 0 || (seq->flag & SEQ_LOCK)) {
- *recursive= 0;
- *count= 0;
- *flag= 0;
+ *recursive = FALSE;
+ *count = 0;
+ *flag = 0;
}
else {
if ((seq->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL)) == (SEQ_LEFTSEL|SEQ_RIGHTSEL)) {
@@ -3829,10 +3846,10 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
if ((seq->type == SEQ_META) && ((seq->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL)) == 0)) {
/* if any handles are selected, don't recurse */
- *recursive = 1;
+ *recursive = TRUE;
}
else {
- *recursive = 0;
+ *recursive = FALSE;
}
}
}
@@ -3840,23 +3857,23 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
/* Nested, different rules apply */
#ifdef SEQ_TX_NESTED_METAS
- *flag= (seq->flag | SELECT) & ~(SEQ_LEFTSEL|SEQ_RIGHTSEL);
- *count= 1; /* ignore the selection for nested */
- *recursive = (seq->type == SEQ_META );
+ *flag = (seq->flag | SELECT) & ~(SEQ_LEFTSEL|SEQ_RIGHTSEL);
+ *count = 1; /* ignore the selection for nested */
+ *recursive = (seq->type == SEQ_META);
#else
if (seq->type == SEQ_META) {
/* Meta's can only directly be moved between channels since they
* don't have their start and length set directly (children affect that)
- * since this Meta is nested we don't need any of its data infact.
+ * since this Meta is nested we don't need any of its data in fact.
* calc_sequence() will update its settings when run on the toplevel meta */
*flag= 0;
*count= 0;
- *recursive = 1;
+ *recursive = TRUE;
}
else {
*flag= (seq->flag | SELECT) & ~(SEQ_LEFTSEL|SEQ_RIGHTSEL);
*count= 1; /* ignore the selection for nested */
- *recursive = 0;
+ *recursive = FALSE;
}
#endif
}
@@ -4134,9 +4151,9 @@ static void freeSeqData(TransInfo *t)
for (seq= seqbasep->first; seq; seq= seq->next) {
/* We might want to build a list of effects that need to be updated during transform */
if (seq->type & SEQ_EFFECT) {
- if (seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(t->scene, seq);
- else if (seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(t->scene, seq);
- else if (seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(t->scene, seq);
+ if (seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(t->scene, seq);
+ else if (seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(t->scene, seq);
+ else if (seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(t->scene, seq);
}
}
@@ -4441,7 +4458,7 @@ static void set_trans_object_base_flags(TransInfo *t)
if (parsel) {
/* rotation around local centers are allowed to propagate */
- if ((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL) {
+ if ((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL) {
base->flag |= BA_TRANSFORM_CHILD;
}
else {
@@ -4490,7 +4507,7 @@ static int count_proportional_objects(TransInfo *t)
Base *base;
/* rotations around local centers are allowed to propagate, so we take all objects */
- if (!((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL)) {
+ if (!((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL)) {
/* mark all parents */
for (base= scene->base.first; base; base= base->next) {
if (TESTBASELIB_BGMODE(v3d, scene, base)) {
@@ -4602,45 +4619,45 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
}
}
else if (IS_AUTOKEY_FLAG(scene, INSERTNEEDED)) {
- short doLoc=0, doRot=0, doScale=0;
+ short do_loc = FALSE, do_rot = FALSE, do_scale = FALSE;
/* filter the conditions when this happens (assume that curarea->spacetype==SPACE_VIE3D) */
if (tmode == TFM_TRANSLATION) {
- doLoc = 1;
+ do_loc = TRUE;
}
else if (tmode == TFM_ROTATION) {
if (v3d->around == V3D_ACTIVE) {
if (ob != OBACT)
- doLoc = 1;
+ do_loc = TRUE;
}
else if (v3d->around == V3D_CURSOR)
- doLoc = 1;
+ do_loc = TRUE;
if ((v3d->flag & V3D_ALIGN)==0)
- doRot = 1;
+ do_rot = TRUE;
}
else if (tmode == TFM_RESIZE) {
if (v3d->around == V3D_ACTIVE) {
if (ob != OBACT)
- doLoc = 1;
+ do_loc = TRUE;
}
else if (v3d->around == V3D_CURSOR)
- doLoc = 1;
+ do_loc = TRUE;
if ((v3d->flag & V3D_ALIGN)==0)
- doScale = 1;
+ do_scale = TRUE;
}
/* insert keyframes for the affected sets of channels using the builtin KeyingSets found */
- if (doLoc) {
+ if (do_loc) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_LOCATION_ID);
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
- if (doRot) {
+ if (do_rot) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_ROTATION_ID);
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
- if (doScale) {
+ if (do_scale) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_SCALING_ID);
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
@@ -4723,39 +4740,39 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
}
/* only insert keyframe if needed? */
else if (IS_AUTOKEY_FLAG(scene, INSERTNEEDED)) {
- short doLoc=0, doRot=0, doScale=0;
+ short do_loc = FALSE, do_rot = FALSE, do_scale = FALSE;
/* filter the conditions when this happens (assume that curarea->spacetype==SPACE_VIE3D) */
if (tmode == TFM_TRANSLATION) {
if (targetless_ik)
- doRot= 1;
+ do_rot = TRUE;
else
- doLoc = 1;
+ do_loc = TRUE;
}
else if (tmode == TFM_ROTATION) {
if (ELEM(v3d->around, V3D_CURSOR, V3D_ACTIVE))
- doLoc = 1;
+ do_loc = TRUE;
if ((v3d->flag & V3D_ALIGN)==0)
- doRot = 1;
+ do_rot = TRUE;
}
else if (tmode == TFM_RESIZE) {
if (ELEM(v3d->around, V3D_CURSOR, V3D_ACTIVE))
- doLoc = 1;
+ do_loc = TRUE;
if ((v3d->flag & V3D_ALIGN)==0)
- doScale = 1;
+ do_scale = TRUE;
}
- if (doLoc) {
+ if (do_loc) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_LOCATION_ID);
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
- if (doRot) {
+ if (do_rot) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_ROTATION_ID);
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
- if (doScale) {
+ if (do_scale) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_SCALING_ID);
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
@@ -4847,7 +4864,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
/* marker transform, not especially nice but we may want to move markers
* at the same time as keyframes in the dope sheet. */
if ((sseq->flag & SEQ_MARKER_TRANS) && (canceled == 0)) {
- /* cant use , TFM_TIME_EXTEND
+ /* cant use TFM_TIME_EXTEND
* for some reason EXTEND is changed into TRANSLATE, so use frame_side instead */
if (t->mode == TFM_SEQ_SLIDE) {
@@ -4862,10 +4879,11 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
}
else if (t->spacetype == SPACE_NODE) {
SpaceNode *snode= (SpaceNode *)t->sa->spacedata.first;
- ED_node_update_hierarchy(C, snode->edittree);
-
- if (canceled == 0)
+ if (canceled == 0) {
+ ED_node_post_apply_transform(C, snode->edittree);
+
ED_node_link_insert(t->sa);
+ }
/* clear link line */
ED_node_link_intersect_test(t->sa, 0);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index b404c4ef669..152576e3303 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1628,7 +1628,7 @@ void calculatePropRatio(TransInfo *t)
td->factor = 0.0f;
restoreElement(td);
}
- else if ((connected && (td->flag & TD_NOTCONNECTED || td->dist > t->prop_size)) ||
+ else if ((connected && (td->flag & TD_NOTCONNECTED || td->dist > t->prop_size)) ||
(connected == 0 && td->rdist > t->prop_size))
{
/*
diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c
index b25c76fe193..9c485e17dc7 100644
--- a/source/blender/editors/transform/transform_input.c
+++ b/source/blender/editors/transform/transform_input.c
@@ -87,11 +87,11 @@ static void InputSpringFlip(TransInfo *t, MouseInput *mi, const int mval[2], flo
/* flip scale */
/* values can become really big when zoomed in so use longs [#26598] */
- if ((long long int)(mi->center[0] - mval[0]) * (long long int)(mi->center[0] - mi->imval[0]) +
- (long long int)(mi->center[1] - mval[1]) * (long long int)(mi->center[1] - mi->imval[1]) < 0)
- {
+ if ((long long int)(mi->center[0] - mval[0]) * (long long int)(mi->center[0] - mi->imval[0]) +
+ (long long int)(mi->center[1] - mval[1]) * (long long int)(mi->center[1] - mi->imval[1]) < 0)
+ {
output[0] *= -1.0f;
- }
+ }
}
static void InputTrackBall(TransInfo *UNUSED(t), MouseInput *mi, const int mval[2], float output[3])
@@ -206,10 +206,10 @@ static void InputCustomRatio(TransInfo *UNUSED(t), MouseInput *mi, const int mva
mdx = mval[0] - data[2];
mdy = mval[1] - data[3];
- distance = (length != 0.0) ? (mdx * dx + mdy * dy) / length: 0.0;
+ distance = (length != 0.0) ? (mdx * dx + mdy * dy) / length : 0.0;
}
- output[0] = (length != 0.0) ? (double)(distance / length) : 0.0f;
+ output[0] = (length != 0.0) ? (double)(distance / length) : 0.0;
}
}
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index a869af56537..7d0e9dd6005 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -662,9 +662,9 @@ static void partial_doughnut(float radring, float radhole, int start, int end, i
float cos_theta, sin_theta;
float cos_theta1, sin_theta1;
float ring_delta, side_delta;
- int i, j, docaps= 1;
+ int i, j, do_caps = TRUE;
- if (start==0 && end==nrings) docaps= 0;
+ if (start == 0 && end == nrings) do_caps = FALSE;
ring_delta= 2.0f*(float)M_PI/(float)nrings;
side_delta= 2.0f*(float)M_PI/(float)nsides;
@@ -678,7 +678,7 @@ static void partial_doughnut(float radring, float radhole, int start, int end, i
cos_theta1= (float)cos(theta1);
sin_theta1= (float)sin(theta1);
- if (docaps && i==start) { // cap
+ if (do_caps && i==start) { // cap
glBegin(GL_POLYGON);
phi= 0.0;
for (j= nsides; j >= 0; j--) {
@@ -710,7 +710,7 @@ static void partial_doughnut(float radring, float radhole, int start, int end, i
glEnd();
}
- if (docaps && i==end) { // cap
+ if (do_caps && i==end) { // cap
glBegin(GL_POLYGON);
phi= 0.0;
for (j= nsides; j >= 0; j--) {
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 3f87329f017..870f8c742e1 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -27,6 +27,7 @@
#include "MEM_guardedalloc.h"
+#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "RNA_access.h"
@@ -63,6 +64,7 @@ static char OP_TRANSLATION[] = "TRANSFORM_OT_translate";
static char OP_ROTATION[] = "TRANSFORM_OT_rotate";
static char OP_TOSPHERE[] = "TRANSFORM_OT_tosphere";
static char OP_RESIZE[] = "TRANSFORM_OT_resize";
+static char OP_SKIN_RESIZE[] = "TRANSFORM_OT_skin_resize";
static char OP_SHEAR[] = "TRANSFORM_OT_shear";
static char OP_WARP[] = "TRANSFORM_OT_warp";
static char OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten";
@@ -79,6 +81,7 @@ static void TRANSFORM_OT_translate(struct wmOperatorType *ot);
static void TRANSFORM_OT_rotate(struct wmOperatorType *ot);
static void TRANSFORM_OT_tosphere(struct wmOperatorType *ot);
static void TRANSFORM_OT_resize(struct wmOperatorType *ot);
+static void TRANSFORM_OT_skin_resize(struct wmOperatorType *ot);
static void TRANSFORM_OT_shear(struct wmOperatorType *ot);
static void TRANSFORM_OT_warp(struct wmOperatorType *ot);
static void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot);
@@ -97,6 +100,7 @@ static TransformModeItem transform_modes[] =
{OP_ROTATION, TFM_ROTATION, TRANSFORM_OT_rotate},
{OP_TOSPHERE, TFM_TOSPHERE, TRANSFORM_OT_tosphere},
{OP_RESIZE, TFM_RESIZE, TRANSFORM_OT_resize},
+ {OP_SKIN_RESIZE, TFM_SKIN_RESIZE, TRANSFORM_OT_skin_resize},
{OP_SHEAR, TFM_SHEAR, TRANSFORM_OT_shear},
{OP_WARP, TFM_WARP, TRANSFORM_OT_warp},
{OP_SHRINK_FATTEN, TFM_SHRINKFATTEN, TRANSFORM_OT_shrink_fatten},
@@ -118,6 +122,7 @@ EnumPropertyItem transform_mode_types[] =
{TFM_TRANSLATION, "TRANSLATION", 0, "Translation", ""},
{TFM_ROTATION, "ROTATION", 0, "Rotation", ""},
{TFM_RESIZE, "RESIZE", 0, "Resize", ""},
+ {TFM_SKIN_RESIZE, "SKIN_RESIZE", 0, "Skin Resize", ""},
{TFM_TOSPHERE, "TOSPHERE", 0, "Tosphere", ""},
{TFM_SHEAR, "SHEAR", 0, "Shear", ""},
{TFM_WARP, "WARP", 0, "Warp", ""},
@@ -542,6 +547,35 @@ static void TRANSFORM_OT_resize(struct wmOperatorType *ot)
Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP|P_OPTIONS);
}
+static int skin_resize_poll(bContext *C)
+{
+ struct Object *obedit = CTX_data_edit_object(C);
+ if (obedit && obedit->type == OB_MESH) {
+ BMEditMesh *em = BMEdit_FromObject(obedit);
+ return (em && CustomData_has_layer(&em->bm->vdata, CD_MVERT_SKIN));
+ }
+ return 0;
+}
+
+static void TRANSFORM_OT_skin_resize(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Skin Resize";
+ ot->description = "Scale selected vertices' skin radii";
+ ot->idname = OP_SKIN_RESIZE;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
+
+ /* api callbacks */
+ ot->invoke = transform_invoke;
+ ot->exec = transform_exec;
+ ot->modal = transform_modal;
+ ot->cancel = transform_cancel;
+ ot->poll = skin_resize_poll;
+
+ RNA_def_float_vector(ot->srna, "value", 3, VecOne, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX);
+
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP|P_OPTIONS);
+}
static void TRANSFORM_OT_trackball(struct wmOperatorType *ot)
{
@@ -901,6 +935,8 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
kmi = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "texture_space", TRUE);
+ WM_keymap_add_item(keymap, OP_SKIN_RESIZE, AKEY, KM_PRESS, KM_CTRL, 0);
+
break;
case SPACE_ACTION:
kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
@@ -944,11 +980,9 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE);
break;
case SPACE_NODE:
- WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0);
- RNA_boolean_set(kmi->ptr, "release_confirm", TRUE);
- kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_translate_attach", GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_A, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_S, KM_ANY, 0, 0);
WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
@@ -956,10 +990,12 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
/* detach and translate */
WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", DKEY, KM_PRESS, KM_ALT, 0);
-
/* XXX release_confirm is set in the macro operator definition */
WM_keymap_add_item(keymap, "NODE_OT_move_detach_links_release", EVT_TWEAK_A, KM_ANY, KM_ALT, 0);
WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", EVT_TWEAK_S, KM_ANY, KM_ALT, 0);
+
+ /* dettach and translate */
+ WM_keymap_add_item(keymap, "NODE_OT_detach_translate_attach", FKEY, KM_PRESS, KM_ALT, 0);
break;
case SPACE_SEQ:
WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 04207643aa4..91f62291450 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -476,7 +476,7 @@ static int count_bone_select(bArmature *arm, ListBase *lb, int do_it)
if (bone->flag & BONE_SELECTED) {
bone->flag |= BONE_TRANSFORM;
total++;
- do_next= 0; // no transform on children if one parent bone is selected
+ do_next = FALSE; // no transform on children if one parent bone is selected
}
}
}
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index b875886e80a..137d0838587 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -323,7 +323,7 @@ void applySnapping(TransInfo *t, float *vec)
// Time base quirky code to go around findnearest slowness
/* !TODO! add exception for object mode, no need to slow it down then */
- if (current - t->tsnap.last >= 0.01) {
+ if (current - t->tsnap.last >= 0.01) {
t->tsnap.calcSnap(t, vec);
t->tsnap.targetSnap(t);
@@ -689,7 +689,7 @@ static float RotationBetween(TransInfo *t, float p1[3], float p2[3])
if (dot_v3v3(tmp, axis) < 0.0f)
angle = -acos(dot_v3v3(start, end));
- else
+ else
angle = acos(dot_v3v3(start, end));
}
else {
@@ -1066,7 +1066,7 @@ static int snapFace(ARegion *ar, float v1co[3], float v2co[3], float v3co[3], fl
project_int(ar, location, screen_loc);
new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]);
- if (new_dist <= *dist && new_depth < *depth) {
+ if (new_dist <= *dist && new_depth < *depth) {
*depth = new_depth;
retval = 1;
diff --git a/source/blender/editors/util/editmode_undo.c b/source/blender/editors/util/editmode_undo.c
index ac0f8306259..9aaccb57fe2 100644
--- a/source/blender/editors/util/editmode_undo.c
+++ b/source/blender/editors/util/editmode_undo.c
@@ -209,19 +209,19 @@ static void undo_clean_stack(bContext *C)
uel = undobase.first;
while (uel) {
void *editdata = uel->getdata(C);
- int isvalid = 0;
+ int is_valid = FALSE;
next = uel->next;
/* for when objects are converted, renamed, or global undo changes pointers... */
if (uel->type == obedit->type) {
if (strcmp(uel->id.name, obedit->id.name) == 0) {
if (uel->validate_undo == NULL)
- isvalid = 1;
+ is_valid = TRUE;
else if (uel->validate_undo(uel->undodata, editdata))
- isvalid = 1;
+ is_valid = TRUE;
}
}
- if (isvalid)
+ if (is_valid)
uel->ob = obedit;
else {
if (uel == curundo)
diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c
index cd88614f8fe..e7a9ab9ca73 100644
--- a/source/blender/editors/util/undo.c
+++ b/source/blender/editors/util/undo.c
@@ -165,15 +165,15 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
}
}
else {
- int do_glob_undo = 0;
+ int do_glob_undo = FALSE;
if (obact && obact->mode & OB_MODE_TEXTURE_PAINT) {
if (!ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step, undoname))
- do_glob_undo = 1;
+ do_glob_undo = TRUE;
}
else if (obact && obact->mode & OB_MODE_SCULPT) {
if (!ED_undo_paint_step(C, UNDO_PAINT_MESH, step, undoname))
- do_glob_undo = 1;
+ do_glob_undo = TRUE;
}
else if (obact && obact->mode & OB_MODE_PARTICLE_EDIT) {
if (step == 1)
@@ -182,7 +182,7 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
PE_redo(CTX_data_scene(C));
}
else {
- do_glob_undo = 1;
+ do_glob_undo = TRUE;
}
if (do_glob_undo) {
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index a4227d92e27..53331dbe079 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -2490,7 +2490,8 @@ static int border_select_exec(bContext *C, wmOperator *op)
}
else if (pinned) {
if ((luv->flag & MLOOPUV_PINNED) &&
- BLI_in_rctf(&rectf, luv->uv[0], luv->uv[1])) {
+ BLI_in_rctf(&rectf, luv->uv[0], luv->uv[1]))
+ {
if (select) uvedit_uv_select_enable(em, scene, l, FALSE);
else uvedit_uv_select_disable(em, scene, l);
}
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c
index d596c553f7e..4a6de737e7a 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.c
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.c
@@ -4457,6 +4457,9 @@ void param_average(ParamHandle *handle)
for (i = 0; i < phandle->ncharts; i++) {
PFace *f;
chart = phandle->charts[i];
+
+ if (chart->flag & PCHART_NOPACK)
+ continue;
chart->u.pack.area = 0.0f; /* 3d area */
chart->u.pack.rescale = 0.0f; /* UV area, abusing rescale for tmp storage, oh well :/ */
@@ -4479,6 +4482,10 @@ void param_average(ParamHandle *handle)
for (i = 0; i < phandle->ncharts; i++) {
chart = phandle->charts[i];
+
+ if (chart->flag & PCHART_NOPACK)
+ continue;
+
if (chart->u.pack.area != 0.0f && chart->u.pack.rescale != 0.0f) {
fac = chart->u.pack.area / chart->u.pack.rescale;
diff --git a/source/blender/editors/uvedit/uvedit_smart_stitch.c b/source/blender/editors/uvedit/uvedit_smart_stitch.c
index b30821dc56a..43f3e81ae92 100644
--- a/source/blender/editors/uvedit/uvedit_smart_stitch.c
+++ b/source/blender/editors/uvedit/uvedit_smart_stitch.c
@@ -319,7 +319,7 @@ static void stitch_calculate_island_snapping(StitchState *state, PreviewPosition
int i;
UvElement *element;
- for (i = 0; i < state->element_map->totalIslands; i++) {
+ for (i = 0; i < state->element_map->totalIslands; i++) {
if (island_stitch_data[i].addedForPreview) {
int numOfIslandUVs = 0, j;
@@ -649,7 +649,7 @@ static int stitch_process_data(StitchState *state, Scene *scene, int final)
* Setup preview for stitchable islands *
*****************************************/
if (state->snap_islands) {
- for (i = 0; i < state->element_map->totalIslands; i++) {
+ for (i = 0; i < state->element_map->totalIslands; i++) {
if (island_stitch_data[i].addedForPreview) {
int numOfIslandUVs = 0, j;
UvElement *element;
@@ -827,7 +827,7 @@ static int stitch_process_data(StitchState *state, Scene *scene, int final)
UvEdge *edge = state->edges + i;
if ((state->uvs[edge->uv1]->flag & STITCH_STITCHABLE) && (state->uvs[edge->uv2]->flag & STITCH_STITCHABLE)) {
stitch_island_calculate_edge_rotation(edge, state, final_position, uvfinal_map, island_stitch_data);
- island_stitch_data[state->uvs[edge->uv1]->island].use_edge_rotation = 1;
+ island_stitch_data[state->uvs[edge->uv1]->island].use_edge_rotation = TRUE;
}
}
diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c
index 833aefc20aa..f09310e53c7 100644
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@ -102,7 +102,7 @@ static GPUBufferPool *gpu_buffer_pool_new(void)
if (useVBOs == -1)
useVBOs = (GLEW_ARB_vertex_buffer_object ? 1 : 0);
- pool = MEM_callocN(sizeof(GPUBufferPool), "GPUBuffer");
+ pool = MEM_callocN(sizeof(GPUBufferPool), "GPUBuffer_Pool");
pool->maxsize = MAX_FREE_GPU_BUFFERS;
pool->buffers = MEM_callocN(sizeof(GPUBuffer *) * pool->maxsize,
@@ -192,6 +192,12 @@ GPUBuffer *GPU_buffer_alloc(int size)
GPUBuffer *buf;
int i, bufsize, bestfit = -1;
+ /* bad case, leads to leak of buf since buf->pointer will allocate
+ * NULL, leading to return without cleanup. In any case better detect early
+ * psy-fi */
+ if (size == 0)
+ return NULL;
+
pool = gpu_get_global_buffer_pool();
/* not sure if this buffer pool code has been profiled much,
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c
index ebfedea3968..6538da2eb61 100644
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@ -449,8 +449,8 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int
/* if tiling mode or repeat changed, change texture matrix to fit */
if (GTS.tilemode!=GTS.curtilemode || GTS.curtileXRep!=GTS.tileXRep ||
- GTS.curtileYRep != GTS.tileYRep) {
-
+ GTS.curtileYRep != GTS.tileYRep)
+ {
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
@@ -1099,7 +1099,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O
GMS.use_alpha_pass = (do_alpha_after != NULL);
GMS.is_alpha_pass = (v3d && v3d->transp);
if (GMS.use_alpha_pass)
- *do_alpha_after = 0;
+ *do_alpha_after = FALSE;
if (GMS.totmat > FIXEDMAT) {
GMS.matbuf= MEM_callocN(sizeof(GPUMaterialFixed)*GMS.totmat, "GMS.matbuf");
@@ -1156,11 +1156,11 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O
}
}
- /* setting do_alpha_after = 1 indicates this object needs to be
+ /* setting 'do_alpha_after = TRUE' indicates this object needs to be
* drawn in a second alpha pass for improved blending */
if (do_alpha_after && !GMS.is_alpha_pass)
if (ELEM3(alphablend, GPU_BLEND_ALPHA, GPU_BLEND_ADD, GPU_BLEND_ALPHA_SORT))
- *do_alpha_after= 1;
+ *do_alpha_after = TRUE;
GMS.alphablend[a]= alphablend;
}
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index f75c1576fb9..31008ff8685 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -539,7 +539,8 @@ static void add_to_diffuse(GPUMaterial *mat, Material *ma, GPUShadeInput *shi, G
GPUNodeLink *fac, *tmp, *addcol;
if (!(mat->scene->gm.flag & GAME_GLSL_NO_RAMPS) &&
- ma->ramp_col && (ma->mode & MA_RAMP_COL)) {
+ ma->ramp_col && (ma->mode & MA_RAMP_COL))
+ {
/* MA_RAMP_IN_RESULT is exceptional */
if (ma->rampin_col==MA_RAMP_IN_RESULT) {
addcol = shi->rgb;
@@ -579,7 +580,8 @@ static void ramp_spec_result(GPUShadeInput *shi, GPUNodeLink **spec)
GPUNodeLink *fac;
if (!(mat->scene->gm.flag & GAME_GLSL_NO_RAMPS) &&
- ma->ramp_spec && ma->rampin_spec==MA_RAMP_IN_RESULT) {
+ ma->ramp_spec && ma->rampin_spec==MA_RAMP_IN_RESULT)
+ {
GPU_link(mat, "ramp_rgbtobw", *spec, &fac);
/* colorband + blend */
@@ -706,7 +708,7 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la
i = is;
GPU_link(mat, "shade_visifac", i, visifac, shi->refl, &i);
- GPU_link(mat, "shade_mul_value", i, GPU_dynamic_uniform(lamp->dyncol, GPU_DYNAMIC_LAMP_DYNCOL, lamp->ob), &lcol);
+ GPU_link(mat, "set_value", GPU_dynamic_uniform(lamp->dyncol, GPU_DYNAMIC_LAMP_DYNCOL, lamp->ob), &lcol);
shade_light_textures(mat, lamp, &lcol);
#if 0
@@ -727,7 +729,8 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la
GPU_dynamic_texture(lamp->tex, GPU_DYNAMIC_SAMPLER_2DSHADOW, lamp->ob),
GPU_dynamic_uniform((float*)lamp->dynpersmat, GPU_DYNAMIC_LAMP_DYNPERSMAT, lamp->ob),
GPU_uniform(&lamp->bias), GPU_uniform(&lamp->la->bleedbias), inp, &shadfac);
- } else {
+ }
+ else {
GPU_link(mat, "test_shadowbuf",
GPU_builtin(GPU_VIEW_POSITION),
GPU_dynamic_texture(lamp->tex, GPU_DYNAMIC_SAMPLER_2DSHADOW, lamp->ob),
@@ -775,7 +778,8 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la
if (mat->scene->gm.flag & GAME_GLSL_NO_SHADERS);
else if (!(lamp->mode & LA_NO_SPEC) && !(lamp->mode & LA_ONLYSHADOW) &&
- (GPU_link_changed(shi->spec) || ma->spec != 0.0f)) {
+ (GPU_link_changed(shi->spec) || ma->spec != 0.0f))
+ {
if (lamp->type == LA_HEMI) {
GPU_link(mat, "shade_hemi_spec", vn, lv, view, GPU_uniform(&ma->spec), shi->har, visifac, &t);
GPU_link(mat, "shade_add_spec", t, lcol, shi->specrgb, &outcol);
@@ -952,7 +956,7 @@ static void do_material_tex(GPUShadeInput *shi)
/*char *lastuvname = NULL;*/ /*UNUSED*/
float one = 1.0f, norfac, ofs[3];
int tex_nr, rgbnor, talpha;
- int init_done = 0, iBumpSpacePrev = 0; /* Not necessary, quiting gcc warning. */
+ int init_done = FALSE, iBumpSpacePrev = 0; /* Not necessary, quiting gcc warning. */
GPUNodeLink *vNorg, *vNacc, *fPrevMagnitude;
int iFirstTimeNMap=1;
int found_deriv_map = 0;
@@ -1184,7 +1188,7 @@ static void do_material_tex(GPUShadeInput *shi)
// copy shi->vn to vNorg and vNacc, set magnitude to 1
GPU_link(mat, "mtex_bump_normals_init", shi->vn, &vNorg, &vNacc, &fPrevMagnitude);
iBumpSpacePrev = 0;
- init_done = 1;
+ init_done = TRUE;
}
// find current bump space
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 9498bf92446..65c0bcb3c63 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -2127,12 +2127,23 @@ void node_tex_environment(vec3 co, sampler2D ima, out vec4 color)
color = texture2D(ima, vec2(u, v));
}
+void node_tex_environment_empty(vec3 co, out vec4 color)
+{
+ color = vec4(0.0);
+}
+
void node_tex_image(vec3 co, sampler2D ima, out vec4 color, out float alpha)
{
color = texture2D(ima, co.xy);
alpha = color.a;
}
+void node_tex_image_empty(vec3 co, out vec4 color, out float alpha)
+{
+ color = vec4(0.0);
+ alpha = 0.0;
+}
+
void node_tex_magic(vec3 p, float scale, float distortion, out vec4 color, out float fac)
{
color = vec4(1.0);
@@ -2195,6 +2206,15 @@ void node_light_falloff(float strength, float tsmooth, out float quadratic, out
constant = strength;
}
+void node_object_info(out vec3 location, out float object_index, out float material_index, out float random)
+{
+ location = vec3(0.0);
+ object_index = 0.0;
+ material_index = 0.0;
+ random = 0.0;
+}
+
+
/* output */
void node_output_material(vec4 surface, vec4 volume, float displacement, out vec4 result)
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl.c b/source/blender/gpu/shaders/gpu_shader_material.glsl.c
index 6d08d4c8cec..99fb18a98ec 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl.c
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl.c
@@ -1,1592 +1,1604 @@
/* DataToC output of file <gpu_shader_material_glsl> */
-int datatoc_gpu_shader_material_glsl_size = 50823;
+int datatoc_gpu_shader_material_glsl_size = 51212;
char datatoc_gpu_shader_material_glsl[] = {
- 10,102,108,111, 97,116, 32,
-101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,112,
-111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114,103,
- 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
-111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, 44, 32,104, 44, 32,115, 44, 32,118,
- 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, 97,120, 32, 61, 32,109, 97,120, 40,
-114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,
-109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114,103, 98, 91, 49, 93, 44, 32,114,103,
- 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, 99,109,105,110, 59, 10, 10, 9,118,
- 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, 41, 10, 9, 9,115, 32, 61, 32, 99,
-100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,
- 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9,
- 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, 99, 32, 61, 32, 40,118,101, 99, 51,
- 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, 98, 46,120,121,122, 41, 47, 99,100,
-101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 99, 91,
- 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114,103, 98, 46,121, 61, 61, 99,109, 97,
-120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, 50, 93, 59, 10, 9, 9,101,108,115,
-101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, 59, 10, 10, 9, 9,104, 32, 47, 61,
- 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9,104, 32, 43, 61, 32, 49, 46, 48, 59,
- 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32,115, 44, 32,118, 44, 32,114,103, 98,
- 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, 40,118,101, 99, 52, 32,104,115,118,
- 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,105, 44, 32,102,
- 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, 99, 51, 32,114,103, 98, 59, 10, 10,
- 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, 93, 59, 10, 9,118, 32, 61, 32,104,
-115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 32, 61, 32,118,101,
- 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,104, 61, 61,
- 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, 32, 42, 61, 32, 54, 46, 48, 59, 10,
- 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, 32, 45, 32,105, 59, 10, 9, 9,114,
-103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, 32, 61, 32,118, 42, 40, 49, 46, 48,
- 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, 41, 59, 10, 9, 9,116, 32, 61, 32,
-118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40,105, 32,
- 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, 44, 32,112, 41, 59, 10, 9, 9,101,
-108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,113, 44, 32,
-118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 50, 46, 48, 41, 32,114,103, 98, 32,
- 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61,
- 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,
-101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,116, 44, 32,112, 44,
- 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,112, 44, 32,113, 41, 59,
- 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 44, 32,104,115,118, 46,119, 41, 59,
- 10,125, 10, 10,102,108,111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,102,108,111, 97,
-116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53, 41, 10, 9, 9,114,101,116,117,114,110,
- 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40, 49, 46, 48, 47, 49, 50, 46, 57, 50, 41,
- 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40, 99, 32, 43, 32, 48, 46, 48, 53, 53, 41,
- 42, 40, 49, 46, 48, 47, 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,108,105,110,
-101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32,
- 60, 32, 48, 46, 48, 48, 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63,
- 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,
- 49, 46, 48, 53, 53, 32, 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52, 41, 32, 45, 32, 48, 46, 48, 53, 53, 59,
- 10,125, 10, 10,118,111,105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,118,101, 99, 52, 32,
- 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,
-108, 95,116,111, 46,114, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,
-114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101,
- 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,115,
-114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,
-111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,108,105,
-110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,111,
-117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,108,105,
-110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,111,
-108, 95,116,111, 46,103, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,
-114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111,
- 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99,
-111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49,
- 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 35,100,101,102,105,110,101, 32, 77, 95, 49, 95, 80, 73,
- 32, 48, 46, 51, 49, 56, 51, 48, 57, 56, 56, 54, 49, 56, 51, 55, 57, 48, 54, 57, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47,
- 10, 10,118,111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,
-111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99,
- 52, 40, 97,116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53,
- 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32,
- 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-103,101,111,109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,
-119,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,
-118, 44, 32,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108,
- 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116,
- 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,118, 99,111,108, 95, 97,108,112,104, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,114,111,
-110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118,105,101,119, 32, 61, 32,110,
-111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118,105,101,119,
-105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,111,
-114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,
-117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,
-114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,
-110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,118, 99,
-111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,118, 99,111,108, 95, 97,108,112,104, 97, 32, 61, 32, 97,116,116,118, 99,111,108,
- 46, 97, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,
-112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97,116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,
-105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44,
- 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123,
- 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32,118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41,
- 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101,
- 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105,110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109,
- 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99,
- 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,
-111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,101,119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,
-117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,
-117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,
-108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101,
- 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108,
- 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41,
- 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,
-100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,
-116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,
-118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,
-109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,
- 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,
-102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,
-111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118,
- 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,
-111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,
-116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,
-115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,
- 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48,
- 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110,
- 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,
-118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38,
- 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,
-108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,
-100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111,
- 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102,
- 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,
-108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59,
- 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,
-111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,
-102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,
-117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10,
- 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
-104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,
-118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,
-111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,
-108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,
-108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,
-102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,
-101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,
-118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,
-116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114,
- 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108,
- 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,
-108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118,
- 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,102,108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48,
- 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,
-101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,
-104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51,
- 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,
-116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,
-117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115,
- 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,
-116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
-117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,
-111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,
-115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109,
- 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,
-116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41,
- 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,
-108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,
-105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,
-116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,
+ 10,102,108,111, 97,116, 32,101,120,112, 95, 98,
+108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46,
+ 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,
+104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
+ 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,
+108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48,
+ 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61,
+ 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41,
+ 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109,
+ 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97,
+ 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32,
+ 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32,
+ 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120,
+ 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59,
+ 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32,
+ 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32,
+ 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61,
+ 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59,
+ 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10,
+ 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,
+125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116,
+ 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,
+113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,
+104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93,
+ 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44,
+ 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10,
+ 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61,
+ 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,
+118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10,
+ 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46,
+ 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46,
+ 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,
+102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41,
+ 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99,
+ 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41,
+ 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32,
+ 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10,
+ 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10,
+ 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10,102,
+108,111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,
+123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60,
+ 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40, 49, 46, 48, 47, 49, 50, 46, 57, 50, 41, 59, 10, 9,101,108,
+115,101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40, 99, 32, 43, 32, 48, 46, 48, 53, 53, 41, 42, 40, 49, 46, 48,
+ 47, 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,108,105,110,101, 97,114,114,103,
+ 98, 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48,
+ 48, 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58,
+ 32, 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32, 49, 46, 48, 53, 53,
+ 32, 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52, 41, 32, 45, 32, 48, 46, 48, 53, 53, 59, 10,125, 10, 10,118,
+111,105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,
+114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,
+114, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114,
+ 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98,
+ 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,115,114,103, 98, 95,116,
+111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111,
+ 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,108,105,110,101, 97,114,114,
+103, 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101,
+ 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,108,105,110,101, 97,114,114,
+103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,
+103, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103,
+ 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98,
+ 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,
+111,109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, 53, 57, 50, 54, 53,
+ 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 35,100,101,102,105,110,101, 32, 77, 95, 49, 95, 80, 73, 32, 48, 46, 51, 49,
+ 56, 51, 48, 57, 56, 56, 54, 49, 56, 51, 55, 57, 48, 54, 57, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 83, 72,
+ 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,
+100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,
+117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97,116,116,
+118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, 32, 97,
+116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,117,118,
+ 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
+117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99,
+ 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111,109, 40,
+118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118,109,
+ 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,118,101,
+ 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111,117,116,
+ 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,
+118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, 99, 51,
+ 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,118, 99,111,108, 95, 97,108,112,104, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,114,111,110,116, 98, 97, 99,
+107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,
+105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,
+116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,111,114, 99,111, 32, 61,
+ 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,117,118, 44, 32,117,
+118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114, 41, 59, 9, 47,
+ 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,
+101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,118, 99,111,108, 44, 32,118,
+ 99,111,108, 41, 59, 10, 9,118, 99,111,108, 95, 97,108,112,104, 97, 32, 61, 32, 97,116,116,118, 99,111,108, 46, 97, 59, 10, 9,
+102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103,
+ 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97,116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99,
+ 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,
+116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,
+118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32,118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122,
+ 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,
+ 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105,110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61,
+ 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,
+118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,
+116, 32,118,101, 99, 51, 32,111,117,116,118,105,101,119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,
+116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,
+116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,
+104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59,
+ 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,
+111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
+117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
+104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108,
+ 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61,
+ 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,
+112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,
+102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42,
+ 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116,
+ 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,
+118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,
+108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47,
+ 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118,
+ 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32,
+ 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,
+102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,
+111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,
+116, 97,110,103,101,110,116, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,
+118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,
+105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118,
+ 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41,
+ 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,
+109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,
+117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32,
+ 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,
+101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
+104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,
+ 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,
+105,100, 32,109, 97,116,104, 95,112,111,119, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,
+108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108,
+ 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118,
+ 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,
+111,105,100, 32,109, 97,116,104, 95,108,111,103, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118,
+ 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108,
+ 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108,
+ 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101,
+ 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120,
+ 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44,
+ 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118,
+ 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,
+108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,
+125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114,
+ 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,
+104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,
+102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41,
+ 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32,
+ 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110,
+ 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,
+111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48,
+ 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,
+108,111, 97,116, 32,119,105,100,116,104, 44, 32,102,108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48,
+ 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114,
+ 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100,
+ 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,
+101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32,
+ 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99,
+ 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,
+101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117,
+ 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,
118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99,
- 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,
-118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,
-118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101,
- 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61,
- 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104,
- 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,
-108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,
-116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125,
- 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101,103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,
-117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111,117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,
-111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105,114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,
-117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116,
- 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,110,111,114, 59, 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,
-116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,
-102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,
-117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,
-118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50,
- 40, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,120, 59, 10, 9,111,117,
-116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99,
- 50, 40, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,121, 59, 10, 9,111,
-117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101,
- 99, 50, 40, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,122, 59, 10, 10,
- 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32, 40,111,117,116,
-118,101, 99, 42,102, 97, 99, 41, 32, 43, 32, 40,118,101, 99, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10,125, 10, 10,
-118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,
- 99,111,108, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99,
- 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 50,
- 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,
-109, 97,112, 44, 32,118,101, 99, 50, 40, 99,111,108, 46,114, 44, 32, 48, 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46,
-114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,
-112, 44, 32,118,101, 99, 50, 40,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50,
- 40, 99,111,108, 46,103, 44, 32, 48, 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46,103, 59, 10, 9,111,117,116, 99,111,
-108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40,116,
-101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 99,111,108, 46, 98, 44, 32, 48,
- 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46, 98, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46,
- 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32, 40,111,117,116, 99,111,108, 42,102, 97, 99, 41, 32, 43, 32, 40, 99,111,
-108, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97,
- 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108,
- 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10,
- 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99,
- 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,
-105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,
- 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116,
- 95,118, 97,108,117,101, 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,
-111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101,
-114,111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,
-118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111,
- 40,111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101,
- 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116,
- 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,
-118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44,
- 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32,
- 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,
-125, 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,
- 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108,
- 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50,
- 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,
-111,105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108,
- 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,
-117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102,
- 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100,
- 32,109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49,
- 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10,
- 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,
-111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61,
- 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,
-118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32,
- 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,
-105,100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,
-111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41,
- 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,
- 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9,
- 9,111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50,
- 46,114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97,
- 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46,
- 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48,
- 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,
- 42, 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32,
- 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41,
- 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,
- 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46,
- 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61,
- 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,
-108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100,
- 32,109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,
-101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97,
- 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59,
- 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120,
- 95,100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32,
- 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32,
- 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
-109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10,
- 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102,
- 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50,
- 46,114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32,
- 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,
-111,108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108,
- 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,
- 98, 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116,
- 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,
-118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44,
- 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32,
- 97, 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,
- 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111,
- 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,
-116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97,
- 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40,
- 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108,
- 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102,
-108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,
-111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,
-102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,
-120, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,
-111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101,
- 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50,
- 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,
-112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49,
- 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,
-116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,
-109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,
-101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49,
- 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9,
- 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103,
- 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102,
- 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,
-117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,
-111,117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103,
- 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112,
- 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,
-111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102,
- 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10,
- 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62,
- 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10,
- 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,
-120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99,
+ 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101,
+ 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,
+118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,
+118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99,
+ 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
+117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,
+104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,
+117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99,
+ 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,
+111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101,
+ 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118,
+ 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,
+118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,
+115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,
+101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,
+118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41,
+ 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,
+100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101,103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101,
+ 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111,117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,
+111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105,114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101,
+ 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,
+111,117,116,110,111,114, 32, 61, 32,110,111,114, 59, 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114,
+ 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,102,108,111, 97,116,
+ 32,102, 97, 99, 44, 32,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109,
+ 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 46,120,
+ 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 40,118,101, 99,
+ 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,
+121, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 40,118,101,
+ 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99,
+ 46,122, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 40,118,
+101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,122, 59, 10, 10, 9,105,102, 32, 40,
+102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32, 40,111,117,116,118,101, 99, 42,102,
+ 97, 99, 41, 32, 43, 32, 40,118,101, 99, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10,125, 10, 10,118,111,105,100, 32,
+ 99,117,114,118,101,115, 95,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,
+115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
+ 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,
+118,101,109, 97,112, 44, 32,118,101, 99, 50, 40,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,
+118,101, 99, 50, 40, 99,111,108, 46,114, 44, 32, 48, 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46,114, 59, 10, 9,111,
+117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101,
+ 99, 50, 40,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 99,111,108, 46,
+103, 44, 32, 48, 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61,
+ 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40,116,101,120,116,117,114,
+101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 99,111,108, 46, 98, 44, 32, 48, 46, 48, 41, 41, 46,
+ 97, 44, 32, 48, 46, 48, 41, 41, 46, 98, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,
+111,117,116, 99,111,108, 32, 61, 32, 40,111,117,116, 99,111,108, 42,102, 97, 99, 41, 32, 43, 32, 40, 99,111,108, 42, 40, 49, 46,
+ 48, 45,102, 97, 99, 41, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,
+118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,
+118,111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
+111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100,
+ 32,115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
+ 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,
+116, 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123,
+ 10, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,
+101, 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,
+108, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101,114,111, 40,111,117,
+116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 51, 40,
+ 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, 40,111,117,116, 32,
+118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 52, 40, 48, 46,
+ 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44,
+ 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
+111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44,
+ 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 50, 44,
+ 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,
+105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44,
+ 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
+102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116,
+ 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, 32,102, 97, 99,
+ 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,
+105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101,
+ 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99,
+ 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108,
+ 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10,
+ 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,
+115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99,
52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32,
- 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,
-109,112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61,
- 32, 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114,
- 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48,
- 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32,
- 45, 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,
-108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9,
- 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,
-114, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50,
- 46,103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61,
- 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46,
- 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,
- 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41,
- 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,
-108, 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,
-108, 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98,
- 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40,
- 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,
-117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46,
- 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,
- 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111,
- 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,
-116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97,
- 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32,
- 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,
-115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44,
- 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,
-114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120,
- 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112,
- 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44,
- 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125,
- 10, 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,
-111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41,
- 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,
- 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98,
- 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121,
- 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,
-118, 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99,
- 42,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,
-108, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99,
- 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48,
- 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59,
- 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,
-111,108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118,
- 50, 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,
-115,118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101,
- 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
- 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46,
- 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,
-117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,
-116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,
-105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118,
- 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59,
- 10, 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,
-104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,
-111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49,
- 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,111,102,116, 40,102,108,111, 97,116, 32,102, 97,
+ 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102,
+ 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52,
+ 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118,101, 99, 52, 40,
+ 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 49, 41,
+ 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,
+120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,
+118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,
+ 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,
+116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,
+111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,
+111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,
+101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32,
+ 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,
+117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9,
+ 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50,
+ 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97,
+ 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, 42, 40, 49, 46,
+ 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48,
+ 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,
+ 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32,
+ 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46, 98, 41,
+ 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,
+115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,
+111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,
+108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,
+105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116,
+ 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,118, 40,
+102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44,
+ 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112,
+ 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49,
+ 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,
+ 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,
+117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, 46,114, 59, 10, 9,
+105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,
+109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,111,108, 50, 46,103,
+ 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, 98, 32, 61, 32,
+102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, 47, 99,111,108,
+ 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, 32,102, 97, 99, 44,
+ 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
+111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44,
+ 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, 98,115, 40, 99,
+111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,
+111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,102, 97,
+ 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99,
+ 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46,
+ 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99,111,108, 49, 46,
+114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32,
+ 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,
+102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,
+101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32,
+ 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, 40, 99,111,108,
+ 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32,
+ 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, 40,102,108,111, 97,
+116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116,
+ 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99,
+ 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,
+102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112,
+ 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61,
+ 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,
+105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9,
+ 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,
+111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 33, 61, 32, 48,
+ 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,
+108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108,
+ 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,
+108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46,
+ 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,
+ 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,
+109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40,116,109,112, 32,
+ 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,
+101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41,
+ 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,
+116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,117,114,
+110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108,
+ 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,
+109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,109,112, 44, 32,102,
+ 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49,
+ 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,105,102,
+ 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,
+101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116,
+ 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61,
+ 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,
+111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,
+109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,
+105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59,
+ 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,
+117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103,
+ 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,
+116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61,
+ 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59,
+ 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46,
+ 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45,
+ 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108,
+ 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,
+111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98,
+ 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, 97,116, 32,102, 97,
99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99,
52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46,
48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,
- 59, 10, 10, 9,118,101, 99, 52, 32,111,110,101, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,118,101, 99, 52, 32,115,
- 99,114, 61, 32,111,110,101, 32, 45, 32, 40,111,110,101, 32, 45, 32, 99,111,108, 50, 41, 42, 40,111,110,101, 32, 45, 32, 99,111,
-108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,102, 97, 99,109, 42, 99,111,108, 49, 32, 43, 32,102, 97, 99, 42, 40,
- 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 42, 99,111,108, 50, 42, 99,111,108, 49, 32, 43, 32, 99,111,108, 49, 42,115, 99,
-114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,102, 97, 99,
- 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48,
- 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,
-108, 50, 46,114, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43,
- 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101,
- 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40,
- 99,111,108, 50, 46,114, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 62, 32, 48, 46,
- 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48,
- 42, 40, 99,111,108, 50, 46,103, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108,
- 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 41, 32, 45,
- 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,
-111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 32,
- 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46,
- 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10,125, 10,
- 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,115, 97,109,112,108,101,
-114, 50, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116,
-101,120,116,117,114,101, 50, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,118,101, 99, 50, 40,102, 97, 99, 44, 32, 48, 46, 48,
- 41, 41, 59, 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,
-100, 32,114,103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-111,117,116,118, 97,108, 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46,
- 51, 53, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59,
- 32, 47, 42, 32,107,101,101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115, 32,105,110, 32,115,121,110, 99, 32,119,
-105,116,104, 32,116,101,120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32, 42, 47, 10,125, 10, 10,118,111,105,100,
- 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116,
- 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,105,
-120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32, 45,
- 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108, 46,
-119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,108,
-111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44,
- 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,118,
-101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41, 59,
- 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,115,
-118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,
-115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49, 93,
- 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61,
- 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49, 93,
- 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,118,
- 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,
-118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111, 95,
-114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120,
- 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112, 97,
-114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32, 61,
- 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59, 10,
-125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,111,
- 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10, 9,
- 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,
-100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,108,
-112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32,
- 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,
-118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32,
- 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100,
- 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41,
- 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125, 10,
- 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,101,
- 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61,
- 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116,
-118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,119,
-111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,
-101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109,
- 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99, 46,
-120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42, 50,
- 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40, 97,
- 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,119,
-105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40,
- 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,
-105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,
-117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49,
- 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109, 97,
-108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,109,
- 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,114,
-109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10, 10,
- 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,116,
-111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32, 97,
-116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,116,
-116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,100,
- 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,101,
- 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,118,
- 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46,
- 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32, 48,
- 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,
-109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 99,
-111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,115,
- 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,110,
-100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,
-108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,
-101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61, 32,
-110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-116,101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101,
- 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97,
-108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120,
-121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105,
-101,119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111,
- 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40,
-111, 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46,
- 48, 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99,
- 51, 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123,
- 10, 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41,
- 42,118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,
-109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98,
-108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32,
- 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,
-108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,
-111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44,
- 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,
-102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,
-109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120,
- 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,
-114,103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108,
- 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101,
- 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32,
- 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,
-111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111,
-117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,
-108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109,
- 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41,
- 32, 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41,
- 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32,
-111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44,
- 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,
-102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,
-109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46,
- 53, 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32,
- 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,
-108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46,
- 48, 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59,
- 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32,
- 61, 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,
-111,108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,
-102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41,
- 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,
- 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102,
- 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10,
- 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97,
- 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,
-111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51,
- 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116,
- 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10,
- 9,105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116,
- 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111,
-117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,
-110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99,
-111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,
-116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32,
- 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,
-105,110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111,
-117,116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33,
- 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43,
- 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120,
- 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116,
- 99,111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10,
-125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111,
+ 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,
+115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50,
+ 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,
+111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,
+118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10,
+ 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41,
+ 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,
+100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,
+118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,
+ 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,
+116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,
+111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,
+115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, 33, 61, 32, 48,
+ 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10,
+ 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42,104,115,118, 50,
+ 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 9,
+125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
+ 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
+111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
+ 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101,
+ 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 49, 44, 32,
+104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10,
+ 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,122,
+ 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,
+108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,
+123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,
+102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108,
+ 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10,
+ 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,
+118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,
+111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,
+118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,
+116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,
+109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,
+125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,111,102,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101,
+ 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
+ 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46,
+ 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,
+101, 99, 52, 32,111,110,101, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,118,101, 99, 52, 32,115, 99,114, 61, 32,111,
+110,101, 32, 45, 32, 40,111,110,101, 32, 45, 32, 99,111,108, 50, 41, 42, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 59, 10,
+ 9,111,117,116, 99,111,108, 32, 61, 32,102, 97, 99,109, 42, 99,111,108, 49, 32, 43, 32,102, 97, 99, 42, 40, 40,111,110,101, 32,
+ 45, 32, 99,111,108, 49, 41, 42, 99,111,108, 50, 42, 99,111,108, 49, 32, 43, 32, 99,111,108, 49, 42,115, 99,114, 41, 59, 10,125,
+ 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
+ 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
+111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
+ 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32,
+ 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42,
+ 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,
+116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,
+114, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,
+111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108,
+ 50, 46,103, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,
+111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 41, 32, 45, 32, 49, 46, 48, 41,
+ 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61,
+ 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 32, 45, 32, 48, 46, 53,
+ 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102,
+ 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100,
+ 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,
+111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,
+101, 50, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,118,101, 99, 50, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 41, 59, 10, 9,
+111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98,
+116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,
+108, 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, 32,
+ 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 32, 47, 42, 32,107,
+101,101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115, 32,105,110, 32,115,121,110, 99, 32,119,105,116,104, 32,116,
+101,120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32, 42, 47, 10,125, 10, 10,118,111,105,100, 32,105,110,118,101,
+114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52,
+ 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,105,120, 40, 99,111,108,
+ 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 46,
+120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108, 46,119, 59, 10,125, 10,
+ 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,108,111, 97,116, 32,115,
+ 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52,
+ 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32,104,
+115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,104,115,
+118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,115,118, 91, 48, 93, 62,
+ 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 48, 93,
+ 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49, 93, 32, 42, 61, 32,115,
+ 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 49, 46, 48, 59,
+ 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 48, 46, 48,
+ 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,118, 91, 50, 93, 62, 49,
+ 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 50, 93, 60,
+ 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,
+115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 44,
+ 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112, 97,114, 97,116,101, 95,
+114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32, 61, 32, 99,111,108, 46,
+114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,
+105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,111, 97,116, 32,103, 44,
+ 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10, 9, 99,111,108, 32, 61,
+ 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,111,117,116,
+112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,
+111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99,
+ 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,
+105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99,
+ 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,108,105,110, 40,
+118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
+117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125, 10, 10,118,111,105,100,
+ 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,
+ 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 42,
+ 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,119,111,111,100, 95,115,
+105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,
+116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123,
+ 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99, 46,120, 32, 43, 32,118,
+101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42, 50, 48, 46, 48, 59, 10,
+ 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40, 97, 41, 59, 10, 10, 9,
+118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,119,105, 44, 32,119,105,
+ 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32,
+ 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,105,109, 97,103,101,
+ 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,
+101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68,
+ 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 41, 42,
+ 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109, 97,108, 46,120, 32, 61,
+ 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,109, 97,108, 46,121, 32,
+ 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,114,109, 97,108, 46,122,
+ 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44,
+ 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,
+111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,100, 32,102,111,114, 32,
+110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,101, 97,118,105,110,103,
+ 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,118, 32, 61, 32,118,101,
+ 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48,
+ 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32, 48, 46, 48, 41, 59, 10,
+125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 99,111,114,114,101,115,
+112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,115, 32,110,101,103, 97,
+116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,110,100,101,114, 32,110,
+111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,
+111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,
+116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,
+117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61, 32,110,111,114,109, 97,
+108,105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111,
+ 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111,
+ 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,
+118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10,125,
+ 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,
+109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116,
+ 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40,111, 98,105,110,118,
+109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 41, 46,
+120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, 51, 32,118,110, 44,
+ 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, 10, 9,114,101,102,
+ 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, 42,118,110, 59, 10,
+125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98,108,101,110,100,101,
+114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,111,
+117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125,
+ 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,
108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49,
- 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43,
- 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,
-111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
+ 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43,
+ 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,109,
+117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
+ 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110,
+ 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97,
+ 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,
+ 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111,117,116, 99,111,108,
+ 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116,
+ 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,
+102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46,
+ 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,
+101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,116,101,
+120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32,111,117,116, 99,111,
+108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
+116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
+ 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49,
+ 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,
+105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102,
+ 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61,
+ 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,
+101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102,
+ 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116,
+ 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 41,
+ 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32,
+ 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, 41, 42, 40, 49, 46,
+ 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48,
+ 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, 97, 99,109, 32, 43,
+ 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,
+111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49,
+ 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, 32,111,117,116, 99,
+111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111,
+ 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,
+108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,
+125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108,
+ 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116,
+ 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, 32,
+ 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
-109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32,
- 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59,
- 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,
-111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,
-108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116,
- 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108,
- 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,
-108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98,
- 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59,
- 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116,
- 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,
-111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111,
- 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102,
- 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120,
- 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108,
- 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,
-114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108,
- 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101,
- 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116,
- 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,
-110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116,
- 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51,
- 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116,
- 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10,
- 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,
-118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32,
- 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99,
+109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102,
+ 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108,
+ 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108,
+ 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48,
+ 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99,116,
+ 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46, 98,
+ 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98,
+ 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,
+105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101,
+ 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,
+103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109,
+ 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97,
+ 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116,
+ 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,
+116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,
+101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,
+117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,
+108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102,
+ 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,
+ 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,
+108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102,
+ 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,103,
+ 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,
+111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 59, 10,
+ 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,
+108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,
+111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,
+118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102,
+ 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
+ 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61,
+ 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114,
+ 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32,
+ 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,
+111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,
+116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,
+108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,
+111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46,
+ 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, 32,111,117,116, 99,
111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111,
97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52,
- 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,
+ 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,
111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44,
32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
+118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59,
- 10, 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,
+ 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,
108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41,
59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51,
- 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,
-109,105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108,
- 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59,
- 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,
-116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44,
- 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 41, 10,123, 10, 9,
-102, 97, 99,116, 32, 42, 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102,
- 97, 99,116, 59, 10, 10, 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,
-116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, 97, 99,
-109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 98,
-108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44,
- 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118,
- 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,
-110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,
-117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44,
- 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10,
- 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97,
- 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,
-102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,
-111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,
- 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108,
- 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,
-118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,
-102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32,
- 45, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,
- 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,
-101, 95,115,117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108,
- 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,
-118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,
-102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,
-111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,
- 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,
-108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97,
- 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32,
- 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,118,
+109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,
+101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,
+117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,
+120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46,
+ 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110,
+ 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,
+114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,
+111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,
+118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95, 99,
+111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48,
+ 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,
+111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118,
+ 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
+116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 41, 10,123, 10, 9,102, 97, 99,116, 32,
+ 42, 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10,
+ 10, 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61,
+ 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,
+109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 98,108,101,110,100, 40,
+102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,
+116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,
+ 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,
+118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108, 32,
+ 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108,
+ 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
+116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,
+116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102,
+ 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59,
+ 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,
+117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110,
40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,
110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101,
- 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,102, 40,116,101,
-120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,
-111,108, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9,
- 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101,
- 95,100,105,102,102, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108,
- 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,
-118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,
-105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116,
-101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,
-108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120,
- 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,
-101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59,
- 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40,
- 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,
-105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,
-117,101, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120,
- 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,
-101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59,
- 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40,
- 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,
-105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,
-117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, 97,120, 40,102,
- 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,
-109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,
-123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,
-104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117,116,104, 97,114,
- 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,109,
-117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, 10, 9,105,102,
- 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,
-105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, 46, 48, 59, 10,
- 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120,
- 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44,
- 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32,114,103, 98, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116,101,110,115,105,
-116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,
-114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,105,110,118,
-101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,
-118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105,110,118, 97,108,
-117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40,118,101, 99, 52,
- 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,
-103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46,114,103, 98, 44,
- 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,116,
-101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105,110,116,101,110,
-115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
-116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, 32, 61, 32,105,
-110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,
-115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,
-116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114,103, 98, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,
-117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, 59, 10, 9,111,
-117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42,115,116,101,110,
- 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118,101, 99, 51, 32,
-116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120,
- 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102,115, 59, 10,125,
- 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, 51, 32,116,101,
-120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,
-111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,
-117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51,
- 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 44, 32,118,101,
- 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,116,101,
-120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,
-108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,
-116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101,
- 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,111,114,109, 97,108, 40,118,101, 99, 51,
- 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 47, 32, 84,104,101, 32,105,110,118,101,114,116, 32,111,102, 32,116,104,101, 32,
-114,101,100, 32, 99,104, 97,110,110,101,108, 32,105,115, 32,116,111, 32,109, 97,107,101, 10, 9, 47, 47, 32,116,104,101, 32,110,
-111,114,109, 97,108, 32,109, 97,112, 32, 99,111,109,112,108,105, 97,110,116, 32,119,105,116,104, 32,116,104,101, 32,111,117,116,
-115,105,100,101, 32,119,111,114,108,100, 46, 10, 9, 47, 47, 32, 73,116, 32,110,101,101,100,115, 32,116,111, 32, 98,101, 32,100,
-111,110,101, 32, 98,101, 99, 97,117,115,101, 32,105,110, 32, 66,108,101,110,100,101,114, 10, 9, 47, 47, 32,116,104,101, 32,110,
-111,114,109, 97,108, 32,117,115,101,100, 32,112,111,105,110,116,115, 32,105,110,119, 97,114,100, 46, 10, 9, 47, 47, 32, 83,104,
-111,117,108,100, 32,116,104,105,115, 32,101,118,101,114, 32, 99,104, 97,110,103,101, 32,116,104,105,115, 32,110,101,103, 97,116,
-101, 32,109,117,115,116, 32, 98,101, 32,114,101,109,111,118,101,100, 46, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,111,
-114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,110,
-111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 45, 99,111,108,111,114, 46,114, 44, 32, 99,111,108,111,
-114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 45, 48, 46, 53, 44, 32, 48, 46, 53, 44, 32,
- 48, 46, 53, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,110,111,114,109, 97,108,115,
- 95,105,110,105,116, 40, 32,118,101, 99, 51, 32,118, 78, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78,111,114,103, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77,
- 97,103,110,105,116,117,100,101, 32, 41, 10,123, 10, 9,118, 78,111,114,103, 32, 61, 32,118, 78, 59, 10, 9,118, 78, 97, 99, 99,
- 32, 61, 32,118, 78, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10,
- 10, 47, 42, 42, 32,104,101,108,112,101,114, 32,109,101,116,104,111,100, 32,116,111, 32,101,120,116,114, 97, 99,116, 32,116,104,
-101, 32,117,112,112,101,114, 32,108,101,102,116, 32, 51,120, 51, 32,109, 97,116,114,105,120, 32,102,114,111,109, 32, 97, 32, 52,
-120, 52, 32,109, 97,116,114,105,120, 32, 42, 47, 10,109, 97,116, 51, 32,116,111, 95,109, 97,116, 51, 40,109, 97,116, 52, 32,109,
- 52, 41, 10,123, 10, 9,109, 97,116, 51, 32,109, 51, 59, 10, 9,109, 51, 91, 48, 93, 32, 61, 32,109, 52, 91, 48, 93, 46,120,121,
-122, 59, 10, 9,109, 51, 91, 49, 93, 32, 61, 32,109, 52, 91, 49, 93, 46,120,121,122, 59, 10, 9,109, 51, 91, 50, 93, 32, 61, 32,
-109, 52, 91, 50, 93, 46,120,121,122, 59, 10, 9,114,101,116,117,114,110, 32,109, 51, 59, 10,125, 10, 10,118,111,105,100, 32,109,
-116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,111, 98,106,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,
-102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,
-109, 97,116, 52, 32,109, 86,105,101,119, 44, 32,109, 97,116, 52, 32,109, 86,105,101,119, 73,110,118, 44, 32,109, 97,116, 52, 32,
-109, 79, 98,106, 44, 32,109, 97,116, 52, 32,109, 79, 98,106, 73,110,118, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108,
-111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99,
- 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,
-103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44,
- 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,109, 97,116, 51,
- 32,111, 98,106, 50,118,105,101,119, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,103,108, 95, 77,111,100,101,108, 86,105,101,119,
- 77, 97,116,114,105,120, 41, 59, 10, 9,109, 97,116, 51, 32,118,105,101,119, 50,111, 98,106, 32, 61, 32,116,111, 95,109, 97,116,
- 51, 40,103,108, 95, 77,111,100,101,108, 86,105,101,119, 77, 97,116,114,105,120, 73,110,118,101,114,115,101, 41, 59, 10, 9, 10,
- 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,118,105,101,119, 50,111, 98,106, 32, 42, 32,100, 70,100,120, 40,
- 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,118,105,101,
-119, 50,111, 98,106, 32, 42, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,
-118, 78, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,115,117,114,102, 95,110,111,114,109, 32, 42, 32,111, 98,106, 50,
-118,105,101,119, 32, 41, 59, 10, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,
-118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32,
- 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41,
- 59, 10, 9, 10, 9, 47, 42, 32,112,114,101,116,114, 97,110,115,102,111,114,109, 32,118, 78, 97, 99, 99, 32, 40,105,110, 32,109,
-116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 41, 32,117,115,105,110,103, 32,116,104,101, 32,105,110,118,101,114,115,
-101, 32,116,114, 97,110,115,112,111,115,101,100, 32, 42, 47, 10, 9,118, 82, 49, 32, 61, 32,118, 82, 49, 32, 42, 32,118,105,101,
-119, 50,111, 98,106, 59, 10, 9,118, 82, 50, 32, 61, 32,118, 82, 50, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118,
- 78, 32, 61, 32,118, 78, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,
-110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 32, 42, 32,108,101,110,103,116,104, 40,118, 78, 41, 59,
- 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,
-116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,
-118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,116,101,120,116,117,114,101,115,112, 97, 99,101,
- 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44,
- 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101,
- 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,
-116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,
-101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40,
- 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,
-121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,
-111,114,109, 59, 32, 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,100, 32,
-118,101,114,116,101,120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32,110,111,114,109, 97,108,
-105,122,101, 40, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 32, 41, 59, 10, 9,118, 82,
- 50, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97,
- 83, 32, 41, 32, 41, 59, 10, 9,102, 68,101,116, 32, 61, 32,115,105,103,110, 40, 32,100,111,116, 40,118, 83,105,103,109, 97, 83,
- 44, 32,118, 82, 49, 41, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32,
- 97, 98,115, 40,102, 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110,
- 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,
-105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,
-105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,118,105,
-101,119,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,
-102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,
-103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9,
- 9, 9, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,
-116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32,
- 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32,
- 61, 32,100, 70,100,120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97,
- 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61,
- 32,115,117,114,102, 95,110,111,114,109, 59, 32, 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,
-111,108, 97,116,101,100, 32,118,101,114,116,101,120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61,
- 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,
-111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116,
- 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,
-110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61,
- 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77,
- 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,
-116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,
-112, 95,116, 97,112, 51, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109,
- 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-100, 66,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 83, 84,108,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10,
- 9,118,101, 99, 50, 32, 83, 84,108,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,120, 40,116,101,120,
- 99,111, 46,120,121, 41, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43,
- 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72,108,108, 44, 72,
-108,114, 44, 72,117,108, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44,
- 32, 83, 84,108,108, 41, 44, 32, 72,108,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101,
- 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,114, 41, 44, 32, 72,108,114, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,
-116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117,108, 41, 44, 32, 72,117,108, 32, 41, 59, 10, 9, 10, 9,
-100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,108,114, 32, 45, 32, 72,108,108, 41, 59, 10, 9,100, 66,116,
- 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117,108, 32, 45, 32, 72,108,108, 41, 59, 10,125, 10, 10, 35,105,102,100,
-101,102, 32, 66, 85, 77, 80, 95, 66, 73, 67, 85, 66, 73, 67, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,
- 98,105, 99,117, 98,105, 99, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,
-109, 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32, 72,108, 59, 10, 9,102,108,111, 97,116, 32, 72,114, 59, 10,
- 9,102,108,111, 97,116, 32, 72,100, 59, 10, 9,102,108,111, 97,116, 32, 72,117, 59, 10, 9, 10, 9,118,101, 99, 50, 32, 84,101,
-120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,
-121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 32, 10, 9,118,101, 99, 50, 32, 83, 84,108, 32,
- 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50,
- 32, 83, 84,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10,
- 9,118,101, 99, 50, 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120,
- 68,121, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32,
- 42, 32, 84,101,120, 68,121, 32, 59, 10, 9, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,105,
-109, 97, 44, 32, 83, 84,108, 41, 44, 32, 72,108, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50,
- 68, 40,105,109, 97, 44, 32, 83, 84,114, 41, 44, 32, 72,114, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,
-114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,
-120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,117, 41, 59, 10, 9, 10, 9,118,101, 99, 50, 32,
-100, 72,100,120,121, 32, 61, 32,118,101, 99, 50, 40, 72,114, 32, 45, 32, 72,108, 44, 32, 72,117, 32, 45, 32, 72,100, 41, 59, 10,
- 9,102,108,111, 97,116, 32,102, 66,108,101,110,100, 32, 61, 32, 99,108, 97,109,112, 40, 49, 46, 48, 45,116,101,120,116,117,114,
-101, 81,117,101,114,121, 76, 79, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,120, 44, 32, 48, 46, 48, 44,
- 32, 49, 46, 48, 41, 59, 10, 9,105,102, 40,102, 66,108,101,110,100, 33, 61, 48, 46, 48, 41, 10, 9,123, 10, 9, 9, 47, 47, 32,
-116,104,101, 32,100,101,114,105,118, 97,116,105,118,101, 32,111,102, 32,116,104,101, 32, 98,105, 99,117, 98,105, 99, 32,115, 97,
-109,112,108,105,110,103, 32,111,102, 32,108,101,118,101,108, 32, 48, 10, 9, 9,105,118,101, 99, 50, 32,118, 68,105,109, 59, 10,
- 9, 9,118, 68,105,109, 32, 61, 32,116,101,120,116,117,114,101, 83,105,122,101, 40,105,109, 97, 44, 32, 48, 41, 59, 10, 10, 9,
- 9, 47, 47, 32,116, 97,107,105,110,103, 32,116,104,101, 32,102,114, 97, 99,116, 32,112, 97,114,116, 32,111,102, 32,116,104,101,
- 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101, 32,105,115, 32, 97, 32,104, 97,114,100, 99,111,100,
-101,100, 32,119,114, 97,112, 32,109,111,100,101, 46, 10, 9, 9, 47, 47, 32,116,104,105,115, 32,105,115, 32, 97, 99, 99,101,112,
-116, 97, 98,108,101, 32, 97,115, 32,116,101,120,116,117,114,101,115, 32,117,115,101, 32,119,114, 97,112, 32,109,111,100,101, 32,
-101,120, 99,108,117,115,105,118,101,108,121, 32,105,110, 32, 51, 68, 32,118,105,101,119, 32,101,108,115,101,119,104,101,114,101,
- 32,105,110, 32, 98,108,101,110,100,101,114, 46, 32, 10, 9, 9, 47, 47, 32,116,104,105,115, 32,105,115, 32,100,111,110,101, 32,
-115,111, 32,116,104, 97,116, 32,119,101, 32, 99, 97,110, 32,115,116,105,108,108, 32,103,101,116, 32, 97, 32,118, 97,108,105,100,
- 32,116,101,120,101,108, 32,119,105,116,104, 32,117,118,115, 32,111,117,116,115,105,100,101, 32,116,104,101, 32, 48, 44, 49, 32,
-114, 97,110,103,101, 10, 9, 9, 47, 47, 32, 98,121, 32,116,101,120,101,108, 70,101,116, 99,104, 32, 98,101,108,111,119, 44, 32,
- 97,115, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32, 97,114,101, 32, 99,108, 97,109,112,101,100, 32,119,104,101,110, 32,
-117,115,105,110,103, 32,116,104,105,115, 32,102,117,110, 99,116,105,111,110, 46, 10, 9, 9,118,101, 99, 50, 32,102, 84,101,120,
- 76,111, 99, 32, 61, 32,118, 68,105,109, 42,102,114, 97, 99,116, 40,116,101,120, 99,111, 46,120,121, 41, 32, 45, 32,118,101, 99,
- 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 59, 10, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 76,111, 99, 32, 61, 32,105,
-118,101, 99, 50, 40,102,108,111,111,114, 40,102, 84,101,120, 76,111, 99, 41, 41, 59, 10, 9, 9,118,101, 99, 50, 32,116, 32, 61,
- 32, 99,108, 97,109,112, 40,102, 84,101,120, 76,111, 99, 32, 45, 32,105, 84,101,120, 76,111, 99, 44, 32, 48, 46, 48, 44, 32, 49,
- 46, 48, 41, 59, 9, 9, 47, 47, 32,115, 97,116, 32,106,117,115,116, 32,116,111, 32, 98,101, 32,112,101,100, 97,110,116,105, 99,
- 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32,
+ 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97,
+ 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, 48, 32, 45,
+ 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,117, 98,
+ 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
+ 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,
+110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101,
+ 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32,
+ 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,
+111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,
+108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116,
+ 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,
+111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118,
+ 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32,
+102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116,
+ 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,118, 40,102,108,111, 97,
+116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97,
+ 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41,
+ 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115,
+ 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32,
+ 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,
+102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,
+108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102,
+ 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
+ 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,
+110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101,
+ 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108,
+ 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108,
+ 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,
+ 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,
+102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,
+108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,
+111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60,
+ 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108,
+ 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,
+103,104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,
+102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,
+108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,
+111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62,
+ 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108,
+ 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108,
+ 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48,
+ 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,
+111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,
+116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,
+111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,
+114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,
+108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
+116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32,
+ 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,
+114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101,
+ 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104,
+ 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,
+108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,
+109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,
+116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116,
+ 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,
+102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,
+100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,
+103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,
+108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101,
+ 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125,
+ 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103,
+ 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,
+118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103,
+ 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108,
+ 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44,
+ 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116,
+ 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,
+110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,
+105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,
+105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,
+108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98,
+ 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98,
+ 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59,
+ 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111,
+ 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123,
+ 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,
+100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,
+118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10,
+ 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,
+109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101,
+ 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,
+120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59,
+ 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,
+115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,
+111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,
+114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46,
+ 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,116,101,120, 99,
+111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,
+108, 41, 10,123, 10, 9, 47, 47, 32, 84,104,101, 32,105,110,118,101,114,116, 32,111,102, 32,116,104,101, 32,114,101,100, 32, 99,
+104, 97,110,110,101,108, 32,105,115, 32,116,111, 32,109, 97,107,101, 10, 9, 47, 47, 32,116,104,101, 32,110,111,114,109, 97,108,
+ 32,109, 97,112, 32, 99,111,109,112,108,105, 97,110,116, 32,119,105,116,104, 32,116,104,101, 32,111,117,116,115,105,100,101, 32,
+119,111,114,108,100, 46, 10, 9, 47, 47, 32, 73,116, 32,110,101,101,100,115, 32,116,111, 32, 98,101, 32,100,111,110,101, 32, 98,
+101, 99, 97,117,115,101, 32,105,110, 32, 66,108,101,110,100,101,114, 10, 9, 47, 47, 32,116,104,101, 32,110,111,114,109, 97,108,
+ 32,117,115,101,100, 32,112,111,105,110,116,115, 32,105,110,119, 97,114,100, 46, 10, 9, 47, 47, 32, 83,104,111,117,108,100, 32,
+116,104,105,115, 32,101,118,101,114, 32, 99,104, 97,110,103,101, 32,116,104,105,115, 32,110,101,103, 97,116,101, 32,109,117,115,
+116, 32, 98,101, 32,114,101,109,111,118,101,100, 46, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,111,114, 32, 61, 32,116,
+101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,110,111,114,109, 97,108,
+ 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 45, 99,111,108,111,114, 46,114, 44, 32, 99,111,108,111,114, 46,103, 44, 32,
+ 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 45, 48, 46, 53, 44, 32, 48, 46, 53, 44, 32, 48, 46, 53, 41, 41,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,110,111,114,109, 97,108,115, 95,105,110,105,116,
+ 40, 32,118,101, 99, 51, 32,118, 78, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78,111,114,103, 44, 32,111,117,116, 32,118,
+101, 99, 51, 32,118, 78, 97, 99, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,
+117,100,101, 32, 41, 10,123, 10, 9,118, 78,111,114,103, 32, 61, 32,118, 78, 59, 10, 9,118, 78, 97, 99, 99, 32, 61, 32,118, 78,
+ 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10, 47, 42, 42, 32,
+104,101,108,112,101,114, 32,109,101,116,104,111,100, 32,116,111, 32,101,120,116,114, 97, 99,116, 32,116,104,101, 32,117,112,112,
+101,114, 32,108,101,102,116, 32, 51,120, 51, 32,109, 97,116,114,105,120, 32,102,114,111,109, 32, 97, 32, 52,120, 52, 32,109, 97,
+116,114,105,120, 32, 42, 47, 10,109, 97,116, 51, 32,116,111, 95,109, 97,116, 51, 40,109, 97,116, 52, 32,109, 52, 41, 10,123, 10,
+ 9,109, 97,116, 51, 32,109, 51, 59, 10, 9,109, 51, 91, 48, 93, 32, 61, 32,109, 52, 91, 48, 93, 46,120,121,122, 59, 10, 9,109,
+ 51, 91, 49, 93, 32, 61, 32,109, 52, 91, 49, 93, 46,120,121,122, 59, 10, 9,109, 51, 91, 50, 93, 32, 61, 32,109, 52, 91, 50, 93,
+ 46,120,121,122, 59, 10, 9,114,101,116,117,114,110, 32,109, 51, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,
+117,109,112, 95,105,110,105,116, 95,111, 98,106,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115,
+ 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,109, 97,116, 52, 32,
+109, 86,105,101,119, 44, 32,109, 97,116, 52, 32,109, 86,105,101,119, 73,110,118, 44, 32,109, 97,116, 52, 32,109, 79, 98,106, 44,
+ 32,109, 97,116, 52, 32,109, 79, 98,106, 73,110,118, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102,
+ 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44,
+ 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,
+100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9,
+ 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50,
+ 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,109, 97,116, 51, 32,111, 98,106, 50,
+118,105,101,119, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,103,108, 95, 77,111,100,101,108, 86,105,101,119, 77, 97,116,114,105,
+120, 41, 59, 10, 9,109, 97,116, 51, 32,118,105,101,119, 50,111, 98,106, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,103,108, 95,
+ 77,111,100,101,108, 86,105,101,119, 77, 97,116,114,105,120, 73,110,118,101,114,115,101, 41, 59, 10, 9, 10, 9,118,101, 99, 51,
+ 32,118, 83,105,103,109, 97, 83, 32, 61, 32,118,105,101,119, 50,111, 98,106, 32, 42, 32,100, 70,100,120, 40, 32,115,117,114,102,
+ 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,118,105,101,119, 50,111, 98,106,
+ 32, 42, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,
+110,111,114,109, 97,108,105,122,101, 40, 32,115,117,114,102, 95,110,111,114,109, 32, 42, 32,111, 98,106, 50,118,105,101,119, 32,
+ 41, 59, 10, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59,
+ 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,
+102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9,
+ 47, 42, 32,112,114,101,116,114, 97,110,115,102,111,114,109, 32,118, 78, 97, 99, 99, 32, 40,105,110, 32,109,116,101,120, 95, 98,
+117,109,112, 95, 97,112,112,108,121, 41, 32,117,115,105,110,103, 32,116,104,101, 32,105,110,118,101,114,115,101, 32,116,114, 97,
+110,115,112,111,115,101,100, 32, 42, 47, 10, 9,118, 82, 49, 32, 61, 32,118, 82, 49, 32, 42, 32,118,105,101,119, 50,111, 98,106,
+ 59, 10, 9,118, 82, 50, 32, 61, 32,118, 82, 50, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118, 78, 32, 61, 32,118,
+ 78, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,
+101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 32, 42, 32,108,101,110,103,116,104, 40,118, 78, 41, 59, 10, 9,118, 78, 97,
+ 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32,
+ 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,
+105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,
+109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,116,101,120,116,117,114,101,115,112, 97, 99,101, 40, 32,118,101, 99,
+ 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9,
+ 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,
+118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
+118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118,
+ 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116,
+ 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40, 32,115,117,114,102,
+ 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,
+114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,111,114,109, 59, 32,
+ 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,100, 32,118,101,114,116,101,
+120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,
+ 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32,110,
+111,114,109, 97,108,105,122,101, 40, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 41,
+ 59, 10, 9,102, 68,101,116, 32, 61, 32,115,105,103,110, 40, 32,100,111,116, 40,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49,
+ 41, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102,
+ 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102,
+ 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10,
+ 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,118,105,101,119,115,112, 97,
+ 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,
+109, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,
+100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,
+111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,
+116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116,
+ 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,
+120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100,
+ 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102,
+ 95,110,111,114,109, 59, 32, 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,
+100, 32,118,101,114,116,101,120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,
+115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,
+118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,
+105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,
+101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99,
+ 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,
+117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102,
+ 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,116, 97,112,
+ 51, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,
+111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41,
+ 32, 10,123, 10, 9,118,101, 99, 50, 32, 83, 84,108,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,118,101, 99, 50,
+ 32, 83, 84,108,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121,
+ 41, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,121,
+ 40,116,101,120, 99,111, 46,120,121, 41, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72,108,108, 44, 72,108,114, 44, 72,117,
+108, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,108,
+ 41, 44, 32, 72,108,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109,
+ 97, 44, 32, 83, 84,108,114, 41, 44, 32, 72,108,114, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,
+114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117,108, 41, 44, 32, 72,117,108, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61,
+ 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,108,114, 32, 45, 32, 72,108,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83,
+ 99, 97,108,101, 32, 42, 32, 40, 72,117,108, 32, 45, 32, 72,108,108, 41, 59, 10,125, 10, 10, 35,105,102,100,101,102, 32, 66, 85,
+ 77, 80, 95, 66, 73, 67, 85, 66, 73, 67, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 98,105, 99,117, 98,
+105, 99, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,
+108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32,
+ 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32, 72,108, 59, 10, 9,102,108,111, 97,116, 32, 72,114, 59, 10, 9,102,108,111, 97,
+116, 32, 72,100, 59, 10, 9,102,108,111, 97,116, 32, 72,117, 59, 10, 9, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61,
+ 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100,
+ 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 32, 10, 9,118,101, 99, 50, 32, 83, 84,108, 32, 61, 32,116,101,120,
+ 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,114, 32,
+ 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50,
+ 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10,
+ 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120,
+ 68,121, 32, 59, 10, 9, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83,
+ 84,108, 41, 44, 32, 72,108, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97,
+ 44, 32, 83, 84,114, 41, 44, 32, 72,114, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,
+105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101,
+ 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,117, 41, 59, 10, 9, 10, 9,118,101, 99, 50, 32,100, 72,100,120,121,
+ 32, 61, 32,118,101, 99, 50, 40, 72,114, 32, 45, 32, 72,108, 44, 32, 72,117, 32, 45, 32, 72,100, 41, 59, 10, 9,102,108,111, 97,
+116, 32,102, 66,108,101,110,100, 32, 61, 32, 99,108, 97,109,112, 40, 49, 46, 48, 45,116,101,120,116,117,114,101, 81,117,101,114,
+121, 76, 79, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,120, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41,
+ 59, 10, 9,105,102, 40,102, 66,108,101,110,100, 33, 61, 48, 46, 48, 41, 10, 9,123, 10, 9, 9, 47, 47, 32,116,104,101, 32,100,
+101,114,105,118, 97,116,105,118,101, 32,111,102, 32,116,104,101, 32, 98,105, 99,117, 98,105, 99, 32,115, 97,109,112,108,105,110,
+103, 32,111,102, 32,108,101,118,101,108, 32, 48, 10, 9, 9,105,118,101, 99, 50, 32,118, 68,105,109, 59, 10, 9, 9,118, 68,105,
+109, 32, 61, 32,116,101,120,116,117,114,101, 83,105,122,101, 40,105,109, 97, 44, 32, 48, 41, 59, 10, 10, 9, 9, 47, 47, 32,116,
+ 97,107,105,110,103, 32,116,104,101, 32,102,114, 97, 99,116, 32,112, 97,114,116, 32,111,102, 32,116,104,101, 32,116,101,120,116,
+117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101, 32,105,115, 32, 97, 32,104, 97,114,100, 99,111,100,101,100, 32,119,114,
+ 97,112, 32,109,111,100,101, 46, 10, 9, 9, 47, 47, 32,116,104,105,115, 32,105,115, 32, 97, 99, 99,101,112,116, 97, 98,108,101,
+ 32, 97,115, 32,116,101,120,116,117,114,101,115, 32,117,115,101, 32,119,114, 97,112, 32,109,111,100,101, 32,101,120, 99,108,117,
+115,105,118,101,108,121, 32,105,110, 32, 51, 68, 32,118,105,101,119, 32,101,108,115,101,119,104,101,114,101, 32,105,110, 32, 98,
+108,101,110,100,101,114, 46, 32, 10, 9, 9, 47, 47, 32,116,104,105,115, 32,105,115, 32,100,111,110,101, 32,115,111, 32,116,104,
+ 97,116, 32,119,101, 32, 99, 97,110, 32,115,116,105,108,108, 32,103,101,116, 32, 97, 32,118, 97,108,105,100, 32,116,101,120,101,
+108, 32,119,105,116,104, 32,117,118,115, 32,111,117,116,115,105,100,101, 32,116,104,101, 32, 48, 44, 49, 32,114, 97,110,103,101,
+ 10, 9, 9, 47, 47, 32, 98,121, 32,116,101,120,101,108, 70,101,116, 99,104, 32, 98,101,108,111,119, 44, 32, 97,115, 32, 99,111,
+111,114,100,105,110, 97,116,101,115, 32, 97,114,101, 32, 99,108, 97,109,112,101,100, 32,119,104,101,110, 32,117,115,105,110,103,
+ 32,116,104,105,115, 32,102,117,110, 99,116,105,111,110, 46, 10, 9, 9,118,101, 99, 50, 32,102, 84,101,120, 76,111, 99, 32, 61,
+ 32,118, 68,105,109, 42,102,114, 97, 99,116, 40,116,101,120, 99,111, 46,120,121, 41, 32, 45, 32,118,101, 99, 50, 40, 48, 46, 53,
+ 44, 32, 48, 46, 53, 41, 59, 10, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 76,111, 99, 32, 61, 32,105,118,101, 99, 50, 40,
+102,108,111,111,114, 40,102, 84,101,120, 76,111, 99, 41, 41, 59, 10, 9, 9,118,101, 99, 50, 32,116, 32, 61, 32, 99,108, 97,109,
+112, 40,102, 84,101,120, 76,111, 99, 32, 45, 32,105, 84,101,120, 76,111, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 9,
+ 9, 47, 47, 32,115, 97,116, 32,106,117,115,116, 32,116,111, 32, 98,101, 32,112,101,100, 97,110,116,105, 99, 10, 10, 47, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 32,
- 42, 32, 84,104,105,115, 32, 98,108,111, 99,107, 32,119,105,108,108, 32,114,101,112,108, 97, 99,101, 32,116,104,101, 32,111,110,
-101, 32, 98,101,108,111,119, 32,119,104,101,110, 32,111,110,101, 32, 99,104, 97,110,110,101,108, 32,116,101,120,116,117,114,101,
-115, 32, 97,114,101, 32,112,114,111,112,101,114,108,121, 32,115,117,112,112,111,114,116,101,100, 46, 32, 42, 10, 32, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 32, 42, 32, 84,104,105,
+115, 32, 98,108,111, 99,107, 32,119,105,108,108, 32,114,101,112,108, 97, 99,101, 32,116,104,101, 32,111,110,101, 32, 98,101,108,
+111,119, 32,119,104,101,110, 32,111,110,101, 32, 99,104, 97,110,110,101,108, 32,116,101,120,116,117,114,101,115, 32, 97,114,101,
+ 32,112,114,111,112,101,114,108,121, 32,115,117,112,112,111,114,116,101,100, 46, 32, 42, 10, 32, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 9, 9,118,101, 99, 52, 32,
-118, 83, 97,109,112,108,101,115, 85, 76, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32,
- 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40, 45, 49, 44, 45, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53,
- 44, 48, 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,108,101,115, 85, 82,
- 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120, 76,111, 99, 43,105,
-118,101, 99, 50, 40, 49, 44, 45, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,118, 68,105,109,
- 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,108,101,115, 76, 76, 32, 61, 32,116,101,120,116,117,114,101, 71,
- 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40, 45, 49, 44, 49, 41, 32,
- 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,
-118, 83, 97,109,112,108,101,115, 76, 82, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32,
- 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40, 49, 44, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48,
- 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 10, 9, 9,109, 97,116, 52, 32, 72, 32, 61, 32,109, 97,116, 52, 40,118, 83,
- 97,109,112,108,101,115, 85, 76, 46,119, 44, 32,118, 83, 97,109,112,108,101,115, 85, 76, 46,120, 44, 32,118, 83, 97,109,112,108,
-101,115, 76, 76, 46,119, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,120, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,
-108,101,115, 85, 76, 46,122, 44, 32,118, 83, 97,109,112,108,101,115, 85, 76, 46,121, 44, 32,118, 83, 97,109,112,108,101,115, 76,
- 76, 46,122, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,121, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115,
- 85, 82, 46,119, 44, 32,118, 83, 97,109,112,108,101,115, 85, 82, 46,120, 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,119,
- 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,120, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 82, 46,
-122, 44, 32,118, 83, 97,109,112,108,101,115, 85, 82, 46,121, 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,122, 44, 32,118,
- 83, 97,109,112,108,101,115, 76, 82, 46,121, 41, 59, 10, 42, 47, 9, 10, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 76,111,
- 99, 77,111,100, 32, 61, 32,105, 84,101,120, 76,111, 99, 32, 43, 32,105,118,101, 99, 50, 40, 45, 49, 44, 32, 45, 49, 41, 59, 10,
- 10, 9, 9,109, 97,116, 52, 32, 72, 59, 10, 9, 9, 10, 9, 9,102,111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105,
- 32, 60, 32, 52, 59, 32,105, 43, 43, 41,123, 10, 9, 9, 9,102,111,114, 40,105,110,116, 32,106, 32, 61, 32, 48, 59, 32,106, 32,
- 60, 32, 52, 59, 32,106, 43, 43, 41,123, 10, 9, 9, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 84,109,112, 32, 61, 32,105,
- 84,101,120, 76,111, 99, 77,111,100, 32, 43, 32,105,118,101, 99, 50, 40,105, 44,106, 41, 59, 10, 9, 9, 9, 9, 10, 9, 9, 9,
- 9, 47, 47, 32,119,114, 97,112, 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32,109, 97,110,
-117, 97,108,108,121, 32,102,111,114, 32,116,101,120,101,108, 70,101,116, 99,104, 32,116,111, 32,119,111,114,107, 32,111,110, 32,
-117,118,115, 32,111,105,116,115,105,100,101, 32,116,104,101, 32, 48, 44, 49, 32,114, 97,110,103,101, 46, 10, 9, 9, 9, 9, 47,
- 47, 32,116,104,105,115, 32,105,115, 32,103,117, 97,114, 97,110,116,101,101,100, 32,116,111, 32,119,111,114,107, 32,115,105,110,
- 99,101, 32,119,101, 32,116, 97,107,101, 32,116,104,101, 32,102,114, 97, 99,116,105,111,110, 97,108, 32,112, 97,114,116, 32,111,
-102, 32,116,104,101, 32,117,118, 32, 97, 98,111,118,101, 46, 10, 9, 9, 9, 9,105, 84,101,120, 84,109,112, 46,120, 32, 61, 32,
- 40,105, 84,101,120, 84,109,112, 46,120, 32, 60, 32, 48, 41, 63, 32,105, 84,101,120, 84,109,112, 46,120, 32, 43, 32,118, 68,105,
-109, 46,120, 32, 58, 32, 40, 40,105, 84,101,120, 84,109,112, 46,120, 32, 62, 61, 32,118, 68,105,109, 46,120, 41, 63, 32,105, 84,
-101,120, 84,109,112, 46,120, 32, 45, 32,118, 68,105,109, 46,120, 32, 58, 32,105, 84,101,120, 84,109,112, 46,120, 41, 59, 10, 9,
- 9, 9, 9,105, 84,101,120, 84,109,112, 46,121, 32, 61, 32, 40,105, 84,101,120, 84,109,112, 46,121, 32, 60, 32, 48, 41, 63, 32,
-105, 84,101,120, 84,109,112, 46,121, 32, 43, 32,118, 68,105,109, 46,121, 32, 58, 32, 40, 40,105, 84,101,120, 84,109,112, 46,121,
- 32, 62, 61, 32,118, 68,105,109, 46,121, 41, 63, 32,105, 84,101,120, 84,109,112, 46,121, 32, 45, 32,118, 68,105,109, 46,121, 32,
- 58, 32,105, 84,101,120, 84,109,112, 46,121, 41, 59, 10, 10, 9, 9, 9, 9,114,103, 98,116,111, 98,119, 40,116,101,120,101,108,
- 70,101,116, 99,104, 40,105,109, 97, 44, 32,105, 84,101,120, 84,109,112, 44, 32, 48, 41, 44, 32, 72, 91,105, 93, 91,106, 93, 41,
- 59, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9, 9, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,116, 46,120, 44, 32,121,
- 32, 61, 32,116, 46,121, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 50, 32, 61, 32,120, 32, 42, 32,120, 44, 32,120, 51, 32, 61,
- 32,120, 50, 32, 42, 32,120, 44, 32,121, 50, 32, 61, 32,121, 32, 42, 32,121, 44, 32,121, 51, 32, 61, 32,121, 50, 32, 42, 32,121,
- 59, 10, 10, 9, 9,118,101, 99, 52, 32, 88, 32, 61, 32,118,101, 99, 52, 40, 45, 48, 46, 53, 42, 40,120, 51, 43,120, 41, 43,120,
- 50, 44, 9, 9, 49, 46, 53, 42,120, 51, 45, 50, 46, 53, 42,120, 50, 43, 49, 44, 9, 45, 49, 46, 53, 42,120, 51, 43, 50, 42,120,
- 50, 43, 48, 46, 53, 42,120, 44, 9, 9, 48, 46, 53, 42, 40,120, 51, 45,120, 50, 41, 41, 59, 10, 9, 9,118,101, 99, 52, 32, 89,
- 32, 61, 32,118,101, 99, 52, 40, 45, 48, 46, 53, 42, 40,121, 51, 43,121, 41, 43,121, 50, 44, 9, 9, 49, 46, 53, 42,121, 51, 45,
- 50, 46, 53, 42,121, 50, 43, 49, 44, 9, 45, 49, 46, 53, 42,121, 51, 43, 50, 42,121, 50, 43, 48, 46, 53, 42,121, 44, 9, 9, 48,
- 46, 53, 42, 40,121, 51, 45,121, 50, 41, 41, 59, 10, 9, 9,118,101, 99, 52, 32,100, 88, 32, 61, 32,118,101, 99, 52, 40, 45, 49,
- 46, 53, 42,120, 50, 43, 50, 42,120, 45, 48, 46, 53, 44, 9, 9, 52, 46, 53, 42,120, 50, 45, 53, 42,120, 44, 9, 9, 9, 45, 52,
- 46, 53, 42,120, 50, 43, 52, 42,120, 43, 48, 46, 53, 44, 9, 9, 49, 46, 53, 42,120, 50, 45,120, 41, 59, 10, 9, 9,118,101, 99,
- 52, 32,100, 89, 32, 61, 32,118,101, 99, 52, 40, 45, 49, 46, 53, 42,121, 50, 43, 50, 42,121, 45, 48, 46, 53, 44, 9, 9, 52, 46,
- 53, 42,121, 50, 45, 53, 42,121, 44, 9, 9, 9, 45, 52, 46, 53, 42,121, 50, 43, 52, 42,121, 43, 48, 46, 53, 44, 9, 9, 49, 46,
- 53, 42,121, 50, 45,121, 41, 59, 10, 9, 10, 9, 9, 47, 47, 32, 99,111,109,112,108,101,116,101, 32,100,101,114,105,118, 97,116,
-105,118,101, 32,105,110, 32,110,111,114,109, 97,108,105,122,101,100, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32, 40,109,
-117,108, 32, 98,121, 32,118, 68,105,109, 41, 10, 9, 9,118,101, 99, 50, 32,100, 72,100, 83, 84, 32, 61, 32,118, 68,105,109, 32,
- 42, 32,118,101, 99, 50, 40,100,111,116, 40, 89, 44, 32, 72, 32, 42, 32,100, 88, 41, 44, 32,100,111,116, 40,100, 89, 44, 32, 72,
- 32, 42, 32, 88, 41, 41, 59, 10, 10, 9, 9, 47, 47, 32,116,114, 97,110,115,102,111,114,109, 32,100,101,114,105,118, 97,116,105,
-118,101, 32,116,111, 32,115, 99,114,101,101,110, 45,115,112, 97, 99,101, 10, 9, 9,118,101, 99, 50, 32,100, 72,100,120,121, 95,
- 98,105, 99,117, 98,105, 99, 32, 61, 32,118,101, 99, 50, 40, 32,100, 72,100, 83, 84, 46,120, 32, 42, 32, 84,101,120, 68,120, 46,
-120, 32, 43, 32,100, 72,100, 83, 84, 46,121, 32, 42, 32, 84,101,120, 68,120, 46,121, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32,
- 32, 32,100, 72,100, 83, 84, 46,120, 32, 42, 32, 84,101,120, 68,121, 46,120, 32, 43, 32,100, 72,100, 83, 84, 46,121, 32, 42, 32,
- 84,101,120, 68,121, 46,121, 32, 41, 59, 10, 10, 9, 9, 47, 47, 32, 98,108,101,110,100, 32, 98,101,116,119,101,101,110, 32,116,
-104,101, 32,116,119,111, 10, 9, 9,100, 72,100,120,121, 32, 61, 32,100, 72,100,120,121, 42, 40, 49, 45,102, 66,108,101,110,100,
- 41, 32, 43, 32,100, 72,100,120,121, 95, 98,105, 99,117, 98,105, 99, 42,102, 66,108,101,110,100, 59, 10, 9,125, 10, 10, 9,100,
- 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32,100, 72,100,120,121, 46,120, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83,
- 99, 97,108,101, 32, 42, 32,100, 72,100,120,121, 46,121, 59, 10,125, 10, 10, 35,101,110,100,105,102, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95, 98,117,109,112, 95,116, 97,112, 53, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,
-108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,
+108,101,115, 85, 76, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120,
+ 76,111, 99, 43,105,118,101, 99, 50, 40, 45, 49, 44, 45, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41,
+ 41, 47,118, 68,105,109, 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,108,101,115, 85, 82, 32, 61, 32,116,101,
+120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40,
+ 49, 44, 45, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 9,
+ 9,118,101, 99, 52, 32,118, 83, 97,109,112,108,101,115, 76, 76, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114,
+ 40,105,109, 97, 44, 32, 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40, 45, 49, 44, 49, 41, 32, 43, 32,118,101, 99,
+ 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,
+108,101,115, 76, 82, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120,
+ 76,111, 99, 43,105,118,101, 99, 50, 40, 49, 44, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,
+118, 68,105,109, 32, 41, 59, 10, 10, 9, 9,109, 97,116, 52, 32, 72, 32, 61, 32,109, 97,116, 52, 40,118, 83, 97,109,112,108,101,
+115, 85, 76, 46,119, 44, 32,118, 83, 97,109,112,108,101,115, 85, 76, 46,120, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,
+119, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,120, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 76,
+ 46,122, 44, 32,118, 83, 97,109,112,108,101,115, 85, 76, 46,121, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,122, 44, 32,
+118, 83, 97,109,112,108,101,115, 76, 76, 46,121, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 82, 46,119, 44,
+ 32,118, 83, 97,109,112,108,101,115, 85, 82, 46,120, 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,119, 44, 32,118, 83, 97,
+109,112,108,101,115, 76, 82, 46,120, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 82, 46,122, 44, 32,118, 83,
+ 97,109,112,108,101,115, 85, 82, 46,121, 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,122, 44, 32,118, 83, 97,109,112,108,
+101,115, 76, 82, 46,121, 41, 59, 10, 42, 47, 9, 10, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 76,111, 99, 77,111,100, 32,
+ 61, 32,105, 84,101,120, 76,111, 99, 32, 43, 32,105,118,101, 99, 50, 40, 45, 49, 44, 32, 45, 49, 41, 59, 10, 10, 9, 9,109, 97,
+116, 52, 32, 72, 59, 10, 9, 9, 10, 9, 9,102,111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 52, 59,
+ 32,105, 43, 43, 41,123, 10, 9, 9, 9,102,111,114, 40,105,110,116, 32,106, 32, 61, 32, 48, 59, 32,106, 32, 60, 32, 52, 59, 32,
+106, 43, 43, 41,123, 10, 9, 9, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 84,109,112, 32, 61, 32,105, 84,101,120, 76,111,
+ 99, 77,111,100, 32, 43, 32,105,118,101, 99, 50, 40,105, 44,106, 41, 59, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 47, 47, 32,119,
+114, 97,112, 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32,109, 97,110,117, 97,108,108,121,
+ 32,102,111,114, 32,116,101,120,101,108, 70,101,116, 99,104, 32,116,111, 32,119,111,114,107, 32,111,110, 32,117,118,115, 32,111,
+105,116,115,105,100,101, 32,116,104,101, 32, 48, 44, 49, 32,114, 97,110,103,101, 46, 10, 9, 9, 9, 9, 47, 47, 32,116,104,105,
+115, 32,105,115, 32,103,117, 97,114, 97,110,116,101,101,100, 32,116,111, 32,119,111,114,107, 32,115,105,110, 99,101, 32,119,101,
+ 32,116, 97,107,101, 32,116,104,101, 32,102,114, 97, 99,116,105,111,110, 97,108, 32,112, 97,114,116, 32,111,102, 32,116,104,101,
+ 32,117,118, 32, 97, 98,111,118,101, 46, 10, 9, 9, 9, 9,105, 84,101,120, 84,109,112, 46,120, 32, 61, 32, 40,105, 84,101,120,
+ 84,109,112, 46,120, 32, 60, 32, 48, 41, 63, 32,105, 84,101,120, 84,109,112, 46,120, 32, 43, 32,118, 68,105,109, 46,120, 32, 58,
+ 32, 40, 40,105, 84,101,120, 84,109,112, 46,120, 32, 62, 61, 32,118, 68,105,109, 46,120, 41, 63, 32,105, 84,101,120, 84,109,112,
+ 46,120, 32, 45, 32,118, 68,105,109, 46,120, 32, 58, 32,105, 84,101,120, 84,109,112, 46,120, 41, 59, 10, 9, 9, 9, 9,105, 84,
+101,120, 84,109,112, 46,121, 32, 61, 32, 40,105, 84,101,120, 84,109,112, 46,121, 32, 60, 32, 48, 41, 63, 32,105, 84,101,120, 84,
+109,112, 46,121, 32, 43, 32,118, 68,105,109, 46,121, 32, 58, 32, 40, 40,105, 84,101,120, 84,109,112, 46,121, 32, 62, 61, 32,118,
+ 68,105,109, 46,121, 41, 63, 32,105, 84,101,120, 84,109,112, 46,121, 32, 45, 32,118, 68,105,109, 46,121, 32, 58, 32,105, 84,101,
+120, 84,109,112, 46,121, 41, 59, 10, 10, 9, 9, 9, 9,114,103, 98,116,111, 98,119, 40,116,101,120,101,108, 70,101,116, 99,104,
+ 40,105,109, 97, 44, 32,105, 84,101,120, 84,109,112, 44, 32, 48, 41, 44, 32, 72, 91,105, 93, 91,106, 93, 41, 59, 10, 9, 9, 9,
+125, 10, 9, 9,125, 10, 9, 9, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,116, 46,120, 44, 32,121, 32, 61, 32,116, 46,
+121, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 50, 32, 61, 32,120, 32, 42, 32,120, 44, 32,120, 51, 32, 61, 32,120, 50, 32, 42,
+ 32,120, 44, 32,121, 50, 32, 61, 32,121, 32, 42, 32,121, 44, 32,121, 51, 32, 61, 32,121, 50, 32, 42, 32,121, 59, 10, 10, 9, 9,
+118,101, 99, 52, 32, 88, 32, 61, 32,118,101, 99, 52, 40, 45, 48, 46, 53, 42, 40,120, 51, 43,120, 41, 43,120, 50, 44, 9, 9, 49,
+ 46, 53, 42,120, 51, 45, 50, 46, 53, 42,120, 50, 43, 49, 44, 9, 45, 49, 46, 53, 42,120, 51, 43, 50, 42,120, 50, 43, 48, 46, 53,
+ 42,120, 44, 9, 9, 48, 46, 53, 42, 40,120, 51, 45,120, 50, 41, 41, 59, 10, 9, 9,118,101, 99, 52, 32, 89, 32, 61, 32,118,101,
+ 99, 52, 40, 45, 48, 46, 53, 42, 40,121, 51, 43,121, 41, 43,121, 50, 44, 9, 9, 49, 46, 53, 42,121, 51, 45, 50, 46, 53, 42,121,
+ 50, 43, 49, 44, 9, 45, 49, 46, 53, 42,121, 51, 43, 50, 42,121, 50, 43, 48, 46, 53, 42,121, 44, 9, 9, 48, 46, 53, 42, 40,121,
+ 51, 45,121, 50, 41, 41, 59, 10, 9, 9,118,101, 99, 52, 32,100, 88, 32, 61, 32,118,101, 99, 52, 40, 45, 49, 46, 53, 42,120, 50,
+ 43, 50, 42,120, 45, 48, 46, 53, 44, 9, 9, 52, 46, 53, 42,120, 50, 45, 53, 42,120, 44, 9, 9, 9, 45, 52, 46, 53, 42,120, 50,
+ 43, 52, 42,120, 43, 48, 46, 53, 44, 9, 9, 49, 46, 53, 42,120, 50, 45,120, 41, 59, 10, 9, 9,118,101, 99, 52, 32,100, 89, 32,
+ 61, 32,118,101, 99, 52, 40, 45, 49, 46, 53, 42,121, 50, 43, 50, 42,121, 45, 48, 46, 53, 44, 9, 9, 52, 46, 53, 42,121, 50, 45,
+ 53, 42,121, 44, 9, 9, 9, 45, 52, 46, 53, 42,121, 50, 43, 52, 42,121, 43, 48, 46, 53, 44, 9, 9, 49, 46, 53, 42,121, 50, 45,
+121, 41, 59, 10, 9, 10, 9, 9, 47, 47, 32, 99,111,109,112,108,101,116,101, 32,100,101,114,105,118, 97,116,105,118,101, 32,105,
+110, 32,110,111,114,109, 97,108,105,122,101,100, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32, 40,109,117,108, 32, 98,121,
+ 32,118, 68,105,109, 41, 10, 9, 9,118,101, 99, 50, 32,100, 72,100, 83, 84, 32, 61, 32,118, 68,105,109, 32, 42, 32,118,101, 99,
+ 50, 40,100,111,116, 40, 89, 44, 32, 72, 32, 42, 32,100, 88, 41, 44, 32,100,111,116, 40,100, 89, 44, 32, 72, 32, 42, 32, 88, 41,
+ 41, 59, 10, 10, 9, 9, 47, 47, 32,116,114, 97,110,115,102,111,114,109, 32,100,101,114,105,118, 97,116,105,118,101, 32,116,111,
+ 32,115, 99,114,101,101,110, 45,115,112, 97, 99,101, 10, 9, 9,118,101, 99, 50, 32,100, 72,100,120,121, 95, 98,105, 99,117, 98,
+105, 99, 32, 61, 32,118,101, 99, 50, 40, 32,100, 72,100, 83, 84, 46,120, 32, 42, 32, 84,101,120, 68,120, 46,120, 32, 43, 32,100,
+ 72,100, 83, 84, 46,121, 32, 42, 32, 84,101,120, 68,120, 46,121, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,100, 72,100,
+ 83, 84, 46,120, 32, 42, 32, 84,101,120, 68,121, 46,120, 32, 43, 32,100, 72,100, 83, 84, 46,121, 32, 42, 32, 84,101,120, 68,121,
+ 46,121, 32, 41, 59, 10, 10, 9, 9, 47, 47, 32, 98,108,101,110,100, 32, 98,101,116,119,101,101,110, 32,116,104,101, 32,116,119,
+111, 10, 9, 9,100, 72,100,120,121, 32, 61, 32,100, 72,100,120,121, 42, 40, 49, 45,102, 66,108,101,110,100, 41, 32, 43, 32,100,
+ 72,100,120,121, 95, 98,105, 99,117, 98,105, 99, 42,102, 66,108,101,110,100, 59, 10, 9,125, 10, 10, 9,100, 66,115, 32, 61, 32,
+104, 83, 99, 97,108,101, 32, 42, 32,100, 72,100,120,121, 46,120, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32,
+ 42, 32,100, 72,100,120,121, 46,121, 59, 10,125, 10, 10, 35,101,110,100,105,102, 10, 10,118,111,105,100, 32,109,116,101,120, 95,
+ 98,117,109,112, 95,116, 97,112, 53, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68,
+ 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,
+101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120,
+ 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, 50, 32, 83, 84, 99, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,
+118,101, 99, 50, 32, 83, 84,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,
+120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42,
+ 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32,
+ 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,
+120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72, 99, 44, 72,
+108, 44, 72,114, 44, 72,100, 44, 72,117, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,
+105,109, 97, 44, 32, 83, 84, 99, 41, 44, 32, 72, 99, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,
+114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108, 41, 44, 32, 72,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,
+116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,114, 41, 44, 32, 72,114, 32, 41, 59, 10, 9,114,103, 98,116,
+111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 32, 41, 59, 10,
+ 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,
+117, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,114, 32, 45, 32, 72,108, 41,
+ 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117, 32, 45, 32, 72,100, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,100,101,114,105,118, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111,
+ 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44, 32,102,108,
+111, 97,116, 32,105,109, 97, 95,121, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100,
- 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,
-121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, 50, 32, 83, 84, 99, 32, 61, 32,116,101,120, 99,111, 46,
-120,121, 59, 10, 9,118,101, 99, 50, 32, 83, 84,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42,
- 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,
- 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,
-120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,
-101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9, 10, 9,102,108,111, 97,116,
- 32, 72, 99, 44, 72,108, 44, 72,114, 44, 72,100, 44, 72,117, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,
-114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84, 99, 41, 44, 32, 72, 99, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,
-116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108, 41, 44, 32, 72,108, 32, 41, 59, 10, 9,114,103, 98,116,
-111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,114, 41, 44, 32, 72,114, 32, 41, 59, 10,
- 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,
-100, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,
-117, 41, 44, 32, 72,117, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,114, 32,
- 45, 32, 72,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117, 32, 45, 32, 72,100, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,100,101,114,105,118, 40, 32,118,101, 99, 51, 32,
-116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,
-120, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,121, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,
-115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32,115, 32, 61,
- 32, 49, 46, 48, 59, 9, 9, 47, 47, 32,110,101,103, 97,116,101, 32,116,104,105,115, 32,105,102, 32,102,108,105,112,112,101,100,
- 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32,
- 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,
-100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9, 10, 9, 47, 47, 32,116,104,105,115, 32,118, 97,114,105, 97,
-110,116, 32,117,115,105,110,103, 32, 97, 32,100,101,114,105,118, 97,116,105,118,101, 32,109, 97,112, 32,105,115, 32,100,101,115,
- 99,114,105, 98,101,100, 32,104,101,114,101, 10, 9, 47, 47, 32,104,116,116,112, 58, 47, 47,109,109,105,107,107,101,108,115,101,
-110, 51,100, 46, 98,108,111,103,115,112,111,116, 46, 99,111,109, 47, 50, 48, 49, 49, 47, 48, 55, 47,100,101,114,105,118, 97,116,
-105,118,101, 45,109, 97,112,115, 46,104,116,109,108, 10, 9,118,101, 99, 50, 32,100,105,109, 32, 61, 32,118,101, 99, 50, 40,105,
-109, 97, 95,120, 44, 32,105,109, 97, 95,121, 41, 59, 10, 9,118,101, 99, 50, 32,100, 66,100,117,118, 32, 61, 32,104, 83, 99, 97,
-108,101, 42,100,105,109, 42, 40, 50, 46, 48, 42,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111,
- 46,120,121, 41, 46,120,121, 45, 49, 46, 48, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,
-101,120, 68,120, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,120, 46,121, 59, 10, 9,100, 66,116,
- 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,121, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,
-101,120, 68,121, 46,121, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 40,
- 32,102,108,111, 97,116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,102,108,111, 97,116, 32,100, 66,
-116, 44, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99,
- 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 41, 32, 10,123, 10, 9,118,
-101, 99, 51, 32,118, 83,117,114,102, 71,114, 97,100, 32, 61, 32,115,105,103,110, 40,102, 68,101,116, 41, 32, 42, 32, 40, 32,100,
- 66,115, 32, 42, 32,118, 82, 49, 32, 43, 32,100, 66,116, 32, 42, 32,118, 82, 50, 32, 41, 59, 10, 9, 10, 9,118, 78, 97, 99, 99,
- 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 45, 32,118, 83,117,114,102, 71,114, 97,100, 59, 10, 9,112,101,
-114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,118, 78, 97, 99, 99, 95,
-111,117,116, 32, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 95,116,
-101,120,115,112, 97, 99,101, 40, 32,102,108,111, 97,116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,
-102,108,111, 97,116, 32,100, 66,116, 44, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32,118, 82, 50, 44, 10, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 97,
-109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,102,108,111, 97,116, 32,105,
-109, 97, 95,120, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,121, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110,
- 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 41, 32, 10,123, 10, 9,118,101,
- 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50,
- 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, 51, 32,
-118, 83,117,114,102, 71,114, 97,100, 32, 61, 32,115,105,103,110, 40,102, 68,101,116, 41, 32, 42, 32, 40, 32, 10, 9, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32,100, 66,115, 32, 47, 32,108,101,110,103,116,104, 40, 32,118,101, 99, 50, 40,105,109, 97, 95,
-120, 42, 84,101,120, 68,120, 46,120, 44, 32,105,109, 97, 95,121, 42, 84,101,120, 68,120, 46,121, 41, 32, 41, 32, 42, 32,118, 82,
- 49, 32, 43, 32, 10, 9, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,100, 66,116, 32, 47, 32,108,101,110,103,116,104, 40, 32,
-118,101, 99, 50, 40,105,109, 97, 95,120, 42, 84,101,120, 68,121, 46,120, 44, 32,105,109, 97, 95,121, 42, 84,101,120, 68,121, 46,
-121, 41, 32, 41, 32, 42, 32,118, 82, 50, 32, 41, 59, 10, 9, 9, 9, 9, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,
-118, 78, 97, 99, 99, 95,105,110, 32, 45, 32,118, 83,117,114,102, 71,114, 97,100, 59, 10, 9,112,101,114,116,117,114, 98,101,100,
- 95,110,111,114,109, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,118, 78, 97, 99, 99, 95,111,117,116, 32, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101,120,110,111,114,109, 97,108, 40,118,101,
- 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123,
- 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111,114,109, 97,108, 46,120, 44, 32, 45,110,
-111,114,109, 97,108, 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120,
- 95,110,115,112, 97, 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,118,101,
- 99, 51, 32,110,111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,118,101, 99, 51, 32, 66, 32, 61, 32,116, 97,110,103,101,
-110,116, 46,119, 32, 42, 32, 99,114,111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 46,120,121,122,
- 41, 59, 10, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,
-103,101,110,116, 46,120,121,122, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,
-114,109, 97,108, 46,122, 42,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109,
- 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,
-108,101,110,100, 95,110,111,114,109, 97,108, 40,102,108,111, 97,116, 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,
-111,114,109, 97,108, 44, 32,118,101, 99, 51, 32,110,101,119,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45,
- 32,110,111,114,102, 97, 99, 41, 42,110,111,114,109, 97,108, 32, 43, 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109,
- 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,
-114,109, 97,108, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110,
- 95,104,101,109,105, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102,
- 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32,108, 97,109,112,118,101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48,
- 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,
-105,115,105, 98,105,108,105,116,121, 95,111,116,104,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,
-109,112, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,
-116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111,
- 32, 45, 32,108, 97,109,112, 99,111, 59, 10, 9,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,
-108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49,
- 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101,
- 97,114, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108,
- 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,
-108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,
-108, 97,109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108,
- 97,109,112, 95,102, 97,108,108,111,102,102, 95,115,108,105,100,101,114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,
-115,116, 44, 32,102,108,111, 97,116, 32,108,100, 49, 44, 32,102,108,111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,
-100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,
-116, 32,108, 97,109,112,100,105,115,116,107,119, 32, 61, 32,108, 97,109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116,
- 59, 10, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116,
- 32, 43, 32,108,100, 49, 42,100,105,115,116, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,
-115,116,107,119, 47, 40,108, 97,109,112,100,105,115,116,107,119, 32, 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116,
- 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,
-111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109, 97,112,
- 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41,
- 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112,
- 44, 32,118,101, 99, 50, 40,100,105,115,116, 47,108, 97,109,112,100,105,115,116, 44, 32, 48, 46, 48, 41, 41, 46,120, 59, 10,125,
- 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,104,101,114,101, 40,102,108,
-111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,102,108,111, 97,116, 32,
-118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123,
- 10, 9,102,108,111, 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32,100,105,115,116, 59, 10, 10, 9,111,117,
-116,118,105,115,105,102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40,116, 44, 32, 48, 46, 48, 41, 47,108, 97,
-109,112,100,105,115,116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,
-115,112,111,116, 95,115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,109, 97,116, 52, 32,108,
- 97,109,112,105,109, 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114,
- 41, 10,123, 10, 9,105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 62, 32, 48, 46, 48, 41, 32,
-123, 10, 9, 9,118,101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112,105,109, 97,116, 42,118,101, 99, 52, 40,
-108,118, 44, 32, 48, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,109, 97,120, 40, 97,
- 98,115, 40,108,118,114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, 98,115, 40,108,118,114,111,116, 46,121,
- 47,108,118,114,111,116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, 49, 46, 48, 47,115,113,114,116, 40, 49,
- 46, 48, 32, 43, 32,120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9,105,110,112,114, 32, 61, 32, 48, 46, 48,
- 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95, 99,
-105,114, 99,108,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, 32,100,111,116, 40,108,118, 44, 32,108,
- 97,109,112,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121,
- 95,115,112,111,116, 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108,111, 97,116, 32,115,112,111,116, 98,108,
- 44, 32,102,108,111, 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 32, 61, 32,
-115,112,111,116,115,105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, 41, 32,123, 10, 9, 9,111,117,116,118,
-105,115,105,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 32, 61, 32,105,
-110,112,114, 32, 45, 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114,101, 97, 32, 42, 47, 10, 9, 9,105,102,
- 40,115,112,111,116, 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112,114, 32, 42, 61, 32,115,109,111,111,116,
-104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, 98,108, 41, 59, 10, 10, 9, 9,111,117,
-116,118,105,115,105,102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112,114, 59, 10, 9,125, 10,125, 10, 10,118,
-111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,
-118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123,
- 10, 9,111,117,116,118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, 99, 32, 60, 32, 48, 46, 48, 48, 49, 41,
- 63, 32, 48, 46, 48, 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,118,105,
-101,119, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 41, 10,123, 10, 9, 47, 42,
- 32,104, 97,110,100,108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114,116,104,111,103,114, 97,112,104,105, 99,
- 32, 42, 47, 10, 9,118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77, 97,116,114,105,120,
- 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 58, 32,118,
-101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,
-100,101, 95,116, 97,110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,116, 97,110,103, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99, 32, 61, 32, 99,114,111,115,115, 40,
-108,118, 44, 32,116, 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, 61, 32, 99,114,111,115,115, 40, 99, 44,
- 32,116, 97,110,103, 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,118,110,111,114, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51,
- 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,105,110,112, 32, 61, 32,100,111,116,
- 40,118,110, 44, 32,108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,110,111, 95,100,105,
-102,102,117,115,101, 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 48, 59,
- 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, 40,102,108,111, 97,116, 32,105,110,112,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 53, 42,105,110,112, 32,
- 43, 32, 48, 46, 53, 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121,
- 40,109, 97,116, 52, 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10,
- 9,118,101, 99, 51, 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102,108,111, 97,116, 32,114, 97,100, 91, 52,
- 93, 44, 32,102, 97, 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111,
- 32, 45, 32, 97,114,101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 49, 93, 32, 61, 32,110,111,114,109, 97,
-108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 50, 93, 32,
- 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 50, 93, 46,120,121,122, 41, 59, 10, 9,
-118,101, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 51, 93, 46,
-120,121,122, 41, 59, 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,
-101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,
-122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9, 99, 91, 50, 93,
- 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51,
- 93, 41, 41, 59, 10, 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99,
- 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, 93, 32, 61, 32, 97, 99,111,115, 40,100,
-111,116, 40,118,101, 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 49, 93, 32, 61, 32, 97,
- 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 50,
- 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10, 9,
-114, 97,100, 91, 51, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93,
- 41, 41, 59, 10, 10, 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 48, 93, 41,
- 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 49, 93, 41, 59, 10, 9,
-102, 97, 99, 43, 61, 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 50, 93, 41, 59, 10, 9,102, 97, 99,
- 43, 61, 32,114, 97,100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, 41, 59, 10, 10, 9,114,101,116,117,114,
-110, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,
-110,112, 95, 97,114,101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,118,101, 99, 51, 32,108, 97,109,112,
- 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,109, 97,116, 52, 32,
- 97,114,101, 97, 44, 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32,102,108,111, 97,116, 32,107, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99,111, 32, 61, 32,112,111,115,105,116,
-105,111,110, 59, 10, 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, 10, 9,
-105,102, 40,100,111,116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,
-105,110,112, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,105,110,
-116,101,110,115, 32, 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, 40, 97,114,101, 97, 44, 32, 99,111,
- 44, 32,118,110, 41, 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110,116,101,110,115, 42, 97,114,101, 97,115,
-105,122,101, 44, 32,107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,
-101, 95,111,114,101,110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,
-101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,
-118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104,
- 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,
-118, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110,108, 32, 61, 32,100,111,116, 40,110, 44,
- 32,108, 41, 59, 10, 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61,
- 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,
-105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,118,104, 32,
- 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 76,
-105,116, 95, 65, 32, 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 86,105,101,
-119, 95, 65, 32, 61, 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, 51, 32, 76,105,116, 95, 66, 32, 61, 32,
-110,111,114,109, 97,108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, 41, 59, 10, 9, 9,118,101, 99, 51, 32,
- 86,105,101,119, 95, 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, 32,110,118, 42,110, 41, 59, 10, 10, 9,
- 9,102,108,111, 97,116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, 95, 66, 44, 32, 86,105,101,119, 95, 66,
- 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, 59, 10, 10, 9, 9,105,102, 40, 76,105,
-116, 95, 65, 32, 62, 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9,
- 9, 98, 32, 61, 32, 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 97, 32, 61,
- 32, 86,105,101,119, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9,125, 10, 10, 9, 9,102,108,
-111, 97,116, 32, 65, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104,
- 41, 47, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, 51, 41, 41, 41, 59, 10, 9, 9,102,108,
-111, 97,116, 32, 66, 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,111,
-117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, 9, 9, 98, 32, 42, 61, 32, 48, 46, 57,
- 53, 59, 10, 9, 9,105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, 32,116, 32, 42, 32,115,105,110, 40, 97,
- 41, 32, 42, 32,116, 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,
-105,102,102,117,115,101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51,
- 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116,
- 40,110, 44, 32,108, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59,
- 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,
-101, 32,105,102, 40, 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,
-115,109,111,111,116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,
-115, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111,116,104, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,109,105,110,110, 97,101,114,116,
- 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116,
- 32,100, 97,114,107,110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,102, 40,110,
-108, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101,
- 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48,
- 46, 48, 41, 59, 10, 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, 32, 49, 46, 48, 41, 10, 9, 9, 9,105,
-115, 32, 61, 32,110,108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, 48, 46, 49, 41, 44, 32,100, 97,114,107,
-110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,
-111,119, 40, 49, 46, 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59,
- 10, 9,125, 10,125, 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,118,101, 99, 51, 32,118,105,
-101,119, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97,100, 44, 32,102,108,111, 97,116, 32,102,
- 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9,102,108,111, 97,116, 32,102,102, 97, 99,
- 59, 10, 10, 9,105,102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59,
- 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40,118,105,101,119, 44, 32,118,110, 41, 59,
- 10, 9, 9,105,102, 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, 43,116, 49, 59, 10, 9, 9,101,108,115,
-101, 32,116, 50, 61, 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103,114, 97,100, 32, 43, 32, 40, 49, 46, 48,
- 45,103,114, 97,100, 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, 9, 9,105,102, 40,116, 50, 60, 48, 46,
- 48, 41, 32,102,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40,116, 50, 62, 49, 46, 48, 41,
- 32,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, 97, 99, 32, 61, 32,116, 50, 59, 10, 9,
-125, 10, 10, 9,114,101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,
-105,102,102,117,115,101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44,
- 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95,105, 44, 32,102,108,111, 97,116, 32,102,
- 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32,102,114,101,115,110,101,
-108, 95,102, 97, 99, 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,115,104, 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105,115, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, 32, 38, 38, 32,105,115, 60, 49, 46, 48,
- 41, 10, 9, 9,111,117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,
-105,115, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, 59, 10,125, 10, 10,118,111,105,100, 32,
-115,104, 97,100,101, 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,118,105,115,
-105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,
- 41, 10,123, 10, 9, 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, 9,111,117,116,105, 32, 61, 32,109, 97,
-120, 40,105, 42,118,105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, 59, 10, 9, 47, 42,101,108,115,101, 10,
- 9, 9,111,117,116,105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,110,103,
-101,110,116, 95,118, 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,
-110, 41, 10,123, 10, 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,
-100,100, 95,116,111, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, 32,118,101, 99, 51, 32,108, 97,109,112,
- 99,111,108, 44, 32,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,
-123, 10, 9,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,105, 42,108, 97,109,112,
- 99,111,108, 42, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 48,
- 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,104,101,109,
-105, 95,115,112,101, 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,
-101,119, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,102,108,111, 97,
-116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,108,118, 32, 43, 61,
- 32,118,105,101,119, 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, 10, 9,116, 32,
- 61, 32,100,111,116, 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, 53, 42,116, 32, 43, 32, 48, 46, 53, 59,
- 10, 10, 9,116, 32, 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111,119, 40,116, 44, 32,104, 97,114,100, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95,115,112,101, 99, 40,118,101, 99, 51, 32,
-110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,
-114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,109, 97,
-120, 40,100,111,116, 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,112,
-111,119, 40,114,115,108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,111,
-111,107,116,111,114,114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51,
- 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97,
- 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59,
- 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 10, 9,105,102, 40,110,104, 32,
- 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,
-115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44,
- 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, 40,110,104, 44, 32,104, 97,114,100, 41,
- 59, 10, 10, 9, 9,105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61,
- 32,105, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98,108,105,110,110, 95,115,112,101, 99, 40,
-118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,101,
-102,114, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, 99, 32, 60, 32, 49, 46, 48, 41, 32,123,
- 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,115,112,
-101, 99, 95,112,111,119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48,
- 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112,101, 99, 95,112,111,119,101,114, 60, 49,
- 48, 48, 46, 48, 41, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115,113,114,116, 40, 49, 46, 48, 47,115,112,
-101, 99, 95,112,111,119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61,
- 32, 49, 48, 46, 48, 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,
-114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116,
- 40,110, 44, 32,104, 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, 9,115,112,101, 99,
-102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,102,108,111, 97,116,
- 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 9, 9, 9,102,
-108,111, 97,116, 32,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, 9, 9,105,102, 40,110,108, 32, 60, 61,
- 32, 48, 46, 48, 49, 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 9,125,
- 10, 9, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,
-116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97, 32, 61, 32, 49,
- 46, 48, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,118, 41, 47,118,104,
- 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,108, 41, 47,118,104, 59, 10,
- 10, 9, 9, 9, 9,102,108,111, 97,116, 32,103, 32, 61, 32, 48, 46, 48, 59, 10, 10, 9, 9, 9, 9,105,102, 40, 97, 32, 60, 32,
- 98, 32, 38, 38, 32, 97, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 97, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105,102, 40, 98,
- 32, 60, 32, 97, 32, 38, 38, 32, 98, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 98, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105,
-102, 40, 99, 32, 60, 32, 97, 32, 38, 38, 32, 99, 32, 60, 32, 98, 41, 32,103, 32, 61, 32, 99, 59, 10, 10, 9, 9, 9, 9,102,108,
-111, 97,116, 32,112, 32, 61, 32,115,113,114,116, 40, 40, 40,114,101,102,114, 97, 99, 32, 42, 32,114,101,102,114, 97, 99, 41, 43,
- 40,118,104, 42,118,104, 41, 45, 49, 46, 48, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,102, 32, 61, 32, 40, 40, 40,
-112, 45,118,104, 41, 42, 40,112, 45,118,104, 41, 41, 47, 40, 40,112, 43,118,104, 41, 42, 40,112, 43,118,104, 41, 41, 41, 42, 40,
- 49, 46, 48, 43, 40, 40, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 42, 40, 40,118,104, 42, 40,112, 43,
-118,104, 41, 41, 45, 49, 46, 48, 41, 41, 47, 40, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, 42, 40, 40,
-118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, 41, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97,110,
-103, 32, 61, 32, 97, 99,111,115, 40,110,104, 41, 59, 10, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,109, 97,120,
- 40,102, 42,103, 42,101,120,112, 95, 98,108,101,110,100,101,114, 40, 40, 45, 40, 97,110,103, 42, 97,110,103, 41, 47, 40, 50, 46,
- 48, 42,115,112,101, 99, 95,112,111,119,101,114, 42,115,112,101, 99, 95,112,111,119,101,114, 41, 41, 41, 44, 32, 48, 46, 48, 41,
- 59, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,119, 97,114,100,
-105,115,111, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44,
- 32,102,108,111, 97,116, 32,114,109,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123,
- 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,
-111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10,
- 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 48, 49,
- 41, 59, 10, 9,102,108,111, 97,116, 32,110,108, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,108, 41, 44, 32, 48, 46,
- 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103,108,101, 32, 61, 32,116, 97,110, 40, 97, 99,111,115, 40,110,104,
- 41, 41, 59, 10, 9,102,108,111, 97,116, 32, 97,108,112,104, 97, 32, 61, 32,109, 97,120, 40,114,109,115, 44, 32, 48, 46, 48, 48,
- 49, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 61, 32,110,108, 32, 42, 32, 40, 49, 46, 48, 47, 40, 52, 46, 48, 42, 77, 95,
- 80, 73, 42, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 42, 40,101,120,112, 95, 98,108,101,110,100,101,114, 40, 45, 40,
- 97,110,103,108,101, 42, 97,110,103,108,101, 41, 47, 40, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 47, 40,115,113,114,
-116, 40,110,118, 42,110,108, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116,111,111,110, 95,115,
+116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32,115, 32, 61, 32, 49, 46, 48, 59,
+ 9, 9, 47, 47, 32,110,101,103, 97,116,101, 32,116,104,105,115, 32,105,102, 32,102,108,105,112,112,101,100, 32,116,101,120,116,
+117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,
+120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,
+116,101,120, 99,111, 46,120,121, 41, 59, 10, 9, 10, 9, 47, 47, 32,116,104,105,115, 32,118, 97,114,105, 97,110,116, 32,117,115,
+105,110,103, 32, 97, 32,100,101,114,105,118, 97,116,105,118,101, 32,109, 97,112, 32,105,115, 32,100,101,115, 99,114,105, 98,101,
+100, 32,104,101,114,101, 10, 9, 47, 47, 32,104,116,116,112, 58, 47, 47,109,109,105,107,107,101,108,115,101,110, 51,100, 46, 98,
+108,111,103,115,112,111,116, 46, 99,111,109, 47, 50, 48, 49, 49, 47, 48, 55, 47,100,101,114,105,118, 97,116,105,118,101, 45,109,
+ 97,112,115, 46,104,116,109,108, 10, 9,118,101, 99, 50, 32,100,105,109, 32, 61, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 44,
+ 32,105,109, 97, 95,121, 41, 59, 10, 9,118,101, 99, 50, 32,100, 66,100,117,118, 32, 61, 32,104, 83, 99, 97,108,101, 42,100,105,
+109, 42, 40, 50, 46, 48, 42,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,
+120,121, 45, 49, 46, 48, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,120, 46,
+120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,120, 46,121, 59, 10, 9,100, 66,116, 32, 61, 32,100, 66,
+100,117,118, 46,120, 42, 84,101,120, 68,121, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,121, 46,
+121, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 40, 32,102,108,111, 97,
+116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,102,108,111, 97,116, 32,100, 66,116, 44, 32,118,101,
+ 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44,
+ 10, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32,111,117,116, 32,
+118,101, 99, 51, 32,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118,
+ 83,117,114,102, 71,114, 97,100, 32, 61, 32,115,105,103,110, 40,102, 68,101,116, 41, 32, 42, 32, 40, 32,100, 66,115, 32, 42, 32,
+118, 82, 49, 32, 43, 32,100, 66,116, 32, 42, 32,118, 82, 50, 32, 41, 59, 10, 9, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32,
+ 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 45, 32,118, 83,117,114,102, 71,114, 97,100, 59, 10, 9,112,101,114,116,117,114, 98,
+101,100, 95,110,111,114,109, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,118, 78, 97, 99, 99, 95,111,117,116, 32, 41,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 95,116,101,120,115,112, 97,
+ 99,101, 40, 32,102,108,111, 97,116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,102,108,111, 97,116,
+ 32,100, 66,116, 44, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32,118, 82, 50, 44, 10, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 97,109,112,108,101,114,
+ 50, 68, 32,105,109, 97, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44,
+ 32,102,108,111, 97,116, 32,105,109, 97, 95,121, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9,
+ 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32,111,117,116, 32,118,
+101, 99, 51, 32,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 84,101,
+120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,
+121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, 51, 32,118, 83,117,114,102,
+ 71,114, 97,100, 32, 61, 32,115,105,103,110, 40,102, 68,101,116, 41, 32, 42, 32, 40, 32, 10, 9, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32,100, 66,115, 32, 47, 32,108,101,110,103,116,104, 40, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 42, 84,101,120,
+ 68,120, 46,120, 44, 32,105,109, 97, 95,121, 42, 84,101,120, 68,120, 46,121, 41, 32, 41, 32, 42, 32,118, 82, 49, 32, 43, 32, 10,
+ 9, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,100, 66,116, 32, 47, 32,108,101,110,103,116,104, 40, 32,118,101, 99, 50, 40,
+105,109, 97, 95,120, 42, 84,101,120, 68,121, 46,120, 44, 32,105,109, 97, 95,121, 42, 84,101,120, 68,121, 46,121, 41, 32, 41, 32,
+ 42, 32,118, 82, 50, 32, 41, 59, 10, 9, 9, 9, 9, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99,
+ 95,105,110, 32, 45, 32,118, 83,117,114,102, 71,114, 97,100, 59, 10, 9,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109,
+ 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,118, 78, 97, 99, 99, 95,111,117,116, 32, 41, 59, 10,125, 10, 10,118,111,
+105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101,120,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,110,111,
+114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116,
+110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111,114,109, 97,108, 46,120, 44, 32, 45,110,111,114,109, 97,108,
+ 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,115,112, 97,
+ 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,118,101, 99, 51, 32,110,111,
+114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,
+117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,118,101, 99, 51, 32, 66, 32, 61, 32,116, 97,110,103,101,110,116, 46,119, 32,
+ 42, 32, 99,114,111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10, 10, 9,
+111,117,116,110,111,114,109, 97,108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,103,101,110,116, 46,
+120,121,122, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,
+122, 42,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101,
+ 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,108,101,110,100, 95,
+110,111,114,109, 97,108, 40,102,108,111, 97,116, 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108,
+ 44, 32,118,101, 99, 51, 32,110,101,119,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,
+114,109, 97,108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32,110,111,114,102,
+ 97, 99, 41, 42,110,111,114,109, 97,108, 32, 43, 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109, 97,108, 59, 10, 9,
+111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41,
+ 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 47, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110, 95,104,101,109,105,
+ 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,
+102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123,
+ 10, 9,108,118, 32, 61, 32,108, 97,109,112,118,101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,118,105,
+115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,
+108,105,116,121, 95,111,116,104,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44,
+ 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111, 32, 45, 32,108, 97,
+109,112, 99,111, 59, 10, 9,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,108,118, 32, 61, 32,
+110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125,
+ 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101, 97,114, 40,102,108,
+111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,
+115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,
+109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,
+105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102,
+ 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,
+105,115,116, 32, 43, 32,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102,
+ 97,108,108,111,102,102, 95,115,108,105,100,101,114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,
+108,111, 97,116, 32,108,100, 49, 44, 32,102,108,111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44,
+ 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,108, 97,109,
+112,100,105,115,116,107,119, 32, 61, 32,108, 97,109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116, 59, 10, 10, 9,118,
+105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,108,100,
+ 49, 42,100,105,115,116, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,115,116,107,119, 47,
+ 40,108, 97,109,112,100,105,115,116,107,119, 32, 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10,
+ 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,111, 97,116, 32,108,
+ 97,109,112,100,105,115,116, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111,
+ 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,
+105,115,105,102, 97, 99, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99,
+ 50, 40,100,105,115,116, 47,108, 97,109,112,100,105,115,116, 44, 32, 48, 46, 48, 41, 41, 46,120, 59, 10,125, 10, 10,118,111,105,
+100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,104,101,114,101, 40,102,108,111, 97,116, 32,108,
+ 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102,
+ 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111,
+ 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32,100,105,115,116, 59, 10, 10, 9,111,117,116,118,105,115,105,
+102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40,116, 44, 32, 48, 46, 48, 41, 47,108, 97,109,112,100,105,115,
+116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95,
+115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,109, 97,116, 52, 32,108, 97,109,112,105,109,
+ 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,
+105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,118,
+101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112,105,109, 97,116, 42,118,101, 99, 52, 40,108,118, 44, 32, 48,
+ 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,109, 97,120, 40, 97, 98,115, 40,108,118,
+114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, 98,115, 40,108,118,114,111,116, 46,121, 47,108,118,114,111,
+116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, 49, 46, 48, 47,115,113,114,116, 40, 49, 46, 48, 32, 43, 32,
+120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9,105,110,112,114, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,
+118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95, 99,105,114, 99,108,101,
+ 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, 32,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101,
+ 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116,
+ 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108,111, 97,116, 32,115,112,111,116, 98,108, 44, 32,102,108,111,
+ 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 32, 61, 32,115,112,111,116,115,
+105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, 41, 32,123, 10, 9, 9,111,117,116,118,105,115,105,102, 97,
+ 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 32, 61, 32,105,110,112,114, 32, 45,
+ 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114,101, 97, 32, 42, 47, 10, 9, 9,105,102, 40,115,112,111,116,
+ 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112,114, 32, 42, 61, 32,115,109,111,111,116,104,115,116,101,112,
+ 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, 98,108, 41, 59, 10, 10, 9, 9,111,117,116,118,105,115,105,
+102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112,114, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,108,
+ 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,118,105,115,105,102,
+ 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,111,117,116,
+118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, 99, 32, 60, 32, 48, 46, 48, 48, 49, 41, 63, 32, 48, 46, 48,
+ 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,118,105,101,119, 40,118,101,
+ 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 41, 10,123, 10, 9, 47, 42, 32,104, 97,110,100,
+108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114,116,104,111,103,114, 97,112,104,105, 99, 32, 42, 47, 10, 9,
+118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77, 97,116,114,105,120, 91, 51, 93, 91, 51,
+ 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 58, 32,118,101, 99, 51, 40, 48,
+ 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,
+110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,
+118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99, 32, 61, 32, 99,114,111,115,115, 40,108,118, 44, 32,116,
+ 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, 61, 32, 99,114,111,115,115, 40, 99, 44, 32,116, 97,110,103,
+ 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,118,110,111,114, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,
+111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,105,110,112, 32, 61, 32,100,111,116, 40,118,110, 44, 32,
+108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,110,111, 95,100,105,102,102,117,115,101,
+ 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,
+111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, 40,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116,
+ 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 53, 42,105,110,112, 32, 43, 32, 48, 46, 53,
+ 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, 40,109, 97,116, 52,
+ 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51,
+ 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102,108,111, 97,116, 32,114, 97,100, 91, 52, 93, 44, 32,102, 97,
+ 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,
+101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,
+ 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 50, 93, 32, 61, 32,110,111,114,
+109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 50, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 51,
+ 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 51, 93, 46,120,121,122, 41, 59,
+ 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 48, 93,
+ 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,
+111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9, 99, 91, 50, 93, 32, 61, 32,110,111,
+114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10,
+ 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 51, 93, 44, 32,
+118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101,
+ 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 49, 93, 32, 61, 32, 97, 99,111,115, 40,100,
+111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 50, 93, 32, 61, 32, 97,
+ 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 51,
+ 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10,
+ 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 48, 93, 41, 59, 10, 9,102, 97,
+ 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 49, 93, 41, 59, 10, 9,102, 97, 99, 43, 61,
+ 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 50, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,
+100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, 41, 59, 10, 10, 9,114,101,116,117,114,110, 32,109, 97,120,
+ 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 95, 97,114,
+101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,118,
+101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,109, 97,116, 52, 32, 97,114,101, 97, 44,
+ 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32,102,108,111, 97,116, 32,107, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99,111, 32, 61, 32,112,111,115,105,116,105,111,110, 59, 10,
+ 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, 10, 9,105,102, 40,100,111,
+116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,110,112, 32, 61,
+ 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,105,110,116,101,110,115, 32,
+ 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, 40, 97,114,101, 97, 44, 32, 99,111, 44, 32,118,110, 41,
+ 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110,116,101,110,115, 42, 97,114,101, 97,115,105,122,101, 44, 32,
+107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,111,114,101,
+110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108,
+ 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104, 44, 32,111,117,116, 32,102,108,111, 97,116,
+ 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108,
+ 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46,
+ 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48,
+ 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10,
+ 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59,
+ 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32,
+ 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120,
+ 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 76,105,116, 95, 65, 32,
+ 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 86,105,101,119, 95, 65, 32, 61,
+ 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, 51, 32, 76,105,116, 95, 66, 32, 61, 32,110,111,114,109, 97,
+108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, 41, 59, 10, 9, 9,118,101, 99, 51, 32, 86,105,101,119, 95,
+ 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, 32,110,118, 42,110, 41, 59, 10, 10, 9, 9,102,108,111, 97,
+116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, 95, 66, 44, 32, 86,105,101,119, 95, 66, 41, 44, 32, 48, 46,
+ 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, 59, 10, 10, 9, 9,105,102, 40, 76,105,116, 95, 65, 32, 62,
+ 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32,
+ 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 86,105,101,119,
+ 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9,125, 10, 10, 9, 9,102,108,111, 97,116, 32, 65,
+ 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,
+111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, 51, 41, 41, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 66,
+ 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,
+111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, 9, 9, 98, 32, 42, 61, 32, 48, 46, 57, 53, 59, 10, 9, 9,
+105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, 32,116, 32, 42, 32,115,105,110, 40, 97, 41, 32, 42, 32,116,
+ 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,
+101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,
+108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,110, 44, 32,108,
+ 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102,
+ 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,
+ 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,
+104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,115, 32, 61, 32, 49,
+ 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111,116,104, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,109,105,110,110, 97,101,114,116, 40,102,108,111, 97,
+116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,100, 97,114,107,
+110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,102, 40,110,108, 32, 60, 61, 32,
+ 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,
+102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10,
+ 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, 32, 49, 46, 48, 41, 10, 9, 9, 9,105,115, 32, 61, 32,110,
+108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, 48, 46, 49, 41, 44, 32,100, 97,114,107,110,101,115,115, 32,
+ 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40, 49, 46,
+ 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9,125, 10,125,
+ 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,118,101, 99, 51, 32,118,105,101,119, 44, 32,118,
+101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97,100, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123,
+ 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9,102,108,111, 97,116, 32,102,102, 97, 99, 59, 10, 10, 9,105,
+102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 9,
+101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40,118,105,101,119, 44, 32,118,110, 41, 59, 10, 9, 9,105,102,
+ 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, 43,116, 49, 59, 10, 9, 9,101,108,115,101, 32,116, 50, 61,
+ 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103,114, 97,100, 32, 43, 32, 40, 49, 46, 48, 45,103,114, 97,100,
+ 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, 9, 9,105,102, 40,116, 50, 60, 48, 46, 48, 41, 32,102,102,
+ 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40,116, 50, 62, 49, 46, 48, 41, 32,102,102, 97, 99,
+ 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, 97, 99, 32, 61, 32,116, 50, 59, 10, 9,125, 10, 10, 9,114,
+101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,
+101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51,
+ 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95,105, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,
+117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32,102,114,101,115,110,101,108, 95,102, 97, 99,
+ 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104,
+ 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
+116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, 32, 38, 38, 32,105,115, 60, 49, 46, 48, 41, 10, 9, 9,111,
+117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,105,115, 41, 59, 10,
+ 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101,
+ 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44,
+ 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105, 41, 10,123, 10, 9,
+ 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, 9,111,117,116,105, 32, 61, 32,109, 97,120, 40,105, 42,118,
+105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, 59, 10, 9, 47, 42,101,108,115,101, 10, 9, 9,111,117,116,
+105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118,
+ 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10,
+ 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,116,111,
+ 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,
+118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,105,102,
+ 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,105, 42,108, 97,109,112, 99,111,108, 42, 99,
+111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48,
+ 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,104,101,109,105, 95,115,112,101,
+ 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,
+108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,102,108,111, 97,116, 32,118,105,115,
+105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,108,118, 32, 43, 61, 32,118,105,101,119,
+ 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, 10, 9,116, 32, 61, 32,100,111,116,
+ 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, 53, 42,116, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,116, 32,
+ 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111,119, 40,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101,
+ 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,
+122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,109, 97,120, 40,100,111,116,
+ 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,112,111,119, 40,114,115,
+108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,111,111,107,116,111,114,
+114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,
+108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10,
+ 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111,
+ 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 10, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48,
+ 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10,
+ 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41,
+ 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, 40,110,104, 44, 32,104, 97,114,100, 41, 59, 10, 10, 9, 9,
+105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,105, 59, 10, 9,
+125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98,108,105,110,110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,
+110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,101,102,114, 97, 99, 44,
+ 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101,
+ 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, 99, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9,115,112,
+101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,115,112,101, 99, 95,112,111,
+119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,
+125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112,101, 99, 95,112,111,119,101,114, 60, 49, 48, 48, 46, 48, 41,
+ 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115,113,114,116, 40, 49, 46, 48, 47,115,112,101, 99, 95,112,111,
+119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32, 49, 48, 46, 48,
+ 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,
+122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104,
+ 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61,
+ 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61,
+ 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,
+110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, 9, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 49,
+ 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 9,125, 10, 9, 9, 9,101,
+108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,
+104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97, 32, 61, 32, 49, 46, 48, 59, 10, 9,
+ 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,118, 41, 47,118,104, 59, 10, 9, 9, 9,
+ 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,108, 41, 47,118,104, 59, 10, 10, 9, 9, 9, 9,
+102,108,111, 97,116, 32,103, 32, 61, 32, 48, 46, 48, 59, 10, 10, 9, 9, 9, 9,105,102, 40, 97, 32, 60, 32, 98, 32, 38, 38, 32,
+ 97, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 97, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105,102, 40, 98, 32, 60, 32, 97, 32,
+ 38, 38, 32, 98, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 98, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105,102, 40, 99, 32, 60,
+ 32, 97, 32, 38, 38, 32, 99, 32, 60, 32, 98, 41, 32,103, 32, 61, 32, 99, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,112,
+ 32, 61, 32,115,113,114,116, 40, 40, 40,114,101,102,114, 97, 99, 32, 42, 32,114,101,102,114, 97, 99, 41, 43, 40,118,104, 42,118,
+104, 41, 45, 49, 46, 48, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,102, 32, 61, 32, 40, 40, 40,112, 45,118,104, 41,
+ 42, 40,112, 45,118,104, 41, 41, 47, 40, 40,112, 43,118,104, 41, 42, 40,112, 43,118,104, 41, 41, 41, 42, 40, 49, 46, 48, 43, 40,
+ 40, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 42, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45,
+ 49, 46, 48, 41, 41, 47, 40, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, 42, 40, 40,118,104, 42, 40,112,
+ 45,118,104, 41, 41, 43, 49, 46, 48, 41, 41, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97,
+ 99,111,115, 40,110,104, 41, 59, 10, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,109, 97,120, 40,102, 42,103, 42,
+101,120,112, 95, 98,108,101,110,100,101,114, 40, 40, 45, 40, 97,110,103, 42, 97,110,103, 41, 47, 40, 50, 46, 48, 42,115,112,101,
+ 99, 95,112,111,119,101,114, 42,115,112,101, 99, 95,112,111,119,101,114, 41, 41, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9, 9,
+125, 10, 9, 9,125, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,119, 97,114,100,105,115,111, 95,115,
112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,
-116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,
-108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,104, 44, 32,110, 41, 59,
- 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102, 40, 97,
-110,103, 32, 60, 32,115,105,122,101, 41, 32,114,115,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,
- 97,110,103, 32, 62, 61, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,
-116,104, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,115,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,114,115,108,
-116, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111,116,104, 41,
- 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,114,115,108,116, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,
-101, 95,115,112,101, 99, 95, 97,114,101, 97, 95,105,110,112, 40,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 44, 32,102,
-108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,112,101, 99,102, 97, 99, 41, 10,
-123, 10, 9,111,117,116,115,112,101, 99,102, 97, 99, 32, 61, 32,115,112,101, 99,102, 97, 99, 42,105,110,112, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,104, 97,100,101, 95,115,112,101, 99, 95,116, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44,
- 32,102,108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,
-116, 32,115,112,101, 99,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,116, 32, 61, 32,115,
-104, 97,100,102, 97, 99, 42,115,112,101, 99, 42,118,105,115,105,102, 97, 99, 42,115,112,101, 99,102, 97, 99, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,115,112,101, 99, 40,102,108,111, 97,116, 32,116, 44, 32,118,101, 99,
- 51, 32,108, 97,109,112, 99,111,108, 44, 32,118,101, 99, 51, 32,115,112,101, 99, 99,111,108, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116, 42,108, 97,109,112, 99,111,108, 42,
-115,112,101, 99, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 40,118,101, 99, 52, 32,
- 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108,
- 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 59, 10,125, 10, 10,118,111,
-105,100, 32,115,104, 97,100,101, 95,109, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, 99,111,108,
- 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10,125, 10, 10,118,
-111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95, 99,108, 97,109,112,101,100, 40,118,101, 99, 52, 32, 99,111,108, 49, 44,
+116, 32,114,109,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99,
+ 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,110,
+104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,
+116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 9,102,
+108,111, 97,116, 32,110,108, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,108, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59,
+ 10, 9,102,108,111, 97,116, 32, 97,110,103,108,101, 32, 61, 32,116, 97,110, 40, 97, 99,111,115, 40,110,104, 41, 41, 59, 10, 9,
+102,108,111, 97,116, 32, 97,108,112,104, 97, 32, 61, 32,109, 97,120, 40,114,109,115, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 10,
+ 9,115,112,101, 99,102, 97, 99, 61, 32,110,108, 32, 42, 32, 40, 49, 46, 48, 47, 40, 52, 46, 48, 42, 77, 95, 80, 73, 42, 97,108,
+112,104, 97, 42, 97,108,112,104, 97, 41, 41, 42, 40,101,120,112, 95, 98,108,101,110,100,101,114, 40, 45, 40, 97,110,103,108,101,
+ 42, 97,110,103,108,101, 41, 47, 40, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 47, 40,115,113,114,116, 40,110,118, 42,
+110,108, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116,111,111,110, 95,115,112,101, 99, 40,118,
+101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,
+101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,
+102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118,
+ 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,104, 44, 32,110, 41, 59, 10, 9,102,108,111,
+ 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,
+115,105,122,101, 41, 32,114,115,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 97,110,103, 32, 62,
+ 61, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,104, 32, 61, 61,
+ 32, 48, 46, 48, 41, 32,114,115,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,114,115,108,116, 32, 61, 32, 49,
+ 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111,116,104, 41, 59, 10, 10, 9,115,
+112,101, 99,102, 97, 99, 32, 61, 32,114,115,108,116, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,115,112,101,
+ 99, 95, 97,114,101, 97, 95,105,110,112, 40,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 44, 32,102,108,111, 97,116, 32,
+105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,111,117,
+116,115,112,101, 99,102, 97, 99, 32, 61, 32,115,112,101, 99,102, 97, 99, 42,105,110,112, 59, 10,125, 10, 10,118,111,105,100, 32,
+115,104, 97,100,101, 95,115,112,101, 99, 95,116, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44, 32,102,108,111, 97,
+116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101,
+ 99,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,116, 32, 61, 32,115,104, 97,100,102, 97,
+ 99, 42,115,112,101, 99, 42,118,105,115,105,102, 97, 99, 42,115,112,101, 99,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,
+115,104, 97,100,101, 95, 97,100,100, 95,115,112,101, 99, 40,102,108,111, 97,116, 32,116, 44, 32,118,101, 99, 51, 32,108, 97,109,
+112, 99,111,108, 44, 32,118,101, 99, 51, 32,115,112,101, 99, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,
+ 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116, 42,108, 97,109,112, 99,111,108, 42,115,112,101, 99, 99,
+111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 49, 44,
32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
-111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 32, 43, 32,109, 97,120, 40, 99,111,108, 50, 44, 32,118,101, 99, 52, 40, 48,
- 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,
-100,101, 95,109, 97,100,100, 95, 99,108, 97,109,112,101,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, 99,
-111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41,
- 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,109, 97,120, 40, 99,111,108, 49, 42, 99,111,108, 50,
- 44, 32,118,101, 99, 52, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,100,100,102, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116,
- 32,102, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,
-123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,102, 42, 99,111,108, 49, 59, 10,125, 10, 10,118,111,105,
-100, 32,115,104, 97,100,101, 95,109,117,108, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50,
- 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,
-111,108, 49, 42, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 95,118, 97,108,117,
-101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
-111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 42,102, 97, 99, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,104, 97,100,101, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99,
- 52, 32,111, 98, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116,
- 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 42,111, 98, 99,111,108, 46,114,103, 98, 44, 32, 99,111,
-108, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114, 97,109,112, 95,114,103, 98,116,111, 98,119, 40,118,101, 99, 51, 32,
- 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,
- 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 53, 56, 32,
- 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 49, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,
-108,121, 95,115,104, 97,100,111,119, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99,
- 44, 32,102,108,111, 97,116, 32,101,110,101,114,103,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,104, 97,
-100,102, 97, 99, 41, 10,123, 10, 9,111,117,116,115,104, 97,100,102, 97, 99, 32, 61, 32,105, 42,101,110,101,114,103,121, 42, 40,
- 49, 46, 48, 32, 45, 32,115,104, 97,100,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,
-108,121, 95,115,104, 97,100,111,119, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44,
- 32,118,101, 99, 51, 32,114,103, 98, 44, 32,118,101, 99, 52, 32,100,105,102,102, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,
-117,116,100,105,102,102, 41, 10,123, 10, 9,111,117,116,100,105,102,102, 32, 61, 32,100,105,102,102, 32, 45, 32,118,101, 99, 52,
- 40,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,
-101, 95,111,110,108,121, 95,115,104, 97,100,111,119, 95,115,112,101, 99,117,108, 97,114, 40,102,108,111, 97,116, 32,115,104, 97,
-100,102, 97, 99, 44, 32,118,101, 99, 51, 32,115,112,101, 99,114,103, 98, 44, 32,118,101, 99, 52, 32,115,112,101, 99, 44, 32,111,
-117,116, 32,118,101, 99, 52, 32,111,117,116,115,112,101, 99, 41, 10,123, 10, 9,111,117,116,115,112,101, 99, 32, 61, 32,115,112,
-101, 99, 32, 45, 32,118,101, 99, 52, 40,115,112,101, 99,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 40,118,101, 99, 51, 32,114, 99,111,
- 44, 32,115, 97,109,112,108,101,114, 50, 68, 83,104, 97,100,111,119, 32,115,104, 97,100,111,119,109, 97,112, 44, 32,109, 97,116,
- 52, 32,115,104, 97,100,111,119,112,101,114,115,109, 97,116, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,111,119, 98,105, 97,
-115, 44, 32,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,
-123, 10, 9,105,102, 40,105,110,112, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,101,115,117,108,116, 32, 61, 32, 48,
- 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,118,101, 99, 52, 32, 99,111, 32, 61, 32,115,104, 97,100,111,
-119,112,101,114,115,109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9, 9, 47, 47,102,108,
-111, 97,116, 32, 98,105, 97,115, 32, 61, 32, 40, 49, 46, 53, 32, 45, 32,105,110,112, 42,105,110,112, 41, 42,115,104, 97,100,111,
-119, 98,105, 97,115, 59, 10, 9, 9, 99,111, 46,122, 32, 45, 61, 32,115,104, 97,100,111,119, 98,105, 97,115, 42, 99,111, 46,119,
- 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40, 99,111, 46,119, 32, 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 32, 62, 32,
- 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 32, 62,
- 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 41, 10, 9, 9, 9,114,101,115,117,
-108,116, 32, 61, 32,115,104, 97,100,111,119, 50, 68, 80,114,111,106, 40,115,104, 97,100,111,119,109, 97,112, 44, 32, 99,111, 41,
- 46,120, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10,125,
- 10, 10,118,111,105,100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 95,118,115,109, 40,118,101, 99, 51, 32,114,
- 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,115,104, 97,100,111,119,109, 97,112, 44, 32,109, 97,116, 52, 32,115,104,
- 97,100,111,119,112,101,114,115,109, 97,116, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,111,119, 98,105, 97,115, 44, 32,102,
-108,111, 97,116, 32, 98,108,101,101,100, 98,105, 97,115, 44, 32,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,
-108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,105,102, 40,105,110,112, 32, 60, 61, 32, 48, 46, 48, 41, 32,123,
- 10, 9, 9,114,101,115,117,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,118,101,
- 99, 52, 32, 99,111, 32, 61, 32,115,104, 97,100,111,119,112,101,114,115,109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32,
- 49, 46, 48, 41, 59, 10, 9, 9,105,102, 32, 40, 99,111, 46,119, 32, 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 32, 62,
- 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 32,
- 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,118,
-101, 99, 50, 32,109,111,109,101,110,116,115, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 80,114,111,106, 40,115,104, 97,100,
-111,119,109, 97,112, 44, 32, 99,111, 41, 46,114,103, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,100,105,115,116, 32, 61, 32, 99,
-111, 46,122, 47, 99,111, 46,119, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,112, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 9, 10,
- 9, 9, 9,105,102, 40,100,105,115,116, 32, 60, 61, 32,109,111,109,101,110,116,115, 46,120, 41, 10, 9, 9, 9, 9,112, 32, 61,
- 32, 49, 46, 48, 59, 10, 10, 9, 9, 9,102,108,111, 97,116, 32,118, 97,114,105, 97,110, 99,101, 32, 61, 32,109,111,109,101,110,
-116,115, 46,121, 32, 45, 32, 40,109,111,109,101,110,116,115, 46,120, 42,109,111,109,101,110,116,115, 46,120, 41, 59, 10, 9, 9,
- 9,118, 97,114,105, 97,110, 99,101, 32, 61, 32,109, 97,120, 40,118, 97,114,105, 97,110, 99,101, 44, 32,115,104, 97,100,111,119,
- 98,105, 97,115, 47, 49, 48, 46, 48, 41, 59, 10, 10, 9, 9, 9,102,108,111, 97,116, 32,100, 32, 61, 32,109,111,109,101,110,116,
-115, 46,120, 32, 45, 32,100,105,115,116, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,112, 95,109, 97,120, 32, 61, 32,118, 97,114,
-105, 97,110, 99,101, 32, 47, 32, 40,118, 97,114,105, 97,110, 99,101, 32, 43, 32,100, 42,100, 41, 59, 10, 10, 9, 9, 9, 47, 47,
- 32, 78,111,119, 32,114,101,100,117, 99,101, 32,108,105,103,104,116, 45, 98,108,101,101,100,105,110,103, 32, 98,121, 32,114,101,
-109,111,118,105,110,103, 32,116,104,101, 32, 91, 48, 44, 32,120, 93, 32,116, 97,105,108, 32, 97,110,100, 32,108,105,110,101, 97,
-114,108,121, 32,114,101,115, 99, 97,108,105,110,103, 32, 40,120, 44, 32, 49, 93, 10, 9, 9, 9,112, 95,109, 97,120, 32, 61, 32,
- 99,108, 97,109,112, 40, 40,112, 95,109, 97,120, 45, 98,108,101,101,100, 98,105, 97,115, 41, 47, 40, 49, 46, 48, 45, 98,108,101,
-101,100, 98,105, 97,115, 41, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61,
- 32,109, 97,120, 40,112, 44, 32,112, 95,109, 97,120, 41, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,
-114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,125, 9, 9, 9, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,
-115,104, 97,100,101, 95,108,105,103,104,116, 95,116,101,120,116,117,114,101, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115, 97,
-109,112,108,101,114, 50, 68, 32, 99,111,111,107,105,101, 44, 32,109, 97,116, 52, 32,115,104, 97,100,111,119,112,101,114,115,109,
- 97,116, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 10, 9,118,101, 99, 52, 32, 99,111,
+111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104,
+ 97,100,101, 95,109, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101,
+ 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116,
+ 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,
+104, 97,100,101, 95, 97,100,100, 95, 99,108, 97,109,112,101,100, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52,
+ 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,
+108, 32, 61, 32, 99,111,108, 49, 32, 43, 32,109, 97,120, 40, 99,111,108, 50, 44, 32,118,101, 99, 52, 40, 48, 46, 48, 44, 32, 48,
+ 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,
+100,100, 95, 99,108, 97,109,112,101,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,
+118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,
+117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,109, 97,120, 40, 99,111,108, 49, 42, 99,111,108, 50, 44, 32,118,101, 99,
+ 52, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
+115,104, 97,100,101, 95,109, 97,100,100,102, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 44, 32,118,
+101, 99, 52, 32, 99,111,108, 49, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,
+116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,102, 42, 99,111,108, 49, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,
+100,101, 95,109,117,108, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116,
+ 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 42, 99,
+111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 95,118, 97,108,117,101, 40,102,108,111,
+ 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,
+108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 42,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,
+115,104, 97,100,101, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32,111, 98, 99,
+111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61,
+ 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 42,111, 98, 99,111,108, 46,114,103, 98, 44, 32, 99,111,108, 46, 97, 41, 59,
+ 10,125, 10, 10,118,111,105,100, 32,114, 97,109,112, 95,114,103, 98,116,111, 98,119, 40,118,101, 99, 51, 32, 99,111,108,111,114,
+ 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,
+ 99,111,108,111,114, 46,114, 42, 48, 46, 51, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 53, 56, 32, 43, 32, 99,111,108,
+111,114, 46, 98, 42, 48, 46, 49, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,108,121, 95,115,104,
+ 97,100,111,119, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44, 32,102,108,111,
+ 97,116, 32,101,110,101,114,103,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,104, 97,100,102, 97, 99, 41,
+ 10,123, 10, 9,111,117,116,115,104, 97,100,102, 97, 99, 32, 61, 32,105, 42,101,110,101,114,103,121, 42, 40, 49, 46, 48, 32, 45,
+ 32,115,104, 97,100,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,108,121, 95,115,104,
+ 97,100,111,119, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44, 32,118,101, 99, 51,
+ 32,114,103, 98, 44, 32,118,101, 99, 52, 32,100,105,102,102, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,100,105,102,
+102, 41, 10,123, 10, 9,111,117,116,100,105,102,102, 32, 61, 32,100,105,102,102, 32, 45, 32,118,101, 99, 52, 40,114,103, 98, 42,
+115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,108,
+121, 95,115,104, 97,100,111,119, 95,115,112,101, 99,117,108, 97,114, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44,
+ 32,118,101, 99, 51, 32,115,112,101, 99,114,103, 98, 44, 32,118,101, 99, 52, 32,115,112,101, 99, 44, 32,111,117,116, 32,118,101,
+ 99, 52, 32,111,117,116,115,112,101, 99, 41, 10,123, 10, 9,111,117,116,115,112,101, 99, 32, 61, 32,115,112,101, 99, 32, 45, 32,
+118,101, 99, 52, 40,115,112,101, 99,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115, 97,109,
+112,108,101,114, 50, 68, 83,104, 97,100,111,119, 32,115,104, 97,100,111,119,109, 97,112, 44, 32,109, 97,116, 52, 32,115,104, 97,
+100,111,119,112,101,114,115,109, 97,116, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,111,119, 98,105, 97,115, 44, 32,102,108,
+111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,105,102,
+ 40,105,110,112, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,101,115,117,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,
+125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,118,101, 99, 52, 32, 99,111, 32, 61, 32,115,104, 97,100,111,119,112,101,114,115,
+109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9, 9, 47, 47,102,108,111, 97,116, 32, 98,
+105, 97,115, 32, 61, 32, 40, 49, 46, 53, 32, 45, 32,105,110,112, 42,105,110,112, 41, 42,115,104, 97,100,111,119, 98,105, 97,115,
+ 59, 10, 9, 9, 99,111, 46,122, 32, 45, 61, 32,115,104, 97,100,111,119, 98,105, 97,115, 42, 99,111, 46,119, 59, 10, 9, 9, 10,
+ 9, 9,105,102, 32, 40, 99,111, 46,119, 32, 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 32, 62, 32, 48, 46, 48, 32, 38,
+ 38, 32, 99,111, 46,120, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 32, 62, 32, 48, 46, 48, 32,
+ 38, 38, 32, 99,111, 46,121, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 41, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32,
+115,104, 97,100,111,119, 50, 68, 80,114,111,106, 40,115,104, 97,100,111,119,109, 97,112, 44, 32, 99,111, 41, 46,120, 59, 10, 9,
+ 9,101,108,115,101, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10,125, 10, 10,118,111,105,
+100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 95,118,115,109, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115,
+ 97,109,112,108,101,114, 50, 68, 32,115,104, 97,100,111,119,109, 97,112, 44, 32,109, 97,116, 52, 32,115,104, 97,100,111,119,112,
+101,114,115,109, 97,116, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,111,119, 98,105, 97,115, 44, 32,102,108,111, 97,116, 32,
+ 98,108,101,101,100, 98,105, 97,115, 44, 32,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
+114,101,115,117,108,116, 41, 10,123, 10, 9,105,102, 40,105,110,112, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,101,
+115,117,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,118,101, 99, 52, 32, 99,111,
32, 61, 32,115,104, 97,100,111,119,112,101,114,115,109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59,
- 10, 10, 9,114,101,115,117,108,116, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 80,114,111,106, 40, 99,111,111,107,105,101,
- 44, 32, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,101,120,112,111,115,117,114,101, 95, 99,111,
-114,114,101, 99,116, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32,108,105,110,102, 97, 99, 44, 32,102,108,
-111, 97,116, 32,108,111,103,102, 97, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
-111,117,116, 99,111,108, 32, 61, 32,108,105,110,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32,101,120,112, 40, 99,111,108, 42,108,
-111,103,102, 97, 99, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,105,115,116, 95,102, 97, 99,116,
-111,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,109,105,115,116,115,116, 97, 44, 32,102,108,111, 97,116,
- 32,109,105,115,116,100,105,115,116, 44, 32,102,108,111, 97,116, 32,109,105,115,116,116,121,112,101, 44, 32,102,108,111, 97,116,
- 32,109,105,115,105, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,
-116, 32,102, 97, 99, 44, 32,122, 99,111,114, 59, 10, 10, 9,122, 99,111,114, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,
-116,105,111,110, 77, 97,116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,108,101,110,103,116,104,
- 40, 99,111, 41, 58, 32, 45, 99,111, 91, 50, 93, 59, 10, 9, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40, 40,122, 99,
-111,114, 45,109,105,115,116,115,116, 97, 41, 47,109,105,115,116,100,105,115,116, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59,
- 10, 9,105,102, 40,109,105,115,116,116,121,112,101, 32, 61, 61, 32, 48, 46, 48, 41, 32,102, 97, 99, 32, 42, 61, 32,102, 97, 99,
- 59, 10, 9,101,108,115,101, 32,105,102, 40,109,105,115,116,116,121,112,101, 32, 61, 61, 32, 49, 46, 48, 41, 59, 10, 9,101,108,
-115,101, 32,102, 97, 99, 32, 61, 32,115,113,114,116, 40,102, 97, 99, 41, 59, 10, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 49,
- 46, 48, 32, 45, 32, 40, 49, 46, 48, 45,102, 97, 99, 41, 42, 40, 49, 46, 48, 45,109,105,115,105, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,115,104, 97,100,101, 95,119,111,114,108,100, 95,109,105,120, 40,118,101, 99, 51, 32,104,111,114, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
- 32,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40, 99,111,108, 46, 97, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,
-111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,109,105,120, 40,104,111,114, 44, 32, 99,111,108, 46,114,103, 98, 44, 32,
-102, 97, 99, 41, 44, 32, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,108,112,104,
- 97, 95,111,112, 97,113,117,101, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
-111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 49, 46,
- 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,108,112,104, 97, 95,111, 98, 99,111,108,111,114, 40,
-118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32,111, 98, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,
-117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44,
- 32, 99,111,108, 46, 97, 42,111, 98, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 32, 78, 69, 87, 32, 83, 72, 65, 68, 69, 82, 32, 85, 84, 73, 76, 73, 84, 73, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 47, 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,100,105,101,108,101, 99,116,114,105, 99, 40,
-118,101, 99, 51, 32, 73,110, 99,111,109,105,110,103, 44, 32,118,101, 99, 51, 32, 78,111,114,109, 97,108, 44, 32,102,108,111, 97,
-116, 32,101,116, 97, 41, 10,123, 10, 32, 32, 32, 32, 47, 42, 32, 99,111,109,112,117,116,101, 32,102,114,101,115,110,101,108, 32,
-114,101,102,108,101, 99,116, 97,110, 99,101, 32,119,105,116,104,111,117,116, 32,101,120,112,108,105, 99,105,116,108,121, 32, 99,
-111,109,112,117,116,105,110,103, 10, 32, 32, 32, 32, 32, 32, 32,116,104,101, 32,114,101,102,114, 97, 99,116,101,100, 32,100,105,
-114,101, 99,116,105,111,110, 32, 42, 47, 10, 32, 32, 32, 32,102,108,111, 97,116, 32, 99, 32, 61, 32, 97, 98,115, 40,100,111,116,
- 40, 73,110, 99,111,109,105,110,103, 44, 32, 78,111,114,109, 97,108, 41, 41, 59, 10, 32, 32, 32, 32,102,108,111, 97,116, 32,103,
- 32, 61, 32,101,116, 97, 32, 42, 32,101,116, 97, 32, 45, 32, 49, 46, 48, 32, 43, 32, 99, 32, 42, 32, 99, 59, 10, 32, 32, 32, 32,
-102,108,111, 97,116, 32,114,101,115,117,108,116, 59, 10, 10, 32, 32, 32, 32,105,102, 40,103, 32, 62, 32, 48, 46, 48, 41, 32,123,
- 10, 32, 32, 32, 32, 32, 32, 32, 32,103, 32, 61, 32,115,113,114,116, 40,103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,102,108,
-111, 97,116, 32, 65, 32, 61, 40,103, 32, 45, 32, 99, 41, 47, 40,103, 32, 43, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,
-102,108,111, 97,116, 32, 66, 32, 61, 40, 99, 32, 42, 40,103, 32, 43, 32, 99, 41, 45, 32, 49, 46, 48, 41, 47, 40, 99, 32, 42, 40,
-103, 32, 45, 32, 99, 41, 43, 32, 49, 46, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,114,101,115,117,108,116, 32, 61, 32, 48,
- 46, 53, 32, 42, 32, 65, 32, 42, 32, 65, 32, 42, 40, 49, 46, 48, 32, 43, 32, 66, 32, 42, 32, 66, 41, 59, 10, 32, 32, 32, 32,125,
- 10, 32, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 32,
- 32, 47, 42, 32, 84, 73, 82, 32, 40,110,111, 32,114,101,102,114, 97, 99,116,101,100, 32, 99,111,109,112,111,110,101,110,116, 41,
- 32, 42, 47, 10, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,114,101,115,117,108,116, 59, 10,125, 10, 10,102,108,111, 97,116,
- 32,104,121,112,111,116, 40,102,108,111, 97,116, 32,120, 44, 32,102,108,111, 97,116, 32,121, 41, 10,123, 10, 9,114,101,116,117,
-114,110, 32,115,113,114,116, 40,120, 42,120, 32, 43, 32,121, 42,121, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 32, 78, 69, 87, 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 47, 10, 10, 35,100,101,102,105,110,101, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 32, 51, 10, 10, 47, 42, 32,
- 98,115,100,102,115, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101,
- 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,118,101,
- 99, 51, 32, 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47, 42, 32, 97,109, 98,
-105,101,110,116, 32,108,105,103,104,116, 32, 42, 47, 10, 9,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 50,
- 41, 59, 10, 10, 9, 47, 42, 32,100,105,114,101, 99,116,105,111,110, 97,108, 32,108,105,103,104,116,115, 32, 42, 47, 10, 9,102,
-111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 59, 32,105, 43,
- 43, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 32, 61, 32,103,108, 95,
- 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,112,111,115,105,116,105,111,110, 46,120,121,122, 59, 10, 9, 9,118,
-101, 99, 51, 32,108,105,103,104,116, 95,100,105,102,102,117,115,101, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114,
- 99,101, 91,105, 93, 46,100,105,102,102,117,115,101, 46,114,103, 98, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 98,115,100,102,
- 32, 61, 32,109, 97,120, 40,100,111,116, 40, 78, 44, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 41, 44, 32, 48,
- 46, 48, 41, 59, 10, 9, 9, 76, 32, 43, 61, 32,108,105,103,104,116, 95,100,105,102,102,117,115,101, 42, 98,115,100,102, 59, 10,
- 9,125, 10, 10, 9,114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 76, 42, 99,111,108,111,114, 46,114,103, 98, 44, 32,
- 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,103,108,111,115,115,121, 40,118,
-101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,118,101, 99, 51,
- 32, 78, 44, 32,118,101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,
- 47, 42, 32, 97,109, 98,105,101,110,116, 32,108,105,103,104,116, 32, 42, 47, 10, 9,118,101, 99, 51, 32, 76, 32, 61, 32,118,101,
- 99, 51, 40, 48, 46, 50, 41, 59, 10, 10, 9, 47, 42, 32,100,105,114,101, 99,116,105,111,110, 97,108, 32,108,105,103,104,116,115,
- 32, 42, 47, 10, 9,102,111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 78, 85, 77, 95, 76, 73, 71, 72,
- 84, 83, 59, 32,105, 43, 43, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110,
- 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,112,111,115,105,116,105,111,110, 46,120,121,
-122, 59, 10, 9, 9,118,101, 99, 51, 32, 72, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,
-104, 97,108,102, 86,101, 99,116,111,114, 46,120,121,122, 59, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,100,105,102,
-102,117,115,101, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,100,105,102,102,117,115,101,
- 46,114,103, 98, 59, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,115,112,101, 99,117,108, 97,114, 32, 61, 32,103,108,
- 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,115,112,101, 99,117,108, 97,114, 46,114,103, 98, 59, 10, 10, 9,
- 9, 47, 42, 32,119,101, 32,109,105,120, 32,105,110, 32,115,111,109,101, 32,100,105,102,102,117,115,101, 32,115,111, 32,108,111,
-119, 32,114,111,117,103,104,110,101,115,115, 32,115,116,105,108,108, 32,115,104,111,119,115, 32,117,112, 32, 42, 47, 10, 9, 9,
-102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32, 48, 46, 53, 42,112,111,119, 40,109, 97,120, 40,100,111,116, 40, 78, 44, 32,
- 72, 41, 44, 32, 48, 46, 48, 41, 44, 32, 49, 46, 48, 47,114,111,117,103,104,110,101,115,115, 41, 59, 10, 9, 9, 98,115,100,102,
- 32, 43, 61, 32, 48, 46, 53, 42,109, 97,120, 40,100,111,116, 40, 78, 44, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,
-110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9, 76, 32, 43, 61, 32,108,105,103,104,116, 95,115,112,101, 99,117,108, 97,114, 42,
- 98,115,100,102, 59, 10, 9,125, 10, 10, 9,114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 76, 42, 99,111,108,111,114,
- 46,114,103, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95, 97,110,
-105,115,111,116,114,111,112,105, 99, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,
-104,110,101,115,115, 85, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 86, 44, 32,118,101, 99, 51, 32, 78,
- 44, 32,118,101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,
-100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,
-101,115,117,108,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,103,108, 97,115,115, 40,
-118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,102,108,111,
- 97,116, 32,105,111,114, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40, 99,111,
-108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,
-100,101, 95, 98,115,100,102, 95,116,114, 97,110,115,108,117, 99,101,110,116, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,
-118,101, 99, 51, 32, 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101,
- 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,
-117,108,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,116,114, 97,110,115,112, 97,114,
-101,110,116, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41,
- 10,123, 10, 9, 47, 42, 32,116,104,105,115, 32,105,115,110, 39,116, 32,114,105,103,104,116, 32, 42, 47, 10, 9,114,101,115,117,
-108,116, 46,114, 32, 61, 32, 99,111,108,111,114, 46,114, 59, 10, 9,114,101,115,117,108,116, 46,103, 32, 61, 32, 99,111,108,111,
-114, 46,103, 59, 10, 9,114,101,115,117,108,116, 46, 98, 32, 61, 32, 99,111,108,111,114, 46, 98, 59, 10, 9,114,101,115,117,108,
-116, 46, 97, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,118,101,108,
-118,101,116, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,115,105,103,109, 97, 44, 32,118,101, 99,
- 51, 32, 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,
+ 10, 9, 9,105,102, 32, 40, 99,111, 46,119, 32, 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 32, 62, 32, 48, 46, 48, 32,
+ 38, 38, 32, 99,111, 46,120, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 32, 62, 32, 48, 46, 48,
+ 32, 38, 38, 32, 99,111, 46,121, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,118,101, 99, 50, 32,109,
+111,109,101,110,116,115, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 80,114,111,106, 40,115,104, 97,100,111,119,109, 97,112,
+ 44, 32, 99,111, 41, 46,114,103, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,100,105,115,116, 32, 61, 32, 99,111, 46,122, 47, 99,
+111, 46,119, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,112, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 9, 10, 9, 9, 9,105,102,
+ 40,100,105,115,116, 32, 60, 61, 32,109,111,109,101,110,116,115, 46,120, 41, 10, 9, 9, 9, 9,112, 32, 61, 32, 49, 46, 48, 59,
+ 10, 10, 9, 9, 9,102,108,111, 97,116, 32,118, 97,114,105, 97,110, 99,101, 32, 61, 32,109,111,109,101,110,116,115, 46,121, 32,
+ 45, 32, 40,109,111,109,101,110,116,115, 46,120, 42,109,111,109,101,110,116,115, 46,120, 41, 59, 10, 9, 9, 9,118, 97,114,105,
+ 97,110, 99,101, 32, 61, 32,109, 97,120, 40,118, 97,114,105, 97,110, 99,101, 44, 32,115,104, 97,100,111,119, 98,105, 97,115, 47,
+ 49, 48, 46, 48, 41, 59, 10, 10, 9, 9, 9,102,108,111, 97,116, 32,100, 32, 61, 32,109,111,109,101,110,116,115, 46,120, 32, 45,
+ 32,100,105,115,116, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,112, 95,109, 97,120, 32, 61, 32,118, 97,114,105, 97,110, 99,101,
+ 32, 47, 32, 40,118, 97,114,105, 97,110, 99,101, 32, 43, 32,100, 42,100, 41, 59, 10, 10, 9, 9, 9, 47, 47, 32, 78,111,119, 32,
+114,101,100,117, 99,101, 32,108,105,103,104,116, 45, 98,108,101,101,100,105,110,103, 32, 98,121, 32,114,101,109,111,118,105,110,
+103, 32,116,104,101, 32, 91, 48, 44, 32,120, 93, 32,116, 97,105,108, 32, 97,110,100, 32,108,105,110,101, 97,114,108,121, 32,114,
+101,115, 99, 97,108,105,110,103, 32, 40,120, 44, 32, 49, 93, 10, 9, 9, 9,112, 95,109, 97,120, 32, 61, 32, 99,108, 97,109,112,
+ 40, 40,112, 95,109, 97,120, 45, 98,108,101,101,100, 98,105, 97,115, 41, 47, 40, 49, 46, 48, 45, 98,108,101,101,100, 98,105, 97,
+115, 41, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32,109, 97,120, 40,
+112, 44, 32,112, 95,109, 97,120, 41, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,114,101,115,117,108,
+116, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,125, 9, 9, 9, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101,
+ 95,108,105,103,104,116, 95,116,101,120,116,117,114,101, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115, 97,109,112,108,101,114,
+ 50, 68, 32, 99,111,111,107,105,101, 44, 32,109, 97,116, 52, 32,115,104, 97,100,111,119,112,101,114,115,109, 97,116, 44, 32,111,
+117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 10, 9,118,101, 99, 52, 32, 99,111, 32, 61, 32,115,104,
+ 97,100,111,119,112,101,114,115,109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,114,101,
+115,117,108,116, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 80,114,111,106, 40, 99,111,111,107,105,101, 44, 32, 99,111, 41,
+ 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,101,120,112,111,115,117,114,101, 95, 99,111,114,114,101, 99,116,
+ 40,118,101, 99, 51, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32,108,105,110,102, 97, 99, 44, 32,102,108,111, 97,116, 32,108,
+111,103,102, 97, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,
+108, 32, 61, 32,108,105,110,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32,101,120,112, 40, 99,111,108, 42,108,111,103,102, 97, 99,
+ 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,105,115,116, 95,102, 97, 99,116,111,114, 40,118,101,
+ 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,109,105,115,116,115,116, 97, 44, 32,102,108,111, 97,116, 32,109,105,115,116,
+100,105,115,116, 44, 32,102,108,111, 97,116, 32,109,105,115,116,116,121,112,101, 44, 32,102,108,111, 97,116, 32,109,105,115,105,
+ 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
+ 44, 32,122, 99,111,114, 59, 10, 10, 9,122, 99,111,114, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77,
+ 97,116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,108,101,110,103,116,104, 40, 99,111, 41, 58,
+ 32, 45, 99,111, 91, 50, 93, 59, 10, 9, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40, 40,122, 99,111,114, 45,109,105,
+115,116,115,116, 97, 41, 47,109,105,115,116,100,105,115,116, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,105,102, 40,
+109,105,115,116,116,121,112,101, 32, 61, 61, 32, 48, 46, 48, 41, 32,102, 97, 99, 32, 42, 61, 32,102, 97, 99, 59, 10, 9,101,108,
+115,101, 32,105,102, 40,109,105,115,116,116,121,112,101, 32, 61, 61, 32, 49, 46, 48, 41, 59, 10, 9,101,108,115,101, 32,102, 97,
+ 99, 32, 61, 32,115,113,114,116, 40,102, 97, 99, 41, 59, 10, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 49, 46, 48, 32, 45, 32,
+ 40, 49, 46, 48, 45,102, 97, 99, 41, 42, 40, 49, 46, 48, 45,109,105,115,105, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104,
+ 97,100,101, 95,119,111,114,108,100, 95,109,105,120, 40,118,101, 99, 51, 32,104,111,114, 44, 32,118,101, 99, 52, 32, 99,111,108,
+ 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, 32,
+ 61, 32, 99,108, 97,109,112, 40, 99,111,108, 46, 97, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,
+108, 32, 61, 32,118,101, 99, 52, 40,109,105,120, 40,104,111,114, 44, 32, 99,111,108, 46,114,103, 98, 44, 32,102, 97, 99, 41, 44,
+ 32, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,108,112,104, 97, 95,111,112, 97,
+113,117,101, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
+ 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 49, 46, 48, 41, 59, 10,125,
+ 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,108,112,104, 97, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32,
+ 99,111,108, 44, 32,118,101, 99, 52, 32,111, 98, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108,
+ 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 99,111,108, 46,
+ 97, 42,111, 98, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 78, 69, 87, 32,
+ 83, 72, 65, 68, 69, 82, 32, 85, 84, 73, 76, 73, 84, 73, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47,
+ 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,100,105,101,108,101, 99,116,114,105, 99, 40,118,101, 99, 51, 32,
+ 73,110, 99,111,109,105,110,103, 44, 32,118,101, 99, 51, 32, 78,111,114,109, 97,108, 44, 32,102,108,111, 97,116, 32,101,116, 97,
+ 41, 10,123, 10, 32, 32, 32, 32, 47, 42, 32, 99,111,109,112,117,116,101, 32,102,114,101,115,110,101,108, 32,114,101,102,108,101,
+ 99,116, 97,110, 99,101, 32,119,105,116,104,111,117,116, 32,101,120,112,108,105, 99,105,116,108,121, 32, 99,111,109,112,117,116,
+105,110,103, 10, 32, 32, 32, 32, 32, 32, 32,116,104,101, 32,114,101,102,114, 97, 99,116,101,100, 32,100,105,114,101, 99,116,105,
+111,110, 32, 42, 47, 10, 32, 32, 32, 32,102,108,111, 97,116, 32, 99, 32, 61, 32, 97, 98,115, 40,100,111,116, 40, 73,110, 99,111,
+109,105,110,103, 44, 32, 78,111,114,109, 97,108, 41, 41, 59, 10, 32, 32, 32, 32,102,108,111, 97,116, 32,103, 32, 61, 32,101,116,
+ 97, 32, 42, 32,101,116, 97, 32, 45, 32, 49, 46, 48, 32, 43, 32, 99, 32, 42, 32, 99, 59, 10, 32, 32, 32, 32,102,108,111, 97,116,
+ 32,114,101,115,117,108,116, 59, 10, 10, 32, 32, 32, 32,105,102, 40,103, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 32, 32, 32, 32,
+ 32, 32, 32, 32,103, 32, 61, 32,115,113,114,116, 40,103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,102,108,111, 97,116, 32, 65,
+ 32, 61, 40,103, 32, 45, 32, 99, 41, 47, 40,103, 32, 43, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,102,108,111, 97,116,
+ 32, 66, 32, 61, 40, 99, 32, 42, 40,103, 32, 43, 32, 99, 41, 45, 32, 49, 46, 48, 41, 47, 40, 99, 32, 42, 40,103, 32, 45, 32, 99,
+ 41, 43, 32, 49, 46, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,114,101,115,117,108,116, 32, 61, 32, 48, 46, 53, 32, 42, 32,
+ 65, 32, 42, 32, 65, 32, 42, 40, 49, 46, 48, 32, 43, 32, 66, 32, 42, 32, 66, 41, 59, 10, 32, 32, 32, 32,125, 10, 32, 32, 32, 32,
+101,108,115,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 32, 32, 47, 42, 32, 84,
+ 73, 82, 32, 40,110,111, 32,114,101,102,114, 97, 99,116,101,100, 32, 99,111,109,112,111,110,101,110,116, 41, 32, 42, 47, 10, 10,
+ 32, 32, 32, 32,114,101,116,117,114,110, 32,114,101,115,117,108,116, 59, 10,125, 10, 10,102,108,111, 97,116, 32,104,121,112,111,
+116, 40,102,108,111, 97,116, 32,120, 44, 32,102,108,111, 97,116, 32,121, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,115,113,
+114,116, 40,120, 42,120, 32, 43, 32,121, 42,121, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 78,
+ 69, 87, 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47,
+ 10, 10, 35,100,101,102,105,110,101, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 32, 51, 10, 10, 47, 42, 32, 98,115,100,102,115,
+ 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40,118,101, 99, 52,
+ 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,118,101, 99, 51, 32, 78, 44,
+ 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47, 42, 32, 97,109, 98,105,101,110,116, 32,
+108,105,103,104,116, 32, 42, 47, 10, 9,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 50, 41, 59, 10, 10, 9,
+ 47, 42, 32,100,105,114,101, 99,116,105,111,110, 97,108, 32,108,105,103,104,116,115, 32, 42, 47, 10, 9,102,111,114, 40,105,110,
+116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 59, 32,105, 43, 43, 41, 32,123, 10,
+ 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 32, 61, 32,103,108, 95, 76,105,103,104,116,
+ 83,111,117,114, 99,101, 91,105, 93, 46,112,111,115,105,116,105,111,110, 46,120,121,122, 59, 10, 9, 9,118,101, 99, 51, 32,108,
+105,103,104,116, 95,100,105,102,102,117,115,101, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93,
+ 46,100,105,102,102,117,115,101, 46,114,103, 98, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,109, 97,
+120, 40,100,111,116, 40, 78, 44, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 41, 44, 32, 48, 46, 48, 41, 59, 10,
+ 9, 9, 76, 32, 43, 61, 32,108,105,103,104,116, 95,100,105,102,102,117,115,101, 42, 98,115,100,102, 59, 10, 9,125, 10, 10, 9,
+114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 76, 42, 99,111,108,111,114, 46,114,103, 98, 44, 32, 49, 46, 48, 41, 59,
+ 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,103,108,111,115,115,121, 40,118,101, 99, 52, 32, 99,
+111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,
+101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47, 42, 32, 97,109,
+ 98,105,101,110,116, 32,108,105,103,104,116, 32, 42, 47, 10, 9,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46,
+ 50, 41, 59, 10, 10, 9, 47, 42, 32,100,105,114,101, 99,116,105,111,110, 97,108, 32,108,105,103,104,116,115, 32, 42, 47, 10, 9,
+102,111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 59, 32,105,
+ 43, 43, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 32, 61, 32,103,108,
+ 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,112,111,115,105,116,105,111,110, 46,120,121,122, 59, 10, 9, 9,
+118,101, 99, 51, 32, 72, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,104, 97,108,102, 86,
+101, 99,116,111,114, 46,120,121,122, 59, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,100,105,102,102,117,115,101, 32,
+ 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,100,105,102,102,117,115,101, 46,114,103, 98, 59,
+ 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,115,112,101, 99,117,108, 97,114, 32, 61, 32,103,108, 95, 76,105,103,104,
+116, 83,111,117,114, 99,101, 91,105, 93, 46,115,112,101, 99,117,108, 97,114, 46,114,103, 98, 59, 10, 10, 9, 9, 47, 42, 32,119,
+101, 32,109,105,120, 32,105,110, 32,115,111,109,101, 32,100,105,102,102,117,115,101, 32,115,111, 32,108,111,119, 32,114,111,117,
+103,104,110,101,115,115, 32,115,116,105,108,108, 32,115,104,111,119,115, 32,117,112, 32, 42, 47, 10, 9, 9,102,108,111, 97,116,
+ 32, 98,115,100,102, 32, 61, 32, 48, 46, 53, 42,112,111,119, 40,109, 97,120, 40,100,111,116, 40, 78, 44, 32, 72, 41, 44, 32, 48,
+ 46, 48, 41, 44, 32, 49, 46, 48, 47,114,111,117,103,104,110,101,115,115, 41, 59, 10, 9, 9, 98,115,100,102, 32, 43, 61, 32, 48,
+ 46, 53, 42,109, 97,120, 40,100,111,116, 40, 78, 44, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 41, 44, 32, 48,
+ 46, 48, 41, 59, 10, 9, 9, 76, 32, 43, 61, 32,108,105,103,104,116, 95,115,112,101, 99,117,108, 97,114, 42, 98,115,100,102, 59,
+ 10, 9,125, 10, 10, 9,114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 76, 42, 99,111,108,111,114, 46,114,103, 98, 44,
+ 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95, 97,110,105,115,111,116,114,
+111,112,105, 99, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115,
+ 85, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 86, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99,
+ 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,
100,102, 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116,
- 41, 59, 10,125, 10, 10, 47, 42, 32,101,109,105,115,115,105,111,110, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,
-101,109,105,115,115,105,111,110, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,115,116,114,101,110,
-103,116,104, 44, 32,118,101, 99, 51, 32, 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10,
- 9,114,101,115,117,108,116, 32, 61, 32, 99,111,108,111,114, 42,115,116,114,101,110,103,116,104, 59, 10,125, 10, 10, 47, 42, 32,
- 99,108,111,115,117,114,101,115, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,109,105,120, 95,115,104, 97,100,101,
-114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 49, 44, 32,118,101, 99, 52, 32,
-115,104, 97,100,101,114, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 41, 10,123, 10, 9,115,104, 97,
-100,101,114, 32, 61, 32,109,105,120, 40,115,104, 97,100,101,114, 49, 44, 32,115,104, 97,100,101,114, 50, 44, 32,102, 97, 99, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 97,100,100, 95,115,104, 97,100,101,114, 40,118,101, 99, 52, 32,115,
-104, 97,100,101,114, 49, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,115,
-104, 97,100,101,114, 41, 10,123, 10, 9,115,104, 97,100,101,114, 32, 61, 32,115,104, 97,100,101,114, 49, 32, 43, 32,115,104, 97,
-100,101,114, 50, 59, 10,125, 10, 10, 47, 42, 32,102,114,101,115,110,101,108, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,
-101, 95,102,114,101,115,110,101,108, 40,102,108,111, 97,116, 32,105,111,114, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99,
- 51, 32, 73, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,102,108,111, 97,116, 32,
-101,116, 97, 32, 61, 32,109, 97,120, 40,105,111,114, 44, 32, 48, 46, 48, 48, 48, 48, 49, 41, 59, 10, 9,114,101,115,117,108,116,
- 32, 61, 32,102,114,101,115,110,101,108, 95,100,105,101,108,101, 99,116,114,105, 99, 40, 73, 44, 32, 78, 44, 32,101,116, 97, 41,
- 59, 32, 47, 47, 98, 97, 99,107,102, 97, 99,105,110,103, 40, 41, 63, 32, 49, 46, 48, 47,101,116, 97, 58, 32,101,116, 97, 41, 59,
- 10,125, 10, 10, 47, 42, 32,103,101,111,109,101,116,114,121, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,103,101,
-111,109,101,116,114,121, 40,118,101, 99, 51, 32, 73, 44, 32,118,101, 99, 51, 32, 78, 44, 32,109, 97,116, 52, 32,116,111,119,111,
-114,108,100, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 10, 9,111,117,116,
- 32,118,101, 99, 51, 32,116,114,117,101, 95,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,
-109,105,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,112, 97,114, 97,109,101,116,114,105, 99, 44, 10, 9,111,117,116, 32,
-102,108,111, 97,116, 32, 98, 97, 99,107,102, 97, 99,105,110,103, 41, 10,123, 10, 9,112,111,115,105,116,105,111,110, 32, 61, 32,
- 40,116,111,119,111,114,108,100, 42,118,101, 99, 52, 40, 73, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,110,111,114,
-109, 97,108, 32, 61, 32, 78, 59, 10, 9,116, 97,110,103,101,110,116, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 9,
-116,114,117,101, 95,110,111,114,109, 97,108, 32, 61, 32, 78, 59, 10, 9,105,110, 99,111,109,105,110,103, 32, 61, 32, 73, 59, 10,
- 9,112, 97,114, 97,109,101,116,114,105, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 9, 98, 97, 99,107,102, 97,
- 99,105,110,103, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,111,111,
-114,100, 40,118,101, 99, 51, 32, 73, 44, 32,118,101, 99, 51, 32, 78, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118,109,
- 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 10, 9,118,101, 99, 51, 32, 97,116,116,114, 95,111,114,
- 99,111, 44, 32,118,101, 99, 51, 32, 97,116,116,114, 95,117,118, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32,103,101,110,101,
-114, 97,116,101,100, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51,
- 32,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32,
- 99, 97,109,101,114, 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,119,105,110,100,111,119, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,114,101,102,108,101, 99,116,105,111,110, 41, 10,123, 10, 9,103,101,110,101,114, 97,116,101,100, 32, 61, 32, 97,116,116,
-114, 95,111,114, 99,111, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 40,111, 98,105,
-110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 78, 44, 32, 48, 46, 48, 41, 41, 41,
- 46,120,121,122, 41, 59, 10, 9,117,118, 32, 61, 32, 97,116,116,114, 95,117,118, 59, 10, 9,111, 98,106,101, 99,116, 32, 61, 32,
- 73, 59, 10, 9, 99, 97,109,101,114, 97, 32, 61, 32, 73, 59, 10, 9,119,105,110,100,111,119, 32, 61, 32,103,108, 95, 70,114, 97,
-103, 67,111,111,114,100, 46,120,121,122, 59, 10, 9,114,101,102,108,101, 99,116,105,111,110, 32, 61, 32,114,101,102,108,101, 99,
-116, 40, 78, 44, 32, 73, 41, 59, 10, 10,125, 10, 10, 47, 42, 32,116,101,120,116,117,114,101,115, 32, 42, 47, 10, 10,118,111,105,
-100, 32,110,111,100,101, 95,116,101,120, 95,103,114, 97,100,105,101,110,116, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116,
- 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,
-111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10,
- 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,104,101, 99,107,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,
-118,101, 99, 52, 32, 99,111,108,111,114, 49, 44, 32,118,101, 99, 52, 32, 99,111,108,111,114, 50, 44, 32,102,108,111, 97,116, 32,
-115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99,
- 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,108,111,117,100,115, 40,
-118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,
-108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,
-101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,
-100,101, 95,116,101,120, 95,101,110,118,105,114,111,110,109,101,110,116, 40,118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,
-108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9,102,108,
-111, 97,116, 32,117, 32, 61, 32, 40, 97,116, 97,110, 40, 99,111, 46,121, 44, 32, 99,111, 46,120, 41, 32, 43, 32, 77, 95, 80, 73,
- 41, 47, 40, 50, 46, 48, 42, 77, 95, 80, 73, 41, 59, 10, 9,102,108,111, 97,116, 32,118, 32, 61, 32, 97,116, 97,110, 40, 99,111,
- 46,122, 44, 32,104,121,112,111,116, 40, 99,111, 46,120, 44, 32, 99,111, 46,121, 41, 41, 47, 77, 95, 80, 73, 32, 43, 32, 48, 46,
- 53, 59, 10, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,118,101, 99, 50,
- 40,117, 44, 32,118, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,105,109, 97,103,101, 40,
-118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 99,111,108,111,
-114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 99,111, 46,120,121, 41, 59, 10, 32, 32, 32, 32, 97,
-108,112,104, 97, 32, 61, 32, 99,111,108,111,114, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120,
- 95,109, 97,103,105, 99, 40,118,101, 99, 51, 32,112, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,
-116, 32,100,105,115,116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48,
- 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,
-109,117,115,103,114, 97,118,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,
-108,111, 97,116, 32,100,101,116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,105,109,101,110,115,105,111,110, 44, 32,102,108,
-111, 97,116, 32,108, 97, 99,117,110, 97,114,105,116,121, 44, 32,102,108,111, 97,116, 32,111,102,102,115,101,116, 44, 32,102,108,
-111, 97,116, 32,103, 97,105,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,
-102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,110,111,105,115,
-101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,101,
-116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,105,115,116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52,
+ 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,103,108, 97,115,115, 40,118,101, 99, 52, 32,
+ 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,102,108,111, 97,116, 32,105,111,
+114, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,
+108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32,
+ 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,
+100,102, 95,116,114, 97,110,115,108,117, 99,101,110,116, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,118,101, 99, 51, 32,
+ 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102,
+ 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59,
+ 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,116,114, 97,110,115,112, 97,114,101,110,116, 40,118,
+101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47,
+ 42, 32,116,104,105,115, 32,105,115,110, 39,116, 32,114,105,103,104,116, 32, 42, 47, 10, 9,114,101,115,117,108,116, 46,114, 32,
+ 61, 32, 99,111,108,111,114, 46,114, 59, 10, 9,114,101,115,117,108,116, 46,103, 32, 61, 32, 99,111,108,111,114, 46,103, 59, 10,
+ 9,114,101,115,117,108,116, 46, 98, 32, 61, 32, 99,111,108,111,114, 46, 98, 59, 10, 9,114,101,115,117,108,116, 46, 97, 32, 61,
+ 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,118,101,108,118,101,116, 40,118,
+101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,115,105,103,109, 97, 44, 32,118,101, 99, 51, 32, 78, 44, 32,
+111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102, 95,100,105,
+102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59, 10,125, 10,
+ 10, 47, 42, 32,101,109,105,115,115,105,111,110, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,101,109,105,115,115,
+105,111,110, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,115,116,114,101,110,103,116,104, 44, 32,
+118,101, 99, 51, 32, 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,114,101,115,117,
+108,116, 32, 61, 32, 99,111,108,111,114, 42,115,116,114,101,110,103,116,104, 59, 10,125, 10, 10, 47, 42, 32, 99,108,111,115,117,
+114,101,115, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,109,105,120, 95,115,104, 97,100,101,114, 40,102,108,111,
+ 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 49, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,
+114, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 41, 10,123, 10, 9,115,104, 97,100,101,114, 32, 61,
+ 32,109,105,120, 40,115,104, 97,100,101,114, 49, 44, 32,115,104, 97,100,101,114, 50, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,110,111,100,101, 95, 97,100,100, 95,115,104, 97,100,101,114, 40,118,101, 99, 52, 32,115,104, 97,100,101,114,
+ 49, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,115,104, 97,100,101,114,
+ 41, 10,123, 10, 9,115,104, 97,100,101,114, 32, 61, 32,115,104, 97,100,101,114, 49, 32, 43, 32,115,104, 97,100,101,114, 50, 59,
+ 10,125, 10, 10, 47, 42, 32,102,114,101,115,110,101,108, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,102,114,101,
+115,110,101,108, 40,102,108,111, 97,116, 32,105,111,114, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99, 51, 32, 73, 44, 32,
+111,117,116, 32,102,108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,102,108,111, 97,116, 32,101,116, 97, 32, 61,
+ 32,109, 97,120, 40,105,111,114, 44, 32, 48, 46, 48, 48, 48, 48, 49, 41, 59, 10, 9,114,101,115,117,108,116, 32, 61, 32,102,114,
+101,115,110,101,108, 95,100,105,101,108,101, 99,116,114,105, 99, 40, 73, 44, 32, 78, 44, 32,101,116, 97, 41, 59, 32, 47, 47, 98,
+ 97, 99,107,102, 97, 99,105,110,103, 40, 41, 63, 32, 49, 46, 48, 47,101,116, 97, 58, 32,101,116, 97, 41, 59, 10,125, 10, 10, 47,
+ 42, 32,103,101,111,109,101,116,114,121, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,103,101,111,109,101,116,114,
+121, 40,118,101, 99, 51, 32, 73, 44, 32,118,101, 99, 51, 32, 78, 44, 32,109, 97,116, 52, 32,116,111,119,111,114,108,100, 44, 10,
+ 9,111,117,116, 32,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,
+109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 10, 9,111,117,116, 32,118,101, 99, 51,
+ 32,116,114,117,101, 95,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,109,105,110,103, 44,
+ 32,111,117,116, 32,118,101, 99, 51, 32,112, 97,114, 97,109,101,116,114,105, 99, 44, 10, 9,111,117,116, 32,102,108,111, 97,116,
+ 32, 98, 97, 99,107,102, 97, 99,105,110,103, 41, 10,123, 10, 9,112,111,115,105,116,105,111,110, 32, 61, 32, 40,116,111,119,111,
+114,108,100, 42,118,101, 99, 52, 40, 73, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,110,111,114,109, 97,108, 32, 61,
+ 32, 78, 59, 10, 9,116, 97,110,103,101,110,116, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 9,116,114,117,101, 95,
+110,111,114,109, 97,108, 32, 61, 32, 78, 59, 10, 9,105,110, 99,111,109,105,110,103, 32, 61, 32, 73, 59, 10, 9,112, 97,114, 97,
+109,101,116,114,105, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 9, 98, 97, 99,107,102, 97, 99,105,110,103, 32,
+ 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,111,111,114,100, 40,118,101,
+ 99, 51, 32, 73, 44, 32,118,101, 99, 51, 32, 78, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,109,
+ 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 10, 9,118,101, 99, 51, 32, 97,116,116,114, 95,111,114, 99,111, 44, 32,118,
+101, 99, 51, 32, 97,116,116,114, 95,117,118, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32,103,101,110,101,114, 97,116,101,100,
+ 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32, 99, 97,109,101,114,
+ 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,119,105,110,100,111,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102,
+108,101, 99,116,105,111,110, 41, 10,123, 10, 9,103,101,110,101,114, 97,116,101,100, 32, 61, 32, 97,116,116,114, 95,111,114, 99,
+111, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 40,111, 98,105,110,118,109, 97,116,
+ 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 78, 44, 32, 48, 46, 48, 41, 41, 41, 46,120,121,122, 41,
+ 59, 10, 9,117,118, 32, 61, 32, 97,116,116,114, 95,117,118, 59, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 73, 59, 10, 9, 99,
+ 97,109,101,114, 97, 32, 61, 32, 73, 59, 10, 9,119,105,110,100,111,119, 32, 61, 32,103,108, 95, 70,114, 97,103, 67,111,111,114,
+100, 46,120,121,122, 59, 10, 9,114,101,102,108,101, 99,116,105,111,110, 32, 61, 32,114,101,102,108,101, 99,116, 40, 78, 44, 32,
+ 73, 41, 59, 10, 10,125, 10, 10, 47, 42, 32,116,101,120,116,117,114,101,115, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,
+101, 95,116,101,120, 95,103,114, 97,100,105,101,110,116, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52,
32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32,
61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100,
- 32,110,111,100,101, 95,116,101,120, 95,115,107,121, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
- 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,
-108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59,
- 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,119, 97,
-118,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,
-105,115,116,111,114,116,105,111,110, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,
-101,116, 97,105,108, 95,115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41,
- 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10, 47, 42, 32,108,105,103,104,116, 32,112, 97,116,104, 32, 42,
- 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,108,105,103,104,116, 95,112, 97,116,104, 40, 10, 9,111,117,116, 32,102,108,
-111, 97,116, 32,105,115, 95, 99, 97,109,101,114, 97, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115,
- 95,115,104, 97,100,111,119, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,100,105,102,102,117,
-115,101, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,103,108,111,115,115,121, 95,114, 97,121,
- 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,115,105,110,103,117,108, 97,114, 95,114, 97,121, 44, 10, 9,111,
-117,116, 32,102,108,111, 97,116, 32,105,115, 95,114,101,102,108,101, 99,116,105,111,110, 95,114, 97,121, 44, 10, 9,111,117,116,
- 32,102,108,111, 97,116, 32,105,115, 95,116,114, 97,110,115,109,105,115,115,105,111,110, 95,114, 97,121, 41, 10,123, 10, 9,105,
-115, 95, 99, 97,109,101,114, 97, 95,114, 97,121, 32, 61, 32, 49, 46, 48, 59, 10, 9,105,115, 95,115,104, 97,100,111,119, 95,114,
- 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,100,105,102,102,117,115,101, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59,
- 10, 9,105,115, 95,103,108,111,115,115,121, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,115,105,110,103,117,
-108, 97,114, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,114,101,102,108,101, 99,116,105,111,110, 95,114, 97,
-121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,116,114, 97,110,115,109,105,115,115,105,111,110, 95,114, 97,121, 32, 61, 32,
- 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,108,105,103,104,116, 95,102, 97,108,108,111,102,102, 40,
-102,108,111, 97,116, 32,115,116,114,101,110,103,116,104, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,113,117, 97,100,114, 97,116,105, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,108,105,
-110,101, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 99,111,110,115,116, 97,110,116, 41, 10,123, 10, 9,113,117, 97,
-100,114, 97,116,105, 99, 32, 61, 32,115,116,114,101,110,103,116,104, 59, 10, 9,108,105,110,101, 97,114, 32, 61, 32,115,116,114,
-101,110,103,116,104, 59, 10, 9, 99,111,110,115,116, 97,110,116, 32, 61, 32,115,116,114,101,110,103,116,104, 59, 10,125, 10, 10,
+ 32,110,111,100,101, 95,116,101,120, 95, 99,104,101, 99,107,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 52, 32,
+ 99,111,108,111,114, 49, 44, 32,118,101, 99, 52, 32, 99,111,108,111,114, 50, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101,
+ 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41,
+ 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46,
+ 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,108,111,117,100,115, 40,118,101, 99, 51, 32,
+ 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,
+111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49,
+ 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,
+120, 95,101,110,118,105,114,111,110,109,101,110,116, 40,118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68,
+ 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9,102,108,111, 97,116, 32,117,
+ 32, 61, 32, 40, 97,116, 97,110, 40, 99,111, 46,121, 44, 32, 99,111, 46,120, 41, 32, 43, 32, 77, 95, 80, 73, 41, 47, 40, 50, 46,
+ 48, 42, 77, 95, 80, 73, 41, 59, 10, 9,102,108,111, 97,116, 32,118, 32, 61, 32, 97,116, 97,110, 40, 99,111, 46,122, 44, 32,104,
+121,112,111,116, 40, 99,111, 46,120, 44, 32, 99,111, 46,121, 41, 41, 47, 77, 95, 80, 73, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,
+ 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,118,101, 99, 50, 40,117, 44, 32,118,
+ 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,101,110,118,105,114,111,110,109,101,110,116,
+ 95,101,109,112,116,121, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,
+123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,
+100,101, 95,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,
+105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,
+108,112,104, 97, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,
+ 99,111, 46,120,121, 41, 59, 10, 32, 32, 32, 32, 97,108,112,104, 97, 32, 61, 32, 99,111,108,111,114, 46, 97, 59, 10,125, 10, 10,
+118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,105,109, 97,103,101, 95,101,109,112,116,121, 40,118,101, 99, 51, 32, 99,
+111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,
+104, 97, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 32, 32, 32, 32, 97,108,
+112,104, 97, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109, 97,103,105,
+ 99, 40,118,101, 99, 51, 32,112, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,105,115,
+116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102,
+ 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109,117,115,103,114,
+ 97,118,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,
+100,101,116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,105,109,101,110,115,105,111,110, 44, 32,102,108,111, 97,116, 32,108,
+ 97, 99,117,110, 97,114,105,116,121, 44, 32,102,108,111, 97,116, 32,111,102,102,115,101,116, 44, 32,102,108,111, 97,116, 32,103,
+ 97,105,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,
+ 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61,
+ 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,110,111,105,115,101, 40,118,101, 99,
+ 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108, 44,
+ 32,102,108,111, 97,116, 32,100,105,115,116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,
+114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99,
+ 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101,
+ 95,116,101,120, 95,115,107,121, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114,
+ 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
+110,111,100,101, 95,116,101,120, 95,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,
+115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116,
+ 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99,
+ 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,119, 97,118,101, 40,118,101,
+ 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,105,115,116,111,114,
+116,105,111,110, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108,
+ 95,115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97,
+ 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10, 47, 42, 32,108,105,103,104,116, 32,112, 97,116,104, 32, 42, 47, 10, 10,118,111,
+105,100, 32,110,111,100,101, 95,108,105,103,104,116, 95,112, 97,116,104, 40, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,
+115, 95, 99, 97,109,101,114, 97, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,115,104, 97,100,
+111,119, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,100,105,102,102,117,115,101, 95,114, 97,
+121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,103,108,111,115,115,121, 95,114, 97,121, 44, 10, 9,111,117,
+116, 32,102,108,111, 97,116, 32,105,115, 95,115,105,110,103,117,108, 97,114, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,
+111, 97,116, 32,105,115, 95,114,101,102,108,101, 99,116,105,111,110, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,
+116, 32,105,115, 95,116,114, 97,110,115,109,105,115,115,105,111,110, 95,114, 97,121, 41, 10,123, 10, 9,105,115, 95, 99, 97,109,
+101,114, 97, 95,114, 97,121, 32, 61, 32, 49, 46, 48, 59, 10, 9,105,115, 95,115,104, 97,100,111,119, 95,114, 97,121, 32, 61, 32,
+ 48, 46, 48, 59, 10, 9,105,115, 95,100,105,102,102,117,115,101, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,
+103,108,111,115,115,121, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,115,105,110,103,117,108, 97,114, 95,114,
+ 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,114,101,102,108,101, 99,116,105,111,110, 95,114, 97,121, 32, 61, 32, 48,
+ 46, 48, 59, 10, 9,105,115, 95,116,114, 97,110,115,109,105,115,115,105,111,110, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10,
+125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,108,105,103,104,116, 95,102, 97,108,108,111,102,102, 40,102,108,111, 97,116,
+ 32,115,116,114,101,110,103,116,104, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,113,117, 97,100,114, 97,116,105, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,108,105,110,101, 97,114, 44,
+ 32,111,117,116, 32,102,108,111, 97,116, 32, 99,111,110,115,116, 97,110,116, 41, 10,123, 10, 9,113,117, 97,100,114, 97,116,105,
+ 99, 32, 61, 32,115,116,114,101,110,103,116,104, 59, 10, 9,108,105,110,101, 97,114, 32, 61, 32,115,116,114,101,110,103,116,104,
+ 59, 10, 9, 99,111,110,115,116, 97,110,116, 32, 61, 32,115,116,114,101,110,103,116,104, 59, 10,125, 10, 10,118,111,105,100, 32,
+110,111,100,101, 95,111, 98,106,101, 99,116, 95,105,110,102,111, 40,111,117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,116,105,
+111,110, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111, 98,106,101, 99,116, 95,105,110,100,101,120, 44, 32,111,117,116, 32,
+102,108,111, 97,116, 32,109, 97,116,101,114,105, 97,108, 95,105,110,100,101,120, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
+114, 97,110,100,111,109, 41, 10,123, 10, 9,108,111, 99, 97,116,105,111,110, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59,
+ 10, 9,111, 98,106,101, 99,116, 95,105,110,100,101,120, 32, 61, 32, 48, 46, 48, 59, 10, 9,109, 97,116,101,114,105, 97,108, 95,
+105,110,100,101,120, 32, 61, 32, 48, 46, 48, 59, 10, 9,114, 97,110,100,111,109, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10, 10,
47, 42, 32,111,117,116,112,117,116, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,111,117,116,112,117,116, 95,109,
97,116,101,114,105, 97,108, 40,118,101, 99, 52, 32,115,117,114,102, 97, 99,101, 44, 32,118,101, 99, 52, 32,118,111,108,117,109,
101, 44, 32,102,108,111, 97,116, 32,100,105,115,112,108, 97, 99,101,109,101,110,116, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
diff --git a/source/blender/ikplugin/intern/itasc_plugin.cpp b/source/blender/ikplugin/intern/itasc_plugin.cpp
index d94529b6104..3be096b8935 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.cpp
+++ b/source/blender/ikplugin/intern/itasc_plugin.cpp
@@ -996,7 +996,7 @@ static void convert_pose(IK_Scene *ikscene)
// assume uniform scaling and take Y scale as general scale for the armature
scale = len_v3(ikscene->blArmature->obmat[1]);
- rot = &ikscene->jointArray(0);
+ rot = (ikscene->jointArray.rows() > 0) ? &ikscene->jointArray(0) : NULL;
for (joint=a=0, ikchan = ikscene->channels; a<ikscene->numchan && joint<ikscene->numjoint; ++a, ++ikchan) {
pchan= ikchan->pchan;
bone= pchan->bone;
@@ -1037,7 +1037,7 @@ static void BKE_pose_rest(IK_Scene *ikscene)
// rest pose is 0
SetToZero(ikscene->jointArray);
// except for transY joints
- rot = &ikscene->jointArray(0);
+ rot = (ikscene->jointArray.rows() > 0) ? &ikscene->jointArray(0) : NULL;
for (joint=a=0, ikchan = ikscene->channels; a<ikscene->numchan && joint<ikscene->numjoint; ++a, ++ikchan) {
pchan= ikchan->pchan;
bone= pchan->bone;
@@ -1135,7 +1135,7 @@ static IK_Scene* convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan)
// in Blender, the rest pose is always 0 for joints
BKE_pose_rest(ikscene);
}
- rot = &ikscene->jointArray(0);
+ rot = (ikscene->jointArray.rows() > 0) ? &ikscene->jointArray(0) : NULL;
for (a=0, ikchan = ikscene->channels; a<tree->totchannel; ++a, ++ikchan) {
pchan= ikchan->pchan;
bone= pchan->bone;
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index d8efdc3b870..b702e59bc16 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -261,7 +261,8 @@ void IMB_close_anim_proxies(struct anim *anim)
IMB_free_indices(anim);
}
-struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex){
+struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex)
+{
struct anim *anim;
anim = (struct anim *)MEM_callocN(sizeof(struct anim), "anim struct");
@@ -602,14 +603,14 @@ static int startffmpeg(struct anim *anim)
#ifdef FFMPEG_SWSCALE_COLOR_SPACE_SUPPORT
/* Try do detect if input has 0-255 YCbCR range (JFIF Jpeg MotionJpeg) */
if (!sws_getColorspaceDetails(anim->img_convert_ctx, (int **)&inv_table, &srcRange,
- &table, &dstRange, &brightness, &contrast, &saturation)) {
-
+ &table, &dstRange, &brightness, &contrast, &saturation))
+ {
srcRange = srcRange || anim->pCodecCtx->color_range == AVCOL_RANGE_JPEG;
inv_table = sws_getCoefficients(anim->pCodecCtx->colorspace);
if (sws_setColorspaceDetails(anim->img_convert_ctx, (int *)inv_table, srcRange,
- table, dstRange, brightness, contrast, saturation)) {
-
+ table, dstRange, brightness, contrast, saturation))
+ {
printf("Warning: Could not set libswscale colorspace details.\n");
}
}
@@ -939,7 +940,8 @@ static ImBuf *ffmpeg_fetchibuf(struct anim *anim, int position,
(long long int)pts_to_search, pts_time_base, frame_rate, st_time);
if (anim->last_frame &&
- anim->last_pts <= pts_to_search && anim->next_pts > pts_to_search) {
+ anim->last_pts <= pts_to_search && anim->next_pts > pts_to_search)
+ {
av_log(anim->pFormatCtx, AV_LOG_DEBUG,
"FETCH: frame repeat: last: %lld next: %lld\n",
(long long int)anim->last_pts,
@@ -1159,7 +1161,7 @@ static void free_anim_redcode(struct anim *anim)
/* Geen plaatje, probeer dan volgende animatie te openen */
/* gelukt, haal dan eerste plaatje van animatie */
-static struct ImBuf *anim_getnew(struct anim *anim)
+static ImBuf *anim_getnew(struct anim *anim)
{
struct ImBuf *ibuf = NULL;
@@ -1222,7 +1224,8 @@ static struct ImBuf *anim_getnew(struct anim *anim)
return(ibuf);
}
-struct ImBuf *IMB_anim_previewframe(struct anim *anim){
+struct ImBuf *IMB_anim_previewframe(struct anim *anim)
+{
struct ImBuf *ibuf = NULL;
int position = 0;
diff --git a/source/blender/imbuf/intern/cineon/cineon_dpx.c b/source/blender/imbuf/intern/cineon/cineon_dpx.c
index a7d168d42a2..8e996b97622 100644
--- a/source/blender/imbuf/intern/cineon/cineon_dpx.c
+++ b/source/blender/imbuf/intern/cineon/cineon_dpx.c
@@ -63,7 +63,7 @@ static void cineon_conversion_parameters(LogImageByteConversionParameters *param
}
#endif
-static struct ImBuf *imb_load_dpx_cineon(unsigned char *mem, int use_cineon, int size, int flags)
+static ImBuf *imb_load_dpx_cineon(unsigned char *mem, int use_cineon, int size, int flags)
{
ImBuf *ibuf;
LogImageFile *image;
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
index 3966135ea32..438988fbe48 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
@@ -1507,7 +1507,7 @@ void DirectDrawSurface::printInfo() const
printf("\tMisc flag: %u\n", header.header10.miscFlag);
printf("\tArray size: %u\n", header.header10.arraySize);
}
-
+
if (header.reserved[9] == FOURCC_NVTT)
{
int major = (header.reserved[10] >> 16) & 0xFF;
diff --git a/source/blender/imbuf/intern/filetype.c b/source/blender/imbuf/intern/filetype.c
index da207c19695..900bc7756f0 100644
--- a/source/blender/imbuf/intern/filetype.c
+++ b/source/blender/imbuf/intern/filetype.c
@@ -100,7 +100,7 @@ ImFileType IMB_FILE_TYPES[] = {
#endif
#ifdef WITH_QUICKTIME
{quicktime_init, quicktime_exit, imb_is_a_quicktime, imb_ftype_quicktime, imb_quicktime_decode, NULL, NULL, 0, QUICKTIME},
-#endif
+#endif
{NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0}
};
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index e744851a9b6..a0434691807 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -339,8 +339,9 @@ static int check_pixel_assigned(const void *buffer, const char *mask, const int
if (mask != NULL) {
res = mask[index] != 0 ? 1 : 0;
}
- else if ( (is_float && ((const float *) buffer)[alpha_index] != 0.0f) ||
- (!is_float && ((const unsigned char *) buffer)[alpha_index] != 0) ) {
+ else if ((is_float && ((const float *) buffer)[alpha_index] != 0.0f) ||
+ (!is_float && ((const unsigned char *) buffer)[alpha_index] != 0) )
+ {
res = 1;
}
}
@@ -407,7 +408,7 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter)
if (i != 0 || j != 0) {
const int tmpindex = filter_make_index(x + i, y + j, width, height);
- if (check_pixel_assigned(srcbuf, srcmask, tmpindex, depth, is_float)) {
+ if (check_pixel_assigned(srcbuf, srcmask, tmpindex, depth, is_float)) {
if (is_float) {
for (c = 0; c < depth; c++)
tmp[c] = ((const float *) srcbuf)[depth * tmpindex + c];
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
index 74fa7c5987e..11da2f4af91 100644
--- a/source/blender/imbuf/intern/indexer.c
+++ b/source/blender/imbuf/intern/indexer.c
@@ -867,7 +867,7 @@ static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
if (*progress != next_progress) {
*progress = next_progress;
- *do_update = 1;
+ *do_update = TRUE;
}
if (*stop) {
@@ -1075,7 +1075,7 @@ static void index_rebuild_fallback(FallbackIndexBuilderContext *context,
if (*progress != next_progress) {
*progress = next_progress;
- *do_update = 1;
+ *do_update = TRUE;
}
if (*stop) {
diff --git a/source/blender/imbuf/intern/indexer_dv.c b/source/blender/imbuf/intern/indexer_dv.c
index 460ca93435e..0090577062f 100644
--- a/source/blender/imbuf/intern/indexer_dv.c
+++ b/source/blender/imbuf/intern/indexer_dv.c
@@ -269,7 +269,8 @@ static void fill_gap(indexer_dv_context *This, int isPAL)
}
while (This->gap_start != This->ref_time_read ||
- This->gap_frame != This->curr_frame) {
+ This->gap_frame != This->curr_frame)
+ {
inc_frame(&This->gap_frame, &This->gap_start, isPAL);
This->frameno_offset++;
}
@@ -320,7 +321,7 @@ static void proc_frame(indexer_dv_context *This,
This->gap_frame = -1;
}
}
- else if (This->ref_time_read_new == This->ref_time_read) {
+ else if (This->ref_time_read_new == This->ref_time_read) {
// do nothing
}
else {
diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c
index 4f71f296caa..3af853ba150 100644
--- a/source/blender/imbuf/intern/jp2.c
+++ b/source/blender/imbuf/intern/jp2.c
@@ -97,7 +97,7 @@ static void info_callback(const char *msg, void *client_data)
struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
{
struct ImBuf *ibuf = NULL;
- int use_float = 0; /* for precision higher then 8 use float */
+ int use_float = FALSE; /* for precision higher then 8 use float */
long signed_offsets[4] = {0, 0, 0, 0};
int float_divs[4] = {1, 1, 1, 1};
@@ -183,7 +183,7 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
i--;
if (image->comps[i].prec > 8)
- use_float = 1;
+ use_float = TRUE;
if (image->comps[i].sgnd)
signed_offsets[i] = 1 << (image->comps[i].prec - 1);
diff --git a/source/blender/imbuf/intern/moviecache.c b/source/blender/imbuf/intern/moviecache.c
index ee358f6e4ba..2992e4a0aa7 100644
--- a/source/blender/imbuf/intern/moviecache.c
+++ b/source/blender/imbuf/intern/moviecache.c
@@ -198,8 +198,9 @@ void IMB_moviecache_destruct(void)
delete_MEM_CacheLimiter(limitor);
}
-struct MovieCache *IMB_moviecache_create(int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp,
- MovieCacheGetKeyDataFP getdatafp){
+MovieCache *IMB_moviecache_create(int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp,
+ MovieCacheGetKeyDataFP getdatafp)
+{
MovieCache *cache;
cache = MEM_callocN(sizeof(MovieCache), "MovieCache");
diff --git a/source/blender/imbuf/intern/png.c b/source/blender/imbuf/intern/png.c
index 35a44635727..2aed1485700 100644
--- a/source/blender/imbuf/intern/png.c
+++ b/source/blender/imbuf/intern/png.c
@@ -301,7 +301,8 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
return(1);
}
-struct ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags){
+ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
+{
struct ImBuf *ibuf = NULL;
png_structp png_ptr;
png_infop info_ptr;
diff --git a/source/blender/imbuf/intern/radiance_hdr.c b/source/blender/imbuf/intern/radiance_hdr.c
index 4f4ab9e72d0..29c2e63637d 100644
--- a/source/blender/imbuf/intern/radiance_hdr.c
+++ b/source/blender/imbuf/intern/radiance_hdr.c
@@ -65,9 +65,9 @@
#define STR_MAX 540
typedef unsigned char RGBE[4];
typedef float fCOLOR[3];
+
/* copy source -> dest */
-#define copy_rgbe(c1, c2) (c2[RED] = c1[RED], c2[GRN] = c1[GRN], c2[BLU] = c1[BLU], c2[EXP] = c1[EXP])
-#define copy_fcol(f1, f2) (f2[RED] = f1[RED], f2[GRN] = f1[GRN], f2[BLU] = f1[BLU])
+#define COPY_RGBE(c1, c2) (c2[RED] = c1[RED], c2[GRN] = c1[GRN], c2[BLU] = c1[BLU], c2[EXP] = c1[EXP])
/* read routines */
static unsigned char *oldreadcolrs(RGBE *scan, unsigned char *mem, int xmax)
@@ -80,7 +80,7 @@ static unsigned char *oldreadcolrs(RGBE *scan, unsigned char *mem, int xmax)
scan[0][EXP] = *mem++;
if (scan[0][RED] == 1 && scan[0][GRN] == 1 && scan[0][BLU] == 1) {
for (i = scan[0][EXP] << rshift; i > 0; i--) {
- copy_rgbe(scan[-1], scan[0]);
+ COPY_RGBE(scan[-1], scan[0]);
scan++;
len--;
}
@@ -272,7 +272,7 @@ static int fwritecolrs(FILE *file, int width, int channels, unsigned char *ibufs
fcol[BLU] = (float)((channels >= 3) ? ibufscan[j + 2] : ibufscan[j]) / 255.f;
}
FLOAT2RGBE(fcol, rgbe);
- copy_rgbe(rgbe, rgbe_scan[i]);
+ COPY_RGBE(rgbe, rgbe_scan[i]);
j += channels;
}
diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c
index 5a652a50cbb..27034317396 100644
--- a/source/blender/imbuf/intern/scaling.c
+++ b/source/blender/imbuf/intern/scaling.c
@@ -343,7 +343,8 @@ void imb_onehalf_no_alloc(struct ImBuf *ibuf2, struct ImBuf *ibuf1)
}
-struct ImBuf *IMB_onehalf(struct ImBuf *ibuf1){
+ImBuf *IMB_onehalf(struct ImBuf *ibuf1)
+{
struct ImBuf *ibuf2;
if (ibuf1 == NULL) return (NULL);
@@ -810,7 +811,7 @@ static int q_scale_linear_interpolation(
return TRUE;
}
-static struct ImBuf *scaledownx(struct ImBuf *ibuf, int newx)
+static ImBuf *scaledownx(struct ImBuf *ibuf, int newx)
{
const int do_rect = (ibuf->rect != NULL);
const int do_float = (ibuf->rect_float != NULL);
@@ -940,7 +941,7 @@ static struct ImBuf *scaledownx(struct ImBuf *ibuf, int newx)
}
-static struct ImBuf *scaledowny(struct ImBuf *ibuf, int newy)
+static ImBuf *scaledowny(struct ImBuf *ibuf, int newy)
{
const int do_rect = (ibuf->rect != NULL);
const int do_float = (ibuf->rect_float != NULL);
@@ -1071,7 +1072,7 @@ static struct ImBuf *scaledowny(struct ImBuf *ibuf, int newy)
}
-static struct ImBuf *scaleupx(struct ImBuf *ibuf, int newx)
+static ImBuf *scaleupx(struct ImBuf *ibuf, int newx)
{
uchar *rect, *_newrect = NULL, *newrect;
float *rectf, *_newrectf = NULL, *newrectf;
@@ -1084,7 +1085,7 @@ static struct ImBuf *scaleupx(struct ImBuf *ibuf, int newx)
float val_bf, nval_bf, diff_bf;
float val_gf, nval_gf, diff_gf;
float val_rf, nval_rf, diff_rf;
- int x, y, do_rect = 0, do_float = 0;
+ int x, y, do_rect = FALSE, do_float = FALSE;
val_a = nval_a = diff_a = val_b = nval_b = diff_b = 0;
val_g = nval_g = diff_g = val_r = nval_r = diff_r = 0;
@@ -1094,12 +1095,12 @@ static struct ImBuf *scaleupx(struct ImBuf *ibuf, int newx)
if (ibuf->rect == NULL && ibuf->rect_float == NULL) return (ibuf);
if (ibuf->rect) {
- do_rect = 1;
+ do_rect = TRUE;
_newrect = MEM_mallocN(newx * ibuf->y * sizeof(int), "scaleupx");
if (_newrect == NULL) return(ibuf);
}
if (ibuf->rect_float) {
- do_float = 1;
+ do_float = TRUE;
_newrectf = MEM_mallocN(newx * ibuf->y * sizeof(float) * 4, "scaleupxf");
if (_newrectf == NULL) {
if (_newrect) MEM_freeN(_newrect);
@@ -1238,7 +1239,7 @@ static struct ImBuf *scaleupx(struct ImBuf *ibuf, int newx)
return(ibuf);
}
-static struct ImBuf *scaleupy(struct ImBuf *ibuf, int newy)
+static ImBuf *scaleupy(struct ImBuf *ibuf, int newy)
{
uchar *rect, *_newrect = NULL, *newrect;
float *rectf, *_newrectf = NULL, *newrectf;
@@ -1251,7 +1252,7 @@ static struct ImBuf *scaleupy(struct ImBuf *ibuf, int newy)
float val_bf, nval_bf, diff_bf;
float val_gf, nval_gf, diff_gf;
float val_rf, nval_rf, diff_rf;
- int x, y, do_rect = 0, do_float = 0, skipx;
+ int x, y, do_rect = FALSE, do_float = FALSE, skipx;
val_a = nval_a = diff_a = val_b = nval_b = diff_b = 0;
val_g = nval_g = diff_g = val_r = nval_r = diff_r = 0;
@@ -1261,12 +1262,12 @@ static struct ImBuf *scaleupy(struct ImBuf *ibuf, int newy)
if (ibuf->rect == NULL && ibuf->rect_float == NULL) return (ibuf);
if (ibuf->rect) {
- do_rect = 1;
+ do_rect = TRUE;
_newrect = MEM_mallocN(ibuf->x * newy * sizeof(int), "scaleupy");
if (_newrect == NULL) return(ibuf);
}
if (ibuf->rect_float) {
- do_float = 1;
+ do_float = TRUE;
_newrectf = MEM_mallocN(ibuf->x * newy * sizeof(float) * 4, "scaleupyf");
if (_newrectf == NULL) {
if (_newrect) MEM_freeN(_newrect);
@@ -1480,16 +1481,16 @@ struct ImBuf *IMB_scalefastImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned
{
unsigned int *rect, *_newrect, *newrect;
struct imbufRGBA *rectf, *_newrectf, *newrectf;
- int x, y, do_float = 0, do_rect = 0;
+ int x, y, do_float = FALSE, do_rect = FALSE;
int ofsx, ofsy, stepx, stepy;
rect = NULL; _newrect = NULL; newrect = NULL;
rectf = NULL; _newrectf = NULL; newrectf = NULL;
if (ibuf == NULL) return(NULL);
- if (ibuf->rect) do_rect = 1;
- if (ibuf->rect_float) do_float = 1;
- if (do_rect == 0 && do_float == 0) return(ibuf);
+ if (ibuf->rect) do_rect = TRUE;
+ if (ibuf->rect_float) do_float = TRUE;
+ if (do_rect == FALSE && do_float == FALSE) return(ibuf);
if (newx == ibuf->x && newy == ibuf->y) return(ibuf);
diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c
index c690995d28a..bf75995fd9c 100644
--- a/source/blender/imbuf/intern/targa.c
+++ b/source/blender/imbuf/intern/targa.c
@@ -544,7 +544,8 @@ partial_load:
}
-struct ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags){
+ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags)
+{
TARGA tga;
struct ImBuf *ibuf;
int col, count, size;
diff --git a/source/blender/imbuf/intern/tiff.c b/source/blender/imbuf/intern/tiff.c
index 0c6a5b56a3e..556ec64e59a 100644
--- a/source/blender/imbuf/intern/tiff.c
+++ b/source/blender/imbuf/intern/tiff.c
@@ -478,7 +478,7 @@ static int imb_read_tiff_pixels(ImBuf *ibuf, TIFF *image, int premul)
/* assign rect last */
if (tmpibuf->rect_float)
ibuf->rect_float = tmpibuf->rect_float;
- else
+ else
ibuf->rect = tmpibuf->rect;
ibuf->mall |= ib_flag;
ibuf->flags |= ib_flag;
@@ -819,7 +819,8 @@ int imb_savetiff(ImBuf *ibuf, const char *name, int flags)
TIFFSetField(image, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
if (TIFFWriteEncodedStrip(image, 0,
(bitspersample == 16) ? (unsigned char *)pixels16 : pixels,
- ibuf->x * ibuf->y * samplesperpixel * bitspersample / 8) == -1) {
+ ibuf->x * ibuf->y * samplesperpixel * bitspersample / 8) == -1)
+ {
fprintf(stderr,
"imb_savetiff: Could not write encoded TIFF.\n");
TIFFClose(image);
diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c
index 4820347f048..a86e2bed0e5 100644
--- a/source/blender/imbuf/intern/util.c
+++ b/source/blender/imbuf/intern/util.c
@@ -188,9 +188,9 @@ static int IMB_ispic_name(const char *name)
int IMB_ispic(const char *filename)
{
if (U.uiflag & USER_FILTERFILEEXTS) {
- if ( (BLI_testextensie_array(filename, imb_ext_image)) ||
- (G.have_quicktime && BLI_testextensie_array(filename, imb_ext_image_qt))
- ) {
+ if ((BLI_testextensie_array(filename, imb_ext_image)) ||
+ (G.have_quicktime && BLI_testextensie_array(filename, imb_ext_image_qt)))
+ {
return IMB_ispic_name(filename);
}
else {
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index 30b3e75255d..9cb5ca5da55 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -612,7 +612,7 @@ typedef enum eSAction_Flag {
/* show pose-markers (local to action) in Action Editor mode */
SACTION_POSEMARKERS_SHOW = (1<<6),
/* don't draw action channels using group colors (where applicable) */
- SACTION_NODRAWGCOLORS = (1<<7), // XXX depreceated... irrelevant for current groups implementation
+ SACTION_NODRAWGCOLORS = (1<<7),
/* don't draw current frame number beside frame indicator */
SACTION_NODRAWCFRANUM = (1<<8),
/* temporary flag to force channel selections to be synced with main */
diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h
index 5792953fe49..377af042922 100644
--- a/source/blender/makesdna/DNA_customdata_types.h
+++ b/source/blender/makesdna/DNA_customdata_types.h
@@ -63,12 +63,11 @@ typedef struct CustomDataExternal {
* layers, each with a data type (e.g. MTFace, MDeformVert, etc.). */
typedef struct CustomData {
CustomDataLayer *layers; /* CustomDataLayers, ordered by type */
- int typemap[36]; /* runtime only! - maps types to indices of first layer of that type,
+ int typemap[37]; /* runtime only! - maps types to indices of first layer of that type,
* MUST be >= CD_NUMTYPES, but we cant use a define here.
* Correct size is ensured in CustomData_update_typemap assert() */
-
int totlayer, maxlayer; /* number of layers, size of layers array */
- int totsize, pad2; /* in editmode, total size of all data layers */
+ int totsize; /* in editmode, total size of all data layers */
void *pool; /* Bmesh: Memory pool for allocation of blocks */
CustomDataExternal *external; /* external file storing customdata layers */
} CustomData;
@@ -114,8 +113,8 @@ typedef struct CustomData {
#define CD_PAINT_MASK 34
#define CD_GRID_PAINT_MASK 35
-
-#define CD_NUMTYPES 36
+#define CD_MVERT_SKIN 36
+#define CD_NUMTYPES 37
/* Bits for CustomDataMask */
#define CD_MASK_MVERT (1 << CD_MVERT)
@@ -156,6 +155,7 @@ typedef struct CustomData {
#define CD_MASK_PAINT_MASK (1LL << CD_PAINT_MASK)
#define CD_MASK_GRID_PAINT_MASK (1LL << CD_GRID_PAINT_MASK)
+#define CD_MASK_MVERT_SKIN (1LL << CD_MVERT_SKIN)
/* CustomData.flag */
diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h
index c3b0bc39388..0bd83e73271 100644
--- a/source/blender/makesdna/DNA_meshdata_types.h
+++ b/source/blender/makesdna/DNA_meshdata_types.h
@@ -257,6 +257,27 @@ typedef struct GridPaintMask {
int pad;
} GridPaintMask;
+typedef enum MVertSkinFlag {
+ /* Marks a vertex as the edge-graph root, used for calculating
+ rotations for all connected edges (recursively.) Also used to
+ choose a root when generating an armature. */
+ MVERT_SKIN_ROOT = 1,
+
+ /* Marks a branch vertex (vertex with more than two connected
+ edges) so that it's neighbors are directly hulled together,
+ rather than the default of generating intermediate frames. */
+ MVERT_SKIN_LOOSE = 2
+} MVertSkinFlag;
+
+typedef struct MVertSkin {
+ /* Radii of the skin, define how big the generated frames
+ are. Currently only the first two elements are used. */
+ float radius[3];
+
+ /* MVertSkinFlag */
+ int flag;
+} MVertSkin;
+
/* mvert->flag (1=SELECT) */
#define ME_SPHERETEST 2
#define ME_VERT_TMP_TAG 4
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 30280e95646..a5a540ff6b4 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -77,6 +77,7 @@ typedef enum ModifierType {
eModifierType_Ocean,
eModifierType_DynamicPaint,
eModifierType_Remesh,
+ eModifierType_Skin,
NUM_MODIFIER_TYPES
} ModifierType;
@@ -745,10 +746,11 @@ typedef struct ScrewModifierData {
short flag;
} ScrewModifierData;
-#define MOD_SCREW_NORMAL_FLIP (1<<0)
-#define MOD_SCREW_NORMAL_CALC (1<<1)
-#define MOD_SCREW_OBJECT_OFFSET (1<<2)
-// #define MOD_SCREW_OBJECT_ANGLE (1<<4)
+#define MOD_SCREW_NORMAL_FLIP (1 << 0)
+#define MOD_SCREW_NORMAL_CALC (1 << 1)
+#define MOD_SCREW_OBJECT_OFFSET (1 << 2)
+// #define MOD_SCREW_OBJECT_ANGLE (1 << 4)
+#define MOD_SCREW_SMOOTH_SHADING (1 << 5)
typedef struct OceanModifierData {
ModifierData modifier;
@@ -1032,6 +1034,7 @@ typedef struct DynamicPaintModifierData {
typedef enum RemeshModifierFlags {
MOD_REMESH_FLOOD_FILL = 1,
+ MOD_REMESH_SMOOTH_SHADING = 2,
} RemeshModifierFlags;
typedef enum RemeshModifierMode {
@@ -1063,4 +1066,30 @@ typedef struct RemeshModifierData {
char pad;
} RemeshModifierData;
+/* Skin modifier */
+
+typedef struct SkinModifierData {
+ ModifierData modifier;
+
+ float branch_smoothing;
+
+ char flag;
+
+ char symmetry_axes;
+
+ char pad[2];
+} SkinModifierData;
+
+/* SkinModifierData.symmetry_axes */
+enum {
+ MOD_SKIN_SYMM_X = 1,
+ MOD_SKIN_SYMM_Y = 2,
+ MOD_SKIN_SYMM_Z = 4,
+};
+
+/* SkinModifierData.flag */
+enum {
+ MOD_SKIN_SMOOTH_SHADING = 1
+};
+
#endif
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 6fbaf1723bc..b2781675cbe 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -68,6 +68,14 @@ typedef struct bNodeStack {
#define NS_OSA_VECTORS 1
#define NS_OSA_VALUES 2
+/* node socket/node socket type -b conversion rules */
+#define NS_CR_CENTER 0
+#define NS_CR_NONE 1
+#define NS_CR_FIT_WIDTH 2
+#define NS_CR_FIT_HEIGHT 3
+#define NS_CR_FIT 4
+#define NS_CR_STRETCH 5
+
typedef struct bNodeSocket {
struct bNodeSocket *next, *prev, *new_sock;
@@ -87,7 +95,7 @@ typedef struct bNodeSocket {
short stack_index; /* local stack index */
/* XXX deprecated, kept for forward compatibility */
short stack_type DNA_DEPRECATED;
- int pad2;
+ int resizemode; /* compositor resize mode of the socket */
void *cache; /* cached data from execution */
/* internal data to retrieve relations and groups */
@@ -146,11 +154,13 @@ typedef struct bNode {
struct bNode *next, *prev, *new_node;
char name[64]; /* MAX_NAME */
- short type, flag;
+ int flag;
+ short type, pad2;
short done, level; /* both for dependency and sorting */
short lasty, menunr; /* lasty: check preview render status, menunr: browse ID blocks */
short stack_index; /* for groupnode, offset in global caller stack */
short nr; /* number of this node in list, used for UI exec events */
+ float color[3]; /* custom user-defined color */
ListBase inputs, outputs;
struct bNode *parent; /* parent node */
@@ -160,6 +170,7 @@ typedef struct bNode {
float locx, locy; /* root offset for drawing */
float width, height; /* node custom width and height */
float miniwidth; /* node width if hidden */
+ float offsetx, offsety; /* additional offset from loc */
int update; /* update flags */
@@ -201,6 +212,8 @@ typedef struct bNode {
#define NODE_TRANSFORM (1<<13)
/* node is active texture */
#define NODE_ACTIVE_TEXTURE (1<<14)
+ /* use a custom color for the node */
+#define NODE_CUSTOM_COLOR (1<<15)
/* node->update */
/* XXX NODE_UPDATE is a generic update flag. More fine-grained updates
@@ -223,6 +236,11 @@ typedef struct bNodeLink {
#define NODE_LINKFLAG_HILITE 1 /* link has been successfully validated */
#define NODE_LINK_VALID 2
+/* tree->edit_quality/tree->render_quality */
+#define NTREE_QUALITY_HIGH 0
+#define NTREE_QUALITY_MEDIUM 1
+#define NTREE_QUALITY_LOW 2
+
/* the basis for a Node tree, all links and nodes reside internal here */
/* only re-usable node trees are in the library though, materials and textures allocate own tree struct */
typedef struct bNodeTree {
@@ -240,6 +258,10 @@ typedef struct bNodeTree {
int update; /* update flags */
int nodetype; /* specific node type this tree is used for */
+
+ short edit_quality; /* Quality setting when editing */
+ short render_quality; /* Quality setting when rendering */
+ int chunksize; /* tile size for compositor engine */
ListBase inputs, outputs; /* external sockets for group nodes */
@@ -271,6 +293,7 @@ typedef struct bNodeTree {
/* ntree->flag */
#define NTREE_DS_EXPAND 1 /* for animation editors */
+#define NTREE_COM_OPENCL 2 /* use opencl */
/* XXX not nice, but needed as a temporary flags
* for group updates after library linking.
*/
@@ -317,6 +340,24 @@ typedef struct bNodeSocketValueRGBA {
/* data structs, for node->storage */
+#define CMP_NODE_MASKTYPE_ADD 0
+#define CMP_NODE_MASKTYPE_SUBTRACT 1
+#define CMP_NODE_MASKTYPE_MULTIPLY 2
+#define CMP_NODE_MASKTYPE_NOT 3
+
+#define CMP_NODE_LENSFLARE_GHOST 1
+#define CMP_NODE_LENSFLARE_GLOW 2
+#define CMP_NODE_LENSFLARE_CIRCLE 4
+#define CMP_NODE_LENSFLARE_STREAKS 8
+
+#define CMP_NODE_DILATEERODE_STEP 0
+#define CMP_NODE_DILATEERODE_DISTANCE 1
+
+typedef struct NodeFrame {
+ short flag;
+ short label_size;
+} NodeFrame;
+
/* this one has been replaced with ImageUser, keep it for do_versions() */
typedef struct NodeImageAnim {
int frames, sfra, nr;
@@ -324,10 +365,54 @@ typedef struct NodeImageAnim {
short pad;
} NodeImageAnim;
+typedef struct ColorCorrectionData {
+ float saturation;
+ float contrast;
+ float gamma;
+ float gain;
+ float lift;
+ int pad;
+} ColorCorrectionData;
+
+typedef struct NodeColorCorrection {
+ ColorCorrectionData master;
+ ColorCorrectionData shadows;
+ ColorCorrectionData midtones;
+ ColorCorrectionData highlights;
+ float startmidtones;
+ float endmidtones;
+} NodeColorCorrection;
+
+typedef struct NodeBokehImage {
+ float angle;
+ int flaps;
+ float rounding;
+ float catadioptric;
+ float lensshift;
+} NodeBokehImage;
+
+typedef struct NodeBoxMask {
+ float x;
+ float y;
+ float rotation;
+ float height;
+ float width;
+ int pad;
+} NodeBoxMask;
+
+typedef struct NodeEllipseMask {
+ float x;
+ float y;
+ float rotation;
+ float height;
+ float width;
+ int pad;
+} NodeEllipseMask;
+
/* layer info for image node outputs */
typedef struct NodeImageLayer {
- /* index in the Image->layers and Image->layers->passes lists */
- int layer_index, pass_index;
+ /* index in the Image->layers->passes lists */
+ int pass_index;
/* render pass flag, in case this is an original render pass */
int pass_flag;
} NodeImageLayer;
@@ -532,6 +617,10 @@ typedef struct TexNodeOutput {
char name[64];
} TexNodeOutput;
+/* frame node flags */
+#define NODE_FRAME_SHRINK 1 /* keep the bounding box minimal */
+#define NODE_FRAME_RESIZEABLE 2 /* test flag, if frame can be resized by user */
+
/* comp channel matte */
#define CMP_NODE_CHANNEL_MATTE_CS_RGB 1
#define CMP_NODE_CHANNEL_MATTE_CS_HSV 2
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 1e428bb96e0..1ea50ec9c1a 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -142,7 +142,7 @@ typedef struct Object {
/* rot en drot have to be together! (transform('r' en 's')) */
float loc[3], dloc[3], orig[3];
- float size[3]; /* scale infact */
+ float size[3]; /* scale in fact */
float dsize[3] DNA_DEPRECATED ; /* DEPRECATED, 2.60 and older only */
float dscale[3]; /* ack!, changing */
float rot[3], drot[3]; /* euler rotation */
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 83666068812..673156e3d7d 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -702,6 +702,8 @@ typedef struct TimeMarker {
/* *************************************************************** */
/* Paint Mode/Tool Data */
+#define PAINT_MAX_INPUT_SAMPLES 64
+
/* Paint Tool Base */
typedef struct Paint {
struct Brush *brush;
@@ -710,7 +712,14 @@ typedef struct Paint {
void *paint_cursor;
unsigned char paint_cursor_col[4];
+ /* enum PaintFlags */
int flags;
+
+ /* Paint stroke can use up to PAINT_MAX_INPUT_SAMPLES inputs to
+ * smooth the stroke */
+ int num_input_samples;
+
+ int pad;
} Paint;
/* ------------------------------------------- */
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index da07ffd7f9a..fe8617079aa 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -69,12 +69,14 @@ struct MovieClip;
struct MovieClipScopes;
struct Mask;
- /**
- * The base structure all the other spaces
- * are derived (implicitly) from. Would be
- * good to make this explicit.
- */
+/* SpaceLink (Base) ==================================== */
+
+/**
+ * The base structure all the other spaces
+ * are derived (implicitly) from. Would be
+ * good to make this explicit.
+ */
typedef struct SpaceLink {
struct SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
@@ -83,27 +85,209 @@ typedef struct SpaceLink {
short blockhandler[8] DNA_DEPRECATED; /* XXX make deprecated */
} SpaceLink;
+
+/* Space Info ========================================== */
+
+/* Info Header */
typedef struct SpaceInfo {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale DNA_DEPRECATED;
-
short blockhandler[8] DNA_DEPRECATED; /* XXX make deprecated */
char rpt_mask;
char pad[7];
-
} SpaceInfo;
/* SpaceInfo.rpt_mask */
-enum {
- INFO_RPT_DEBUG = 1<<0,
- INFO_RPT_INFO = 1<<1,
- INFO_RPT_OP = 1<<2,
- INFO_RPT_WARN = 1<<3,
- INFO_RPT_ERR = 1<<4,
-};
+typedef enum eSpaceInfo_RptMask {
+ INFO_RPT_DEBUG = (1 << 0),
+ INFO_RPT_INFO = (1 << 1),
+ INFO_RPT_OP = (1 << 2),
+ INFO_RPT_WARN = (1 << 3),
+ INFO_RPT_ERR = (1 << 4),
+} eSpaceInfo_RptMask;
+
+
+/* Properties Editor ==================================== */
+
+/* Properties Editor */
+typedef struct SpaceButs {
+ SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
+ int spacetype;
+ float blockscale DNA_DEPRECATED;
+
+ short blockhandler[8] DNA_DEPRECATED;
+
+ View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
+
+ short mainb, mainbo, mainbuser; /* context tabs */
+ short re_align, align; /* align for panels */
+ short preview; /* preview is signal to refresh */
+ short texture_context; /* texture context selector (material, world, brush)*/
+ char flag, pad;
+
+ void *path; /* runtime */
+ int pathflag, dataicon; /* runtime */
+ ID *pinid;
+
+ void *texuser;
+} SpaceButs;
+
+/* button defines (deprecated) */
+/* warning: the values of these defines are used in sbuts->tabs[8] */
+/* sbuts->mainb new */
+#define CONTEXT_SCENE 0
+#define CONTEXT_OBJECT 1
+#define CONTEXT_TYPES 2
+#define CONTEXT_SHADING 3
+#define CONTEXT_EDITING 4
+#define CONTEXT_SCRIPT 5
+#define CONTEXT_LOGIC 6
+
+/* sbuts->mainb old (deprecated) */
+#define BUTS_VIEW 0
+#define BUTS_LAMP 1
+#define BUTS_MAT 2
+#define BUTS_TEX 3
+#define BUTS_ANIM 4
+#define BUTS_WORLD 5
+#define BUTS_RENDER 6
+#define BUTS_EDIT 7
+#define BUTS_GAME 8
+#define BUTS_FPAINT 9
+#define BUTS_RADIO 10
+#define BUTS_SCRIPT 11
+#define BUTS_SOUND 12
+#define BUTS_CONSTRAINT 13
+#define BUTS_EFFECTS 14
+
+/* buts->mainb new */
+typedef enum eSpaceButtons_Context {
+ BCONTEXT_RENDER = 0,
+ BCONTEXT_SCENE,
+ BCONTEXT_WORLD,
+ BCONTEXT_OBJECT,
+ BCONTEXT_DATA,
+ BCONTEXT_MATERIAL,
+ BCONTEXT_TEXTURE,
+ BCONTEXT_PARTICLE,
+ BCONTEXT_PHYSICS,
+ BCONTEXT_BONE,
+ BCONTEXT_MODIFIER,
+ BCONTEXT_CONSTRAINT,
+ BCONTEXT_BONE_CONSTRAINT,
+
+ /* always as last... */
+ BCONTEXT_TOT
+} eSpaceButtons_Context;
+
+/* sbuts->flag */
+#define SB_PRV_OSA 1
+#define SB_PIN_CONTEXT 2
+//#define SB_WORLD_TEX 4 //not used anymore
+//#define SB_BRUSH_TEX 8 //not used anymore
+#define SB_SHADING_CONTEXT 16
+
+/* sbuts->texture_context */
+typedef enum eSpaceButtons_Texture_Context {
+ SB_TEXC_MAT_OR_LAMP = 0,
+ SB_TEXC_WORLD,
+ SB_TEXC_BRUSH,
+ SB_TEXC_PARTICLES,
+} eSpaceButtons_Texture_Context;
+
+/* sbuts->align */
+typedef enum eSpaceButtons_Align {
+ BUT_FREE = 0,
+ BUT_HORIZONTAL,
+ BUT_VERTICAL,
+ BUT_AUTO,
+} eSpaceButtons_Align;
+
+/* sbuts->scaflag */
+#define BUTS_SENS_SEL 1
+#define BUTS_SENS_ACT 2
+#define BUTS_SENS_LINK 4
+#define BUTS_CONT_SEL 8
+#define BUTS_CONT_ACT 16
+#define BUTS_CONT_LINK 32
+#define BUTS_ACT_SEL 64
+#define BUTS_ACT_ACT 128
+#define BUTS_ACT_LINK 256
+#define BUTS_SENS_STATE 512
+#define BUTS_ACT_STATE 1024
+#define BUTS_CONT_INIT_STATE 2048
+
+
+/* Outliner =============================================== */
+
+/* Outliner */
+typedef struct SpaceOops {
+ SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
+ int spacetype;
+ float blockscale DNA_DEPRECATED;
+ short blockhandler[8] DNA_DEPRECATED;
+
+ View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
+
+ ListBase tree;
+ struct TreeStore *treestore;
+
+ /* search stuff */
+ char search_string[32];
+ struct TreeStoreElem search_tse;
+
+ short flag, outlinevis, storeflag, search_flags;
+} SpaceOops;
+
+
+/* SpaceOops->flag */
+typedef enum eSpaceOutliner_Flag {
+ SO_TESTBLOCKS = (1 << 0),
+ SO_NEWSELECTED = (1 << 1),
+ SO_HIDE_RESTRICTCOLS = (1 << 2),
+ SO_HIDE_KEYINGSETINFO = (1 << 3),
+} eSpaceOutliner_Flag;
+
+/* SpaceOops->outlinevis */
+typedef enum eSpaceOutliner_Mode {
+ SO_ALL_SCENES = 0,
+ SO_CUR_SCENE,
+ SO_VISIBLE,
+ SO_SELECTED,
+ SO_ACTIVE,
+ SO_SAME_TYPE,
+ SO_GROUPS,
+ SO_LIBRARIES,
+ SO_VERSE_SESSION,
+ SO_VERSE_MS,
+ SO_SEQUENCE,
+ SO_DATABLOCKS,
+ SO_USERDEF,
+ SO_KEYMAP,
+} eSpaceOutliner_Mode;
+
+/* SpaceOops->storeflag */
+typedef enum eSpaceOutliner_StoreFlag {
+ /* rebuild tree */
+ SO_TREESTORE_CLEANUP = (1 << 0),
+ /* if set, it allows redraws. gets set for some allqueue events */
+ SO_TREESTORE_REDRAW = (1 << 1),
+} eSpaceOutliner_StoreFlag;
+
+/* outliner search flags (SpaceOops->search_flags) */
+typedef enum eSpaceOutliner_Search_Flags {
+ SO_FIND_CASE_SENSITIVE = (1 << 0),
+ SO_FIND_COMPLETE = (1 << 1),
+ SO_SEARCH_RECURSIVE = (1 << 2),
+} eSpaceOutliner_Search_Flags;
+
+
+/* Graph Editor ========================================= */
/* 'Graph' Editor (formerly known as the IPO Editor) */
typedef struct SpaceIpo {
@@ -111,8 +295,8 @@ typedef struct SpaceIpo {
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale DNA_DEPRECATED;
-
short blockhandler[8] DNA_DEPRECATED;
+
View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
struct bDopeSheet *ads; /* settings for filtering animation data (NOTE: we use a pointer due to code-linking issues) */
@@ -121,35 +305,153 @@ typedef struct SpaceIpo {
short mode; /* mode for the Graph editor (eGraphEdit_Mode) */
short autosnap; /* time-transform autosnapping settings for Graph editor (eAnimEdit_AutoSnap in DNA_action_types.h) */
- int flag; /* settings for Graph editor */
+ int flag; /* settings for Graph editor (eGraphEdit_Flag) */
float cursorVal; /* cursor value (y-value, x-value is current frame) */
int around; /* pivot point for transforms */
} SpaceIpo;
-typedef struct SpaceButs {
- SpaceLink *next, *prev;
+
+/* SpaceIpo->flag (Graph Editor Settings) */
+typedef enum eGraphEdit_Flag {
+ /* OLD DEPRECEATED SETTING */
+ /* SIPO_LOCK_VIEW = (1 << 0), */
+
+ /* don't merge keyframes on the same frame after a transform */
+ SIPO_NOTRANSKEYCULL = (1 << 1),
+ /* don't show any keyframe handles at all */
+ SIPO_NOHANDLES = (1 << 2),
+ /* don't show current frame number beside indicator line */
+ SIPO_NODRAWCFRANUM = (1 << 3),
+ /* show timing in seconds instead of frames */
+ SIPO_DRAWTIME = (1 << 4),
+ /* only show keyframes for selected F-Curves */
+ SIPO_SELCUVERTSONLY = (1 << 5),
+ /* draw names of F-Curves beside the respective curves */
+ /* NOTE: currently not used */
+ SIPO_DRAWNAMES = (1 << 6),
+ /* show sliders in channels list */
+ SIPO_SLIDERS = (1 << 7),
+ /* don't show the horizontal component of the cursor */
+ SIPO_NODRAWCURSOR = (1 << 8),
+ /* only show handles of selected keyframes */
+ SIPO_SELVHANDLESONLY = (1 << 9),
+ /* temporary flag to force channel selections to be synced with main */
+ SIPO_TEMP_NEEDCHANSYNC = (1 << 10),
+ /* don't perform realtime updates */
+ SIPO_NOREALTIMEUPDATES = (1 << 11),
+ /* don't draw curves with AA ("beauty-draw") for performance */
+ SIPO_BEAUTYDRAW_OFF = (1 << 12),
+ /* draw grouped channels with colors set in group */
+ SIPO_NODRAWGCOLORS = (1 << 13),
+} eGraphEdit_Flag;
+
+/* SpaceIpo->mode (Graph Editor Mode) */
+typedef enum eGraphEdit_Mode {
+ /* all animation curves (from all over Blender) */
+ SIPO_MODE_ANIMATION = 0,
+ /* drivers only */
+ SIPO_MODE_DRIVERS,
+} eGraphEdit_Mode;
+
+
+/* NLA Editor ============================================= */
+
+/* NLA Editor */
+typedef struct SpaceNla {
+ struct SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale DNA_DEPRECATED;
-
short blockhandler[8] DNA_DEPRECATED;
- View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
+ short autosnap; /* this uses the same settings as autosnap for Action Editor */
+ short flag;
+ int pad;
- short mainb, mainbo, mainbuser; /* context tabs */
- short re_align, align; /* align for panels */
- short preview; /* preview is signal to refresh */
- short texture_context; /* texture context selector (material, world, brush)*/
- char flag, pad;
+ struct bDopeSheet *ads;
+ View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
+} SpaceNla;
+
+/* nla->flag */
+typedef enum eSpaceNla_Flag {
+ /* flags (1<<0), (1<<1), and (1<<3) are depreceated flags from old verisons */
+
+ /* draw timing in seconds instead of frames */
+ SNLA_DRAWTIME = (1 << 2),
+ /* don't draw frame number beside frame indicator */
+ SNLA_NODRAWCFRANUM = (1 << 4),
+ /* don't draw influence curves on strips */
+ SNLA_NOSTRIPCURVES = (1 << 5),
+ /* don't perform realtime updates */
+ SNLA_NOREALTIMEUPDATES = (1 << 6),
+} eSpaceNla_Flag;
+
+
+/* Timeline =============================================== */
+
+/* Pointcache drawing data */
+# /* Only store the data array in the cache to avoid constant reallocation. */
+# /* No need to store when saved. */
+typedef struct SpaceTimeCache {
+ struct SpaceTimeCache *next, *prev;
+ float *array;
+} SpaceTimeCache;
+
+/* Timeline View */
+typedef struct SpaceTime {
+ SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
+ int spacetype;
+ float blockscale DNA_DEPRECATED;
- void *path; /* runtime */
- int pathflag, dataicon; /* runtime */
- ID *pinid;
+ View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
- void *texuser;
-} SpaceButs;
+ ListBase caches;
+
+ int cache_display;
+ int flag;
+} SpaceTime;
+
+/* time->flag */
+typedef enum eTimeline_Flag {
+ /* show timing in frames instead of in seconds */
+ TIME_DRAWFRAMES = (1 << 0),
+ /* show time indicator box beside the frame number */
+ TIME_CFRA_NUM = (1 << 1),
+ /* only keyframes from active/selected channels get shown */
+ TIME_ONLYACTSEL = (1 << 2),
+} eTimeline_Flag;
+
+/* time->redraws (now screen->redraws_flag) */
+typedef enum eScreen_Redraws_Flag {
+ TIME_REGION = (1 << 0),
+ TIME_ALL_3D_WIN = (1 << 1),
+ TIME_ALL_ANIM_WIN = (1 << 2),
+ TIME_ALL_BUTS_WIN = (1 << 3),
+ TIME_WITH_SEQ_AUDIO = (1 << 4), /* DEPRECATED */
+ TIME_SEQ = (1 << 5),
+ TIME_ALL_IMAGE_WIN = (1 << 6),
+ TIME_CONTINUE_PHYSICS = (1 << 7),
+ TIME_NODES = (1 << 8),
+ TIME_CLIPS = (1 << 9),
+} eScreen_Redraws_Flag;
+
+/* time->cache */
+typedef enum eTimeline_Cache_Flag {
+ TIME_CACHE_DISPLAY = (1 << 0),
+ TIME_CACHE_SOFTBODY = (1 << 1),
+ TIME_CACHE_PARTICLES = (1 << 2),
+ TIME_CACHE_CLOTH = (1 << 3),
+ TIME_CACHE_SMOKE = (1 << 4),
+ TIME_CACHE_DYNAMICPAINT = (1 << 5),
+} eTimeline_Cache_Flag;
+
+
+/* Sequence Editor ======================================= */
+
+/* Sequencer */
typedef struct SpaceSeq {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
@@ -173,6 +475,48 @@ typedef struct SpaceSeq {
struct bGPdata *gpd; /* grease-pencil data */
} SpaceSeq;
+
+/* sseq->mainb */
+typedef enum eSpaceSeq_RegionType {
+ SEQ_DRAW_SEQUENCE = 0,
+ SEQ_DRAW_IMG_IMBUF,
+ SEQ_DRAW_IMG_WAVEFORM,
+ SEQ_DRAW_IMG_VECTORSCOPE,
+ SEQ_DRAW_IMG_HISTOGRAM,
+} eSpaceSeq_RegionType;
+
+/* sseq->flag */
+typedef enum eSpaceSeq_Flag {
+ SEQ_DRAWFRAMES = (1 << 0),
+ SEQ_MARKER_TRANS = (1 << 1),
+ SEQ_DRAW_COLOR_SEPARATED = (1 << 2),
+ SEQ_DRAW_SAFE_MARGINS = (1 << 3),
+ SEQ_DRAW_GPENCIL = (1 << 4), /* DEPRECATED */
+ SEQ_NO_DRAW_CFRANUM = (1 << 5),
+} eSpaceSeq_Flag;
+
+/* sseq->view */
+typedef enum eSpaceSeq_Displays {
+ SEQ_VIEW_SEQUENCE = 1,
+ SEQ_VIEW_PREVIEW,
+ SEQ_VIEW_SEQUENCE_PREVIEW,
+} eSpaceSeq_Dispays;
+
+/* sseq->render_size */
+typedef enum eSpaceSeq_Proxy_RenderSize {
+ SEQ_PROXY_RENDER_SIZE_NONE = -1,
+ SEQ_PROXY_RENDER_SIZE_SCENE = 0,
+ SEQ_PROXY_RENDER_SIZE_25 = 25,
+ SEQ_PROXY_RENDER_SIZE_50 = 50,
+ SEQ_PROXY_RENDER_SIZE_75 = 75,
+ SEQ_PROXY_RENDER_SIZE_100 = 99,
+ SEQ_PROXY_RENDER_SIZE_FULL = 100
+} eSpaceSeq_Proxy_RenderSize;
+
+
+/* File Selector ========================================== */
+
+/* Config and Input for File Selector */
typedef struct FileSelectParams {
char title[32]; /* title, also used for the text of the execute button */
char dir[1056]; /* directory, FILE_MAX_LIBEXTRA, 1024 + 32, this is for extreme case when 1023 length path
@@ -201,11 +545,12 @@ typedef struct FileSelectParams {
/* XXX --- end unused -- */
} FileSelectParams;
-
+/* File Browser */
typedef struct SpaceFile {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
+
int scroll_offset;
struct FileSelectParams *params; /* config and input for file select */
@@ -230,26 +575,91 @@ typedef struct SpaceFile {
short systemnr, pad2;
} SpaceFile;
-typedef struct SpaceOops {
- SpaceLink *next, *prev;
- ListBase regionbase; /* storage of regions for inactive spaces */
- int spacetype;
- float blockscale DNA_DEPRECATED;
- short blockhandler[8] DNA_DEPRECATED;
+/* FileSelectParams.display */
+enum FileDisplayTypeE {
+ FILE_DEFAULTDISPLAY = 0,
+ FILE_SHORTDISPLAY,
+ FILE_LONGDISPLAY,
+ FILE_IMGDISPLAY
+};
- View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
-
- ListBase tree;
- struct TreeStore *treestore;
-
- /* search stuff */
- char search_string[32];
- struct TreeStoreElem search_tse;
+/* FileSelectParams.sort */
+enum FileSortTypeE {
+ FILE_SORT_NONE = 0,
+ FILE_SORT_ALPHA = 1,
+ FILE_SORT_EXTENSION,
+ FILE_SORT_TIME,
+ FILE_SORT_SIZE
+};
- short flag, outlinevis, storeflag, search_flags;
-} SpaceOops;
+/* these values need to be hardcoded in structs, dna does not recognize defines */
+/* also defined in BKE */
+#define FILE_MAXDIR 768
+#define FILE_MAXFILE 256
+#define FILE_MAX 1024
+
+#define FILE_MAX_LIBEXTRA (FILE_MAX + 32)
+
+/* filesel types */
+#define FILE_UNIX 8
+#define FILE_BLENDER 8 /* don't display relative paths */
+#define FILE_SPECIAL 9
+
+#define FILE_LOADLIB 1
+#define FILE_MAIN 2
+#define FILE_LOADFONT 3
+
+/* filesel op property -> action */
+typedef enum eFileSel_Action {
+ FILE_OPENFILE = 0,
+ FILE_SAVE,
+} eFileSel_Action;
+/* sfile->params->flag and simasel->flag */
+typedef enum eFileSel_Params_Flag {
+ FILE_SHOWSHORT = (1 << 0),
+ FILE_RELPATH = (1 << 1), /* was FILE_STRINGCODE */
+ FILE_LINK = (1 << 2),
+ FILE_HIDE_DOT = (1 << 3),
+ FILE_AUTOSELECT = (1 << 4),
+ FILE_ACTIVELAY = (1 << 5),
+/* FILE_ATCURSOR = (1 << 6), */ /* deprecated */
+ FILE_DIRSEL_ONLY = (1 << 7),
+ FILE_FILTER = (1 << 8),
+ FILE_BOOKMARKS = (1 << 9),
+ FILE_GROUP_INSTANCE = (1 << 10),
+} eFileSel_Params_Flag;
+
+
+/* files in filesel list: file types */
+typedef enum eFileSel_File_Types {
+ BLENDERFILE = (1 << 2),
+ BLENDERFILE_BACKUP = (1 << 3),
+ IMAGEFILE = (1 << 4),
+ MOVIEFILE = (1 << 5),
+ PYSCRIPTFILE = (1 << 6),
+ FTFONTFILE = (1 << 7),
+ SOUNDFILE = (1 << 8),
+ TEXTFILE = (1 << 9),
+ MOVIEFILE_ICON = (1 << 10), /* movie file that preview can't load */
+ FOLDERFILE = (1 << 11), /* represents folders for filtering */
+ BTXFILE = (1 << 12),
+ COLLADAFILE = (1 << 13),
+ OPERATORFILE = (1 << 14), /* from filter_glob operator property */
+} eFileSel_File_Types;
+
+/* Selection Flags in filesel: struct direntry, unsigned char selflag */
+typedef enum eDirEntry_SelectFlag {
+/* ACTIVE_FILE = (1 << 1), */ /* UNUSED */
+ HILITED_FILE = (1 << 2),
+ SELECTED_FILE = (1 << 3),
+ EDITING_FILE = (1 << 4),
+} eDirEntry_SelectFlag;
+
+/* Image/UV Editor ======================================== */
+
+/* Image/UV Editor */
typedef struct SpaceImage {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
@@ -281,28 +691,75 @@ typedef struct SpaceImage {
char around;
} SpaceImage;
-typedef struct SpaceNla {
- struct SpaceLink *next, *prev;
- ListBase regionbase; /* storage of regions for inactive spaces */
- int spacetype;
- float blockscale DNA_DEPRECATED;
- short blockhandler[8] DNA_DEPRECATED;
+/* SpaceImage->dt_uv */
+typedef enum eSpaceImage_UVDT {
+ SI_UVDT_OUTLINE = 0,
+ SI_UVDT_DASH,
+ SI_UVDT_BLACK,
+ SI_UVDT_WHITE,
+} eSpaceImage_UVDT;
- short autosnap; /* this uses the same settings as autosnap for Action Editor */
- short flag;
- int pad;
+/* SpaceImage->dt_uvstretch */
+typedef enum eSpaceImage_UVDT_Stretch {
+ SI_UVDT_STRETCH_ANGLE = 0,
+ SI_UVDT_STRETCH_AREA,
+} eSpaceImage_UVDT_Stretch;
+
+/* SpaceImage->sticky
+ * Note DISABLE should be 0, however would also need to re-arrange icon order,
+ * also, sticky loc is the default mode so this means we don't need to 'do_versons' */
+typedef enum eSpaceImage_Sticky {
+ SI_STICKY_LOC = 0,
+ SI_STICKY_DISABLE = 1,
+ SI_STICKY_VERTEX = 2,
+} eSpaceImage_Sticky;
+
+/* SpaceImage->flag */
+typedef enum eSpaceImage_Flag {
+ SI_BE_SQUARE = (1 << 0),
+ SI_EDITTILE = (1 << 1),
+ SI_CLIP_UV = (1 << 2),
+ SI_DRAWTOOL = (1 << 3),
+ SI_NO_DRAWFACES = (1 << 4),
+ SI_DRAWSHADOW = (1 << 5),
+/* SI_SELACTFACE = (1 << 6), */ /* deprecated */
+ SI_DEPRECATED2 = (1 << 7),
+ SI_DEPRECATED3 = (1 << 8), /* stick UV selection to mesh vertex (UVs wont always be touching) */
+ SI_COORDFLOATS = (1 << 9),
+ SI_PIXELSNAP = (1 << 10),
+ SI_LIVE_UNWRAP = (1 << 11),
+ SI_USE_ALPHA = (1 << 12),
+ SI_SHOW_ALPHA = (1 << 13),
+ SI_SHOW_ZBUF = (1 << 14),
- struct bDopeSheet *ads;
- View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
-} SpaceNla;
+ /* next two for render window display */
+ SI_PREVSPACE = (1 << 15),
+ SI_FULLWINDOW = (1 << 16),
+
+ SI_DEPRECATED4 = (1 << 17),
+ SI_DEPRECATED5 = (1 << 18),
+
+ /* this means that the image is drawn until it reaches the view edge,
+ * in the image view, its unrelated to the 'tile' mode for texface
+ */
+ SI_DRAW_TILE = (1 << 19),
+ SI_SMOOTH_UV = (1 << 20),
+ SI_DRAW_STRETCH = (1 << 21),
+ SI_DISPGP = (1 << 22), /* DEPRECATED */
+ SI_DRAW_OTHER = (1 << 23),
+
+ SI_COLOR_CORRECTION = (1 << 24),
+} eSpaceImage_Flag;
+/* Text Editor ============================================ */
+
+/* Text Editor */
typedef struct SpaceText {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale DNA_DEPRECATED;
-
short blockhandler[8] DNA_DEPRECATED;
struct Text *text;
@@ -335,6 +792,26 @@ typedef struct SpaceText {
void *drawcache; /* cache for faster drawing */
} SpaceText;
+
+/* SpaceText flags (moved from DNA_text_types.h) */
+typedef enum eSpaceText_Flags {
+ /* scrollable */
+ ST_SCROLL_SELECT = (1 << 0),
+ /* clear namespace after script execution (BPY_main.c) */
+ ST_CLEAR_NAMESPACE = (1 << 4),
+
+ ST_FIND_WRAP = (1 << 5),
+ ST_FIND_ALL = (1 << 6),
+ ST_SHOW_MARGIN = (1 << 7),
+ ST_MATCH_CASE = (1 << 8),
+} eSpaceText_Flags;
+
+/* stext->findstr/replacestr */
+#define ST_MAX_FIND_STR 256
+
+/* Script View (Obsolete) ================================== */
+
+/* Script Runtime Data - Obsolete (pre 2.5) */
typedef struct Script {
ID id;
@@ -351,6 +828,7 @@ typedef struct Script {
} Script;
#define SCRIPT_SET_NULL(_script) _script->py_draw = _script->py_event = _script->py_button = _script->py_browsercallback = _script->py_globaldict = NULL; _script->flags = 0
+/* Script View - Obsolete (pre 2.5) */
typedef struct SpaceScript {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
@@ -364,33 +842,14 @@ typedef struct SpaceScript {
void *but_refs;
} SpaceScript;
-# /* Only store the data array in the cache to avoid constant reallocation. */
-# /* No need to store when saved. */
-typedef struct SpaceTimeCache {
- struct SpaceTimeCache *next, *prev;
- float *array;
-} SpaceTimeCache;
-
-typedef struct SpaceTime {
- SpaceLink *next, *prev;
- ListBase regionbase; /* storage of regions for inactive spaces */
- int spacetype;
- float blockscale DNA_DEPRECATED;
-
- View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
-
- ListBase caches;
-
- int cache_display;
- int flag;
-} SpaceTime;
+/* Nodes Editor =========================================== */
+/* Node Editor */
typedef struct SpaceNode {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale DNA_DEPRECATED;
-
short blockhandler[8] DNA_DEPRECATED;
View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */
@@ -415,21 +874,30 @@ typedef struct SpaceNode {
} SpaceNode;
/* snode->flag */
-#define SNODE_BACKDRAW 2
-#define SNODE_DISPGP 4
-#define SNODE_USE_ALPHA 8
-#define SNODE_SHOW_ALPHA 16
-#define SNODE_AUTO_RENDER 32
+typedef enum eSpaceNode_Flag {
+ SNODE_BACKDRAW = (1 << 1),
+ SNODE_DISPGP = (1 << 2), /* XXX: Grease Pencil - deprecated? */
+ SNODE_USE_ALPHA = (1 << 3),
+ SNODE_SHOW_ALPHA = (1 << 4),
+ SNODE_AUTO_RENDER = (1 << 5),
+} eSpaceNode_Flag;
/* snode->texfrom */
-#define SNODE_TEX_OBJECT 0
-#define SNODE_TEX_WORLD 1
-#define SNODE_TEX_BRUSH 2
+typedef enum eSpaceNode_TexFrom {
+ SNODE_TEX_OBJECT = 0,
+ SNODE_TEX_WORLD,
+ SNODE_TEX_BRUSH,
+} eSpaceNode_TexFrom;
/* snode->shaderfrom */
-#define SNODE_SHADER_OBJECT 0
-#define SNODE_SHADER_WORLD 1
+typedef enum eSpaceNode_ShaderFrom {
+ SNODE_SHADER_OBJECT = 0,
+ SNODE_SHADER_WORLD,
+} eSpaceNode_ShaderFrom;
+/* Game Logic Editor ===================================== */
+
+/* Logic Editor */
typedef struct SpaceLogic {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
@@ -444,6 +912,9 @@ typedef struct SpaceLogic {
struct bGPdata *gpd; /* grease-pencil data */
} SpaceLogic;
+/* Console ================================================ */
+
+/* Console content */
typedef struct ConsoleLine {
struct ConsoleLine *next, *prev;
@@ -457,19 +928,20 @@ typedef struct ConsoleLine {
} ConsoleLine;
/* ConsoleLine.type */
-enum {
- CONSOLE_LINE_OUTPUT=0,
+typedef enum eConsoleLine_Type {
+ CONSOLE_LINE_OUTPUT = 0,
CONSOLE_LINE_INPUT,
CONSOLE_LINE_INFO, /* autocomp feedback */
CONSOLE_LINE_ERROR
-};
+} eConsoleLine_Type;
+
+/* Console View */
typedef struct SpaceConsole {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale DNA_DEPRECATED; // XXX are these needed?
-
short blockhandler[8] DNA_DEPRECATED; // XXX are these needed?
/* space vars */
@@ -484,17 +956,23 @@ typedef struct SpaceConsole {
int sel_end;
} SpaceConsole;
+
+/* User Preferences ======================================= */
+
+/* User Preferences View */
typedef struct SpaceUserPref {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
-
+
int pad;
char filter[64]; /* search term for filtering in the UI */
-
} SpaceUserPref;
+/* Motion Tracking ======================================== */
+
+/* Clip Editor */
typedef struct SpaceClip {
SpaceLink *next, *prev;
ListBase regionbase; /* storage of regions for inactive spaces */
@@ -538,413 +1016,72 @@ typedef struct SpaceClip {
struct Mask *mask;
} SpaceClip;
-/* view3d Now in DNA_view3d_types.h */
-
-
-
-/* **************** SPACE DEFINES ********************* */
-
-/* button defines (deprecated) */
-/* warning: the values of these defines are used in sbuts->tabs[8] */
-/* sbuts->mainb new */
-#define CONTEXT_SCENE 0
-#define CONTEXT_OBJECT 1
-#define CONTEXT_TYPES 2
-#define CONTEXT_SHADING 3
-#define CONTEXT_EDITING 4
-#define CONTEXT_SCRIPT 5
-#define CONTEXT_LOGIC 6
-
-/* sbuts->mainb old (deprecated) */
-#define BUTS_VIEW 0
-#define BUTS_LAMP 1
-#define BUTS_MAT 2
-#define BUTS_TEX 3
-#define BUTS_ANIM 4
-#define BUTS_WORLD 5
-#define BUTS_RENDER 6
-#define BUTS_EDIT 7
-#define BUTS_GAME 8
-#define BUTS_FPAINT 9
-#define BUTS_RADIO 10
-#define BUTS_SCRIPT 11
-#define BUTS_SOUND 12
-#define BUTS_CONSTRAINT 13
-#define BUTS_EFFECTS 14
-
-/* buts->mainb new */
-#define BCONTEXT_RENDER 0
-#define BCONTEXT_SCENE 1
-#define BCONTEXT_WORLD 2
-#define BCONTEXT_OBJECT 3
-#define BCONTEXT_DATA 4
-#define BCONTEXT_MATERIAL 5
-#define BCONTEXT_TEXTURE 6
-#define BCONTEXT_PARTICLE 7
-#define BCONTEXT_PHYSICS 8
-#define BCONTEXT_BONE 9
-#define BCONTEXT_MODIFIER 10
-#define BCONTEXT_CONSTRAINT 12
-#define BCONTEXT_BONE_CONSTRAINT 13
-#define BCONTEXT_TOT 14
-
-/* sbuts->flag */
-#define SB_PRV_OSA 1
-#define SB_PIN_CONTEXT 2
-//#define SB_WORLD_TEX 4 //not used anymore
-//#define SB_BRUSH_TEX 8 //not used anymore
-#define SB_SHADING_CONTEXT 16
-
-/* sbuts->texture_context */
-#define SB_TEXC_MAT_OR_LAMP 0
-#define SB_TEXC_WORLD 1
-#define SB_TEXC_BRUSH 2
-#define SB_TEXC_PARTICLES 3
-
-/* sbuts->align */
-#define BUT_FREE 0
-#define BUT_HORIZONTAL 1
-#define BUT_VERTICAL 2
-#define BUT_AUTO 3
-
-/* sbuts->scaflag */
-#define BUTS_SENS_SEL 1
-#define BUTS_SENS_ACT 2
-#define BUTS_SENS_LINK 4
-#define BUTS_CONT_SEL 8
-#define BUTS_CONT_ACT 16
-#define BUTS_CONT_LINK 32
-#define BUTS_ACT_SEL 64
-#define BUTS_ACT_ACT 128
-#define BUTS_ACT_LINK 256
-#define BUTS_SENS_STATE 512
-#define BUTS_ACT_STATE 1024
-#define BUTS_CONT_INIT_STATE 2048
-
-/* FileSelectParams.display */
-enum FileDisplayTypeE {
- FILE_DEFAULTDISPLAY = 0,
- FILE_SHORTDISPLAY,
- FILE_LONGDISPLAY,
- FILE_IMGDISPLAY
-};
-
-/* FileSelectParams.sort */
-enum FileSortTypeE {
- FILE_SORT_NONE = 0,
- FILE_SORT_ALPHA = 1,
- FILE_SORT_EXTENSION,
- FILE_SORT_TIME,
- FILE_SORT_SIZE
-};
-
-/* these values need to be hardcoded in structs, dna does not recognize defines */
-/* also defined in BKE */
-#define FILE_MAXDIR 768
-#define FILE_MAXFILE 256
-#define FILE_MAX 1024
-
-#define FILE_MAX_LIBEXTRA (FILE_MAX + 32)
-
-/* filesel types */
-#define FILE_UNIX 8
-#define FILE_BLENDER 8 /* don't display relative paths */
-#define FILE_SPECIAL 9
-
-#define FILE_LOADLIB 1
-#define FILE_MAIN 2
-#define FILE_LOADFONT 3
-/* filesel op property -> action */
-#define FILE_OPENFILE 0
-#define FILE_SAVE 1
-
-/* sfile->params->flag and simasel->flag */
-#define FILE_SHOWSHORT (1<<0)
-#define FILE_RELPATH (1<<1) /* was FILE_STRINGCODE */
-#define FILE_LINK (1<<2)
-#define FILE_HIDE_DOT (1<<3)
-#define FILE_AUTOSELECT (1<<4)
-#define FILE_ACTIVELAY (1<<5)
-/* #define FILE_ATCURSOR (1<<6) */ /* deprecated */
-#define FILE_DIRSEL_ONLY (1<<7)
-#define FILE_FILTER (1<<8)
-#define FILE_BOOKMARKS (1<<9)
-#define FILE_GROUP_INSTANCE (1<<10)
-
-
-/* files in filesel list: file types */
-#define BLENDERFILE (1<<2)
-#define BLENDERFILE_BACKUP (1<<3)
-#define IMAGEFILE (1<<4)
-#define MOVIEFILE (1<<5)
-#define PYSCRIPTFILE (1<<6)
-#define FTFONTFILE (1<<7)
-#define SOUNDFILE (1<<8)
-#define TEXTFILE (1<<9)
-#define MOVIEFILE_ICON (1<<10) /* movie file that preview can't load */
-#define FOLDERFILE (1<<11) /* represents folders for filtering */
-#define BTXFILE (1<<12)
-#define COLLADAFILE (1<<13)
-#define OPERATORFILE (1<<14) /* from filter_glob operator property */
-
-
-/* Selection Flags in filesel: struct direntry, unsigned char selflag */
-/* #define ACTIVE_FILE (1<<1) */ /* UNUSED */
-#define HILITED_FILE (1<<2)
-#define SELECTED_FILE (1<<3)
-#define EDITING_FILE (1<<4)
-
-/* SpaceImage->dt_uv */
-#define SI_UVDT_OUTLINE 0
-#define SI_UVDT_DASH 1
-#define SI_UVDT_BLACK 2
-#define SI_UVDT_WHITE 3
-
-/* SpaceImage->dt_uvstretch */
-#define SI_UVDT_STRETCH_ANGLE 0
-#define SI_UVDT_STRETCH_AREA 1
-
-/* SpaceImage->sticky
- * Note DISABLE should be 0, however would also need to re-arrange icon order,
- * also, sticky loc is the default mode so this means we don't need to 'do_versons' */
-#define SI_STICKY_LOC 0
-#define SI_STICKY_DISABLE 1
-#define SI_STICKY_VERTEX 2
-
-/* SpaceImage->flag */
-#define SI_BE_SQUARE (1<<0)
-#define SI_EDITTILE (1<<1)
-#define SI_CLIP_UV (1<<2)
-#define SI_DRAWTOOL (1<<3)
-#define SI_NO_DRAWFACES (1<<4)
-#define SI_DRAWSHADOW (1<<5)
-/* #define SI_SELACTFACE (1<<6) */ /* deprecated */
-#define SI_DEPRECATED2 (1<<7)
-#define SI_DEPRECATED3 (1<<8) /* stick UV selection to mesh vertex (UVs wont always be touching) */
-#define SI_COORDFLOATS (1<<9)
-#define SI_PIXELSNAP (1<<10)
-#define SI_LIVE_UNWRAP (1<<11)
-#define SI_USE_ALPHA (1<<12)
-#define SI_SHOW_ALPHA (1<<13)
-#define SI_SHOW_ZBUF (1<<14)
- /* next two for render window dislay */
-#define SI_PREVSPACE (1<<15)
-#define SI_FULLWINDOW (1<<16)
-#define SI_DEPRECATED4 (1<<17)
-#define SI_DEPRECATED5 (1<<18)
- /* this means that the image is drawn until it reaches the view edge,
- * in the image view, its unrelated to the 'tile' mode for texface */
-#define SI_DRAW_TILE (1<<19)
-#define SI_SMOOTH_UV (1<<20)
-#define SI_DRAW_STRETCH (1<<21)
-#define SI_DISPGP (1<<22)
-#define SI_DRAW_OTHER (1<<23)
-
-#define SI_COLOR_CORRECTION (1<<24)
-
-/* SpaceIpo->flag (Graph Editor Settings) */
- /* OLD DEPRECEATED SETTING */
-#define SIPO_LOCK_VIEW (1<<0)
- /* don't merge keyframes on the same frame after a transform */
-#define SIPO_NOTRANSKEYCULL (1<<1)
- /* don't show any keyframe handles at all */
-#define SIPO_NOHANDLES (1<<2)
- /* don't show current frame number beside indicator line */
-#define SIPO_NODRAWCFRANUM (1<<3)
- /* show timing in seconds instead of frames */
-#define SIPO_DRAWTIME (1<<4)
- /* only show keyframes for selected F-Curves */
-#define SIPO_SELCUVERTSONLY (1<<5)
- /* draw names of F-Curves beside the respective curves */
- /* NOTE: currently not used */
-#define SIPO_DRAWNAMES (1<<6)
- /* show sliders in channels list */
-#define SIPO_SLIDERS (1<<7)
- /* don't show the horizontal component of the cursor */
-#define SIPO_NODRAWCURSOR (1<<8)
- /* only show handles of selected keyframes */
-#define SIPO_SELVHANDLESONLY (1<<9)
- /* temporary flag to force channel selections to be synced with main */
-#define SIPO_TEMP_NEEDCHANSYNC (1<<10)
- /* don't perform realtime updates */
-#define SIPO_NOREALTIMEUPDATES (1<<11)
- /* don't draw curves with AA ("beauty-draw") for performance */
-#define SIPO_BEAUTYDRAW_OFF (1<<12)
-
-/* SpaceIpo->mode (Graph Editor Mode) */
-enum {
- /* all animation curves (from all over Blender) */
- SIPO_MODE_ANIMATION = 0,
- /* drivers only */
- SIPO_MODE_DRIVERS,
-} eGraphEdit_Mode;
-
-/* SpaceText flags (moved from DNA_text_types.h) */
-
-#define ST_SCROLL_SELECT 0x0001 // scrollable
-#define ST_CLEAR_NAMESPACE 0x0010 // clear namespace after script
- // execution (see BPY_main.c)
-#define ST_FIND_WRAP 0x0020
-#define ST_FIND_ALL 0x0040
-#define ST_SHOW_MARGIN 0x0080
-#define ST_MATCH_CASE 0x0100
-
-
-/* stext->findstr/replacestr */
-#define ST_MAX_FIND_STR 256
-
-/* SpaceOops->flag */
-#define SO_TESTBLOCKS 1
-#define SO_NEWSELECTED 2
-#define SO_HIDE_RESTRICTCOLS 4
-#define SO_HIDE_KEYINGSETINFO 8
-
-/* SpaceOops->outlinevis */
-#define SO_ALL_SCENES 0
-#define SO_CUR_SCENE 1
-#define SO_VISIBLE 2
-#define SO_SELECTED 3
-#define SO_ACTIVE 4
-#define SO_SAME_TYPE 5
-#define SO_GROUPS 6
-#define SO_LIBRARIES 7
-#define SO_VERSE_SESSION 8
-#define SO_VERSE_MS 9
-#define SO_SEQUENCE 10
-#define SO_DATABLOCKS 11
-#define SO_USERDEF 12
-#define SO_KEYMAP 13
-
-/* SpaceOops->storeflag */
-#define SO_TREESTORE_CLEANUP 1
- /* if set, it allows redraws. gets set for some allqueue events */
-#define SO_TREESTORE_REDRAW 2
-
-/* outliner search flags (SpaceOops->search_flags) */
-#define SO_FIND_CASE_SENSITIVE (1<<0)
-#define SO_FIND_COMPLETE (1<<1)
-#define SO_SEARCH_RECURSIVE (1<<2)
-
-/* headerbuttons: 450-499 */
-
-#define B_IMASELHOME 451
-#define B_IMASELREMOVEBIP 452
-
-/* nla->flag */
-/* flags (1<<0), (1<<1), and (1<<3) are depreceated flags from old blenders */
- /* draw timing in seconds instead of frames */
-#define SNLA_DRAWTIME (1<<2)
- /* don't draw frame number beside frame indicator */
-#define SNLA_NODRAWCFRANUM (1<<4)
- /* don't draw influence curves on strips */
-#define SNLA_NOSTRIPCURVES (1<<5)
- /* don't perform realtime updates */
-#define SNLA_NOREALTIMEUPDATES (1<<6)
-
-/* time->flag */
- /* show timing in frames instead of in seconds */
-#define TIME_DRAWFRAMES 1
- /* show time indicator box beside the frame number */
-#define TIME_CFRA_NUM 2
- /* only keyframes from active/selected channels get shown */
-#define TIME_ONLYACTSEL 4
-
-/* time->redraws (now screen->redraws_flag) */
-#define TIME_REGION 1
-#define TIME_ALL_3D_WIN 2
-#define TIME_ALL_ANIM_WIN 4
-#define TIME_ALL_BUTS_WIN 8
-#define TIME_WITH_SEQ_AUDIO 16 // deprecated
-#define TIME_SEQ 32
-#define TIME_ALL_IMAGE_WIN 64
-#define TIME_CONTINUE_PHYSICS 128
-#define TIME_NODES 256
-#define TIME_CLIPS 512
-
-/* time->cache */
-#define TIME_CACHE_DISPLAY 1
-#define TIME_CACHE_SOFTBODY 2
-#define TIME_CACHE_PARTICLES 4
-#define TIME_CACHE_CLOTH 8
-#define TIME_CACHE_SMOKE 16
-#define TIME_CACHE_DYNAMICPAINT 32
-
-/* sseq->mainb */
-#define SEQ_DRAW_SEQUENCE 0
-#define SEQ_DRAW_IMG_IMBUF 1
-#define SEQ_DRAW_IMG_WAVEFORM 2
-#define SEQ_DRAW_IMG_VECTORSCOPE 3
-#define SEQ_DRAW_IMG_HISTOGRAM 4
-
-/* sseq->flag */
-#define SEQ_DRAWFRAMES 1
-#define SEQ_MARKER_TRANS 2
-#define SEQ_DRAW_COLOR_SEPARATED 4
-#define SEQ_DRAW_SAFE_MARGINS 8
-#define SEQ_DRAW_GPENCIL 16
-#define SEQ_NO_DRAW_CFRANUM 32
-
-/* sseq->view */
-#define SEQ_VIEW_SEQUENCE 1
-#define SEQ_VIEW_PREVIEW 2
-#define SEQ_VIEW_SEQUENCE_PREVIEW 3
-
-/* sseq->render_size */
-#define SEQ_PROXY_RENDER_SIZE_NONE -1
-#define SEQ_PROXY_RENDER_SIZE_SCENE 0
-#define SEQ_PROXY_RENDER_SIZE_25 25
-#define SEQ_PROXY_RENDER_SIZE_50 50
-#define SEQ_PROXY_RENDER_SIZE_75 75
-#define SEQ_PROXY_RENDER_SIZE_100 99
-#define SEQ_PROXY_RENDER_SIZE_FULL 100
-
/* SpaceClip->flag */
-#define SC_SHOW_MARKER_PATTERN (1<<0)
-#define SC_SHOW_MARKER_SEARCH (1<<1)
-#define SC_LOCK_SELECTION (1<<2)
-#define SC_SHOW_TINY_MARKER (1<<3)
-#define SC_SHOW_TRACK_PATH (1<<4)
-#define SC_SHOW_BUNDLES (1<<5)
-#define SC_MUTE_FOOTAGE (1<<6)
-#define SC_HIDE_DISABLED (1<<7)
-#define SC_SHOW_NAMES (1<<8)
-#define SC_SHOW_GRID (1<<9)
-#define SC_SHOW_STABLE (1<<10)
-#define SC_MANUAL_CALIBRATION (1<<11)
-/*#define SC_SHOW_GPENCIL (1<<12)*/ /* UNUSED */
-#define SC_SHOW_FILTERS (1<<13)
-#define SC_SHOW_GRAPH_FRAMES (1<<14)
-#define SC_SHOW_GRAPH_TRACKS (1<<15)
-/*#define SC_SHOW_PYRAMID_LEVELS (1<<16) */ /* UNUSED */
-#define SC_LOCK_TIMECURSOR (1<<17)
-#define SC_SHOW_SECONDS (1<<18)
+typedef enum eSpaceClip_Flag {
+ SC_SHOW_MARKER_PATTERN = (1 << 0),
+ SC_SHOW_MARKER_SEARCH = (1 << 1),
+ SC_LOCK_SELECTION = (1 << 2),
+ SC_SHOW_TINY_MARKER = (1 << 3),
+ SC_SHOW_TRACK_PATH = (1 << 4),
+ SC_SHOW_BUNDLES = (1 << 5),
+ SC_MUTE_FOOTAGE = (1 << 6),
+ SC_HIDE_DISABLED = (1 << 7),
+ SC_SHOW_NAMES = (1 << 8),
+ SC_SHOW_GRID = (1 << 9),
+ SC_SHOW_STABLE = (1 << 10),
+ SC_MANUAL_CALIBRATION = (1 << 11),
+/* SC_SHOW_GPENCIL = (1 << 12),*/ /* UNUSED */
+ SC_SHOW_FILTERS = (1 << 13),
+ SC_SHOW_GRAPH_FRAMES = (1 << 14),
+ SC_SHOW_GRAPH_TRACKS = (1 << 15),
+/* SC_SHOW_PYRAMID_LEVELS = (1 << 16), */ /* UNUSED */
+ SC_LOCK_TIMECURSOR = (1 << 17),
+ SC_SHOW_SECONDS = (1 << 18),
+} eSpaceClip_Flag;
/* SpaceClip->mode */
-#define SC_MODE_TRACKING 0
-#define SC_MODE_RECONSTRUCTION 1
-#define SC_MODE_DISTORTION 2
-#define SC_MODE_MASKEDITING 3
+typedef enum eSpaceClip_Mode {
+ SC_MODE_TRACKING = 0,
+ SC_MODE_RECONSTRUCTION,
+ SC_MODE_DISTORTION,
+ SC_MODE_MASKEDITING,
+} eSpaceClip_Mode;
/* SpaceClip->view */
-#define SC_VIEW_CLIP 0
-#define SC_VIEW_GRAPH 1
-#define SC_VIEW_DOPESHEET 2
+typedef enum eSpaceClip_View {
+ SC_VIEW_CLIP = 0,
+ SC_VIEW_GRAPH,
+ SC_VIEW_DOPESHEET,
+} eSpaceClip_View;
/* SpaceClip->dope_sort */
-#define SC_DOPE_SORT_NAME 0
-#define SC_DOPE_SORT_LONGEST 1
-#define SC_DOPE_SORT_TOTAL 2
+typedef enum eSpaceClip_Dopesheet_Sort {
+ SC_DOPE_SORT_NAME = 0,
+ SC_DOPE_SORT_LONGEST,
+ SC_DOPE_SORT_TOTAL,
+} eSpaceClip_Dopesheet_Sort;
/* SpaceClip->dope_flag */
-#define SC_DOPE_SORT_INVERSE 1
+typedef enum eSpaceClip_Dopesheet_Flag {
+ SC_DOPE_SORT_INVERSE = (1 << 0),
+} eSpaceClip_Dopesheet_Flag;
/* SPaceClip->gpencil_src */
-#define SC_GPENCIL_SRC_CLIP 0
-#define SC_GPENCIL_SRC_TRACK 1
+typedef enum eSpaceClip_GPencil_Source {
+ SC_GPENCIL_SRC_CLIP = 0,
+ SC_GPENCIL_SRC_TRACK = 1,
+} eSpaceClip_GPencil_Source;
+
+/* **************** SPACE DEFINES ********************* */
+
+/* headerbuttons: 450-499 */
+#define B_IMASELHOME 451
+#define B_IMASELREMOVEBIP 452
+
/* space types, moved from DNA_screen_types.h */
/* Do NOT change order, append on end. types are hardcoded needed */
-enum {
+typedef enum eSpace_Type {
SPACE_EMPTY,
SPACE_VIEW3D,
SPACE_IPO,
@@ -966,7 +1103,8 @@ enum {
SPACE_CONSOLE,
SPACE_USERPREF,
SPACE_CLIP,
+
SPACEICONMAX = SPACE_CLIP
-};
+} eSpace_Type;
#endif
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index 94c4d141a57..b0874eefa4a 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -261,6 +261,10 @@ typedef struct ThemeSpace {
char match[4]; /* outliner - filter match */
char selected_highlight[4]; /* outliner - selected item */
+
+ char skin_root[4]; /* Skin modifier root color */
+
+ int pad4;
} ThemeSpace;
diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c
index 80c80d02e06..231dd521f07 100644
--- a/source/blender/makesdna/intern/dna_genfile.c
+++ b/source/blender/makesdna/intern/dna_genfile.c
@@ -952,7 +952,7 @@ static void reconstruct_struct(SDNA *newsdna, SDNA *oldsdna,
elen = elementsize(newsdna, spc[0], spc[1]);
/* test: is type a struct? */
- if (spc[0] >= firststructtypenr && !ispointer(name)) {
+ if (spc[0] >= firststructtypenr && !ispointer(name)) {
/* where does the old struct data start (and is there an old one?) */
cpo = find_elem(oldsdna, type, name, spo, data, &sppo);
@@ -1020,7 +1020,7 @@ void DNA_struct_switch_endian(SDNA *oldsdna, int oldSDNAnr, char *data)
elen = elementsize(oldsdna, spc[0], spc[1]);
/* test: is type a struct? */
- if (spc[0] >= firststructtypenr && !ispointer(name)) {
+ if (spc[0] >= firststructtypenr && !ispointer(name)) {
/* where does the old data start (is there one?) */
cpo = find_elem(oldsdna, type, name, spo, data, NULL);
if (cpo) {
diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c
index aac1c819791..f202bcb132f 100644
--- a/source/blender/makesdna/intern/makesdna.c
+++ b/source/blender/makesdna/intern/makesdna.c
@@ -145,7 +145,7 @@ static int nr_structs = 0;
static char **names, *namedata; /* at address names[a] is string a */
static char **types, *typedata; /* at address types[a] is string a */
static short *typelens; /* at typelens[a] is de length of type a */
-static short *alphalens; /* contains sizes as they are calculated on the DEC Alpha (64 bits), infact any 64bit system */
+static short *alphalens; /* contains sizes as they are calculated on the DEC Alpha (64 bits), in fact any 64bit system */
static short **structs, *structdata; /* at sp= structs[a] is the first address of a struct definition
* sp[0] is type number
* sp[1] is amount of elements
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 522754ef49b..0a0efb66f7f 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -320,6 +320,8 @@ extern StructRNA RNA_MeshFloatProperty;
extern StructRNA RNA_MeshFloatPropertyLayer;
extern StructRNA RNA_MeshIntProperty;
extern StructRNA RNA_MeshIntPropertyLayer;
+extern StructRNA RNA_MeshSkinVertexLayer;
+extern StructRNA RNA_MeshSkinVertex;
extern StructRNA RNA_MeshSticky;
extern StructRNA RNA_MeshStringProperty;
extern StructRNA RNA_MeshStringPropertyLayer;
@@ -467,6 +469,7 @@ extern StructRNA RNA_ShapeKeyPoint;
extern StructRNA RNA_ShrinkwrapConstraint;
extern StructRNA RNA_ShrinkwrapModifier;
extern StructRNA RNA_SimpleDeformModifier;
+extern StructRNA RNA_SkinModifier;
extern StructRNA RNA_SmokeCollSettings;
extern StructRNA RNA_SmokeDomainSettings;
extern StructRNA RNA_SmokeFlowSettings;
diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h
index 1b8772ffbcd..d2eeaa72fed 100644
--- a/source/blender/makesrna/RNA_enum_types.h
+++ b/source/blender/makesrna/RNA_enum_types.h
@@ -55,11 +55,15 @@ extern EnumPropertyItem image_type_items[];
extern EnumPropertyItem image_color_mode_items[];
extern EnumPropertyItem image_depth_mode_items[];
+extern EnumPropertyItem color_sets_items[];
+
extern EnumPropertyItem beztriple_keyframe_type_items[];
extern EnumPropertyItem beztriple_handle_type_items[];
extern EnumPropertyItem beztriple_interpolation_mode_items[];
extern EnumPropertyItem keyframe_handle_type_items[];
+extern EnumPropertyItem keyblock_type_items[];
+
extern EnumPropertyItem keyingset_path_grouping_items[];
extern EnumPropertyItem keyframe_paste_offset_items[];
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c
index a9f4bfae371..9d5eadf73c0 100644
--- a/source/blender/makesrna/intern/makesrna.c
+++ b/source/blender/makesrna/intern/makesrna.c
@@ -420,7 +420,8 @@ static const char *rna_parameter_type_name(PropertyRNA *parm)
return type;
switch (parm->type) {
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pparm = (PointerPropertyRNA *)parm;
if (parm->flag & PROP_RNAPTR)
@@ -428,7 +429,8 @@ static const char *rna_parameter_type_name(PropertyRNA *parm)
else
return rna_find_dna_type((const char *)pparm->type);
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
return "ListBase";
}
default:
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 0a07887f196..7676f4a5866 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -701,7 +701,8 @@ FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier)
#endif
}
-const struct ListBase *RNA_struct_type_functions(StructRNA *srna){
+const ListBase *RNA_struct_type_functions(StructRNA *srna)
+{
return &srna->functions;
}
@@ -4792,7 +4793,8 @@ char *RNA_property_as_string(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
BLI_dynstr_append(dynstr, "[");
for (RNA_property_collection_begin(ptr, prop, &collect_iter); collect_iter.valid;
- RNA_property_collection_next(&collect_iter)) {
+ RNA_property_collection_next(&collect_iter))
+ {
PointerRNA itemptr = collect_iter.ptr;
if (first_time == 0)
@@ -4851,7 +4853,8 @@ PropertyRNA *RNA_function_find_parameter(PointerRNA *UNUSED(ptr), FunctionRNA *f
return BLI_findstring(&func->cont.properties, identifier, offsetof(PropertyRNA, identifier));
}
-const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func){
+const ListBase *RNA_function_defined_parameters(FunctionRNA *func)
+{
return &func->cont.properties;
}
diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c
index c264210fd91..b63109ed137 100644
--- a/source/blender/makesrna/intern/rna_action.c
+++ b/source/blender/makesrna/intern/rna_action.c
@@ -480,10 +480,8 @@ static void rna_def_action_group(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Expanded", "Action Group is expanded");
RNA_def_property_update(prop, NC_ANIMATION | ND_ANIMCHAN | NA_EDITED, NULL);
- prop = RNA_def_property(srna, "custom_color", PROP_INT, PROP_NONE);
- RNA_def_property_int_sdna(prop, NULL, "customCol");
- RNA_def_property_ui_text(prop, "Custom Color", "Index of custom color set");
- RNA_def_property_update(prop, NC_ANIMATION | ND_ANIMCHAN | NA_EDITED, NULL);
+ /* color set */
+ rna_def_actionbone_group_common(srna, NC_ANIMATION | ND_ANIMCHAN | NA_EDITED, NULL);
}
/* fcurve.keyframe_points */
diff --git a/source/blender/makesrna/intern/rna_controller.c b/source/blender/makesrna/intern/rna_controller.c
index 6936c5b4324..44c8a2b412b 100644
--- a/source/blender/makesrna/intern/rna_controller.c
+++ b/source/blender/makesrna/intern/rna_controller.c
@@ -51,7 +51,8 @@ EnumPropertyItem controller_type_items[] = {
#include "BKE_sca.h"
#include "DNA_actuator_types.h"
-static struct StructRNA *rna_Controller_refine(struct PointerRNA *ptr){
+static StructRNA *rna_Controller_refine(struct PointerRNA *ptr)
+{
bController *controller = (bController *)ptr->data;
switch (controller->type) {
diff --git a/source/blender/makesrna/intern/rna_dynamicpaint.c b/source/blender/makesrna/intern/rna_dynamicpaint.c
index a38c769c26a..4bfcabc935b 100644
--- a/source/blender/makesrna/intern/rna_dynamicpaint.c
+++ b/source/blender/makesrna/intern/rna_dynamicpaint.c
@@ -243,7 +243,8 @@ static EnumPropertyItem *rna_DynamicPaint_surface_type_itemf(bContext *C, Pointe
/* Displace */
if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX ||
- surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ) {
+ surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ)
+ {
tmp.value = MOD_DPAINT_SURFACE_T_DISPLACE;
tmp.identifier = "DISPLACE";
tmp.name = "Displace";
diff --git a/source/blender/makesrna/intern/rna_image_api.c b/source/blender/makesrna/intern/rna_image_api.c
index f191303a92c..cf19002f44e 100644
--- a/source/blender/makesrna/intern/rna_image_api.c
+++ b/source/blender/makesrna/intern/rna_image_api.c
@@ -178,6 +178,11 @@ static void rna_Image_update(Image *image, ReportList *reports)
IMB_rect_from_float(ibuf);
}
+static void rna_Image_scale(Image *image, int width, int height)
+{
+ BKE_image_scale(image, width, height);
+}
+
static int rna_Image_gl_load(Image *image, ReportList *reports, int filter, int mag)
{
ImBuf *ibuf;
@@ -219,6 +224,19 @@ static int rna_Image_gl_load(Image *image, ReportList *reports, int filter, int
return error;
}
+static int rna_Image_gl_touch(Image *image, ReportList *reports, int filter, int mag)
+{
+ unsigned int *bind = &image->bindcode;
+ int error = GL_NO_ERROR;
+
+ BKE_image_tag_time(image);
+
+ if (*bind == 0)
+ error = rna_Image_gl_load(image, reports, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR);
+
+ return error;
+}
+
static void rna_Image_gl_free(Image *image)
{
GPU_free_image(image);
@@ -262,6 +280,24 @@ void RNA_api_image(StructRNA *srna)
RNA_def_function_ui_description(func, "Update the display image from the floating point buffer");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ func = RNA_def_function(srna, "scale", "rna_Image_scale");
+ RNA_def_function_ui_description(func, "Scale the image in pixels");
+ parm = RNA_def_int(func, "width", 0, 1, 10000, "", "Width", 1, 10000);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm = RNA_def_int(func, "height", 0, 1, 10000, "", "Height", 1, 10000);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+
+ func = RNA_def_function(srna, "gl_touch", "rna_Image_gl_touch");
+ RNA_def_function_ui_description(func, "Delay the image from being cleaned from the cache due inactivity");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ RNA_def_int(func, "filter", GL_LINEAR_MIPMAP_NEAREST, -INT_MAX, INT_MAX, "Filter",
+ "The texture minifying function to use if the image wan't loaded", -INT_MAX, INT_MAX);
+ RNA_def_int(func, "mag", GL_LINEAR, -INT_MAX, INT_MAX, "Magnification",
+ "The texture magnification function to use if the image wan't loaded", -INT_MAX, INT_MAX);
+ /* return value */
+ parm = RNA_def_int(func, "error", 0, -INT_MAX, INT_MAX, "Error", "OpenGL error value", -INT_MAX, INT_MAX);
+ RNA_def_function_return(func, parm);
+
func = RNA_def_function(srna, "gl_load", "rna_Image_gl_load");
RNA_def_function_ui_description(func, "Load the image into OpenGL graphics memory");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h
index 9d7227577bf..e8e40d307fb 100644
--- a/source/blender/makesrna/intern/rna_internal.h
+++ b/source/blender/makesrna/intern/rna_internal.h
@@ -194,6 +194,9 @@ void rna_def_mtex_common(struct BlenderRNA *brna, struct StructRNA *srna, const
const char *structname_slots, const char *update);
void rna_def_render_layer_common(struct StructRNA *srna, int scene);
+void rna_def_actionbone_group_common(struct StructRNA *srna, int update_flag, const char *update_cb);
+void rna_ActionGroup_colorset_set(struct PointerRNA *ptr, int value);
+
void rna_ID_name_get(struct PointerRNA *ptr, char *value);
int rna_ID_name_length(struct PointerRNA *ptr);
void rna_ID_name_set(struct PointerRNA *ptr, const char *value);
diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c
index 5a56518e498..c2d730f5ed9 100644
--- a/source/blender/makesrna/intern/rna_key.c
+++ b/source/blender/makesrna/intern/rna_key.c
@@ -445,6 +445,13 @@ static char *rna_ShapeKeyPoint_path(PointerRNA *ptr)
#else
+EnumPropertyItem keyblock_type_items[] = {
+ {KEY_LINEAR, "KEY_LINEAR", 0, "Linear", ""},
+ {KEY_CARDINAL, "KEY_CARDINAL", 0, "Cardinal", ""},
+ {KEY_BSPLINE, "KEY_BSPLINE", 0, "BSpline", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
static void rna_def_keydata(BlenderRNA *brna)
{
StructRNA *srna;
@@ -515,13 +522,6 @@ static void rna_def_keyblock(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem prop_keyblock_type_items[] = {
- {KEY_LINEAR, "KEY_LINEAR", 0, "Linear", ""},
- {KEY_CARDINAL, "KEY_CARDINAL", 0, "Cardinal", ""},
- {KEY_BSPLINE, "KEY_BSPLINE", 0, "BSpline", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
srna = RNA_def_struct(brna, "ShapeKey", NULL);
RNA_def_struct_ui_text(srna, "Shape Key", "Shape key in a shape keys datablock");
RNA_def_struct_sdna(srna, "KeyBlock");
@@ -551,8 +551,8 @@ static void rna_def_keyblock(BlenderRNA *brna)
prop = RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "type");
- RNA_def_property_enum_items(prop, prop_keyblock_type_items);
- RNA_def_property_ui_text(prop, "Interpolation", "Interpolation type");
+ RNA_def_property_enum_items(prop, keyblock_type_items);
+ RNA_def_property_ui_text(prop, "Interpolation", "Interpolation type for absolute shape keys");
RNA_def_property_update(prop, 0, "rna_Key_update_data");
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c
index 7adee6fd95f..fdad91165c4 100644
--- a/source/blender/makesrna/intern/rna_lamp.c
+++ b/source/blender/makesrna/intern/rna_lamp.c
@@ -758,20 +758,6 @@ static void rna_def_spot_lamp(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem prop_shadbuffiltertype_items[] = {
- {LA_SHADBUF_BOX, "BOX", 0, "Box", "Apply the Box filter to shadow buffer samples"},
- {LA_SHADBUF_TENT, "TENT", 0, "Tent", "Apply the Tent Filter to shadow buffer samples"},
- {LA_SHADBUF_GAUSS, "GAUSS", 0, "Gauss", "Apply the Gauss filter to shadow buffer samples"},
- {0, NULL, 0, NULL, NULL}
- };
-
- static EnumPropertyItem prop_numbuffer_items[] = {
- {1, "BUFFERS_1", 0, "1", "Only one buffer rendered"},
- {4, "BUFFERS_4", 0, "4", "Render 4 buffers for better AA, this quadruples memory usage"},
- {9, "BUFFERS_9", 0, "9", "Render 9 buffers for better AA, this uses nine times more memory"},
- {0, NULL, 0, NULL, NULL}
- };
-
srna = RNA_def_struct(brna, "SpotLamp", "Lamp");
RNA_def_struct_sdna(srna, "Lamp");
RNA_def_struct_ui_text(srna, "Spot Lamp", "Directional cone lamp");
diff --git a/source/blender/makesrna/intern/rna_lattice.c b/source/blender/makesrna/intern/rna_lattice.c
index a50389f01c1..6e42b47afce 100644
--- a/source/blender/makesrna/intern/rna_lattice.c
+++ b/source/blender/makesrna/intern/rna_lattice.c
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "rna_internal.h"
@@ -248,13 +249,6 @@ static void rna_def_lattice(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem prop_keyblock_type_items[] = {
- {KEY_LINEAR, "KEY_LINEAR", 0, "Linear", ""},
- {KEY_CARDINAL, "KEY_CARDINAL", 0, "Cardinal", ""},
- {KEY_BSPLINE, "KEY_BSPLINE", 0, "BSpline", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
srna = RNA_def_struct(brna, "Lattice", "ID");
RNA_def_struct_ui_text(srna, "Lattice", "Lattice datablock defining a grid for deforming other objects");
RNA_def_struct_ui_icon(srna, ICON_LATTICE_DATA);
@@ -285,19 +279,19 @@ static void rna_def_lattice(BlenderRNA *brna)
prop = RNA_def_property(srna, "interpolation_type_u", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "typeu");
- RNA_def_property_enum_items(prop, prop_keyblock_type_items);
+ RNA_def_property_enum_items(prop, keyblock_type_items);
RNA_def_property_ui_text(prop, "Interpolation Type U", "");
RNA_def_property_update(prop, 0, "rna_Lattice_update_data");
prop = RNA_def_property(srna, "interpolation_type_v", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "typev");
- RNA_def_property_enum_items(prop, prop_keyblock_type_items);
+ RNA_def_property_enum_items(prop, keyblock_type_items);
RNA_def_property_ui_text(prop, "Interpolation Type V", "");
RNA_def_property_update(prop, 0, "rna_Lattice_update_data");
prop = RNA_def_property(srna, "interpolation_type_w", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "typew");
- RNA_def_property_enum_items(prop, prop_keyblock_type_items);
+ RNA_def_property_enum_items(prop, keyblock_type_items);
RNA_def_property_ui_text(prop, "Interpolation Type W", "");
RNA_def_property_update(prop, 0, "rna_Lattice_update_data");
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index b20620780dd..98b3c0ab9f4 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -200,7 +200,8 @@ void rna_Main_objects_remove(Main *bmain, ReportList *reports, struct Object *ob
}
}
-struct Material *rna_Main_materials_new(Main *UNUSED(bmain), const char *name){
+Material *rna_Main_materials_new(Main *UNUSED(bmain), const char *name)
+{
ID *id = (ID *)BKE_material_add(name);
id_us_min(id);
return (Material *)id;
@@ -216,7 +217,8 @@ void rna_Main_materials_remove(Main *bmain, ReportList *reports, struct Material
/* XXX python now has invalid pointer? */
}
-struct bNodeTree *rna_Main_nodetree_new(Main *UNUSED(bmain), const char *name, int type){
+bNodeTree *rna_Main_nodetree_new(Main *UNUSED(bmain), const char *name, int type)
+{
bNodeTree *tree = ntreeAddTree(name, type, NODE_GROUP);
id_us_min(&tree->id);
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index 01726ea2dda..7eb0bdf75df 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -76,6 +76,11 @@ static Mesh *rna_mesh(PointerRNA *ptr)
return me;
}
+static CustomData *rna_mesh_vdata_helper(Mesh *me)
+{
+ return (me->edit_btmesh) ? &me->edit_btmesh->bm->vdata : &me->vdata;
+}
+
static CustomData *rna_mesh_pdata_helper(Mesh *me)
{
return (me->edit_btmesh) ? &me->edit_btmesh->bm->pdata : &me->pdata;
@@ -91,6 +96,11 @@ static CustomData *rna_mesh_fdata_helper(Mesh *me)
return (me->edit_btmesh) ? NULL : &me->fdata;
}
+static CustomData *rna_mesh_vdata(PointerRNA *ptr)
+{
+ Mesh *me = rna_mesh(ptr);
+ return rna_mesh_vdata_helper(me);
+}
static CustomData *rna_mesh_pdata(PointerRNA *ptr)
{
Mesh *me = rna_mesh(ptr);
@@ -503,6 +513,7 @@ static int rna_CustomDataLayer_clone_get(PointerRNA *ptr, CustomData *data, int
static void rna_CustomDataLayer_active_set(PointerRNA *ptr, CustomData *data, int value, int type, int render)
{
+ Mesh *me = ptr->id.data;
int n = (((CustomDataLayer *)ptr->data) - data->layers) - CustomData_get_layer_index(data, type);
if (value == 0)
@@ -517,6 +528,8 @@ static void rna_CustomDataLayer_active_set(PointerRNA *ptr, CustomData *data, in
if (render) CustomData_set_layer_render(ldata, CD_MLOOPUV, n);
else CustomData_set_layer_active(ldata, CD_MLOOPUV, n);
}
+
+ mesh_update_customdata_pointers(me, TRUE);
}
static void rna_CustomDataLayer_clone_set(PointerRNA *ptr, CustomData *data, int value, int type, int render)
@@ -853,6 +866,42 @@ static int rna_Mesh_polygon_string_layers_length(PointerRNA *ptr)
return CustomData_number_of_layers(rna_mesh_pdata(ptr), CD_PROP_STR);
}
+/* Skin vertices */
+DEFINE_CUSTOMDATA_LAYER_COLLECTION(skin_vertice, vdata, CD_MVERT_SKIN);
+
+static char *rna_MeshSkinVertexLayer_path(PointerRNA *ptr)
+{
+ return BLI_sprintfN("skin_vertices[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
+}
+
+static char *rna_VertCustomData_data_path(PointerRNA *ptr, char *collection, int type);
+static char *rna_MeshSkinVertex_path(PointerRNA *ptr)
+{
+ return rna_VertCustomData_data_path(ptr, "skin_vertices", CD_MVERT_SKIN);
+}
+
+static void rna_MeshSkinVertexLayer_data_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
+{
+ Mesh *me = rna_mesh(ptr);
+ CustomDataLayer *layer = (CustomDataLayer *)ptr->data;
+ rna_iterator_array_begin(iter, layer->data, sizeof(MVertSkin), me->totvert, 0, NULL);
+}
+
+static int rna_MeshSkinVertexLayer_data_length(PointerRNA *ptr)
+{
+ Mesh *me = rna_mesh(ptr);
+ return me->totvert;
+}
+
+static void rna_MeshSkinVertexLayer_name_set(PointerRNA *ptr, const char *value)
+{
+ CustomDataLayer *cdl = (CustomDataLayer *)ptr->data;
+ BLI_strncpy_utf8(cdl->name, value, sizeof(cdl->name));
+ CustomData_set_layer_unique_name(rna_mesh_vdata(ptr), cdl - rna_mesh_vdata(ptr)->layers);
+}
+
+/* End skin vertices */
+
static void rna_TexturePoly_image_set(PointerRNA *ptr, PointerRNA value)
{
MTexPoly *tf = (MTexPoly *)ptr->data;
@@ -1053,6 +1102,24 @@ static char *rna_MeshTexturePolyLayer_path(PointerRNA *ptr)
return BLI_sprintfN("uv_textures[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
}
+static char *rna_VertCustomData_data_path(PointerRNA *ptr, char *collection, int type)
+{
+ CustomDataLayer *cdl;
+ Mesh *me = rna_mesh(ptr);
+ CustomData *vdata = rna_mesh_vdata(ptr);
+ int a, b, totvert = (me->edit_btmesh) ? 0 : me->totvert;
+
+ for (cdl = vdata->layers, a = 0; a < vdata->totlayer; cdl++, a++) {
+ if (cdl->type == type) {
+ b = ((char *)ptr->data - ((char *)cdl->data)) / CustomData_sizeof(type);
+ if (b >= 0 && b < totvert)
+ return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, cdl->name, b);
+ }
+ }
+
+ return NULL;
+}
+
static char *rna_PolyCustomData_data_path(PointerRNA *ptr, char *collection, int type)
{
CustomDataLayer *cdl;
@@ -2496,6 +2563,54 @@ static void rna_def_uv_textures(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
}
+static void rna_def_skin_vertices(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "MeshSkinVertexLayer", NULL);
+ RNA_def_struct_ui_text(srna, "Mesh Skin Vertex Layer", "Per-vertex skin data for use with the Skin modifier");
+ RNA_def_struct_sdna(srna, "CustomDataLayer");
+ RNA_def_struct_path_func(srna, "rna_MeshSkinVertexLayer_path");
+
+ prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
+ RNA_def_struct_name_property(srna, prop);
+ RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshSkinVertexLayer_name_set");
+ RNA_def_property_ui_text(prop, "Name", "Name of skin layer");
+ RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
+
+ prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_struct_type(prop, "MeshSkinVertex");
+ RNA_def_property_ui_text(prop, "Data", "");
+ RNA_def_property_collection_funcs(prop, "rna_MeshSkinVertexLayer_data_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get",
+ "rna_MeshSkinVertexLayer_data_length", NULL, NULL, NULL);
+
+ /* SkinVertex struct */
+ srna = RNA_def_struct(brna, "MeshSkinVertex", NULL);
+ RNA_def_struct_sdna(srna, "MVertSkin");
+ RNA_def_struct_ui_text(srna, "Skin Vertex", "Per-vertex skin data for use with the Skin modifier");
+ RNA_def_struct_path_func(srna, "rna_MeshSkinVertex_path");
+
+ prop = RNA_def_property(srna, "radius", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_array(prop, 2);
+ RNA_def_property_ui_range(prop, 0.001, 100, 1, 3);
+ RNA_def_property_ui_text(prop, "Radius", "Radius of the skin");
+ RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
+
+ /* Flags */
+
+ prop = RNA_def_property(srna, "use_root", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MVERT_SKIN_ROOT);
+ RNA_def_property_ui_text(prop, "Root", "Vertex is a root for rotation calculations and armature generation");
+ RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
+
+ prop = RNA_def_property(srna, "use_loose", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MVERT_SKIN_LOOSE);
+ RNA_def_property_ui_text(prop, "Loose", "If vertex has multiple adjacent edges, it is hulled to them directly");
+ RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
+}
+
static void rna_def_mesh(BlenderRNA *brna)
{
StructRNA *srna;
@@ -2668,6 +2783,16 @@ static void rna_def_mesh(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "String Property Layers", "");
rna_def_polygon_string_layers(brna, prop);
+ /* Skin vertices */
+ prop = RNA_def_property(srna, "skin_vertices", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_collection_sdna(prop, NULL, "vdata.layers", "vdata.totlayer");
+ RNA_def_property_collection_funcs(prop, "rna_Mesh_skin_vertices_begin", NULL, NULL, NULL,
+ "rna_Mesh_skin_vertices_length", NULL, NULL, NULL);
+ RNA_def_property_struct_type(prop, "MeshSkinVertexLayer");
+ RNA_def_property_ui_text(prop, "Skin Vertices", "All skin vertices");
+ rna_def_skin_vertices(brna, prop);
+ /* End skin vertices */
+
prop = RNA_def_property(srna, "use_auto_smooth", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", ME_AUTOSMOOTH);
RNA_def_property_ui_text(prop, "Auto Smooth",
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 07ea69fc260..659c04015df 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -75,6 +75,7 @@ EnumPropertyItem modifier_type_items[] = {
{eModifierType_Multires, "MULTIRES", ICON_MOD_MULTIRES, "Multiresolution", ""},
{eModifierType_Remesh, "REMESH", ICON_MOD_REMESH, "Remesh", ""},
{eModifierType_Screw, "SCREW", ICON_MOD_SCREW, "Screw", ""},
+ {eModifierType_Skin, "SKIN", ICON_MOD_SKIN, "Skin", ""},
{eModifierType_Solidify, "SOLIDIFY", ICON_MOD_SOLIDIFY, "Solidify", ""},
{eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""},
{0, "", 0, N_("Deform"), ""},
@@ -207,6 +208,8 @@ static StructRNA *rna_Modifier_refine(struct PointerRNA *ptr)
return &RNA_DynamicPaintModifier;
case eModifierType_Remesh:
return &RNA_RemeshModifier;
+ case eModifierType_Skin:
+ return &RNA_SkinModifier;
default:
return &RNA_Modifier;
}
@@ -2627,6 +2630,11 @@ static void rna_def_modifier_screw(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Object Screw", "Use the distance between the objects to make a screw");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+ prop = RNA_def_property(srna, "use_smooth_shade", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_SMOOTH_SHADING);
+ RNA_def_property_ui_text(prop, "Smooth Shading", "Output faces with smooth shading rather than flat shaded");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
#if 0
prop= RNA_def_property(srna, "use_angle_object", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_OBJECT_ANGLE);
@@ -3000,6 +3008,11 @@ static void rna_def_modifier_remesh(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_REMESH_FLOOD_FILL);
RNA_def_property_ui_text(prop, "Remove Disconnected Pieces", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_smooth_shade", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_REMESH_SMOOTH_SHADING);
+ RNA_def_property_ui_text(prop, "Smooth Shading", "Output faces with smooth shading rather than flat shaded");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
static void rna_def_modifier_ocean(BlenderRNA *brna)
@@ -3186,6 +3199,42 @@ static void rna_def_modifier_ocean(BlenderRNA *brna)
/* XXX how to update? */
}
+static void rna_def_modifier_skin(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna= RNA_def_struct(brna, "SkinModifier", "Modifier");
+ RNA_def_struct_ui_text(srna, "Skin Modifier", "Generate Skin");
+ RNA_def_struct_sdna(srna, "SkinModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_SKIN);
+
+ prop = RNA_def_property(srna, "branch_smoothing", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_ui_text(prop, "Branch Smoothing", "Smooth complex geometry around branches");
+ RNA_def_property_ui_range(prop, 0, 1, 1, 0);
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_smooth_shade", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SKIN_SMOOTH_SHADING);
+ RNA_def_property_ui_text(prop, "Smooth Shading", "Output faces with smooth shading rather than flat shaded");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_x_symmetry", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "symmetry_axes", MOD_SKIN_SYMM_X);
+ RNA_def_property_ui_text(prop, "X", "Avoid making unsymmetric quads across the X axis");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_y_symmetry", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "symmetry_axes", MOD_SKIN_SYMM_Y);
+ RNA_def_property_ui_text(prop, "Y", "Avoid making unsymmetric quads across the Y axis");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_z_symmetry", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "symmetry_axes", MOD_SKIN_SYMM_Z);
+ RNA_def_property_ui_text(prop, "Z", "Avoid making unsymmetric quads across the Z axis");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+}
+
void RNA_def_modifier(BlenderRNA *brna)
{
StructRNA *srna;
@@ -3291,6 +3340,7 @@ void RNA_def_modifier(BlenderRNA *brna)
rna_def_modifier_dynamic_paint(brna);
rna_def_modifier_ocean(brna);
rna_def_modifier_remesh(brna);
+ rna_def_modifier_skin(brna);
}
#endif
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index a2aba31787a..b76118617cf 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -64,6 +64,11 @@ EnumPropertyItem nodetree_type_items[] = {
{0, NULL, 0, NULL, NULL}
};
+EnumPropertyItem node_quality_items[] = {
+ {NTREE_QUALITY_HIGH, "HIGH", 0, "High", "High quality"},
+ {NTREE_QUALITY_MEDIUM, "MEDIUM", 0, "Medium", "Medium quality"},
+ {NTREE_QUALITY_LOW, "LOW", 0, "Low", "Low quality"},
+ {0, NULL, 0, NULL, NULL}};
EnumPropertyItem node_socket_type_items[] = {
{SOCK_FLOAT, "VALUE", 0, "Value", ""},
@@ -200,6 +205,8 @@ static StructRNA *rna_Node_refine(struct PointerRNA *ptr)
return &RNA_NodeForLoop;
case NODE_WHILELOOP:
return &RNA_NodeWhileLoop;
+ case NODE_FRAME:
+ return &RNA_NodeFrame;
default:
return &RNA_Node;
@@ -487,6 +494,18 @@ static void rna_NodeSocketVector_range(PointerRNA *ptr, float *min, float *max,
*softmax = val->max;
}
+static void rna_Node_image_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+ bNode *node = (bNode*)ptr->data;
+ Image *ima = (Image *)node->id;
+ ImageUser *iuser = node->storage;
+
+ BKE_image_multilayer_index(ima->rr, iuser);
+ BKE_image_signal(ima, iuser, IMA_SIGNAL_SRC_CHANGE);
+
+ rna_Node_update(bmain, scene, ptr);
+}
+
static EnumPropertyItem *renderresult_layers_add_enum(RenderLayer *rl)
{
EnumPropertyItem *item = NULL;
@@ -495,7 +514,11 @@ static EnumPropertyItem *renderresult_layers_add_enum(RenderLayer *rl)
while (rl) {
tmp.identifier = rl->name;
- tmp.name = rl->name;
+ /* little trick: using space char instead empty string makes the item selectable in the dropdown */
+ if (rl->name[0] == '\0')
+ tmp.name = " ";
+ else
+ tmp.name = rl->name;
tmp.value = i++;
RNA_enum_item_add(&item, &totitem, &tmp);
rl = rl->next;
@@ -506,6 +529,24 @@ static EnumPropertyItem *renderresult_layers_add_enum(RenderLayer *rl)
return item;
}
+static EnumPropertyItem *rna_Node_image_layer_itemf(bContext *UNUSED(C), PointerRNA *ptr,
+ PropertyRNA *UNUSED(prop), int *free)
+{
+ bNode *node = (bNode*)ptr->data;
+ Image *ima = (Image *)node->id;
+ EnumPropertyItem *item = NULL;
+ RenderLayer *rl;
+
+ if (!ima || !(ima->rr)) return NULL;
+
+ rl = ima->rr->layers.first;
+ item = renderresult_layers_add_enum(rl);
+
+ *free = 1;
+
+ return item;
+}
+
static EnumPropertyItem *rna_Node_scene_layer_itemf(bContext *UNUSED(C), PointerRNA *ptr,
PropertyRNA *UNUSED(prop), int *free)
{
@@ -892,6 +933,10 @@ static void rna_NodeOutputFileSlotLayer_name_set(PointerRNA *ptr, const char *va
#else
+static EnumPropertyItem prop_image_layer_items[] = {
+{ 0, "PLACEHOLDER", 0, "Placeholder", ""},
+{0, NULL, 0, NULL, NULL}};
+
static EnumPropertyItem prop_scene_layer_items[] = {
{ 0, "PLACEHOLDER", 0, "Placeholder", ""},
{0, NULL, 0, NULL, NULL}};
@@ -1080,8 +1125,20 @@ static void def_whileloop(StructRNA *srna)
static void def_frame(StructRNA *srna)
{
-/* PropertyRNA *prop; */
+ PropertyRNA *prop;
+ RNA_def_struct_sdna_from(srna, "NodeFrame", "storage");
+
+ prop = RNA_def_property(srna, "shrink", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_FRAME_SHRINK);
+ RNA_def_property_ui_text(prop, "Shrink", "Shrink the frame to minimal bounding box");
+ RNA_def_property_update(prop, NC_NODE|ND_DISPLAY, NULL);
+
+ prop = RNA_def_property(srna, "label_size", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "label_size");
+ RNA_def_property_range(prop, 8, 64);
+ RNA_def_property_ui_text(prop, "Label Font Size", "Font size to use for displaying the label");
+ RNA_def_property_update(prop, NC_NODE|ND_DISPLAY, NULL);
}
static void def_math(StructRNA *srna)
@@ -1811,6 +1868,13 @@ static void def_cmp_image(StructRNA *srna)
/* copied from the rna_image.c */
RNA_def_property_ui_text(prop, "Auto-Refresh", "Always refresh image on frame changes");
RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "layer", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "layer");
+ RNA_def_property_enum_items(prop, prop_image_layer_items);
+ RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_Node_image_layer_itemf");
+ RNA_def_property_ui_text(prop, "Layer", "");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_image_layer_update");
}
static void def_cmp_render_layers(StructRNA *srna)
@@ -1912,12 +1976,29 @@ static void def_cmp_output_file(StructRNA *srna)
static void def_cmp_dilate_erode(StructRNA *srna)
{
PropertyRNA *prop;
+
+ static EnumPropertyItem type_items[] = {
+ {CMP_NODE_DILATEERODE_STEP, "STEP", 0, "Step", ""},
+ {CMP_NODE_DILATEERODE_DISTANCE, "DISTANCE", 0, "Distance", ""},
+ {0, NULL, 0, NULL, NULL}};
+
+ prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, type_items);
+ RNA_def_property_ui_text(prop, "Distance", "Distance to grow/shrink (number of iterations)");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
prop = RNA_def_property(srna, "distance", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "custom2");
RNA_def_property_range(prop, -100, 100);
RNA_def_property_ui_text(prop, "Distance", "Distance to grow/shrink (number of iterations)");
RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "edge", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "custom3");
+ RNA_def_property_range(prop, -100, 100);
+ RNA_def_property_ui_text(prop, "Edge", "Edge to inset");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
}
static void def_cmp_scale(StructRNA *srna)
@@ -2360,7 +2441,7 @@ static void def_cmp_defocus(StructRNA *srna)
prop = RNA_def_property(srna, "blur_max", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "maxblur");
RNA_def_property_range(prop, 0.0f, 10000.0f);
- RNA_def_property_ui_text(prop, "Max Blur", "Blur limit, maximum CoC radius, 0=no limit");
+ RNA_def_property_ui_text(prop, "Max Blur", "Blur limit, maximum CoC radius");
RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE);
@@ -2943,6 +3024,373 @@ static void dev_cmd_transform(StructRNA *srna)
RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
}
+/* -- Compositor Nodes ------------------------------------------------------ */
+
+EnumPropertyItem node_masktype_items[] = {
+{0, "ADD", 0, "Add", ""},
+{1, "SUBTRACT", 0, "Subtract", ""},
+{2, "MULTIPLY", 0, "Multiply", ""},
+{3, "NOT", 0, "Not", ""},
+{0, NULL, 0, NULL, NULL}};
+
+static void def_cmp_boxmask(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ prop = RNA_def_property(srna, "mask_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, node_masktype_items);
+ RNA_def_property_ui_text(prop, "Mask type", "");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ RNA_def_struct_sdna_from(srna, "NodeBoxMask", "storage");
+
+ prop = RNA_def_property(srna, "x", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "x");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, -1.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "X", "X position of the middle of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "y", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "y");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, -1.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "Y", "Y position of the middle of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "width", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "width");
+ RNA_def_property_float_default(prop, 0.3f);
+ RNA_def_property_range(prop, 0.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "Width", "Width of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "height");
+ RNA_def_property_float_default(prop, 0.2f);
+ RNA_def_property_range(prop, 0.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "Height", "Height of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "rotation");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1000.0f, 1000.0f);
+ RNA_def_property_ui_text(prop, "Rotation", "Rotation angle of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
+static void def_cmp_ellipsemask(StructRNA *srna)
+{
+ PropertyRNA *prop;
+ prop = RNA_def_property(srna, "mask_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, node_masktype_items);
+ RNA_def_property_ui_text(prop, "Mask type", "");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ RNA_def_struct_sdna_from(srna, "NodeEllipseMask", "storage");
+
+ prop = RNA_def_property(srna, "x", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "x");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, -1.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "X", "X position of the middle of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "y", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "y");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, -1.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "Y", "Y position of the middle of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "width", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "width");
+ RNA_def_property_float_default(prop, 0.3f);
+ RNA_def_property_range(prop, 0.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "Width", "Width of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "height");
+ RNA_def_property_float_default(prop, 0.2f);
+ RNA_def_property_range(prop, 0.0f, 2.0f);
+ RNA_def_property_ui_text(prop, "Height", "Height of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "rotation");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1000.0f, 1000.0f);
+ RNA_def_property_ui_text(prop, "Rotation", "Rotationangle of the box");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
+static void def_cmp_bokehimage(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ RNA_def_struct_sdna_from(srna, "NodeBokehImage", "storage");
+
+ prop = RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "angle");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -720.0f, 720.0f);
+ RNA_def_property_ui_text(prop, "Angle", "Angle of the bokeh");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "flaps", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "flaps");
+ RNA_def_property_int_default(prop, 5);
+ RNA_def_property_range(prop, 3, 24);
+ RNA_def_property_ui_text(prop, "Flaps", "Number of flaps");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "rounding", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "rounding");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Rounding", "Level of rounding of the bokeh");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "catadioptric", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "catadioptric");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Catadioptric", "Level of catadioptric of the bokeh");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "shift", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "lensshift");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Lens shift", "Shift of the lens components");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+}
+
+static void def_cmp_switch(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ prop = RNA_def_property(srna, "check", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", 0);
+ RNA_def_property_ui_text(prop, "Switch", "Off: first socket, On: second socket");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
+static void def_cmp_colorcorrection(StructRNA *srna)
+{
+ PropertyRNA *prop;
+ prop = RNA_def_property(srna, "red", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", 1);
+ RNA_def_property_boolean_default(prop, TRUE);
+ RNA_def_property_ui_text(prop, "Red", "Red channel active");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "green", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", 2);
+ RNA_def_property_boolean_default(prop, TRUE);
+ RNA_def_property_ui_text(prop, "Green", "Green channel active");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "blue", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", 4);
+ RNA_def_property_boolean_default(prop, TRUE);
+ RNA_def_property_ui_text(prop, "Blue", "Blue channel active");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ RNA_def_struct_sdna_from(srna, "NodeColorCorrection", "storage");
+
+ prop = RNA_def_property(srna, "midtones_start", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "startmidtones");
+ RNA_def_property_float_default(prop, 0.2f);
+ RNA_def_property_range(prop, 0, 1);
+ RNA_def_property_ui_text(prop, "Midtones Start", "Start of midtones");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "midtones_end", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "endmidtones");
+ RNA_def_property_float_default(prop, 0.7f);
+ RNA_def_property_range(prop, 0, 1);
+ RNA_def_property_ui_text(prop, "Midtones End", "End of midtones");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "master_saturation", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "master.saturation");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Master Saturation", "Master saturation");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "master_contrast", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "master.contrast");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Master Contrast", "Master contrast");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "master_gamma", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "master.gamma");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Master Gamma", "Master gamma");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "master_gain", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "master.gain");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Master Gain", "Master gain");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "master_lift", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "master.lift");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1, 1);
+ RNA_def_property_ui_text(prop, "Master Lift", "Master lift");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+//
+ prop = RNA_def_property(srna, "shadows_saturation", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "shadows.saturation");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Shadows Saturation", "Shadows saturation");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "shadows_contrast", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "shadows.contrast");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Shadows Contrast", "Shadows contrast");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "shadows_gamma", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "shadows.gamma");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Shadows Gamma", "Shadows gamma");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "shadows_gain", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "shadows.gain");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Shadows Gain", "Shadows gain");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "shadows_lift", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "shadows.lift");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1, 1);
+ RNA_def_property_ui_text(prop, "Shadows Lift", "Shadows lift");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+//
+ prop = RNA_def_property(srna, "midtones_saturation", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "midtones.saturation");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Midtones Saturation", "Midtones saturation");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "midtones_contrast", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "midtones.contrast");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Midtones Contrast", "Midtones contrast");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "midtones_gamma", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "midtones.gamma");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Midtones Gamma", "Midtones gamma");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "midtones_gain", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "midtones.gain");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Midtones Gain", "Midtones gain");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "midtones_lift", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "midtones.lift");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1, 1);
+ RNA_def_property_ui_text(prop, "Midtones Lift", "Midtones lift");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+//
+ prop = RNA_def_property(srna, "highlights_saturation", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "highlights.saturation");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Highlights Saturation", "Highlights saturation");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "highlights_contrast", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "highlights.contrast");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Highlights Contrast", "Highlights contrast");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "highlights_gamma", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "highlights.gamma");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Highlights Gamma", "Highlights gamma");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "highlights_gain", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "highlights.gain");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0, 4);
+ RNA_def_property_ui_text(prop, "Highlights Gain", "Highlights gain");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "highlights_lift", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "highlights.lift");
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_range(prop, -1, 1);
+ RNA_def_property_ui_text(prop, "Highlights Lift", "Highlights lift");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
+static void def_cmp_viewer(StructRNA *srna)
+{
+ PropertyRNA *prop;
+ static EnumPropertyItem tileorder_items[] = {
+ {0, "CENTEROUT", 0, "Center", "Expand from center"},
+ {1, "RANDOM", 0, "Random", "Random tiles"},
+ {2, "BOTTOMUP", 0, "Bottom up", "Expand from bottom"},
+ {3, "RULE_OF_THIRDS", 0, "Rule of thirds", "Expand from 9 places"},
+ {0, NULL, 0, NULL, NULL}};
+
+ prop = RNA_def_property(srna, "tile_order", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, tileorder_items);
+ RNA_def_property_ui_text(prop, "Tile order", "Tile order");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "center_x", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "custom3");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "X", "");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "center_y", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "custom4");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Y", "");
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+}
+
/* -- Texture Nodes --------------------------------------------------------- */
@@ -3235,7 +3683,7 @@ static void rna_def_node_socket_subtype(BlenderRNA *brna, int type, int subtype,
PropertyRNA *prop = NULL;
PropertySubType propsubtype = PROP_NONE;
- #define SUBTYPE(socktype, stypename, id, idname) { PROP_##id, #socktype "_" #id, 0, #idname, ""},
+ #define SUBTYPE(socktype, stypename, id, idname) { PROP_##id, #socktype "_" #id, 0, #idname, ""},
static EnumPropertyItem subtype_items[] = {
NODE_DEFINE_SUBTYPES
{0, NULL, 0, NULL, NULL}
@@ -3365,6 +3813,18 @@ static void rna_def_node(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "Node");
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Parent", "Parent this node is attached to");
+
+ prop = RNA_def_property(srna, "use_custom_color", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_CUSTOM_COLOR);
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+ RNA_def_property_ui_text(prop, "Custom Color", "Use custom color for the node");
+ RNA_def_property_update(prop, NC_NODE|ND_DISPLAY, NULL);
+
+ prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Color", "Custom color of the node body");
+ RNA_def_property_update(prop, NC_NODE|ND_DISPLAY, NULL);
prop = RNA_def_property(srna, "show_texture", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_ACTIVE_TEXTURE);
@@ -3500,6 +3960,25 @@ static void rna_def_composite_nodetree(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "Node");
RNA_def_property_ui_text(prop, "Nodes", "");
+ prop= RNA_def_property(srna, "render_quality", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "render_quality");
+ RNA_def_property_enum_items(prop, node_quality_items);
+ RNA_def_property_ui_text(prop, "Render Quality", "Quality when rendering");
+
+ prop= RNA_def_property(srna, "edit_quality", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "edit_quality");
+ RNA_def_property_enum_items(prop, node_quality_items);
+ RNA_def_property_ui_text(prop, "Edit Quality", "Quality when editing");
+
+ prop= RNA_def_property(srna, "chunksize", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "chunksize");
+ RNA_def_property_ui_text(prop, "Chunksize", "Max size of a tile. Smaller values gives better distribution of multiple threads, but more overhead.");
+ RNA_def_property_range(prop, 32, 1024);
+
+ prop= RNA_def_property(srna, "use_opencl", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", NTREE_COM_OPENCL);
+ RNA_def_property_ui_text(prop, "OpenCL", "Enable GPU calculations");
+
rna_def_composite_nodetree_api(brna, prop);
}
diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h
index 6404796f111..d5b33f0d01b 100644
--- a/source/blender/makesrna/intern/rna_nodetree_types.h
+++ b/source/blender/makesrna/intern/rna_nodetree_types.h
@@ -77,8 +77,9 @@ DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VO
DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "" )
DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "" )
DefNode( ShaderNode, SH_NODE_NEW_GEOMETRY, 0, "NEW_GEOMETRY", NewGeometry, "Geometry", "" )
-DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", LightPath, "Light Path", "" )
-DefNode( ShaderNode, SH_NODE_LIGHT_FALLOFF, 0, "LIGHT_FALLOFF", LightFalloff, "Light Falloff", "" )
+DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", LightPath, "Light Path", "" )
+DefNode( ShaderNode, SH_NODE_LIGHT_FALLOFF, 0, "LIGHT_FALLOFF", LightFalloff, "Light Falloff", "" )
+DefNode( ShaderNode, SH_NODE_OBJECT_INFO, 0, "OBJECT_INFO", ObjectInfo, "Object Info", "" )
DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "" )
DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture","" )
DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "" )
@@ -91,7 +92,7 @@ DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TE
DefNode( ShaderNode, SH_NODE_TEX_CHECKER, def_sh_tex_checker, "TEX_CHECKER", TexChecker, "Checker Texture", "" )
DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate","")
-DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" )
+DefNode( CompositorNode, CMP_NODE_VIEWER, def_cmp_viewer, "VIEWER", Viewer, "Viewer", "" )
DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" )
DefNode( CompositorNode, CMP_NODE_VALUE, 0, "VALUE", Value, "Value", "" )
DefNode( CompositorNode, CMP_NODE_MIX_RGB, def_mix_rgb, "MIX_RGB", MixRGB, "Mix RGB", "" )
@@ -159,6 +160,11 @@ DefNode( CompositorNode, CMP_NODE_MOVIECLIP, def_cmp_movieclip, "MOVIE
DefNode( CompositorNode, CMP_NODE_TRANSFORM, dev_cmd_transform, "TRANSFORM", Transform, "Transform", "" )
DefNode( CompositorNode, CMP_NODE_STABILIZE2D, def_cmp_stabilize2d, "STABILIZE2D", Stabilize, "Stabilize 2D", "" )
DefNode( CompositorNode, CMP_NODE_MOVIEDISTORTION,def_cmp_moviedistortion,"MOVIEDISTORTION",MovieDistortion, "Movie Distortion", "" )
+DefNode( CompositorNode, CMP_NODE_MASK_BOX, def_cmp_boxmask, "BOXMASK" ,BoxMask, "Box mask", "" )
+DefNode( CompositorNode, CMP_NODE_MASK_ELLIPSE, def_cmp_ellipsemask, "ELLIPSEMASK" ,EllipseMask, "Ellipse mask", "" )
+DefNode( CompositorNode, CMP_NODE_BOKEHIMAGE, def_cmp_bokehimage, "BOKEHIMAGE" ,BokehImage, "Bokeh image", "" )
+DefNode( CompositorNode, CMP_NODE_SWITCH, def_cmp_switch, "SWITCH" ,Switch, "Switch", "" )
+DefNode( CompositorNode, CMP_NODE_COLORCORRECTION,def_cmp_colorcorrection,"COLORCORRECTION",ColorCorrection, "ColorCorrection", "" )
DefNode( CompositorNode, CMP_NODE_MASK, def_cmp_mask, "MASK", Mask, "Mask", "" )
DefNode( TextureNode, TEX_NODE_OUTPUT, def_tex_output, "OUTPUT", Output, "Output", "" )
diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c
index 4d7ecc9350f..a3e538da9b1 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -411,7 +411,8 @@ void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], fl
hit.index = -1;
if (BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_nor, 0.0f, &hit,
- treeData.raycast_callback, &treeData) != -1) {
+ treeData.raycast_callback, &treeData) != -1)
+ {
if (hit.dist <= dist) {
copy_v3_v3(r_location, hit.co);
copy_v3_v3(r_normal, hit.no);
diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c
index 6ec0932dba8..83d40b26cd0 100644
--- a/source/blender/makesrna/intern/rna_pose.c
+++ b/source/blender/makesrna/intern/rna_pose.c
@@ -60,6 +60,33 @@ EnumPropertyItem posebone_rotmode_items[] = {
{0, NULL, 0, NULL, NULL}
};
+/* Bone and Group Color Sets */
+EnumPropertyItem color_sets_items[] = {
+ {0, "DEFAULT", 0, "Default Colors", ""},
+ {1, "THEME01", 0, "01 - Theme Color Set", ""},
+ {2, "THEME02", 0, "02 - Theme Color Set", ""},
+ {3, "THEME03", 0, "03 - Theme Color Set", ""},
+ {4, "THEME04", 0, "04 - Theme Color Set", ""},
+ {5, "THEME05", 0, "05 - Theme Color Set", ""},
+ {6, "THEME06", 0, "06 - Theme Color Set", ""},
+ {7, "THEME07", 0, "07 - Theme Color Set", ""},
+ {8, "THEME08", 0, "08 - Theme Color Set", ""},
+ {9, "THEME09", 0, "09 - Theme Color Set", ""},
+ {10, "THEME10", 0, "10 - Theme Color Set", ""},
+ {11, "THEME11", 0, "11 - Theme Color Set", ""},
+ {12, "THEME12", 0, "12 - Theme Color Set", ""},
+ {13, "THEME13", 0, "13 - Theme Color Set", ""},
+ {14, "THEME14", 0, "14 - Theme Color Set", ""},
+ {15, "THEME15", 0, "15 - Theme Color Set", ""},
+ {16, "THEME16", 0, "16 - Theme Color Set", ""},
+ {17, "THEME17", 0, "17 - Theme Color Set", ""},
+ {18, "THEME18", 0, "18 - Theme Color Set", ""},
+ {19, "THEME19", 0, "19 - Theme Color Set", ""},
+ {20, "THEME20", 0, "20 - Theme Color Set", ""},
+ {-1, "CUSTOM", 0, "Custom Color Set", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
#ifdef RNA_RUNTIME
#include "BIK_api.h"
@@ -107,7 +134,8 @@ static char *rna_PoseBone_path(PointerRNA *ptr)
return BLI_sprintfN("pose.bones[\"%s\"]", ((bPoseChannel *)ptr->data)->name);
}
-static void rna_BoneGroup_color_set_set(PointerRNA *ptr, int value)
+/* shared for actions groups and bone groups */
+void rna_ActionGroup_colorset_set(PointerRNA *ptr, int value)
{
bActionGroup *grp = ptr->data;
@@ -622,34 +650,31 @@ static void rna_PoseChannel_matrix_set(PointerRNA *ptr, const float *values)
#else
-static void rna_def_bone_group(BlenderRNA *brna)
+/* common properties for Action/Bone Groups - related to color */
+void rna_def_actionbone_group_common(StructRNA *srna, int update_flag, const char *update_cb)
{
- static EnumPropertyItem prop_colorSets_items[] = {
- {0, "DEFAULT", 0, "Default Colors", ""},
- {1, "THEME01", 0, "01 - Theme Color Set", ""},
- {2, "THEME02", 0, "02 - Theme Color Set", ""},
- {3, "THEME03", 0, "03 - Theme Color Set", ""},
- {4, "THEME04", 0, "04 - Theme Color Set", ""},
- {5, "THEME05", 0, "05 - Theme Color Set", ""},
- {6, "THEME06", 0, "06 - Theme Color Set", ""},
- {7, "THEME07", 0, "07 - Theme Color Set", ""},
- {8, "THEME08", 0, "08 - Theme Color Set", ""},
- {9, "THEME09", 0, "09 - Theme Color Set", ""},
- {10, "THEME10", 0, "10 - Theme Color Set", ""},
- {11, "THEME11", 0, "11 - Theme Color Set", ""},
- {12, "THEME12", 0, "12 - Theme Color Set", ""},
- {13, "THEME13", 0, "13 - Theme Color Set", ""},
- {14, "THEME14", 0, "14 - Theme Color Set", ""},
- {15, "THEME15", 0, "15 - Theme Color Set", ""},
- {16, "THEME16", 0, "16 - Theme Color Set", ""},
- {17, "THEME17", 0, "17 - Theme Color Set", ""},
- {18, "THEME18", 0, "18 - Theme Color Set", ""},
- {19, "THEME19", 0, "19 - Theme Color Set", ""},
- {20, "THEME20", 0, "20 - Theme Color Set", ""},
- {-1, "CUSTOM", 0, "Custom Color Set", ""},
- {0, NULL, 0, NULL, NULL}
- };
+ PropertyRNA *prop;
+ /* color set + colors */
+ prop = RNA_def_property(srna, "color_set", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "customCol");
+ RNA_def_property_enum_items(prop, color_sets_items);
+ RNA_def_property_enum_funcs(prop, NULL, "rna_ActionGroup_colorset_set", NULL);
+ RNA_def_property_ui_text(prop, "Color Set", "Custom color set to use");
+ RNA_def_property_update(prop, update_flag, update_cb);
+
+ /* TODO: editing the colors for this should result in changes to the color type... */
+ prop = RNA_def_property(srna, "colors", PROP_POINTER, PROP_NONE);
+ RNA_def_property_flag(prop, PROP_NEVER_NULL);
+ RNA_def_property_struct_type(prop, "ThemeBoneColorSet");
+ /* NOTE: the DNA data is not really a pointer, but this code works :) */
+ RNA_def_property_pointer_sdna(prop, NULL, "cs");
+ RNA_def_property_ui_text(prop, "Colors", "Copy of the colors associated with the group's color set");
+ RNA_def_property_update(prop, update_flag, update_cb);
+}
+
+static void rna_def_bone_group(BlenderRNA *brna)
+{
StructRNA *srna;
PropertyRNA *prop;
@@ -667,22 +692,8 @@ static void rna_def_bone_group(BlenderRNA *brna)
/* TODO: add some runtime-collections stuff to access grouped bones */
- /* color set + colors */
- prop = RNA_def_property(srna, "color_set", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_sdna(prop, NULL, "customCol");
- RNA_def_property_enum_items(prop, prop_colorSets_items);
- RNA_def_property_enum_funcs(prop, NULL, "rna_BoneGroup_color_set_set", NULL);
- RNA_def_property_ui_text(prop, "Color Set", "Custom color set to use");
- RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
-
- /* TODO: editing the colors for this should result in changes to the color type... */
- prop = RNA_def_property(srna, "colors", PROP_POINTER, PROP_NONE);
- RNA_def_property_flag(prop, PROP_NEVER_NULL);
- RNA_def_property_struct_type(prop, "ThemeBoneColorSet");
- /* NOTE: the DNA data is not really a pointer, but this code works :) */
- RNA_def_property_pointer_sdna(prop, NULL, "cs");
- RNA_def_property_ui_text(prop, "Colors", "Copy of the colors associated with the group's color set");
- RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
+ /* color set */
+ rna_def_actionbone_group_common(srna, NC_OBJECT | ND_POSE, "rna_Pose_update");
}
static EnumPropertyItem prop_iksolver_items[] = {
diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c
index 38fbe708038..aab3483e29b 100644
--- a/source/blender/makesrna/intern/rna_rna.c
+++ b/source/blender/makesrna/intern/rna_rna.c
@@ -577,6 +577,12 @@ static int rna_Property_is_enum_flag_get(PointerRNA *ptr)
return prop->flag & PROP_ENUM_FLAG ? 1 : 0;
}
+static int rna_Property_is_library_editable_flag_get(PointerRNA *ptr)
+{
+ PropertyRNA *prop = (PropertyRNA *)ptr->data;
+ return prop->flag & PROP_LIB_EXCEPTION ? 1 : 0;
+}
+
static int rna_Property_array_length_get(PointerRNA *ptr)
{
PropertyRNA *prop = (PropertyRNA *)ptr->data;
@@ -1174,6 +1180,11 @@ static void rna_def_property(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_boolean_funcs(prop, "rna_Property_is_enum_flag_get", NULL);
RNA_def_property_ui_text(prop, "Enum Flag", "True when multiple enums ");
+
+ prop = RNA_def_property(srna, "is_library_editable", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_boolean_funcs(prop, "rna_Property_is_library_editable_flag_get", NULL);
+ RNA_def_property_ui_text(prop, "Library Editable", "Property is editable from linked instances (changes not saved)");
}
static void rna_def_function(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index f907e2f45b3..5b355e56911 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2326,7 +2326,7 @@ static void rna_def_scene_game_data(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem aasamples_items[] = {
+ static EnumPropertyItem aasamples_items[] = {
{0, "SAMPLES_0", 0, "Off", ""},
{2, "SAMPLES_2", 0, "2x", ""},
{4, "SAMPLES_4", 0, "4x", ""},
@@ -3725,65 +3725,78 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_enum_bitflag_sdna(prop, NULL, "bake_mode");
RNA_def_property_enum_items(prop, bake_mode_items);
RNA_def_property_ui_text(prop, "Bake Mode", "Choose shading information to bake into the image");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "bake_normal_space", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "bake_normal_space");
RNA_def_property_enum_items(prop, bake_normal_space_items);
RNA_def_property_ui_text(prop, "Normal Space", "Choose normal space for baking");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "bake_quad_split", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_items(prop, bake_qyad_split_items);
RNA_def_property_ui_text(prop, "Quad Split", "Choose the method used to split a quad into 2 triangles for baking");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "bake_aa_mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "bake_osa");
RNA_def_property_enum_items(prop, fixed_oversample_items);
RNA_def_property_ui_text(prop, "Anti-Aliasing Level", "");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "use_bake_selected_to_active", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_TO_ACTIVE);
RNA_def_property_ui_text(prop, "Selected to Active",
"Bake shading on the surface of selected objects to the active object");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "use_bake_normalize", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_NORMALIZE);
RNA_def_property_ui_text(prop, "Normalized",
"With displacement normalize to the distance, with ambient occlusion "
"normalize without using material settings");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "use_bake_clear", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_CLEAR);
RNA_def_property_ui_text(prop, "Clear", "Clear Images before baking");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "use_bake_antialiasing", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_OSA);
RNA_def_property_ui_text(prop, "Anti-Aliasing", "Enables Anti-aliasing");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "bake_margin", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "bake_filter");
RNA_def_property_range(prop, 0, 64);
RNA_def_property_ui_text(prop, "Margin",
"Amount of pixels to extend the baked result with, as post process filter");
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
prop = RNA_def_property(srna, "bake_distance", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "bake_maxdist");
RNA_def_property_range(prop, 0.0, 1000.0);
RNA_def_property_ui_text(prop, "Distance",
"Maximum distance from active object to other object (in blender units)");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "bake_bias", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "bake_biasdist");
RNA_def_property_range(prop, 0.0, 1000.0);
RNA_def_property_ui_text(prop, "Bias", "Bias towards faces further away from the object (in blender units)");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
prop = RNA_def_property(srna, "use_bake_multires", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_MULTIRES);
RNA_def_property_ui_text(prop, "Bake from Multires", "Bake directly from multires object");
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
prop = RNA_def_property(srna, "use_bake_lores_mesh", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_LORES_MESH);
RNA_def_property_ui_text(prop, "Low Resolution Mesh",
"Calculate heights against unsubdivided low resolution mesh");
+ RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
/* stamp */
@@ -4201,7 +4214,7 @@ void RNA_def_scene(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
RNA_def_property_pointer_funcs(prop, NULL, "rna_Scene_set_set", NULL, NULL);
RNA_def_property_ui_text(prop, "Background Scene", "Background set scene");
- RNA_def_property_update(prop, NC_SCENE | NA_EDITED, NULL);
+ RNA_def_property_update(prop, NC_SCENE | NA_EDITED, "rna_Scene_glsl_update");
prop = RNA_def_property(srna, "world", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE);
diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c
index ad40e71eb71..58d676555c1 100644
--- a/source/blender/makesrna/intern/rna_sculpt_paint.c
+++ b/source/blender/makesrna/intern/rna_sculpt_paint.c
@@ -234,6 +234,11 @@ static void rna_def_paint(BlenderRNA *brna)
prop = RNA_def_property(srna, "show_low_resolution", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flags", PAINT_FAST_NAVIGATE);
RNA_def_property_ui_text(prop, "Fast Navigate", "For multires, show low resolution while navigating the view");
+
+ prop = RNA_def_property(srna, "input_samples", PROP_INT, PROP_UNSIGNED);
+ RNA_def_property_int_sdna(prop, NULL, "num_input_samples");
+ RNA_def_property_ui_range(prop, 1, PAINT_MAX_INPUT_SAMPLES, 0, 0);
+ RNA_def_property_ui_text(prop, "Input Samples", "Average multiple input samples together to smooth the brush stroke");
}
static void rna_def_sculpt(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index e7b648377e9..a3c309625f3 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -1374,12 +1374,14 @@ static void rna_def_effect_inputs(StructRNA *srna, int count)
RNA_def_property_ui_text(prop, "Input 2", "Second input for the effect strip");
}
- if (count == 3) { /* not used by any effects ...except maybe plugins? */
+ /*
+ if (count == 3) { // not used by any effects ...except maybe plugins?
prop = RNA_def_property(srna, "input_3", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "seq3");
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NEVER_NULL);
RNA_def_property_ui_text(prop, "Input 3", "Third input for the effect strip");
}
+ */
}
static void rna_def_image(BlenderRNA *brna)
@@ -1472,7 +1474,7 @@ static void rna_def_movie(BlenderRNA *brna)
prop = RNA_def_property(srna, "stream_index", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "streamindex");
RNA_def_property_range(prop, 0, 20);
- RNA_def_property_ui_text(prop, "Streamindex",
+ RNA_def_property_ui_text(prop, "Stream Index",
"For files with several movie streams, use the stream with the given index");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update_reopen_files");
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index b2c13f8717a..da8a68327e9 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -2270,6 +2270,12 @@ static void rna_def_space_dopesheet(BlenderRNA *brna)
"(Action and Shape Key Editors only)");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_DOPESHEET, NULL);
+ prop = RNA_def_property(srna, "show_group_colors", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SACTION_NODRAWGCOLORS);
+ RNA_def_property_ui_text(prop, "Show Group Colors",
+ "Draw groups and channels with colours matching their corresponding groups");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_DOPESHEET, NULL);
+
/* editing */
prop = RNA_def_property(srna, "use_auto_merge_keyframes", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SACTION_NOTRANSKEYCULL);
@@ -2375,6 +2381,12 @@ static void rna_def_space_graph(BlenderRNA *brna)
"(disable for better performance)");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_GRAPH, NULL);
+ prop = RNA_def_property(srna, "show_group_colors", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NODRAWGCOLORS);
+ RNA_def_property_ui_text(prop, "Show Group Colors",
+ "Draw groups and channels with colours matching their corresponding groups");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_GRAPH, NULL);
+
/* editing */
prop = RNA_def_property(srna, "use_auto_merge_keyframes", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NOTRANSKEYCULL);
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index eaddcc92a92..96d9653839b 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -1199,6 +1199,11 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Camera Path", "");
RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+ prop = RNA_def_property(srna, "skin_root", PROP_FLOAT, PROP_COLOR_GAMMA);
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(prop, "Skin Root", "");
+ RNA_def_property_update(prop, 0, "rna_userdef_update");
}
@@ -1526,6 +1531,18 @@ static void rna_def_userdef_theme_space_node(BlenderRNA *brna)
rna_def_userdef_theme_spaces_main(srna);
rna_def_userdef_theme_spaces_list_main(srna);
+ prop = RNA_def_property(srna, "node_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
+ RNA_def_property_float_sdna(prop, NULL, "select");
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(prop, "Node Selected", "");
+ RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+ prop = RNA_def_property(srna, "node_active", PROP_FLOAT, PROP_COLOR_GAMMA);
+ RNA_def_property_float_sdna(prop, NULL, "active");
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(prop, "Active Node", "");
+ RNA_def_property_update(prop, 0, "rna_userdef_update");
+
prop = RNA_def_property(srna, "wire", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "wire");
RNA_def_property_array(prop, 3);
@@ -2792,7 +2809,7 @@ static void rna_def_userdef_system(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}
};
- static EnumPropertyItem anisotropic_items[] = {
+ static EnumPropertyItem anisotropic_items[] = {
{1, "FILTER_0", 0, "Off", ""},
{2, "FILTER_2", 0, "2x", ""},
{4, "FILTER_4", 0, "4x", ""},
@@ -3036,7 +3053,7 @@ static void rna_def_userdef_system(BlenderRNA *brna)
prop = RNA_def_property(srna, "memory_cache_limit", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "memcachelimit");
- RNA_def_property_range(prop, 0, (sizeof(void *) == 8) ? 1024 * 16 : 1024); /* 32 bit 2 GB, 64 bit 16 GB */
+ RNA_def_property_range(prop, 0, (sizeof(void *) == 8) ? 1024 * 32 : 1024); /* 32 bit 2 GB, 64 bit 32 GB */
RNA_def_property_ui_text(prop, "Memory Cache Limit", "Memory cache limit (in megabytes)");
RNA_def_property_update(prop, 0, "rna_Userdef_memcache_update");
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index 993d1e20bc5..194f48bd32a 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1783,7 +1783,7 @@ static void rna_def_keyconfig(BlenderRNA *brna)
RNA_def_struct_name_property(srna, prop);
RNA_def_property_update(prop, 0, "rna_KeyMapItem_update");
- /* this is infact the operator name, but if the operator can't be found we
+ /* this is in fact the operator name, but if the operator can't be found we
* fallback on the operator ID */
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt
index 90ae423f8a3..83e7ea81ca5 100644
--- a/source/blender/modifiers/CMakeLists.txt
+++ b/source/blender/modifiers/CMakeLists.txt
@@ -77,6 +77,7 @@ set(SRC
intern/MOD_shapekey.c
intern/MOD_shrinkwrap.c
intern/MOD_simpledeform.c
+ intern/MOD_skin.c
intern/MOD_smoke.c
intern/MOD_smooth.c
intern/MOD_softbody.c
diff --git a/source/blender/modifiers/MOD_modifiertypes.h b/source/blender/modifiers/MOD_modifiertypes.h
index ea5574a378e..bf411c3b2fc 100644
--- a/source/blender/modifiers/MOD_modifiertypes.h
+++ b/source/blender/modifiers/MOD_modifiertypes.h
@@ -74,6 +74,7 @@ extern ModifierTypeInfo modifierType_WeightVGMix;
extern ModifierTypeInfo modifierType_WeightVGProximity;
extern ModifierTypeInfo modifierType_DynamicPaint;
extern ModifierTypeInfo modifierType_Remesh;
+extern ModifierTypeInfo modifierType_Skin;
/* MOD_util.c */
void modifier_type_init(ModifierTypeInfo *types[]);
diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c
index a3169bdba46..609d70b6e98 100644
--- a/source/blender/modifiers/intern/MOD_collision.c
+++ b/source/blender/modifiers/intern/MOD_collision.c
@@ -71,7 +71,7 @@ static void freeData(ModifierData *md)
{
CollisionModifierData *collmd = (CollisionModifierData *) md;
- if (collmd) {
+ if (collmd) {
if (collmd->bvhtree)
BLI_bvhtree_free(collmd->bvhtree);
if (collmd->x)
diff --git a/source/blender/modifiers/intern/MOD_dynamicpaint.c b/source/blender/modifiers/intern/MOD_dynamicpaint.c
index 159da9adfcf..7d7bfade9b7 100644
--- a/source/blender/modifiers/intern/MOD_dynamicpaint.c
+++ b/source/blender/modifiers/intern/MOD_dynamicpaint.c
@@ -78,12 +78,14 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
for (; surface; surface = surface->next) {
/* tface */
if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ ||
- surface->init_color_type == MOD_DPAINT_INITIAL_TEXTURE) {
+ surface->init_color_type == MOD_DPAINT_INITIAL_TEXTURE)
+ {
dataMask |= (1 << CD_MTFACE);
}
/* mcol */
if (surface->type == MOD_DPAINT_SURFACE_T_PAINT ||
- surface->init_color_type == MOD_DPAINT_INITIAL_VERTEXCOLOR) {
+ surface->init_color_type == MOD_DPAINT_INITIAL_VERTEXCOLOR)
+ {
dataMask |= (1 << CD_MCOL);
}
/* CD_MDEFORMVERT */
diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c
index 5206aa281f7..0a14b4d5a08 100644
--- a/source/blender/modifiers/intern/MOD_mask.c
+++ b/source/blender/modifiers/intern/MOD_mask.c
@@ -273,7 +273,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* loop over edges and faces, and do the same thing to
* ensure that they only reference existing verts
*/
- for (i = 0; i < maxEdges; i++) {
+ for (i = 0; i < maxEdges; i++) {
MEdge me;
dm->getEdge(dm, i, &me);
diff --git a/source/blender/modifiers/intern/MOD_remesh.c b/source/blender/modifiers/intern/MOD_remesh.c
index 37bfd0e6f45..57966b5824b 100644
--- a/source/blender/modifiers/intern/MOD_remesh.c
+++ b/source/blender/modifiers/intern/MOD_remesh.c
@@ -190,6 +190,16 @@ static DerivedMesh *applyModifier(ModifierData *md,
result = output->dm;
MEM_freeN(output);
+ if (rmd->flag & MOD_REMESH_SMOOTH_SHADING) {
+ MPoly *mpoly = CDDM_get_polys(result);
+ int i, totpoly = result->getNumPolys(result);
+
+ /* Apply smooth shading to output faces */
+ for (i = 0; i < totpoly; i++) {
+ mpoly[i].flag |= ME_SMOOTH;
+ }
+ }
+
CDDM_calc_edges(result);
CDDM_calc_normals(result);
return result;
@@ -212,6 +222,7 @@ ModifierTypeInfo modifierType_Remesh = {
/* structSize */ sizeof(RemeshModifierData),
/* type */ eModifierTypeType_Nonconstructive,
/* flags */ eModifierTypeFlag_AcceptsMesh |
+ eModifierTypeFlag_AcceptsCVs |
eModifierTypeFlag_SupportsEditmode,
/* copyData */ copyData,
/* deformVerts */ NULL,
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index 6a57cd82b50..ce95f9bec6e 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -94,7 +94,7 @@ static void screwvert_iter_step(ScrewVertIter *iter)
iter->v_other = iter->v;
iter->v = iter->v_poin->v[0];
}
- if (iter->v >= 0) {
+ if (iter->v >= 0) {
iter->v_poin = &iter->v_array[iter->v];
iter->e = iter->v_poin->e[(iter->v_poin->e[0] == iter->e)];
}
@@ -111,7 +111,7 @@ static void initData(ModifierData *md)
ltmd->ob_axis = NULL;
ltmd->angle = M_PI * 2.0;
ltmd->axis = 2;
- ltmd->flag = 0;
+ ltmd->flag = MOD_SCREW_SMOOTH_SHADING;
ltmd->steps = 16;
ltmd->render_steps = 16;
ltmd->iter = 1;
@@ -175,6 +175,8 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
ScrewVertConnect *vc, *vc_tmp, *vert_connect = NULL;
+ const char mpoly_flag = (ltmd->flag & MOD_SCREW_SMOOTH_SHADING) ? ME_SMOOTH : 0;
+
/* don't do anything? */
if (!totvert)
return CDDM_from_template(dm, 0, 0, 0, 0, 0);
@@ -810,7 +812,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
mp_new->loopstart = mpoly_index * 4;
mp_new->totloop = 4;
- mp_new->flag = ME_SMOOTH;
+ mp_new->flag = mpoly_flag;
origindex[mpoly_index] = ORIGINDEX_NONE;
mp_new++;
ml_new += 4;
diff --git a/source/blender/modifiers/intern/MOD_skin.c b/source/blender/modifiers/intern/MOD_skin.c
new file mode 100644
index 00000000000..9d2ce657bde
--- /dev/null
+++ b/source/blender/modifiers/intern/MOD_skin.c
@@ -0,0 +1,1854 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Nicholas Bishop
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+/** \file blender/modifiers/intern/MOD_skin.c
+ * \ingroup modifiers
+ */
+
+/* Implementation based in part off the paper "B-Mesh: A Fast Modeling
+ * System for Base Meshes of 3D Articulated Shapes" (Zhongping Ji,
+ * Ligang Liu, Yigang Wang)
+ *
+ * Note that to avoid confusion with Blender's BMesh data structure,
+ * this tool is renamed as the Skin modifier.
+ *
+ * The B-Mesh paper is current available here:
+ * http://www.math.zju.edu.cn/ligangliu/CAGD/Projects/BMesh/
+ *
+ * The main missing features in this code compared to the paper are:
+ *
+ * + No mesh evolution. The paper suggests iteratively subsurfing the
+ * skin output and adapting the output to better conform with the
+ * spheres of influence surrounding each vertex.
+ *
+ * + No mesh fairing. The paper suggests re-aligning output edges to
+ * follow principal mesh curvatures.
+ *
+ * + No auxiliary balls. These would serve to influence mesh
+ * evolution, which as noted above is not implemented.
+ *
+ * The code also adds some features not present in the paper:
+ *
+ * + Loops in the input edge graph.
+ *
+ * + Concave surfaces around branch nodes. The paper does not discuss
+ * how to handle non-convex regions; this code adds a number of
+ * cleanup operations to handle many (though not all) of these
+ * cases.
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_mesh_types.h"
+#include "DNA_meshdata_types.h"
+#include "DNA_object_types.h"
+#include "DNA_modifier_types.h"
+
+#include "BLI_utildefines.h"
+#include "BLI_array.h"
+#include "BLI_heap.h"
+#include "BLI_listbase.h"
+#include "BLI_math.h"
+#include "BLI_string.h"
+
+#include "BKE_cdderivedmesh.h"
+#include "BKE_deform.h"
+#include "BKE_DerivedMesh.h"
+#include "BKE_mesh.h"
+#include "BKE_modifier.h"
+#include "BKE_tessmesh.h"
+
+#include "MOD_util.h"
+
+typedef struct {
+ float mat[3][3];
+ /* Vert that edge is pointing away from, no relation to
+ * MEdge.v1 */
+ int origin;
+} EMat;
+
+typedef enum {
+ CAP_START = 1,
+ CAP_END = 2,
+ SEAM_FRAME = 4,
+} SkinNodeFlag;
+
+typedef struct Frame {
+ /* Index in the MVert array */
+ BMVert *verts[4];
+ /* Location of each corner */
+ float co[4][3];
+ /* Indicates which corners have been merged with another
+ * frame's corner (so they share an MVert index) */
+ struct {
+ /* Merge to target frame/corner (no merge if frame is null) */
+ struct Frame *frame;
+ int corner;
+ } merge[4];
+
+ /* For hull frames, whether each vertex is detached or not */
+ int inside_hull[4];
+ /* Whether any part of the frame (corner or edge) is detached */
+ int detached;
+} Frame;
+
+#define MAX_SKIN_NODE_FRAMES 2
+typedef struct {
+ Frame frames[MAX_SKIN_NODE_FRAMES];
+ int totframe;
+
+ SkinNodeFlag flag;
+
+ /* Used for hulling a loop seam */
+ int seam_edges[2];
+} SkinNode;
+
+typedef struct {
+ BMesh *bm;
+ SkinModifierData *smd;
+ int mat_nr;
+} SkinOutput;
+
+static void add_poly(SkinOutput *so,
+ BMVert *v1,
+ BMVert *v2,
+ BMVert *v3,
+ BMVert *v4);
+
+/***************************** Convex Hull ****************************/
+
+static int is_quad_symmetric(BMVert *quad[4],
+ const SkinModifierData *smd)
+{
+ const float threshold = 0.0001f;
+ int axis;
+
+ for (axis = 0; axis < 3; axis++) {
+ if (smd->symmetry_axes & (1 << axis)) {
+ float a[3];
+
+ copy_v3_v3(a, quad[0]->co);
+ a[axis] = -a[axis];
+
+ if (len_v3v3(a, quad[1]->co) < threshold) {
+ copy_v3_v3(a, quad[2]->co);
+ a[axis] = -a[axis];
+ if (len_v3v3(a, quad[3]->co) < threshold)
+ return 1;
+ }
+ else if (len_v3v3(a, quad[3]->co) < threshold) {
+ copy_v3_v3(a, quad[2]->co);
+ a[axis] = -a[axis];
+ if (len_v3v3(a, quad[1]->co) < threshold)
+ return 1;
+ }
+ }
+ }
+
+ return 0;
+}
+
+/* Returns true if the quad crosses the plane of symmetry, false otherwise */
+static int quad_crosses_symmetry_plane(BMVert *quad[4],
+ const SkinModifierData *smd)
+{
+ int axis;
+
+ for (axis = 0; axis < 3; axis++) {
+ if (smd->symmetry_axes & (1 << axis)) {
+ int i, left = 0, right = 0;
+
+ for (i = 0; i < 4; i++) {
+ if (quad[i]->co[axis] < 0)
+ left = 1;
+ else if (quad[i]->co[axis] > 0)
+ right = 1;
+
+ if (left && right)
+ return TRUE;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+/* Returns true if the frame is filled by precisely two faces (and
+ * outputs those faces to fill_faces), otherwise returns false. */
+static int skin_frame_find_contained_faces(const Frame *frame,
+ BMFace *fill_faces[2])
+{
+ BMEdge *diag;
+
+ /* See if the frame is bisected by a diagonal edge */
+ diag = BM_edge_exists(frame->verts[0], frame->verts[2]);
+ if (!diag)
+ diag = BM_edge_exists(frame->verts[1], frame->verts[3]);
+
+ if (diag)
+ return BM_edge_face_pair(diag, &fill_faces[0], &fill_faces[1]);
+ else
+ return FALSE;
+}
+
+/* Returns TRUE if hull is successfully built, FALSE otherwise */
+static int build_hull(SkinOutput *so, Frame **frames, int totframe)
+{
+ BMesh *bm = so->bm;
+ BMOperator op;
+ BMIter iter;
+ BMOIter oiter;
+ BMVert *v;
+ BMFace *f;
+ BMEdge *e;
+ int i, j;
+
+ BM_mesh_elem_hflag_disable_all(bm, BM_VERT, BM_ELEM_TAG, FALSE);
+
+ for (i = 0; i < totframe; i++) {
+ for (j = 0; j < 4; j++) {
+ BM_elem_flag_enable(frames[i]->verts[j], BM_ELEM_TAG);
+ }
+ }
+
+ /* Deselect all faces so that only new hull output faces are
+ * selected after the operator is run */
+ BM_mesh_elem_hflag_disable_all(bm, BM_ALL, BM_ELEM_SELECT, 0);
+
+ BMO_op_initf(bm, &op, "convex_hull input=%hv", BM_ELEM_TAG);
+ BMO_op_exec(bm, &op);
+
+ if (BMO_error_occurred(bm)) {
+ BMO_op_finish(bm, &op);
+ return FALSE;
+ }
+
+ /* Apply face attributes to hull output */
+ BMO_ITER (f, &oiter, bm, &op, "geomout", BM_FACE) {
+ if (so->smd->flag & MOD_SKIN_SMOOTH_SHADING)
+ BM_elem_flag_enable(f, BM_ELEM_SMOOTH);
+ f->mat_nr = so->mat_nr;
+ }
+
+ /* Mark interior frames */
+ BMO_ITER (v, &oiter, bm, &op, "interior_geom", BM_VERT) {
+ for (i = 0; i < totframe; i++) {
+ Frame *frame = frames[i];
+
+ if (!frame->detached) {
+ for (j = 0; j < 4; j++) {
+ if (frame->verts[j] == v) {
+ frame->inside_hull[j] = TRUE;
+ frame->detached = TRUE;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ /* Also mark frames as interior if an edge is not in the hull */
+ for (i = 0; i < totframe; i++) {
+ Frame *frame = frames[i];
+
+ if (!frame->detached &&
+ (!BM_edge_exists(frame->verts[0], frame->verts[1]) ||
+ !BM_edge_exists(frame->verts[1], frame->verts[2]) ||
+ !BM_edge_exists(frame->verts[2], frame->verts[3]) ||
+ !BM_edge_exists(frame->verts[3], frame->verts[0])))
+ {
+ frame->detached = TRUE;
+ }
+ }
+
+ /* Remove triangles that would fill the original frames -- skip if
+ * frame is partially detached */
+ BM_mesh_elem_hflag_disable_all(bm, BM_ALL, BM_ELEM_TAG, FALSE);
+ for (i = 0; i < totframe; i++) {
+ Frame *frame = frames[i];
+ if (!frame->detached) {
+ BMFace *fill_faces[2];
+
+ /* Check if the frame is filled by precisely two
+ * triangles. If so, delete the triangles and their shared
+ * edge. Otherwise, give up and mark the frame as
+ * detached. */
+ if (skin_frame_find_contained_faces(frame, fill_faces)) {
+ BM_elem_flag_enable(fill_faces[0], BM_ELEM_TAG);
+ BM_elem_flag_enable(fill_faces[1], BM_ELEM_TAG);
+ }
+ else
+ frame->detached = TRUE;
+ }
+ }
+
+ /* Check if removing triangles above will create wire triangles,
+ * mark them too */
+ BMO_ITER (e, &oiter, bm, &op, "geomout", BM_EDGE) {
+ int is_wire = TRUE;
+ BM_ITER_ELEM (f, &iter, e, BM_FACES_OF_EDGE) {
+ if (!BM_elem_flag_test(f, BM_ELEM_TAG)) {
+ is_wire = FALSE;
+ break;
+ }
+ }
+ if (is_wire)
+ BM_elem_flag_enable(e, BM_ELEM_TAG);
+ }
+
+ BMO_op_finish(bm, &op);
+
+ BMO_op_callf(bm, "del geom=%hef context=%i", BM_ELEM_TAG, DEL_ONLYTAGGED);
+
+ return TRUE;
+}
+
+/* Returns the average frame side length (frames are rectangular, so
+ * just the average of two adjacent edge lengths) */
+static float frame_len(const Frame *frame)
+{
+ return (len_v3v3(frame->co[0], frame->co[1]) +
+ len_v3v3(frame->co[1], frame->co[2])) * 0.5f;
+}
+
+static void merge_frame_corners(Frame **frames, int totframe)
+{
+ float dist, side_a, side_b, thresh, mid[3];
+ int i, j, k, l;
+
+ for (i = 0; i < totframe; i++) {
+ side_a = frame_len(frames[i]);
+
+ /* For each corner of each frame... */
+ for (j = 0; j < 4; j++) {
+
+ /* Ensure the merge target is not itself a merge target */
+ if (frames[i]->merge[j].frame)
+ continue;
+
+ for (k = i + 1; k < totframe; k++) {
+ BLI_assert(frames[i] != frames[k]);
+
+ side_b = frame_len(frames[k]);
+ thresh = MIN2(side_a, side_b) / 2.0f;
+
+ /* Compare with each corner of all other frames... */
+ for (l = 0; l < 4; l++) {
+ if (frames[k]->merge[l].frame)
+ continue;
+
+ /* Some additional concerns that could be checked
+ * further:
+ *
+ * + Vertex coords are being used for the
+ * edge-length test, but are also being
+ * modified, might cause symmetry problems.
+ *
+ * + A frame could be merged diagonally across
+ * another, would generate a weird (bad) T
+ * junction
+ */
+
+ /* Check if corners are near each other, where
+ * 'near' is based in the frames' minimum side
+ * length */
+ dist = len_v3v3(frames[i]->co[j],
+ frames[k]->co[l]);
+ if (dist < thresh) {
+ mid_v3_v3v3(mid,
+ frames[i]->co[j],
+ frames[k]->co[l]);
+
+ copy_v3_v3(frames[i]->co[j], mid);
+ copy_v3_v3(frames[k]->co[l], mid);
+
+ frames[k]->merge[l].frame = frames[i];
+ frames[k]->merge[l].corner = j;
+
+ /* Can't merge another corner into the same
+ * frame corner, so move on to frame k+1 */
+ break;
+ }
+ }
+ }
+ }
+ }
+}
+
+static Frame **collect_hull_frames(int v, SkinNode *frames,
+ const MeshElemMap *emap, const MEdge *medge,
+ int *tothullframe)
+{
+ SkinNode *f;
+ Frame **hull_frames;
+ int nbr, i;
+
+ (*tothullframe) = emap[v].count;
+ hull_frames = MEM_callocN(sizeof(Frame * *) * (*tothullframe),
+ "hull_from_frames.hull_frames");
+ i = 0;
+ for (nbr = 0; nbr < emap[v].count; nbr++) {
+ const MEdge *e = &medge[emap[v].indices[nbr]];
+ f = &frames[BKE_mesh_edge_other_vert(e, v)];
+ /* Can't have adjacent branch nodes yet */
+ if (f->totframe)
+ hull_frames[i++] = &f->frames[0];
+ else
+ (*tothullframe)--;
+ }
+
+ return hull_frames;
+}
+
+
+/**************************** Create Frames ***************************/
+
+static void node_frames_init(SkinNode *nf, int totframe)
+{
+ int i;
+
+ nf->totframe = totframe;
+ memset(nf->frames, 0, sizeof(nf->frames));
+
+ nf->flag = 0;
+ for (i = 0; i < 2; i++)
+ nf->seam_edges[i] = -1;
+}
+
+static void create_frame(Frame *frame, const float co[3],
+ const float radius[2],
+ float mat[3][3], float offset)
+{
+ float rx[3], ry[3], rz[3];
+ int i;
+
+ mul_v3_v3fl(ry, mat[1], radius[0]);
+ mul_v3_v3fl(rz, mat[2], radius[1]);
+
+ add_v3_v3v3(frame->co[3], co, ry);
+ add_v3_v3v3(frame->co[3], frame->co[3], rz);
+
+ sub_v3_v3v3(frame->co[2], co, ry);
+ add_v3_v3v3(frame->co[2], frame->co[2], rz);
+
+ sub_v3_v3v3(frame->co[1], co, ry);
+ sub_v3_v3v3(frame->co[1], frame->co[1], rz);
+
+ add_v3_v3v3(frame->co[0], co, ry);
+ sub_v3_v3v3(frame->co[0], frame->co[0], rz);
+
+ mul_v3_v3fl(rx, mat[0], offset);
+ for (i = 0; i < 4; i++)
+ add_v3_v3v3(frame->co[i], frame->co[i], rx);
+}
+
+static float half_v2(const float v[2])
+{
+ return (v[0] + v[1]) * 0.5f;
+}
+
+static void end_node_frames(int v, SkinNode *skin_nodes, const MVert *mvert,
+ const MVertSkin *nodes, const MeshElemMap *emap,
+ EMat *emat)
+{
+ const float *rad = nodes[v].radius;
+ float mat[3][3];
+
+ if (emap[v].count == 0) {
+ float avg = half_v2(rad);
+
+ /* For solitary nodes, just build a box (two frames) */
+ node_frames_init(&skin_nodes[v], 2);
+ skin_nodes[v].flag |= (CAP_START | CAP_END);
+
+ /* Hardcoded basis */
+ zero_m3(mat);
+ mat[0][2] = mat[1][0] = mat[2][1] = 1;
+
+ /* Caps */
+ create_frame(&skin_nodes[v].frames[0], mvert[v].co, rad, mat, avg);
+ create_frame(&skin_nodes[v].frames[1], mvert[v].co, rad, mat, -avg);
+ }
+ else {
+ /* For nodes with an incoming edge, create a single (capped) frame */
+ node_frames_init(&skin_nodes[v], 1);
+ skin_nodes[v].flag |= CAP_START;
+
+ /* Use incoming edge for orientation */
+ copy_m3_m3(mat, emat[emap[v].indices[0]].mat);
+ if (emat[emap[v].indices[0]].origin != v)
+ negate_v3(mat[0]);
+
+ /* End frame */
+ create_frame(&skin_nodes[v].frames[0], mvert[v].co, rad, mat, 0);
+ }
+}
+
+/* Returns 1 for seam, 0 otherwise */
+static int connection_node_mat(float mat[3][3], int v, const MeshElemMap *emap, EMat *emat)
+{
+ float axis[3], angle, ine[3][3], oute[3][3];
+ EMat *e1, *e2;
+
+ e1 = &emat[emap[v].indices[0]];
+ e2 = &emat[emap[v].indices[1]];
+
+ if (e1->origin != v && e2->origin == v) {
+ copy_m3_m3(ine, e1->mat);
+ copy_m3_m3(oute, e2->mat);
+ }
+ else if (e1->origin == v && e2->origin != v) {
+ copy_m3_m3(ine, e2->mat);
+ copy_m3_m3(oute, e1->mat);
+ }
+ else
+ return 1;
+
+ /* Get axis and angle to rotate frame by */
+ angle = angle_normalized_v3v3(ine[0], oute[0]) / 2.0f;
+ cross_v3_v3v3(axis, ine[0], oute[0]);
+
+ /* Build frame matrix (don't care about X axis here) */
+ copy_v3_v3(mat[0], ine[0]);
+ rotate_normalized_v3_v3v3fl(mat[1], ine[1], axis, angle);
+ rotate_normalized_v3_v3v3fl(mat[2], ine[2], axis, angle);
+
+ return 0;
+}
+
+static void connection_node_frames(int v, SkinNode *skin_nodes, const MVert *mvert,
+ const MVertSkin *nodes, const MeshElemMap *emap,
+ EMat *emat)
+{
+ const float *rad = nodes[v].radius;
+ float mat[3][3];
+ EMat *e1, *e2;
+
+ if (connection_node_mat(mat, v, emap, emat)) {
+ float avg = half_v2(rad);
+
+ /* Get edges */
+ e1 = &emat[emap[v].indices[0]];
+ e2 = &emat[emap[v].indices[1]];
+
+ /* Handle seam separately to avoid twisting */
+ /* Create two frames, will be hulled to neighbors later */
+ node_frames_init(&skin_nodes[v], 2);
+ skin_nodes[v].flag |= SEAM_FRAME;
+
+ copy_m3_m3(mat, e1->mat);
+ if (e1->origin != v) negate_v3(mat[0]);
+ create_frame(&skin_nodes[v].frames[0], mvert[v].co, rad, mat, avg);
+ skin_nodes[v].seam_edges[0] = emap[v].indices[0];
+
+ copy_m3_m3(mat, e2->mat);
+ if (e2->origin != v) negate_v3(mat[0]);
+ create_frame(&skin_nodes[v].frames[1], mvert[v].co, rad, mat, avg);
+ skin_nodes[v].seam_edges[1] = emap[v].indices[1];
+
+ return;
+ }
+
+ /* Build regular frame */
+ node_frames_init(&skin_nodes[v], 1);
+ create_frame(&skin_nodes[v].frames[0], mvert[v].co, rad, mat, 0);
+}
+
+static SkinNode *build_frames(const MVert *mvert, int totvert,
+ const MVertSkin *nodes, const MeshElemMap *emap,
+ EMat *emat)
+{
+ SkinNode *skin_nodes;
+ int v;
+
+ skin_nodes = MEM_callocN(sizeof(SkinNode) * totvert, "build_frames.skin_nodes");
+
+ for (v = 0; v < totvert; v++) {
+ if (emap[v].count <= 1)
+ end_node_frames(v, skin_nodes, mvert, nodes, emap, emat);
+ else if (emap[v].count == 2)
+ connection_node_frames(v, skin_nodes, mvert, nodes, emap, emat);
+ else {
+ /* Branch node generates no frames */
+ }
+ }
+
+ return skin_nodes;
+}
+
+/**************************** Edge Matrices ***************************/
+
+static void calc_edge_mat(float mat[3][3], const float a[3], const float b[3])
+{
+ const float z_up[3] = {0, 0, 1};
+ float dot;
+
+ /* X = edge direction */
+ sub_v3_v3v3(mat[0], b, a);
+ normalize_v3(mat[0]);
+
+ dot = dot_v3v3(mat[0], z_up);
+ if (dot > -1 + FLT_EPSILON && dot < 1 - FLT_EPSILON) {
+ /* Y = Z cross x */
+ cross_v3_v3v3(mat[1], z_up, mat[0]);
+ normalize_v3(mat[1]);
+
+ /* Z = x cross y */
+ cross_v3_v3v3(mat[2], mat[0], mat[1]);
+ normalize_v3(mat[2]);
+ }
+ else {
+ mat[1][0] = 1;
+ mat[1][1] = 0;
+ mat[1][2] = 0;
+ mat[2][0] = 0;
+ mat[2][1] = 1;
+ mat[2][2] = 0;
+ }
+}
+
+static void build_emats_rec(int *visited_e, EMat *emat,
+ const MeshElemMap *emap, const MEdge *medge,
+ const MVertSkin *vs, const MVert *mvert,
+ int parent_v, float parent_mat[3][3])
+{
+ float axis[3], angle;
+ int i, e, v, parent_is_branch;
+
+ parent_is_branch = ((emap[parent_v].count > 2) ||
+ (vs[parent_v].flag & MVERT_SKIN_ROOT));
+
+ for (i = 0; i < emap[parent_v].count; i++) {
+ e = emap[parent_v].indices[i];
+
+ /* Ignore edge if already visited */
+ if (visited_e[e]) continue;
+ visited_e[e] = 1;
+
+ v = BKE_mesh_edge_other_vert(&medge[e], parent_v);
+ emat[e].origin = parent_v;
+
+ /* If parent is a branch node, start a new edge chain */
+ if (parent_is_branch) {
+ calc_edge_mat(emat[e].mat, mvert[parent_v].co,
+ mvert[v].co);
+ }
+ else {
+ /* Build edge matrix guided by parent matrix */
+ sub_v3_v3v3(emat[e].mat[0], mvert[v].co, mvert[parent_v].co);
+ normalize_v3(emat[e].mat[0]);
+ angle = angle_normalized_v3v3(parent_mat[0], emat[e].mat[0]);
+ cross_v3_v3v3(axis, parent_mat[0], emat[e].mat[0]);
+ normalize_v3(axis);
+ rotate_normalized_v3_v3v3fl(emat[e].mat[1], parent_mat[1], axis, angle);
+ rotate_normalized_v3_v3v3fl(emat[e].mat[2], parent_mat[2], axis, angle);
+ }
+
+ build_emats_rec(visited_e, emat, emap, medge,
+ vs, mvert, v, emat[e].mat);
+ }
+}
+
+static EMat *build_edge_mats(MVertSkin *vs, MVert *mvert, int totvert,
+ MEdge *medge, MeshElemMap *emap, int totedge)
+{
+ EMat *emat;
+ float mat[3][3];
+ int *visited_e, v;
+
+ visited_e = MEM_callocN(sizeof(int) * totedge, "build_edge_mats.visited_e");
+ emat = MEM_callocN(sizeof(EMat) * totedge, "build_edge_mats.emat");
+
+ /* Build edge matrices recursively from the root nodes */
+ for (v = 0; v < totvert; v++) {
+ if (vs[v].flag & MVERT_SKIN_ROOT) {
+ if (emap[v].count >= 1) {
+ const MEdge *e = &medge[emap[v].indices[0]];
+ calc_edge_mat(mat, mvert[v].co,
+ mvert[BKE_mesh_edge_other_vert(e, v)].co);
+ build_emats_rec(visited_e, emat, emap, medge, vs, mvert, v, mat);
+ }
+ }
+ }
+
+ MEM_freeN(visited_e);
+
+ return emat;
+}
+
+
+/************************** Input Subdivision *************************/
+
+/* Returns number of edge subdivisions, taking into account the radius
+ * of the endpoints and the edge length. If both endpoints are branch
+ * nodes, at least two intermediate frames are required. (This avoids
+ * having any special cases for dealing with sharing a frame between
+ * two hulls.) */
+static int calc_edge_subdivisions(const MVert *mvert, const MVertSkin *nodes,
+ const MEdge *e, int *degree)
+{
+ const MVertSkin *evs[2] = {&nodes[e->v1], &nodes[e->v2]};
+ float edge_len, avg[2];
+ int v1_branch = degree[e->v1] > 2;
+ int v2_branch = degree[e->v2] > 2;
+ int num_subdivisions;
+
+ /* If either end is a branch node marked 'loose', don't subdivide
+ * the edge (or subdivide just twice if both are branches) */
+ if ((v1_branch && (evs[0]->flag & MVERT_SKIN_LOOSE)) ||
+ (v2_branch && (evs[1]->flag & MVERT_SKIN_LOOSE))) {
+ if (v1_branch && v2_branch)
+ return 2;
+ else
+ return 0;
+ }
+
+ edge_len = len_v3v3(mvert[e->v1].co, mvert[e->v2].co);
+
+ avg[0] = half_v2(evs[0]->radius);
+ avg[1] = half_v2(evs[1]->radius);
+ num_subdivisions = (int)((float)edge_len / (avg[0] + avg[1]));
+
+ /* If both ends are branch nodes, two intermediate nodes are
+ * required */
+ if (num_subdivisions < 2 && v1_branch && v2_branch)
+ num_subdivisions = 2;
+
+ return num_subdivisions;
+}
+
+/* Take a DerivedMesh and subdivide its edges to keep skin nodes
+ * reasonably close. */
+static DerivedMesh *subdivide_base(DerivedMesh *orig)
+{
+ DerivedMesh *dm;
+ MVertSkin *orignode, *outnode;
+ MVert *origvert, *outvert;
+ MEdge *origedge, *outedge, *e;
+ MDeformVert *origdvert, *outdvert;
+ int totorigvert, totorigedge;
+ int totsubd, *degree, *edge_subd;
+ int i, j, k, u, v;
+ float radrat;
+
+ orignode = CustomData_get_layer(&orig->vertData, CD_MVERT_SKIN);
+ origvert = orig->getVertArray(orig);
+ origedge = orig->getEdgeArray(orig);
+ origdvert = orig->getVertDataArray(orig, CD_MDEFORMVERT);
+ totorigvert = orig->getNumVerts(orig);
+ totorigedge = orig->getNumEdges(orig);
+
+ /* Get degree of all vertices */
+ degree = MEM_callocN(sizeof(int) * totorigvert, "degree");
+ for (i = 0; i < totorigedge; i++) {
+ degree[origedge[i].v1]++;
+ degree[origedge[i].v2]++;
+ }
+
+ /* Per edge, store how many subdivisions are needed */
+ edge_subd = MEM_callocN(sizeof(int) * totorigedge, "edge_subd");
+ for (i = 0, totsubd = 0; i < totorigedge; i++) {
+ edge_subd[i] += calc_edge_subdivisions(origvert, orignode,
+ &origedge[i], degree);
+ totsubd += edge_subd[i];
+ }
+
+ MEM_freeN(degree);
+
+ /* Allocate output derivedmesh */
+ dm = CDDM_from_template(orig,
+ totorigvert + totsubd,
+ totorigedge + totsubd,
+ 0, 0, 0);
+
+ outvert = dm->getVertArray(dm);
+ outedge = dm->getEdgeArray(dm);
+ outnode = CustomData_get_layer(&dm->vertData, CD_MVERT_SKIN);
+ outdvert = CustomData_get_layer(&dm->vertData, CD_MDEFORMVERT);
+
+ /* Copy original vertex data */
+ CustomData_copy_data(&orig->vertData,
+ &dm->vertData,
+ 0, 0, totorigvert);
+
+ /* Subdivide edges */
+ for (i = 0, v = totorigvert; i < totorigedge; i++) {
+ struct {
+ /* Vertex group number */
+ int def_nr;
+ float w1, w2;
+ } *vgroups = NULL, *vg;
+ int totvgroup = 0;
+
+ e = &origedge[i];
+
+ if (origdvert) {
+ const MDeformVert *dv1 = &origdvert[e->v1];
+ const MDeformVert *dv2 = &origdvert[e->v2];
+ vgroups = MEM_callocN(sizeof(*vgroups) * dv1->totweight, "vgroup");
+
+ /* Only want vertex groups used by both vertices */
+ for (j = 0; j < dv1->totweight; j++) {
+ vg = NULL;
+ for (k = 0; k < dv2->totweight; k++) {
+ if (dv1->dw[j].def_nr == dv2->dw[k].def_nr) {
+ vg = &vgroups[totvgroup];
+ totvgroup++;
+ break;
+ }
+ }
+
+ if (vg) {
+ vg->def_nr = dv1->dw[j].def_nr;
+ vg->w1 = dv1->dw[j].weight;
+ vg->w1 = dv2->dw[k].weight;
+ }
+ }
+ }
+
+ u = e->v1;
+ radrat = (half_v2(outnode[e->v2].radius) /
+ half_v2(outnode[e->v1].radius));
+ radrat = (radrat + 1) / 2;
+
+ /* Add vertices and edge segments */
+ for (j = 0; j < edge_subd[i]; j++, v++, outedge++) {
+ float r = (j + 1) / (float)(edge_subd[i] + 1);
+ float t = powf(r, radrat);
+
+ /* Interpolate vertex coord */
+ interp_v3_v3v3(outvert[v].co, outvert[e->v1].co,
+ outvert[e->v2].co, t);
+
+ /* Interpolate skin radii */
+ interp_v3_v3v3(outnode[v].radius,
+ orignode[e->v1].radius,
+ orignode[e->v2].radius, t);
+
+ /* Interpolate vertex group weights */
+ for (k = 0; k < totvgroup; k++) {
+ float weight;
+
+ vg = &vgroups[k];
+ weight = interpf(vg->w2, vg->w1, t);
+
+ if (weight > 0)
+ defvert_add_index_notest(&outdvert[v], vg->def_nr, weight);
+ }
+
+ outedge->v1 = u;
+ outedge->v2 = v;
+ u = v;
+ }
+
+ if (vgroups)
+ MEM_freeN(vgroups);
+
+ /* Link up to final vertex */
+ outedge->v1 = u;
+ outedge->v2 = e->v2;
+ outedge++;
+ }
+
+ MEM_freeN(edge_subd);
+
+ return dm;
+}
+
+/******************************* Output *******************************/
+
+/* Can be either quad or triangle */
+static void add_poly(SkinOutput *so,
+ BMVert *v1,
+ BMVert *v2,
+ BMVert *v3,
+ BMVert *v4)
+{
+ BMVert *verts[4] = {v1, v2, v3, v4};
+ BMEdge *edges[4];
+ BMFace *f;
+
+ BLI_assert(v1 != v2 && v1 != v3 && v1 != v4);
+ BLI_assert(v2 != v3 && v2 != v4);
+ BLI_assert(v3 != v4);
+ BLI_assert(v1 && v2 && v3);
+
+ edges[0] = BM_edge_create(so->bm, v1, v2, NULL, TRUE);
+ edges[1] = BM_edge_create(so->bm, v2, v3, NULL, TRUE);
+ if (v4) {
+ edges[2] = BM_edge_create(so->bm, v3, v4, NULL, TRUE);
+ edges[3] = BM_edge_create(so->bm, v4, v1, NULL, TRUE);
+ }
+ else {
+ edges[2] = BM_edge_create(so->bm, v3, v1, NULL, TRUE);
+ edges[3] = NULL;
+ }
+
+ f = BM_face_create(so->bm, verts, edges, v4 ? 4 : 3, TRUE);
+ if (so->smd->flag & MOD_SKIN_SMOOTH_SHADING)
+ BM_elem_flag_enable(f, BM_ELEM_SMOOTH);
+ f->mat_nr = so->mat_nr;
+}
+
+static void connect_frames(SkinOutput *so,
+ BMVert *frame1[4],
+ BMVert *frame2[4])
+{
+ BMVert *q[4][4] = {{frame2[0], frame2[1], frame1[1], frame1[0]},
+ {frame2[1], frame2[2], frame1[2], frame1[1]},
+ {frame2[2], frame2[3], frame1[3], frame1[2]},
+ {frame2[3], frame2[0], frame1[0], frame1[3]}};
+ float p[3], no[3];
+ int i, swap;
+
+ /* Check if frame normals need swap */
+ sub_v3_v3v3(p, q[3][0]->co, q[0][0]->co);
+ normal_quad_v3(no,
+ q[0][0]->co, q[0][1]->co,
+ q[0][2]->co, q[0][3]->co);
+ swap = dot_v3v3(no, p) > 0;
+
+ for (i = 0; i < 4; i++) {
+ if (swap)
+ add_poly(so, q[i][3], q[i][2], q[i][1], q[i][0]);
+ else
+ add_poly(so, q[i][0], q[i][1], q[i][2], q[i][3]);
+ }
+}
+
+static void output_frames(BMesh *bm,
+ SkinNode *sn,
+ const MDeformVert *input_dvert)
+{
+ Frame *f;
+ int i, j;
+
+ /* Output all frame verts */
+ for (i = 0; i < sn->totframe; i++) {
+ f = &sn->frames[i];
+ for (j = 0; j < 4; j++) {
+ if (!f->merge[j].frame) {
+ BMVert *v = f->verts[j] = BM_vert_create(bm, f->co[j], NULL);
+
+ if (input_dvert) {
+ MDeformVert *dv;
+ dv = CustomData_bmesh_get(&bm->vdata,
+ v->head.data,
+ CD_MDEFORMVERT);
+
+ BLI_assert(dv->totweight == 0);
+ defvert_copy(dv, input_dvert);
+ }
+ }
+ }
+ }
+}
+
+#define PRINT_HOLE_INFO 0
+
+static void calc_frame_center(float center[3], const Frame *frame)
+{
+ add_v3_v3v3(center, frame->verts[0]->co, frame->verts[1]->co);
+ add_v3_v3(center, frame->verts[2]->co);
+ add_v3_v3(center, frame->verts[3]->co);
+ mul_v3_fl(center, 0.25f);
+}
+
+/* Does crappy fan triangulation of poly, may not be so accurate for
+ * concave faces */
+static int isect_ray_poly(const float ray_start[3],
+ const float ray_dir[3],
+ BMFace *f,
+ float *r_lambda)
+{
+ BMVert *v, *v_first = NULL, *v_prev = NULL;
+ BMIter iter;
+ float best_dist = FLT_MAX;
+ int hit = 0;
+
+ BM_ITER_ELEM (v, &iter, f, BM_VERTS_OF_FACE) {
+ if (!v_first)
+ v_first = v;
+ else if (v_prev != v_first) {
+ float dist;
+ int curhit;
+
+ curhit = isect_ray_tri_v3(ray_start, ray_dir,
+ v_first->co, v_prev->co, v->co,
+ &dist, NULL);
+ if (curhit && dist < best_dist) {
+ hit = TRUE;
+ best_dist = dist;
+ }
+ }
+
+ v_prev = v;
+ }
+
+ *r_lambda = best_dist;
+ return hit;
+}
+
+/* Reduce the face down to 'n' corners by collapsing the edges;
+ * returns the new face.
+ *
+ * The orig_verts should contain the vertices of 'f'
+ */
+static BMFace *collapse_face_corners(BMesh *bm, BMFace *f, int n,
+ BMVert **orig_verts)
+{
+ int orig_len = f->len;
+
+ BLI_assert(n >= 3);
+ BLI_assert(f->len > n);
+ if (f->len <= n)
+ return f;
+
+ /* Collapse shortest edge for now */
+ while (f->len > n) {
+ BMFace *vf;
+ BMEdge *shortest_edge;
+ BMVert *v_safe, *v_merge;
+ BMOperator op;
+ BMIter iter;
+ int i;
+
+ shortest_edge = BM_face_find_shortest_edge(f);
+ BMO_op_initf(bm, &op, "weldverts");
+
+ /* Note: could probably calculate merges in one go to be
+ * faster */
+
+ v_safe = shortest_edge->v1;
+ v_merge = shortest_edge->v2;
+ mid_v3_v3v3(v_safe->co, v_safe->co, v_merge->co);
+ BMO_slot_map_ptr_insert(bm, &op, "targetmap", v_merge, v_safe);
+ BMO_op_exec(bm, &op);
+ BMO_op_finish(bm, &op);
+
+ /* Find the new face */
+ f = NULL;
+ BM_ITER_ELEM (vf, &iter, v_safe, BM_FACES_OF_VERT) {
+ int wrong_face = FALSE;
+
+ for (i = 0; i < orig_len; i++) {
+ if (orig_verts[i] == v_merge)
+ orig_verts[i] = NULL;
+ else if (orig_verts[i] &&
+ !BM_vert_in_face(vf, orig_verts[i]))
+ {
+ wrong_face = TRUE;
+ break;
+ }
+ }
+
+ if (!wrong_face) {
+ f = vf;
+ break;
+ }
+ }
+
+ BLI_assert(f);
+ }
+
+ return f;
+}
+
+/* Choose a good face to merge the frame with, used in case the frame
+ * is completely inside the hull. */
+static BMFace *skin_hole_target_face(BMesh *bm, Frame *frame)
+{
+ BMFace *f, *isect_target_face, *center_target_face;
+ BMIter iter;
+ float frame_center[3];
+ float frame_normal[3];
+ float best_isect_dist = FLT_MAX;
+ float best_center_dist = FLT_MAX;
+
+ calc_frame_center(frame_center, frame);
+ normal_quad_v3(frame_normal, frame->verts[3]->co,
+ frame->verts[2]->co, frame->verts[1]->co,
+ frame->verts[0]->co);
+
+ /* Use a line intersection test and nearest center test against
+ * all faces */
+ isect_target_face = center_target_face = NULL;
+ BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
+ float dist, poly_center[3];
+ int hit;
+
+ /* Intersection test */
+ hit = isect_ray_poly(frame_center, frame_normal, f, &dist);
+ if (hit && dist < best_isect_dist) {
+ isect_target_face = f;
+ best_isect_dist = dist;
+ }
+
+ /* Nearest test */
+ BM_face_calc_center_mean(f, poly_center);
+ dist = len_v3v3(frame_center, poly_center);
+ if (dist < best_center_dist) {
+ center_target_face = f;
+ best_center_dist = dist;
+ }
+ }
+
+ f = isect_target_face;
+ if (!f || best_center_dist < best_isect_dist / 2)
+ f = center_target_face;
+
+ /* This case is unlikely now, but could still happen. Should look
+ * into splitting edges to make new faces. */
+#if PRINT_HOLE_INFO
+ if (!f) {
+ printf("no good face found\n");
+ }
+#endif
+
+ return f;
+}
+
+/* Use edge-length heuristic to choose from eight possible polygon bridges */
+static void skin_choose_quad_bridge_order(BMVert *a[4], BMVert *b[4],
+ int best_order[4])
+{
+ int orders[8][4];
+ float shortest_len;
+ int i, j;
+
+ /* Enumerate all valid orderings */
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 4; j++) {
+ orders[i][j] = (j + i) % 4;
+ orders[i + 4][j] = 3 - ((j + i) % 4);
+ }
+ }
+
+ shortest_len = FLT_MAX;
+ for (i = 0; i < 8; i++) {
+ float len = 0;
+
+ /* Get total edge length for this configuration */
+ for (j = 0; j < 4; j++)
+ len += len_squared_v3v3(a[j]->co, b[orders[i][j]]->co);
+
+ if (len < shortest_len) {
+ shortest_len = len;
+ memcpy(best_order, orders[i], sizeof(int) * 4);
+ }
+ }
+}
+
+static void skin_fix_hole_no_good_verts(BMesh *bm, Frame *frame, BMFace *split_face)
+{
+ BMFace *f;
+ BMVert *verts[4];
+ BMVert **vert_buf = NULL;
+ BLI_array_declare(vert_buf);
+ BMOIter oiter;
+ BMOperator op;
+ int i, best_order[4];
+
+ BLI_assert(split_face->len >= 3);
+
+ /* Extrude the split face */
+ BMO_mesh_flag_disable_all(bm, NULL, BM_FACE, 1);
+ BMO_elem_flag_enable(bm, split_face, 1);
+ BMO_op_initf(bm, &op, "extrude_face_indiv faces=%ff", 1);
+ BMO_op_exec(bm, &op);
+
+ /* Update split face (should only be one new face created
+ * during extrusion) */
+ split_face = NULL;
+ BMO_ITER (f, &oiter, bm, &op, "faceout", BM_FACE) {
+ BLI_assert(!split_face);
+ split_face = f;
+ }
+
+ BMO_op_finish(bm, &op);
+
+ if (split_face->len == 3) {
+ BMEdge *longest_edge;
+
+ /* Need at least four ring edges, so subdivide longest edge if
+ * face is a triangle */
+ longest_edge = BM_face_find_longest_edge(split_face);
+ BMO_mesh_flag_disable_all(bm, NULL, BM_EDGE, 1);
+ BMO_elem_flag_enable(bm, longest_edge, 1);
+ BMO_op_callf(bm, "esubd edges=%fe numcuts=%i quadcornertype=%i",
+ 1, 1, SUBD_STRAIGHT_CUT);
+ }
+ else if (split_face->len > 4) {
+ /* Maintain a dynamic vert array containing the split_face's
+ * vertices, avoids frequent allocs in collapse_face_corners() */
+ if (BLI_array_count(vert_buf) < split_face->len) {
+ BLI_array_grow_items(vert_buf, (split_face->len -
+ BLI_array_count(vert_buf)));
+ }
+
+ /* Get split face's verts */
+ BM_iter_as_array(bm, BM_VERTS_OF_FACE, split_face,
+ (void **)verts, split_face->len);
+
+ /* Earlier edge split operations may have turned some quads
+ * into higher-degree faces */
+ split_face = collapse_face_corners(bm, split_face, 4, vert_buf);
+ }
+
+ /* Done with dynamic array, split_face must now be a quad */
+ BLI_array_free(vert_buf);
+ BLI_assert(split_face->len == 4);
+ if (split_face->len != 4)
+ return;
+
+ /* Get split face's verts */
+ BM_iter_as_array(bm, BM_VERTS_OF_FACE, split_face, (void **)verts, 4);
+ skin_choose_quad_bridge_order(verts, frame->verts, best_order);
+
+ /* Delete split face and merge */
+ BM_face_kill(bm, split_face);
+ BMO_op_init(bm, &op, "weldverts");
+ for (i = 0; i < 4; i++) {
+ BMO_slot_map_ptr_insert(bm, &op, "targetmap",
+ verts[i], frame->verts[best_order[i]]);
+ }
+ BMO_op_exec(bm, &op);
+ BMO_op_finish(bm, &op);
+}
+
+/* If the frame has some vertices that are inside the hull (detached)
+ * and some attached, duplicate the attached vertices and take the
+ * whole frame off the hull. */
+static void skin_hole_detach_partially_attached_frame(BMesh *bm, Frame *frame)
+{
+ int i, attached[4], totattached = 0;
+
+ /* Get/count attached frame corners */
+ for (i = 0; i < 4; i++) {
+ if (!frame->inside_hull[i])
+ attached[totattached++] = i;
+ }
+
+ /* Detach everything */
+ for (i = 0; i < totattached; i++) {
+ BMVert **av = &frame->verts[attached[i]];
+ (*av) = BM_vert_create(bm, (*av)->co, *av);
+ }
+}
+
+
+static void quad_from_tris(BMesh *bm, BMEdge *e, BMFace *adj[2], BMVert *ndx[4])
+{
+ BMVert *tri[2][3];
+ BMVert *opp = NULL;
+ int i, j;
+
+ BLI_assert(adj[0]->len == 3 && adj[1]->len == 3);
+
+ BM_iter_as_array(bm, BM_VERTS_OF_FACE, adj[0], (void **)tri[0], 3);
+ BM_iter_as_array(bm, BM_VERTS_OF_FACE, adj[1], (void **)tri[1], 3);
+
+ /* Find what the second tri has that the first doesn't */
+ for (i = 0; i < 3; i++) {
+ if (tri[1][i] != tri[0][0] &&
+ tri[1][i] != tri[0][1] &&
+ tri[1][i] != tri[0][2])
+ {
+ opp = tri[1][i];
+ break;
+ }
+ }
+ BLI_assert(opp);
+
+ for (i = 0, j = 0; i < 3; i++, j++) {
+ ndx[j] = tri[0][i];
+ /* When the triangle edge cuts across our quad-to-be,
+ * throw in the second triangle's vertex */
+ if ((tri[0][i] == e->v1 || tri[0][i] == e->v2) &&
+ (tri[0][(i + 1) % 3] == e->v1 || tri[0][(i + 1) % 3] == e->v2))
+ {
+ j++;
+ ndx[j] = opp;
+ }
+ }
+}
+
+static void add_quad_from_tris(SkinOutput *so, BMEdge *e, BMFace *adj[2])
+{
+ BMVert *quad[4];
+
+ quad_from_tris(so->bm, e, adj, quad);
+
+ add_poly(so, quad[0], quad[1], quad[2], quad[3]);
+}
+
+/* Returns the number of faces that are adjacent to both f1 and f2 */
+static int BM_face_share_face_count(BMFace *f1, BMFace *f2)
+{
+ BMIter iter1, iter2;
+ BMEdge *e;
+ BMFace *f;
+ int count = 0;
+
+ BM_ITER_ELEM (e, &iter1, f1, BM_EDGES_OF_FACE) {
+ BM_ITER_ELEM (f, &iter2, e, BM_FACES_OF_EDGE) {
+ if (f != f1 && f != f2 && BM_face_share_edge_count(f, f2))
+ count++;
+ }
+ }
+
+ return count;
+}
+
+static void hull_merge_triangles(SkinOutput *so, const SkinModifierData *smd)
+{
+ BMIter iter;
+ BMEdge *e;
+ Heap *heap;
+ float score;
+
+ heap = BLI_heap_new();
+
+ BM_mesh_elem_hflag_disable_all(so->bm, BM_FACE, BM_ELEM_TAG, FALSE);
+
+ /* Build heap */
+ BM_ITER_MESH (e, &iter, so->bm, BM_EDGES_OF_MESH) {
+ BMFace *adj[2];
+
+ /* Only care if the edge is used by exactly two triangles */
+ if (BM_edge_face_pair(e, &adj[0], &adj[1])) {
+ if (adj[0]->len == 3 && adj[1]->len == 3) {
+ BMVert *quad[4];
+
+ /* Construct quad using the two triangles adjacent to
+ * the edge */
+ quad_from_tris(so->bm, e, adj, quad);
+
+ /* Calculate a score for the quad, higher score for
+ * triangles being closer to coplanar */
+ score = ((BM_face_calc_area(adj[0]) +
+ BM_face_calc_area(adj[1])) *
+ dot_v3v3(adj[0]->no, adj[1]->no));
+
+ /* Check if quad crosses the axis of symmetry */
+ if (quad_crosses_symmetry_plane(quad, smd)) {
+ /* Increase score if the triangles form a
+ * symmetric quad, otherwise don't use it */
+ if (is_quad_symmetric(quad, smd))
+ score *= 10;
+ else
+ continue;
+ }
+
+ /* Don't use the quad if it's concave */
+ if (!is_quad_convex_v3(quad[0]->co, quad[1]->co,
+ quad[2]->co, quad[3]->co))
+ {
+ continue;
+ }
+
+ BLI_heap_insert(heap, -score, e);
+ }
+ }
+ }
+
+ while (!BLI_heap_empty(heap)) {
+ BMFace *adj[2];
+
+ e = BLI_heap_popmin(heap);
+
+ if (BM_edge_face_pair(e, &adj[0], &adj[1])) {
+ /* If both triangles still free, and if they don't already
+ * share a border with another face, output as a quad */
+ if (!BM_elem_flag_test(adj[0], BM_ELEM_TAG) &&
+ !BM_elem_flag_test(adj[1], BM_ELEM_TAG) &&
+ !BM_face_share_face_count(adj[0], adj[1]))
+ {
+ add_quad_from_tris(so, e, adj);
+ BM_elem_flag_enable(adj[0], BM_ELEM_TAG);
+ BM_elem_flag_enable(adj[1], BM_ELEM_TAG);
+ BM_elem_flag_enable(e, BM_ELEM_TAG);
+ }
+ }
+ }
+
+ BMO_op_callf(so->bm, "del geom=%hef context=%i", BM_ELEM_TAG, DEL_ONLYTAGGED);
+
+ BLI_heap_free(heap, NULL);
+}
+
+static void skin_merge_close_frame_verts(SkinNode *skin_nodes, int totvert,
+ const MeshElemMap *emap,
+ const MEdge *medge)
+{
+ Frame **hull_frames;
+ int v, tothullframe;
+
+ for (v = 0; v < totvert; v++) {
+ /* Only check branch nodes */
+ if (!skin_nodes[v].totframe) {
+ hull_frames = collect_hull_frames(v, skin_nodes,
+ emap, medge,
+ &tothullframe);
+ merge_frame_corners(hull_frames, tothullframe);
+ MEM_freeN(hull_frames);
+ }
+ }
+}
+
+static void skin_update_merged_vertices(SkinNode *skin_nodes, int totvert)
+{
+ int v;
+
+ for (v = 0; v < totvert; ++v) {
+ SkinNode *sn = &skin_nodes[v];
+ int i, j;
+
+ for (i = 0; i < sn->totframe; i++) {
+ Frame *f = &sn->frames[i];
+
+ for (j = 0; j < 4; j++) {
+ if (f->merge[j].frame) {
+ /* Merge chaining not allowed */
+ BLI_assert(!f->merge[j].frame->merge[f->merge[j].corner].frame);
+
+ f->verts[j] = f->merge[j].frame->verts[f->merge[j].corner];
+ }
+ }
+ }
+ }
+}
+
+static void skin_fix_hull_topology(BMesh *bm, SkinNode *skin_nodes,
+ int totvert)
+{
+ int v;
+
+ for (v = 0; v < totvert; v++) {
+ SkinNode *sn = &skin_nodes[v];
+ int j;
+
+ for (j = 0; j < sn->totframe; j++) {
+ Frame *f = &sn->frames[j];
+
+ if (f->detached) {
+ BMFace *target_face;
+
+ skin_hole_detach_partially_attached_frame(bm, f);
+
+ target_face = skin_hole_target_face(bm, f);
+ if (target_face)
+ skin_fix_hole_no_good_verts(bm, f, target_face);
+ }
+ }
+ }
+}
+
+static void skin_output_end_nodes(SkinOutput *so, SkinNode *skin_nodes,
+ int totvert)
+{
+ int v;
+
+ for (v = 0; v < totvert; ++v) {
+ SkinNode *sn = &skin_nodes[v];
+ /* Assuming here just two frames */
+ if (sn->flag & SEAM_FRAME) {
+ BMVert *v_order[4];
+ int i, order[4];
+
+ skin_choose_quad_bridge_order(sn->frames[0].verts,
+ sn->frames[1].verts,
+ order);
+ for (i = 0; i < 4; i++)
+ v_order[i] = sn->frames[1].verts[order[i]];
+ connect_frames(so, sn->frames[0].verts, v_order);
+ }
+ else if (sn->totframe == 2) {
+ connect_frames(so,
+ sn->frames[0].verts,
+ sn->frames[1].verts);
+ }
+
+ if (sn->flag & CAP_START) {
+ add_poly(so,
+ sn->frames[0].verts[3],
+ sn->frames[0].verts[2],
+ sn->frames[0].verts[1],
+ sn->frames[0].verts[0]);
+ }
+ if (sn->flag & CAP_END) {
+ add_poly(so,
+ sn->frames[1].verts[3],
+ sn->frames[1].verts[2],
+ sn->frames[1].verts[1],
+ sn->frames[1].verts[0]);
+ }
+ }
+}
+
+static void skin_output_connections(SkinOutput *so, SkinNode *skin_nodes,
+ const MEdge *medge,
+ int totedge)
+{
+ int e;
+
+ for (e = 0; e < totedge; e++) {
+ SkinNode *a, *b;
+ a = &skin_nodes[medge[e].v1];
+ b = &skin_nodes[medge[e].v2];
+
+ if (a->totframe && b->totframe) {
+ if ((a->flag & SEAM_FRAME) || (b->flag & SEAM_FRAME)) {
+ Frame *fr[2] = {&a->frames[0], &b->frames[0]};
+ BMVert *v_order[4];
+ int i, order[4];
+
+ if ((a->flag & SEAM_FRAME) && (e != a->seam_edges[0]))
+ fr[0]++;
+ if ((b->flag & SEAM_FRAME) && (e != b->seam_edges[0]))
+ fr[1]++;
+
+ skin_choose_quad_bridge_order(fr[0]->verts, fr[1]->verts, order);
+ for (i = 0; i < 4; i++)
+ v_order[i] = fr[1]->verts[order[i]];
+ connect_frames(so, fr[0]->verts, v_order);
+ }
+ else {
+ connect_frames(so,
+ a->frames[0].verts,
+ b->frames[0].verts);
+ }
+ }
+ }
+}
+
+static void skin_smooth_hulls(BMesh *bm, SkinNode *skin_nodes,
+ int totvert, const SkinModifierData *smd)
+{
+ BMIter iter, eiter;
+ BMVert *v;
+ int i, j, k, skey;
+
+ if (smd->branch_smoothing == 0)
+ return;
+
+ /* Mark all frame vertices */
+ BM_mesh_elem_hflag_disable_all(bm, BM_VERT, BM_ELEM_TAG, FALSE);
+ for (i = 0; i < totvert; i++) {
+ for (j = 0; j < skin_nodes[i].totframe; j++) {
+ Frame *frame = &skin_nodes[i].frames[j];
+
+ for (k = 0; k < 4; k++)
+ BM_elem_flag_enable(frame->verts[k], BM_ELEM_TAG);
+ }
+ }
+
+ /* Add temporary shapekey layer to store original coordinates */
+ BM_data_layer_add(bm, &bm->vdata, CD_SHAPEKEY);
+ skey = CustomData_number_of_layers(&bm->vdata, CD_SHAPEKEY) - 1;
+ BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
+ copy_v3_v3(CustomData_bmesh_get_n(&bm->vdata, v->head.data,
+ CD_SHAPEKEY, skey), v->co);
+ }
+
+ /* Smooth vertices, weight unmarked vertices more strongly (helps
+ * to smooth frame vertices, but don't want to alter them too
+ * much) */
+ BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
+ BMEdge *e;
+ float avg[3];
+ float weight = smd->branch_smoothing;
+ int totv = 1;
+
+ if (BM_elem_flag_test(v, BM_ELEM_TAG))
+ weight *= 0.5f;
+
+ copy_v3_v3(avg, v->co);
+ BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
+ BMVert *other = BM_edge_other_vert(e, v);
+
+ add_v3_v3(avg, CustomData_bmesh_get_n(&bm->vdata,
+ other->head.data,
+ CD_SHAPEKEY, skey));
+ totv++;
+ }
+
+ if (totv > 1) {
+ mul_v3_fl(avg, 1.0f / (float)totv);
+ interp_v3_v3v3(v->co, v->co, avg, weight);
+ }
+ }
+
+ /* Done with original coordinates */
+ BM_data_layer_free_n(bm, &bm->vdata, CD_SHAPEKEY, skey);
+}
+
+/* Returns TRUE if all hulls are successfully built, FALSE otherwise */
+static int skin_output_branch_hulls(SkinOutput *so, SkinNode *skin_nodes,
+ int totvert, const MeshElemMap *emap,
+ const MEdge *medge)
+{
+ int result = TRUE, v;
+
+ for (v = 0; v < totvert; v++) {
+ SkinNode *sn = &skin_nodes[v];
+
+ /* Branch node hulls */
+ if (!sn->totframe) {
+ Frame **hull_frames;
+ int tothullframe;
+
+ hull_frames = collect_hull_frames(v, skin_nodes,
+ emap, medge,
+ &tothullframe);
+ if (!build_hull(so, hull_frames, tothullframe))
+ result = FALSE;
+
+ MEM_freeN(hull_frames);
+ }
+ }
+
+ return result;
+}
+
+static BMesh *build_skin(SkinNode *skin_nodes,
+ int totvert, const MeshElemMap *emap,
+ const MEdge *medge, int totedge,
+ const MDeformVert *input_dvert,
+ SkinModifierData *smd)
+{
+ SkinOutput so;
+ int v;
+
+ so.smd = smd;
+ so.bm = BM_mesh_create(&bm_mesh_allocsize_default);
+ so.mat_nr = 0;
+
+ if (input_dvert)
+ BM_data_layer_add(so.bm, &so.bm->vdata, CD_MDEFORMVERT);
+
+ /* Check for mergeable frame corners around hulls before
+ * outputting vertices */
+ skin_merge_close_frame_verts(skin_nodes, totvert, emap, medge);
+
+ /* Write out all frame vertices to the mesh */
+ for (v = 0; v < totvert; ++v) {
+ if (skin_nodes[v].totframe)
+ output_frames(so.bm, &skin_nodes[v],
+ input_dvert ? &input_dvert[v] : NULL);
+ }
+
+ /* Update vertex pointers for merged frame corners */
+ skin_update_merged_vertices(skin_nodes, totvert);
+
+ if (!skin_output_branch_hulls(&so, skin_nodes, totvert, emap, medge))
+ modifier_setError(&smd->modifier, "Hull error");
+
+ /* Merge triangles here in the hope of providing better target
+ * faces for skin_fix_hull_topology() to connect to */
+ hull_merge_triangles(&so, smd);
+
+ /* Using convex hulls may not generate a nice manifold mesh. Two
+ * problems can occur: an input frame's edges may be inside the
+ * hull, and/or an input frame's vertices may be inside the hull.
+ *
+ * General fix to produce manifold mesh: for any frame that is
+ * partially detached, first detach it fully, then find a suitable
+ * existing face to merge with. (Note that we do this after
+ * creating all hull faces, but before creating any other
+ * faces.
+ */
+ skin_fix_hull_topology(so.bm, skin_nodes, totvert);
+
+ skin_smooth_hulls(so.bm, skin_nodes, totvert, smd);
+
+ skin_output_end_nodes(&so, skin_nodes, totvert);
+ skin_output_connections(&so, skin_nodes, medge, totedge);
+ hull_merge_triangles(&so, smd);
+
+ return so.bm;
+}
+
+static void skin_set_orig_indices(DerivedMesh *dm)
+{
+ int *orig, totpoly, i;
+
+ totpoly = dm->getNumPolys(dm);
+ orig = CustomData_add_layer(&dm->polyData, CD_ORIGINDEX,
+ CD_CALLOC, 0, totpoly);
+ for (i = 0; i < totpoly; i++)
+ orig[i] = ORIGINDEX_NONE;
+}
+
+/*
+ * 0) Subdivide edges (in caller)
+ * 1) Generate good edge matrices (uses root nodes)
+ * 2) Generate node frames
+ * 3) Output vertices and polygons from frames, connections, and hulls
+ */
+static DerivedMesh *base_skin(DerivedMesh *origdm,
+ SkinModifierData *smd)
+{
+ BMEditMesh fake_em;
+ DerivedMesh *result;
+ MVertSkin *nodes;
+ BMesh *bm;
+ EMat *emat;
+ SkinNode *skin_nodes;
+ MeshElemMap *emap;
+ int *emapmem;
+ MVert *mvert;
+ MEdge *medge;
+ MDeformVert *dvert;
+ int totvert, totedge;
+
+ nodes = CustomData_get_layer(&origdm->vertData, CD_MVERT_SKIN);
+
+ mvert = origdm->getVertArray(origdm);
+ dvert = origdm->getVertDataArray(origdm, CD_MDEFORMVERT);
+ medge = origdm->getEdgeArray(origdm);
+ totvert = origdm->getNumVerts(origdm);
+ totedge = origdm->getNumEdges(origdm);
+
+ create_vert_edge_map(&emap, &emapmem, medge, totvert, totedge);
+
+ emat = build_edge_mats(nodes, mvert, totvert, medge, emap, totedge);
+ skin_nodes = build_frames(mvert, totvert, nodes, emap, emat);
+ MEM_freeN(emat);
+ emat = NULL;
+
+ bm = build_skin(skin_nodes, totvert, emap, medge, totedge, dvert, smd);
+
+ MEM_freeN(skin_nodes);
+ MEM_freeN(emap);
+ MEM_freeN(emapmem);
+
+ if (!bm)
+ return NULL;
+
+ fake_em.bm = bm;
+ result = CDDM_from_BMEditMesh(&fake_em, NULL, FALSE, FALSE);
+ BM_mesh_free(bm);
+
+ CDDM_calc_edges(result);
+ CDDM_calc_normals(result);
+
+ skin_set_orig_indices(result);
+
+ return result;
+}
+
+static DerivedMesh *final_skin(SkinModifierData *smd,
+ DerivedMesh *origdm)
+{
+ DerivedMesh *dm;
+
+ /* Skin node layer is required */
+ if (!CustomData_get_layer(&origdm->vertData, CD_MVERT_SKIN))
+ return origdm;
+
+ origdm = subdivide_base(origdm);
+ dm = base_skin(origdm, smd);
+
+ origdm->release(origdm);
+
+ return dm;
+}
+
+
+/**************************** Skin Modifier ***************************/
+
+static void initData(ModifierData *md)
+{
+ SkinModifierData *smd = (SkinModifierData *) md;
+
+ /* Enable in editmode by default */
+ md->mode |= eModifierMode_Editmode;
+
+ smd->branch_smoothing = 0;
+ smd->flag = 0;
+ smd->symmetry_axes = MOD_SKIN_SYMM_X;
+}
+
+static void copyData(ModifierData *md, ModifierData *target)
+{
+ SkinModifierData *smd = (SkinModifierData *) md;
+ SkinModifierData *tsmd = (SkinModifierData *) target;
+
+ *tsmd = *smd;
+}
+
+static DerivedMesh *applyModifierEM(ModifierData *md,
+ Object *UNUSED(ob),
+ BMEditMesh *UNUSED(em),
+ DerivedMesh *dm)
+{
+ DerivedMesh *result;
+
+ if (!(result = final_skin((SkinModifierData *)md, dm)))
+ return dm;
+ return result;
+}
+
+static DerivedMesh *applyModifier(ModifierData *md,
+ Object *UNUSED(ob),
+ DerivedMesh *dm,
+ ModifierApplyFlag UNUSED(flag))
+{
+ DerivedMesh *result;
+
+ if (!(result = final_skin((SkinModifierData *)md, dm)))
+ return dm;
+ return result;
+}
+
+static CustomDataMask requiredDataMask(Object *UNUSED(ob),
+ ModifierData *UNUSED(md))
+{
+ return CD_MASK_MVERT_SKIN | CD_MASK_MDEFORMVERT;
+}
+
+ModifierTypeInfo modifierType_Skin = {
+ /* name */ "Skin",
+ /* structName */ "SkinModifierData",
+ /* structSize */ sizeof(SkinModifierData),
+ /* type */ eModifierTypeType_Constructive,
+ /* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_SupportsEditmode,
+
+ /* copyData */ copyData,
+ /* deformVerts */ NULL,
+ /* deformMatrices */ NULL,
+ /* deformVertsEM */ NULL,
+ /* deformMatricesEM */ NULL,
+ /* applyModifier */ applyModifier,
+ /* applyModifierEM */ applyModifierEM,
+ /* initData */ initData,
+ /* requiredDataMask */ requiredDataMask,
+ /* freeData */ NULL,
+ /* isDisabled */ NULL,
+ /* updateDepgraph */ NULL,
+ /* dependsOnTime */ NULL,
+ /* dependsOnNormals */ NULL,
+ /* foreachObjectLink */ NULL,
+ /* foreachIDLink */ NULL,
+};
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 0ca4d8dcd4f..059218ecb60 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -32,7 +32,6 @@
* \ingroup modifiers
*/
-
#include "DNA_meshdata_types.h"
#include "MEM_guardedalloc.h"
@@ -51,12 +50,19 @@
#include "MOD_modifiertypes.h"
#include "MOD_util.h"
-
typedef struct EdgeFaceRef {
int f1; /* init as -1 */
int f2;
} EdgeFaceRef;
+/* spesific function for solidify - define locally */
+BLI_INLINE void madd_v3v3short_fl(float r[3], const short a[3], const float f)
+{
+ r[0] += (float)a[0] * f;
+ r[1] += (float)a[1] * f;
+ r[2] += (float)a[2] * f;
+}
+
static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
{
int i, numVerts, numEdges, numFaces;
@@ -101,25 +107,10 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
EdgeFaceRef *edge_ref;
float edge_normal[3];
- /* This function adds an edge hash if its not there, and adds the face index */
-#define NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(EDV1, EDV2); \
- { \
- const unsigned int ml_v1 = EDV1; \
- const unsigned int ml_v2 = EDV2; \
- edge_ref = (EdgeFaceRef *)BLI_edgehash_lookup(edge_hash, ml_v1, ml_v2); \
- if (!edge_ref) { \
- edge_ref = &edge_ref_array[edge_ref_count]; edge_ref_count++; \
- edge_ref->f1 = i; \
- edge_ref->f2 =- 1; \
- BLI_edgehash_insert(edge_hash, ml_v1, ml_v2, edge_ref); \
- } \
- else { \
- edge_ref->f2 = i; \
- } \
- }
- /* --- end define --- */
-
+ /* This loop adds an edge hash if its not there, and adds the face index */
for (i = 0; i < numFaces; i++, mp++) {
+ unsigned int ml_v1;
+ unsigned int ml_v2;
int j;
f_no = face_nors[i];
@@ -127,8 +118,23 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
mesh_calc_poly_normal(mp, mloop + mp->loopstart, mvert, f_no);
ml = mloop + mp->loopstart;
- for (j = 0; j < mp->totloop; j++, ml++) {
- NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(ml->v, ME_POLY_LOOP_NEXT(mloop, mp, j)->v);
+
+ for (j = 0, ml_v1 = ml->v, ml_v2 = ml[mp->totloop - 1].v;
+ j < mp->totloop;
+ j++, ml++, ml_v2 = ml_v1, ml_v1 = ml->v)
+ {
+ /* --- add edge ref to face --- */
+ edge_ref = (EdgeFaceRef *)BLI_edgehash_lookup(edge_hash, ml_v1, ml_v2);
+ if (!edge_ref) {
+ edge_ref = &edge_ref_array[edge_ref_count++];
+ edge_ref->f1 = i;
+ edge_ref->f2 = -1;
+ BLI_edgehash_insert(edge_hash, ml_v1, ml_v2, edge_ref);
+ }
+ else {
+ edge_ref->f2 = i;
+ }
+ /* --- done --- */
}
}
@@ -168,7 +174,7 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
}
}
}
-
+
static void initData(ModifierData *md)
{
SolidifyModifierData *smd = (SolidifyModifierData *) md;
@@ -176,7 +182,7 @@ static void initData(ModifierData *md)
smd->offset_fac = -1.0f;
smd->flag = MOD_SOLIDIFY_RIM;
}
-
+
static void copyData(ModifierData *md, ModifierData *target)
{
SolidifyModifierData *smd = (SolidifyModifierData *) md;
@@ -240,8 +246,8 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
float (*face_nors_result)[3] = NULL;
- const float ofs_orig = -(((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
- const float ofs_new = smd->offset - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
+ const float ofs_orig = -(((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
+ const float ofs_new = smd->offset + ofs_orig;
const float offset_fac_vg = smd->offset_fac_vg;
const float offset_fac_vg_inv = 1.0f - smd->offset_fac_vg;
@@ -266,46 +272,48 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
unsigned int v1, v2;
int eidx;
+#define INVALID_UNUSED -1
+#define INVALID_PAIR -2
+
+ edge_users = MEM_mallocN(sizeof(int) * numEdges, "solid_mod edges");
+ edge_order = MEM_mallocN(sizeof(char) * numEdges, "solid_mod eorder");
+
for (i = 0, mv = orig_mvert; i < numVerts; i++, mv++) {
mv->flag &= ~ME_VERT_TMP_TAG;
}
+ /* save doing 2 loops here... */
+#if 0
+ fill_vn_i(edge_users, numEdges, INVALID_UNUSED);
+#endif
+
for (i = 0, ed = orig_medge; i < numEdges; i++, ed++) {
BLI_edgehash_insert(edgehash, ed->v1, ed->v2, SET_INT_IN_POINTER(i));
+ edge_users[i] = INVALID_UNUSED;
}
-#define INVALID_UNUSED -1
-#define INVALID_PAIR -2
-
-#define ADD_EDGE_USER(_v1, _v2, edge_ord) \
- { \
- const unsigned int ml_v1 = _v1; \
- const unsigned int ml_v2 = _v2; \
- eidx= GET_INT_FROM_POINTER(BLI_edgehash_lookup(edgehash, ml_v1, ml_v2)); \
- if (edge_users[eidx] == INVALID_UNUSED) { \
- ed= orig_medge + eidx; \
- edge_users[eidx] = (ml_v1 < ml_v2) == (ed->v1 < ed->v2) ? i : (i + numFaces); \
- edge_order[eidx] = edge_ord; \
- } \
- else { \
- edge_users[eidx] = INVALID_PAIR; \
- } \
- }
-
-
- edge_users = MEM_mallocN(sizeof(int) * numEdges, "solid_mod edges");
- edge_order = MEM_mallocN(sizeof(char) * numEdges, "solid_mod eorder");
- fill_vn_i(edge_users, numEdges, INVALID_UNUSED);
-
for (i = 0, mp = orig_mpoly; i < numFaces; i++, mp++) {
- MLoop *ml;
-
- for (ml = orig_mloop + mp->loopstart, j = 0; j < mp->totloop; ml++, j++) {
- ADD_EDGE_USER(ml->v, ME_POLY_LOOP_NEXT(orig_mloop, mp, j)->v, j);
- }
+ MLoop *ml = orig_mloop + mp->loopstart;
+ unsigned int ml_v1;
+ unsigned int ml_v2;
+
+ for (j = 0, ml_v1 = ml->v, ml_v2 = ml[mp->totloop - 1].v;
+ j < mp->totloop;
+ j++, ml++, ml_v2 = ml_v1, ml_v1 = ml->v)
+ {
+ /* add edge user */
+ eidx = GET_INT_FROM_POINTER(BLI_edgehash_lookup(edgehash, ml_v1, ml_v2));
+ if (edge_users[eidx] == INVALID_UNUSED) {
+ ed = orig_medge + eidx;
+ edge_users[eidx] = (ml_v1 < ml_v2) == (ed->v1 < ed->v2) ? i : (i + numFaces);
+ edge_order[eidx] = j;
+ }
+ else {
+ edge_users[eidx] = INVALID_PAIR;
+ }
+ }
}
-#undef ADD_EDGE_USER
#undef INVALID_UNUSED
#undef INVALID_PAIR
@@ -364,7 +372,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* if the original has it, get the result so we can update it */
face_nors_result = CustomData_get_layer(&result->polyData, CD_NORMAL);
- /*flip normals*/
+ /* flip normals */
mp = mpoly + numFaces;
for (i = 0; i < dm->numPolyData; i++, mp++) {
MLoop *ml2;
@@ -422,7 +430,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
scalar_short_vgroup = (offset_fac_vg + (scalar_short_vgroup * offset_fac_vg_inv)) * scalar_short;
dv++;
}
- VECADDFAC(mv->co, mv->co, mv->no, scalar_short_vgroup);
+ madd_v3v3short_fl(mv->co, mv->no, scalar_short_vgroup);
}
}
@@ -437,7 +445,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
scalar_short_vgroup = (offset_fac_vg + (scalar_short_vgroup * offset_fac_vg_inv)) * scalar_short;
dv++;
}
- VECADDFAC(mv->co, mv->co, mv->no, scalar_short_vgroup);
+ madd_v3v3short_fl(mv->co, mv->no, scalar_short_vgroup);
}
}
@@ -612,10 +620,10 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
if (fidx >= numFaces) {
fidx -= numFaces;
- flip = 1;
+ flip = TRUE;
}
else {
- flip = 0;
+ flip = FALSE;
}
ed = medge + eidx;
@@ -638,7 +646,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
CustomData_copy_data(&dm->loopData, &result->loopData, k2, numLoops * 2 + j + 2, 1);
CustomData_copy_data(&dm->loopData, &result->loopData, k1, numLoops * 2 + j + 3, 1);
- if (flip) {
+ if (flip == FALSE) {
ml[j].v = ed->v1;
ml[j++].e = eidx;
@@ -780,7 +788,7 @@ ModifierTypeInfo modifierType_Solidify = {
/* isDisabled */ NULL,
/* updateDepgraph */ NULL,
/* dependsOnTime */ NULL,
- /* dependsOnNormals */ NULL,
+ /* dependsOnNormals */ NULL,
/* foreachObjectLink */ NULL,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c
index 98fa6e8e26d..1dbbe14e643 100644
--- a/source/blender/modifiers/intern/MOD_util.c
+++ b/source/blender/modifiers/intern/MOD_util.c
@@ -276,5 +276,6 @@ void modifier_type_init(ModifierTypeInfo *types[])
INIT_TYPE(WeightVGProximity);
INIT_TYPE(DynamicPaint);
INIT_TYPE(Remesh);
+ INIT_TYPE(Skin);
#undef INIT_TYPE
}
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 3ac7e74a700..358abb08ba4 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -36,6 +36,7 @@ set(INC
../render/extern/include
../../../intern/guardedalloc
../../../intern/raskter
+ ../compositor
)
set(INC_SYS
@@ -109,6 +110,13 @@ set(SRC
composite/nodes/node_composite_vecBlur.c
composite/nodes/node_composite_viewer.c
composite/nodes/node_composite_zcombine.c
+ composite/nodes/node_composite_bokehblur.c
+ composite/nodes/node_composite_bokehimage.c
+ composite/nodes/node_composite_boxmask.c
+ composite/nodes/node_composite_ellipsemask.c
+ composite/nodes/node_composite_switch.c
+ composite/nodes/node_composite_colorcorrection.c
+
composite/node_composite_tree.c
composite/node_composite_util.c
@@ -152,6 +160,7 @@ set(SRC
shader/nodes/node_shader_volume_isotropic.c
shader/nodes/node_shader_light_path.c
shader/nodes/node_shader_light_falloff.c
+ shader/nodes/node_shader_object_info.c
shader/nodes/node_shader_mix_shader.c
shader/nodes/node_shader_add_shader.c
shader/nodes/node_shader_output_lamp.c
diff --git a/source/blender/nodes/NOD_composite.h b/source/blender/nodes/NOD_composite.h
index 4378c6a1d36..f850ea91f12 100644
--- a/source/blender/nodes/NOD_composite.h
+++ b/source/blender/nodes/NOD_composite.h
@@ -122,4 +122,12 @@ void register_node_type_cmp_glare(struct bNodeTreeType *ttype);
void register_node_type_cmp_tonemap(struct bNodeTreeType *ttype);
void register_node_type_cmp_lensdist(struct bNodeTreeType *ttype);
+
+void register_node_type_cmp_colorcorrection(struct bNodeTreeType *ttype);
+void register_node_type_cmp_boxmask(struct bNodeTreeType *ttype);
+void register_node_type_cmp_ellipsemask(struct bNodeTreeType *ttype);
+void register_node_type_cmp_bokehimage(struct bNodeTreeType *ttype);
+void register_node_type_cmp_bokehblur(struct bNodeTreeType *ttype);
+void register_node_type_cmp_switch(struct bNodeTreeType *ttype);
+
#endif
diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h
index 3d93f41cfe5..dd6d25380b4 100644
--- a/source/blender/nodes/NOD_shader.h
+++ b/source/blender/nodes/NOD_shader.h
@@ -74,6 +74,7 @@ void register_node_type_sh_attribute(struct bNodeTreeType *ttype);
void register_node_type_sh_geometry(struct bNodeTreeType *ttype);
void register_node_type_sh_light_path(struct bNodeTreeType *ttype);
void register_node_type_sh_light_falloff(struct bNodeTreeType *ttype);
+void register_node_type_sh_object_info(struct bNodeTreeType *ttype);
void register_node_type_sh_fresnel(struct bNodeTreeType *ttype);
void register_node_type_sh_layer_weight(struct bNodeTreeType *ttype);
void register_node_type_sh_tex_coord(struct bNodeTreeType *ttype);
diff --git a/source/blender/nodes/SConscript b/source/blender/nodes/SConscript
index c8b13e24533..86178b31688 100644
--- a/source/blender/nodes/SConscript
+++ b/source/blender/nodes/SConscript
@@ -13,6 +13,7 @@ incs += ' ../imbuf ../avi '
incs += ' ../blenloader'
incs += ' ../blenfont ../blenkernel ../renderconverter '
incs += ' ../gpu #/extern/glew/include '
+incs += ' ../compositor '
incs += ' ' + env['BF_OPENGL_INC']
incs += ' ' + env['BF_ZLIB_INC']
diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c
index 67b5c3641b5..a88ba82f505 100644
--- a/source/blender/nodes/composite/node_composite_tree.c
+++ b/source/blender/nodes/composite/node_composite_tree.c
@@ -59,6 +59,7 @@
#include "NOD_composite.h"
#include "node_composite_util.h"
+#include "COM_compositor.h"
static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func)
{
@@ -136,12 +137,22 @@ static void localize(bNodeTree *localtree, bNodeTree *ntree)
if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
if (node->id) {
if (node->flag & NODE_DO_OUTPUT)
- node->new_node->id= (ID *)BKE_image_copy((Image *)node->id);
+ node->new_node->id= (ID *)node->id;
else
node->new_node->id= NULL;
}
}
+ /* copy over the preview buffers to update graduatly */
+ if (node->preview) {
+ bNodePreview *preview = MEM_callocN(sizeof(bNodePreview), "Preview");
+ preview->pad = node->preview->pad;
+ preview->xsize = node->preview->xsize;
+ preview->ysize = node->preview->ysize;
+ preview->rect = MEM_dupallocN(node->preview->rect);
+ node->new_node->preview = preview;
+ }
+
for (sock= node->outputs.first; sock; sock= sock->next) {
sock->new_sock->cache= sock->cache;
compbuf_set_node(sock->new_sock->cache, node->new_node);
@@ -575,19 +586,18 @@ static void ntree_composite_texnode(bNodeTree *ntree, int init)
}
/* optimized tree execute test for compositing */
-void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview)
+/* optimized tree execute test for compositing */
+static void ntreeCompositExecTreeOld(bNodeTree *ntree, RenderData *rd, int do_preview)
{
bNodeExec *nodeexec;
bNode *node;
ListBase threads;
ThreadData thdata;
int totnode, curnode, rendering= 1, n;
- bNodeTreeExec *exec;
-
- if (ntree==NULL) return;
-
- exec = ntree->execdata;
-
+ bNodeTreeExec *exec= ntree->execdata;
+
+ if (ntree == NULL) return;
+
if (do_preview)
ntreeInitPreview(ntree, 0, 0);
@@ -668,6 +678,14 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview)
ntreeCompositEndExecTree(exec, 1);
}
+void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int rendering, int do_preview)
+{
+ if (G.rt == 200)
+ ntreeCompositExecTreeOld(ntree, rd, do_preview);
+ else
+ COM_execute(ntree, rendering);
+}
+
/* *********************************************** */
/* clumsy checking... should do dynamic outputs once */
diff --git a/source/blender/nodes/composite/node_composite_util.c b/source/blender/nodes/composite/node_composite_util.c
index f26b5f44f99..0d1840a7a7d 100644
--- a/source/blender/nodes/composite/node_composite_util.c
+++ b/source/blender/nodes/composite/node_composite_util.c
@@ -986,7 +986,7 @@ void convolve(CompBuf* dst, CompBuf* in1, CompBuf* in2)
fRGB wt, *colp;
int x, y, ch;
int xbl, ybl, nxb, nyb, xbsz, ybsz;
- int in2done = 0;
+ int in2done = FALSE;
CompBuf* rdst = alloc_compbuf(in1->x, in1->y, in1->type, 1);
@@ -1086,7 +1086,7 @@ void convolve(CompBuf* dst, CompBuf* in1, CompBuf* in2)
}
}
- in2done = 1;
+ in2done = TRUE;
}
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_blur.c b/source/blender/nodes/composite/nodes/node_composite_blur.c
index 77b62938d94..d19ea3f202f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_blur.c
+++ b/source/blender/nodes/composite/nodes/node_composite_blur.c
@@ -699,7 +699,7 @@ static void node_composit_exec_blur(void *data, bNode *node, bNodeStack **in, bN
bokeh_single_image(node, new, gammabuf, in[1]->vec[0]);
else if (1)
blur_single_image(node, new, gammabuf, in[1]->vec[0]);
- else /* bloom experimental... */
+ else /* bloom experimental... */
bloom_with_reference(new, gammabuf, NULL, in[1]->vec[0], nbd);
if (nbd->gamma) {
diff --git a/source/blender/nodes/composite/nodes/node_composite_bokehblur.c b/source/blender/nodes/composite/nodes/node_composite_bokehblur.c
new file mode 100644
index 00000000000..f239267a128
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_bokehblur.c
@@ -0,0 +1,60 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Campbell Barton, Alfredo de Greef, David Millan Escriva,
+ * Juho Vepsäläinen
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/intern/CMP_nodes/CMP_blur.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "../node_composite_util.h"
+
+/* **************** BLUR ******************** */
+static bNodeSocketTemplate cmp_node_bokehblur_in[]= {
+ { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
+ { SOCK_RGBA, 1, "Bokeh", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 1, "Size", 0.01f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f},
+ { SOCK_FLOAT, 1, "Bounding box", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static bNodeSocketTemplate cmp_node_bokehblur_out[]= {
+ { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+void register_node_type_cmp_bokehblur(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_BOKEHBLUR, "Bokeh Blur", NODE_CLASS_OP_FILTER, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_bokehblur_in, cmp_node_bokehblur_out);
+ node_type_size(&ntype, 120, 80, 200);
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/composite/nodes/node_composite_bokehimage.c b/source/blender/nodes/composite/nodes/node_composite_bokehimage.c
new file mode 100644
index 00000000000..15dba89d12b
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_bokehimage.c
@@ -0,0 +1,66 @@
+/*
+* $Id$
+*
+* ***** BEGIN GPL LICENSE BLOCK *****
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* The Original Code is Copyright (C) 2006 Blender Foundation.
+* All rights reserved.
+*
+* The Original Code is: all of this file.
+*
+* Contributor(s): none yet.
+*
+* ***** END GPL LICENSE BLOCK *****
+
+*/
+
+/** \file blender/nodes/intern/CMP_nodes/CMP_gamma.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "../node_composite_util.h"
+
+/* **************** Bokeh image Tools ******************** */
+
+static bNodeSocketTemplate cmp_node_bokehimage_out[]= {
+ { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+static void node_composit_init_bokehimage(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeBokehImage * data = MEM_callocN(sizeof(NodeBokehImage), "NodeBokehImage");
+ data->angle = 0.0f;
+ data->flaps = 5;
+ data->rounding = 0.0f;
+ data->catadioptric = 0.0f;
+ data->lensshift = 0.0f;
+ node->storage = data;
+}
+
+void register_node_type_cmp_bokehimage(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_BOKEHIMAGE, "Bokeh Image", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS);
+ node_type_socket_templates(&ntype, NULL, cmp_node_bokehimage_out);
+ node_type_size(&ntype, 140, 100, 320);
+ node_type_init(&ntype, node_composit_init_bokehimage);
+ node_type_storage(&ntype, "NodeBokehImage", node_free_standard_storage, node_copy_standard_storage);
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/composite/nodes/node_composite_boxmask.c b/source/blender/nodes/composite/nodes/node_composite_boxmask.c
new file mode 100644
index 00000000000..8c3744e2930
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_boxmask.c
@@ -0,0 +1,75 @@
+/*
+ * $Id: CMP_math.c 36271 2011-04-21 13:11:51Z campbellbarton $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/intern/CMP_nodes/CMP_math.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "../node_composite_util.h"
+
+/* **************** SCALAR MATH ******************** */
+static bNodeSocketTemplate cmp_node_boxmask_in[]= {
+ { SOCK_FLOAT, 1, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 1, "Value", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static bNodeSocketTemplate cmp_node_boxmask_out[]= {
+ { SOCK_FLOAT, 0, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static void node_composit_init_boxmask(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeBoxMask *data = MEM_callocN(sizeof(NodeBoxMask), "NodeBoxMask");
+ data->x = 0.5;
+ data->y = 0.5;
+ data->width = 0.2;
+ data->height = 0.1;
+ data->rotation = 0.0;
+ node->storage = data;
+}
+
+void register_node_type_cmp_boxmask(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_MASK_BOX, "Box Mask", NODE_CLASS_MATTE, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_boxmask_in, cmp_node_boxmask_out);
+ node_type_size(&ntype, 260, 110, 300);
+ node_type_init(&ntype, node_composit_init_boxmask);
+ node_type_storage(&ntype, "NodeBoxMask", node_free_standard_storage, node_copy_standard_storage);
+
+ nodeRegisterType(ttype, &ntype);
+}
+
+
+
+
diff --git a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c
new file mode 100644
index 00000000000..929efaef2c8
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c
@@ -0,0 +1,89 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Jeroen Bakker.
+ * Monique Dewanchand
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/composite/nodes/node_composite_colorcorrection.c
+ * \ingroup cmpnodes
+ */
+
+
+
+#include "node_composite_util.h"
+
+
+/* ******************* Color Balance ********************************* */
+static bNodeSocketTemplate cmp_node_colorcorrection_in[]={
+ { SOCK_RGBA,1,"Image", 1.0f, 1.0f, 1.0f, 1.0f},
+ { SOCK_FLOAT, 1, "Mask", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR},
+ { -1,0,""}
+};
+
+static bNodeSocketTemplate cmp_node_colorcorrection_out[]={
+ { SOCK_RGBA,0,"Image"},
+ { -1,0,""}
+};
+
+static void node_composit_init_colorcorrection(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeColorCorrection *n= node->storage= MEM_callocN(sizeof(NodeColorCorrection), "node colorcorrection");
+ n->startmidtones = 0.2f;
+ n->endmidtones = 0.7f;
+ n->master.contrast = 1.0f;
+ n->master.gain = 1.0f;
+ n->master.gamma = 1.0f;
+ n->master.lift= 0.0f;
+ n->master.saturation= 1.0f;
+ n->midtones.contrast = 1.0f;
+ n->midtones.gain = 1.0f;
+ n->midtones.gamma = 1.0f;
+ n->midtones.lift= 0.0f;
+ n->midtones.saturation= 1.0f;
+ n->shadows.contrast = 1.0f;
+ n->shadows.gain = 1.0f;
+ n->shadows.gamma = 1.0f;
+ n->shadows.lift= 0.0f;
+ n->shadows.saturation= 1.0f;
+ n->highlights.contrast = 1.0f;
+ n->highlights.gain = 1.0f;
+ n->highlights.gamma = 1.0f;
+ n->highlights.lift= 0.0f;
+ n->highlights.saturation= 1.0f;
+ node->custom1 = 7; // red + green + blue enabled
+}
+
+void register_node_type_cmp_colorcorrection(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_COLORCORRECTION, "Color Correction", NODE_CLASS_OP_COLOR, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_colorcorrection_in, cmp_node_colorcorrection_out);
+ node_type_size(&ntype, 400, 200, 500);
+ node_type_init(&ntype, node_composit_init_colorcorrection);
+ node_type_storage(&ntype, "NodeColorCorrection", node_free_standard_storage, node_copy_standard_storage);
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/composite/nodes/node_composite_defocus.c b/source/blender/nodes/composite/nodes/node_composite_defocus.c
index 72dec01066e..1a6e3fb1675 100644
--- a/source/blender/nodes/composite/nodes/node_composite_defocus.c
+++ b/source/blender/nodes/composite/nodes/node_composite_defocus.c
@@ -249,7 +249,7 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
float bkh_b[4] = {0}; // shape 2D bound
float cam_fdist=1, cam_invfdist=1, cam_lens=35;
float dof_sp, maxfgc, bk_hn_theta=0, inradsq=0;
- int y, len_bkh=0, ydone=0;
+ int y, len_bkh=0, ydone = FALSE;
float aspect, aperture;
int minsz;
//float bcrad, nmaxc, scf;
@@ -748,7 +748,7 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
p4 = p * new->type;
if (nqd->bktype==0) // Disk
lwt = ((u*u + v*v)<=cR2) ? wcor : 0.f;
- else // AA not needed here
+ else /* AA not needed here */
lwt = wcor * getWeight(BKH, len_bkh, u, v, ct_crad, inradsq);
// prevent background bleeding onto in-focus pixels, user-option
if (ct_crad > nqd->bthresh) { // if center blur > threshold
@@ -868,7 +868,7 @@ static void node_composit_init_defocus(bNodeTree *UNUSED(ntree), bNode* node, bN
nbd->gamco = 0;
nbd->samples = 16;
nbd->fstop = 128.f;
- nbd->maxblur = 0;
+ nbd->maxblur = 16;
nbd->bthresh = 1.f;
nbd->scale = 1.f;
nbd->no_zbuf = 1;
diff --git a/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c b/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c
new file mode 100644
index 00000000000..a6ba3034d87
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c
@@ -0,0 +1,75 @@
+/*
+ * $Id: CMP_math.c 36271 2011-04-21 13:11:51Z campbellbarton $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/intern/CMP_nodes/CMP_math.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "../node_composite_util.h"
+
+/* **************** SCALAR MATH ******************** */
+static bNodeSocketTemplate cmp_node_ellipsemask_in[]= {
+ { SOCK_FLOAT, 1, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 1, "Value", 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static bNodeSocketTemplate cmp_node_ellipsemask_out[]= {
+ { SOCK_FLOAT, 0, "Mask", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static void node_composit_init_ellipsemask(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeEllipseMask *data = MEM_callocN(sizeof(NodeEllipseMask), "NodeEllipseMask");
+ data->x = 0.5;
+ data->y = 0.5;
+ data->width = 0.2;
+ data->height = 0.1;
+ data->rotation = 0.0;
+ node->storage = data;
+}
+
+void register_node_type_cmp_ellipsemask(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_MASK_ELLIPSE, "Ellipse Mask", NODE_CLASS_MATTE, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_ellipsemask_in, cmp_node_ellipsemask_out);
+ node_type_size(&ntype, 260, 110, 300);
+ node_type_init(&ntype, node_composit_init_ellipsemask);
+ node_type_storage(&ntype, "NodeEllipseMask", node_free_standard_storage, node_copy_standard_storage);
+
+ nodeRegisterType(ttype, &ntype);
+}
+
+
+
+
diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c
index 4467fb1f193..70d68737032 100644
--- a/source/blender/nodes/composite/nodes/node_composite_image.c
+++ b/source/blender/nodes/composite/nodes/node_composite_image.c
@@ -145,37 +145,26 @@ static void cmp_node_image_add_render_pass_outputs(bNodeTree *ntree, bNode *node
cmp_node_image_add_render_pass_output(ntree, node, SCE_PASS_TRANSM_COLOR, RRES_OUT_TRANSM_COLOR);
}
-static void cmp_node_image_add_multilayer_outputs(bNodeTree *ntree, bNode *node, ListBase *layers)
+static void cmp_node_image_add_multilayer_outputs(bNodeTree *ntree, bNode *node, RenderLayer *rl)
{
bNodeSocket *sock;
NodeImageLayer *sockdata;
- RenderLayer *rl;
RenderPass *rpass;
- int layer_index, pass_index;
- char name[30]; /* EXR_TOT_MAXNAME-2 ('.' and channel char are appended) */
- int type;
-
- for (rl=layers->first, layer_index=0; rl; rl=rl->next, ++layer_index) {
- for (rpass=rl->passes.first, pass_index=0; rpass; rpass=rpass->next, ++pass_index) {
- /* reconstruct layer name from <render layer>.<render pass> strings */
- if (rl->name[0] != '\0')
- BLI_snprintf(name, sizeof(name), "%s.%s", rl->name, rpass->name);
- else
- BLI_strncpy(name, rpass->name, sizeof(name));
-
- if (rpass->channels == 1)
- type = SOCK_FLOAT;
- else
- type = SOCK_RGBA;
-
- sock = nodeAddSocket(ntree, node, SOCK_OUT, name, type);
- /* extra socket info */
- sockdata = MEM_callocN(sizeof(NodeImageLayer), "node image layer");
- sock->storage = sockdata;
-
- sockdata->layer_index = layer_index;
- sockdata->pass_index = pass_index;
- }
+ int index;
+ for (rpass=rl->passes.first, index=0; rpass; rpass=rpass->next, ++index) {
+ int type;
+ if (rpass->channels == 1)
+ type = SOCK_FLOAT;
+ else
+ type = SOCK_RGBA;
+
+ sock = nodeAddSocket(ntree, node, SOCK_OUT, rpass->name, type);
+ /* extra socket info */
+ sockdata = MEM_callocN(sizeof(NodeImageLayer), "node image layer");
+ sock->storage = sockdata;
+
+ sockdata->pass_index = index;
+ sockdata->pass_flag = rpass->passtype;
}
}
@@ -189,16 +178,16 @@ static void cmp_node_image_create_outputs(bNodeTree *ntree, bNode *node)
BKE_image_get_ibuf(ima, iuser);
if (ima->rr) {
- if (ima->type == IMA_TYPE_MULTILAYER) {
- cmp_node_image_add_multilayer_outputs(ntree, node, &ima->rr->layers);
- }
- else {
- RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer);
- if (rl)
+ RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer);
+
+ if (rl) {
+ if (ima->type!=IMA_TYPE_MULTILAYER)
cmp_node_image_add_render_pass_outputs(ntree, node, rl->passflag);
else
- cmp_node_image_add_render_pass_outputs(ntree, node, RRES_OUT_IMAGE|RRES_OUT_ALPHA);
+ cmp_node_image_add_multilayer_outputs(ntree, node, rl);
}
+ else
+ cmp_node_image_add_render_pass_outputs(ntree, node, RRES_OUT_IMAGE|RRES_OUT_ALPHA);
}
else
cmp_node_image_add_render_pass_outputs(ntree, node, RRES_OUT_IMAGE|RRES_OUT_ALPHA|RRES_OUT_Z);
@@ -415,28 +404,23 @@ static CompBuf *node_composit_get_zimage(bNode *node, RenderData *rd)
}
/* check if layer is available, returns pass buffer */
-static CompBuf *compbuf_multilayer_get(RenderData *rd, Image *ima, ImageUser *iuser, int layer_index, int pass_index)
+static CompBuf *compbuf_multilayer_get(RenderData *rd, RenderLayer *rl, Image *ima, ImageUser *iuser, int passindex)
{
- RenderLayer *rl = BLI_findlink(&ima->rr->layers, layer_index);
- if (rl) {
- RenderPass *rpass = BLI_findlink(&rl->passes, pass_index);
- if (rpass) {
- CompBuf *cbuf;
-
- iuser->layer = layer_index;
- iuser->pass = pass_index;
- BKE_image_multilayer_index(ima->rr, iuser);
- cbuf = node_composit_get_image(rd, ima, iuser);
-
- return cbuf;
- }
+ RenderPass *rpass = BLI_findlink(&rl->passes, passindex);
+ if (rpass) {
+ CompBuf *cbuf;
+
+ iuser->pass = passindex;
+ BKE_image_multilayer_index(ima->rr, iuser);
+ cbuf = node_composit_get_image(rd, ima, iuser);
+
+ return cbuf;
}
return NULL;
}
static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
{
-
/* image assigned to output */
/* stack order input sockets: col, alpha */
if (node->id) {
@@ -447,11 +431,14 @@ static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSE
/* first set the right frame number in iuser */
BKE_image_user_frame_calc(iuser, rd->cfra, 0);
- if (ima->type==IMA_TYPE_MULTILAYER) {
- /* force a load, we assume iuser index will be set OK anyway */
+ /* force a load, we assume iuser index will be set OK anyway */
+ if (ima->type==IMA_TYPE_MULTILAYER)
BKE_image_get_ibuf(ima, iuser);
- if (ima->rr) {
+ if (ima->type==IMA_TYPE_MULTILAYER && ima->rr) {
+ RenderLayer *rl= BLI_findlink(&ima->rr->layers, iuser->layer);
+
+ if (rl) {
bNodeSocket *sock;
NodeImageLayer *sockdata;
int out_index;
@@ -460,7 +447,7 @@ static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSE
for (sock=node->outputs.first, out_index=0; sock; sock=sock->next, ++out_index) {
sockdata = sock->storage;
if (out[out_index]->hasoutput) {
- CompBuf *stackbuf = out[out_index]->data = compbuf_multilayer_get(rd, ima, iuser, sockdata->layer_index, sockdata->pass_index);
+ CompBuf *stackbuf = out[out_index]->data = compbuf_multilayer_get(rd, rl, ima, iuser, sockdata->pass_index);
if (stackbuf) {
/* preview policy: take first 'Combined' pass if available,
* otherwise just use the first layer.
@@ -469,7 +456,7 @@ static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSE
firstbuf = stackbuf;
}
if (!combinedbuf &&
- (strcmp(sock->name, "Combined") == 0 || strcmp(sock->name, "Image") == 0))
+ (strcmp(sock->name, "Combined") == 0 || strcmp(sock->name, "Image") == 0))
{
combinedbuf = stackbuf;
}
@@ -715,7 +702,6 @@ static void node_composit_exec_rlayers(void *data, bNode *node, bNodeStack **UNU
RE_ReleaseResult(re);
}
-
void register_node_type_cmp_rlayers(bNodeTreeType *ttype)
{
static bNodeType ntype;
diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
index a571b140a1f..fcc8ed4a128 100644
--- a/source/blender/nodes/composite/nodes/node_composite_outputFile.c
+++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
@@ -124,7 +124,7 @@ bNodeSocket *ntreeCompositOutputFileAddSocket(bNodeTree *ntree, bNode *node, con
}
}
/* use node data format by default */
- sockdata->use_node_format = 1;
+ sockdata->use_node_format = TRUE;
nimf->active_input = BLI_findindex(&node->inputs, sock);
diff --git a/source/blender/nodes/composite/nodes/node_composite_switch.c b/source/blender/nodes/composite/nodes/node_composite_switch.c
new file mode 100644
index 00000000000..ee7e3124a7b
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_switch.c
@@ -0,0 +1,58 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/intern/CMP_nodes/CMP_switch.c
+ * \ingroup cmpnodes
+ */
+
+#include "../node_composite_util.h"
+
+/* **************** MIX RGB ******************** */
+static bNodeSocketTemplate cmp_node_switch_in[]= {
+ { SOCK_RGBA, 1, "Off", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
+ { SOCK_RGBA, 1, "On", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static bNodeSocketTemplate cmp_node_switch_out[]= {
+ { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+/* custom1 = mix type */
+void register_node_type_cmp_switch(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_SWITCH, "Switch", NODE_CLASS_LAYOUT, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_switch_in, cmp_node_switch_out);
+ node_type_size(&ntype, 110, 60, 120);
+ nodeRegisterType(ttype, &ntype);
+}
+
diff --git a/source/blender/nodes/composite/nodes/node_composite_viewer.c b/source/blender/nodes/composite/nodes/node_composite_viewer.c
index 3fdedbb2e42..4a0726e473b 100644
--- a/source/blender/nodes/composite/nodes/node_composite_viewer.c
+++ b/source/blender/nodes/composite/nodes/node_composite_viewer.c
@@ -129,6 +129,8 @@ static void node_composit_init_viewer(bNodeTree *UNUSED(ntree), bNode* node, bNo
iuser->sfra= 1;
iuser->fie_ima= 2;
iuser->ok= 1;
+ node->custom3 = 0.5f;
+ node->custom4 = 0.5f;
}
void register_node_type_cmp_viewer(bNodeTreeType *ttype)
diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c
index 49a3d6c07b4..fa1af821a2d 100644
--- a/source/blender/nodes/intern/node_common.c
+++ b/source/blender/nodes/intern/node_common.c
@@ -57,6 +57,7 @@
#include "MEM_guardedalloc.h"
#include "node_common.h"
+#include "node_util.h"
#include "node_exec.h"
#include "NOD_socket.h"
@@ -133,7 +134,7 @@ bNode *node_group_make_from_selected(bNodeTree *ntree)
DO_MINMAX2((&node->locx), min, max);
totnode++;
}
- node->done= 0;
+ node->done = FALSE;
}
if (totnode==0) return NULL;
@@ -551,7 +552,7 @@ static bNodeSocket *group_verify_socket(bNodeTree *ntree, ListBase *lb, int in_o
sock->groupsock = gsock;
BLI_strncpy(sock->name, gsock->name, sizeof(sock->name));
- if(gsock->type != sock->type)
+ if (gsock->type != sock->type)
nodeSocketSetType(sock, gsock->type);
/* XXX hack: group socket input/output roles are inverted internally,
@@ -810,12 +811,24 @@ bNodeTemplate node_whileloop_template(bNode *node)
/**** FRAME ****/
+static void node_frame_init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeFrame *data = (NodeFrame *)MEM_callocN(sizeof(NodeFrame), "frame node storage");
+ node->storage = data;
+
+ data->flag |= NODE_FRAME_SHRINK;
+
+ data->label_size = 20;
+}
+
void register_node_type_frame(bNodeTreeType *ttype)
{
/* frame type is used for all tree types, needs dynamic allocation */
bNodeType *ntype= MEM_callocN(sizeof(bNodeType), "frame node type");
- node_type_base(ttype, ntype, NODE_FRAME, "Frame", NODE_CLASS_LAYOUT, NODE_BACKGROUND);
+ node_type_base(ttype, ntype, NODE_FRAME, "Frame", NODE_CLASS_LAYOUT, NODE_BACKGROUND|NODE_OPTIONS);
+ node_type_init(ntype, node_frame_init);
+ node_type_storage(ntype, "NodeFrame", node_free_standard_storage, node_copy_standard_storage);
node_type_size(ntype, 150, 100, 0);
node_type_compatibility(ntype, NODE_OLD_SHADING|NODE_NEW_SHADING);
diff --git a/source/blender/nodes/intern/node_exec.c b/source/blender/nodes/intern/node_exec.c
index 3b757e753a4..3f77638e25a 100644
--- a/source/blender/nodes/intern/node_exec.c
+++ b/source/blender/nodes/intern/node_exec.c
@@ -242,7 +242,7 @@ bNodeThreadStack *ntreeGetThreadStack(bNodeTreeExec *exec, int thread)
for (nts=lb->first; nts; nts=nts->next) {
if (!nts->used) {
- nts->used= 1;
+ nts->used = TRUE;
break;
}
}
@@ -250,7 +250,7 @@ bNodeThreadStack *ntreeGetThreadStack(bNodeTreeExec *exec, int thread)
if (!nts) {
nts= MEM_callocN(sizeof(bNodeThreadStack), "bNodeThreadStack");
nts->stack= MEM_dupallocN(exec->stack);
- nts->used= 1;
+ nts->used = TRUE;
BLI_addtail(lb, nts);
}
diff --git a/source/blender/nodes/intern/node_util.c b/source/blender/nodes/intern/node_util.c
index 1c38bdf39d7..548a21ee35b 100644
--- a/source/blender/nodes/intern/node_util.c
+++ b/source/blender/nodes/intern/node_util.c
@@ -57,7 +57,9 @@ void node_free_curves(bNode *node)
void node_free_standard_storage(bNode *node)
{
- MEM_freeN(node->storage);
+ if (node->storage) {
+ MEM_freeN(node->storage);
+ }
}
void node_copy_curves(bNode *orig_node, bNode *new_node)
diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c
index 9a9a27603dc..5961c2b330b 100644
--- a/source/blender/nodes/shader/node_shader_util.c
+++ b/source/blender/nodes/shader/node_shader_util.c
@@ -277,23 +277,23 @@ void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, int do_outputs)
bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */
bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */
GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1];
- int doit;
+ int do_it;
stack= exec->stack;
for (n=0, nodeexec= exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) {
node = nodeexec->node;
- doit = 0;
+ do_it = FALSE;
/* for groups, only execute outputs for edited group */
if (node->typeinfo->nclass==NODE_CLASS_OUTPUT) {
if (do_outputs && (node->flag & NODE_DO_OUTPUT))
- doit = 1;
+ do_it = TRUE;
}
else
- doit = 1;
+ do_it = TRUE;
- if (doit) {
+ if (do_it) {
if (node->typeinfo->gpufunc) {
node_get_stack(node, stack, nsin, nsout);
gpu_stack_from_data_list(gpuin, &node->inputs, nsin);
diff --git a/source/blender/nodes/shader/nodes/node_shader_object_info.c b/source/blender/nodes/shader/nodes/node_shader_object_info.c
new file mode 100644
index 00000000000..ee356dbb3b3
--- /dev/null
+++ b/source/blender/nodes/shader/nodes/node_shader_object_info.c
@@ -0,0 +1,61 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "../node_shader_util.h"
+
+/* **************** OUTPUT ******************** */
+
+static bNodeSocketTemplate sh_node_object_info_out[]= {
+ { SOCK_VECTOR, 0, "Location", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 0, "Object Index", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 0, "Material Index", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 0, "Random", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static int node_shader_gpu_object_info(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
+{
+ return GPU_stack_link(mat, "node_object_info", in, out);
+}
+
+/* node type definition */
+void register_node_type_sh_object_info(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, SH_NODE_OBJECT_INFO, "Object Info", NODE_CLASS_INPUT, 0);
+ node_type_compatibility(&ntype, NODE_NEW_SHADING);
+ node_type_socket_templates(&ntype, NULL, sh_node_object_info_out);
+ node_type_size(&ntype, 150, 60, 200);
+ node_type_init(&ntype, NULL);
+ node_type_storage(&ntype, "", NULL, NULL);
+ node_type_exec(&ntype, NULL);
+ node_type_gpu(&ntype, node_shader_gpu_object_info);
+
+ nodeRegisterType(ttype, &ntype);
+}
+
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
index 852c056dc28..9e80f79b0c5 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
@@ -55,11 +55,8 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod
Image *ima= (Image*)node->id;
ImageUser *iuser= NULL;
- if (!ima) {
- float black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
- GPUNodeLink *vec = GPU_uniform(black);
- return GPU_stack_link(mat, "set_rgba", out, out, vec);
- }
+ if (!ima)
+ return GPU_stack_link(mat, "node_tex_environment_empty", in, out);
if (!in[0].link)
in[0].link = GPU_builtin(GPU_VIEW_POSITION);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.c b/source/blender/nodes/shader/nodes/node_shader_tex_image.c
index 28dcada3d33..e00467a52ef 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_image.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c
@@ -55,11 +55,8 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack
Image *ima= (Image*)node->id;
ImageUser *iuser= NULL;
- if (!ima) {
- float black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
- GPUNodeLink *vec = GPU_uniform(black);
- return GPU_stack_link(mat, "set_rgba", out, out, vec);
- }
+ if (!ima)
+ return GPU_stack_link(mat, "node_tex_image_empty", in, out);
if (!in[0].link)
in[0].link = GPU_attribute(CD_MTFACE, "");
diff --git a/source/blender/opencl/CMakeLists.txt b/source/blender/opencl/CMakeLists.txt
new file mode 100644
index 00000000000..9c8ce830316
--- /dev/null
+++ b/source/blender/opencl/CMakeLists.txt
@@ -0,0 +1,39 @@
+# $Id: CMakeLists.txt 14444 2008-04-16 22:40:48Z hos $
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The Original Code is Copyright (C) 2006, Blender Foundation
+# All rights reserved.
+#
+# The Original Code is: all of this file.
+#
+# Contributor(s): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+ .
+)
+
+set(SRC
+ OCL_opencl.h
+ intern/clew.h
+ intern/clew.c
+ intern/OCL_opencl.c
+)
+
+
+blender_add_lib(bf_opencl "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/opencl/OCL_opencl.h b/source/blender/opencl/OCL_opencl.h
new file mode 100644
index 00000000000..4ee167b2fb4
--- /dev/null
+++ b/source/blender/opencl/OCL_opencl.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef OCL_OPENCL_H
+#define OCL_OPENCL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "intern/clew.h"
+void OCL_init(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/source/blender/opencl/SConscript b/source/blender/opencl/SConscript
new file mode 100644
index 00000000000..e91a99d5075
--- /dev/null
+++ b/source/blender/opencl/SConscript
@@ -0,0 +1,8 @@
+#!/usr/bin/python
+Import ('env')
+
+sources = env.Glob('intern/*.c')
+
+incs = '.'
+
+env.BlenderLib ( 'bf_opencl', sources, Split(incs), libtype=['core','player'], priority = [192,192] )
diff --git a/source/blender/opencl/intern/OCL_opencl.c b/source/blender/opencl/intern/OCL_opencl.c
new file mode 100644
index 00000000000..fa22acbc1a2
--- /dev/null
+++ b/source/blender/opencl/intern/OCL_opencl.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "OCL_opencl.h"
+
+void OCL_init()
+{
+#ifdef _WIN32
+ const char *path = "OpenCL.dll";
+#elif defined(__APPLE__)
+ const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL";
+#else
+ const char *path = "libOpenCL.so";
+#endif
+
+ clewInit(path);
+}
+
diff --git a/source/blender/opencl/intern/clew.c b/source/blender/opencl/intern/clew.c
new file mode 100644
index 00000000000..d68eb17288f
--- /dev/null
+++ b/source/blender/opencl/intern/clew.c
@@ -0,0 +1,311 @@
+//////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2009 Organic Vectory B.V.
+// Written by George van Venrooij
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file license.txt)
+//////////////////////////////////////////////////////////////////////////
+
+#include "clew.h"
+
+//! \file clew.c
+//! \brief OpenCL run-time loader source
+
+#ifndef CLCC_GENERATE_DOCUMENTATION
+#ifdef _WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #define VC_EXTRALEAN
+ #include <windows.h>
+
+ typedef HMODULE CLCC_DYNLIB_HANDLE;
+
+ #define CLCC_DYNLIB_OPEN LoadLibrary
+ #define CLCC_DYNLIB_CLOSE FreeLibrary
+ #define CLCC_DYNLIB_IMPORT GetProcAddress
+#else
+ #include <dlfcn.h>
+
+ typedef void* CLCC_DYNLIB_HANDLE;
+
+ #define CLCC_DYNLIB_OPEN(path) dlopen(path, RTLD_NOW | RTLD_GLOBAL)
+ #define CLCC_DYNLIB_CLOSE dlclose
+ #define CLCC_DYNLIB_IMPORT dlsym
+#endif
+#else
+ //typedef implementation_defined CLCC_DYNLIB_HANDLE;
+ //#define CLCC_DYNLIB_OPEN(path) implementation_defined
+ //#define CLCC_DYNLIB_CLOSE implementation_defined
+ //#define CLCC_DYNLIB_IMPORT implementation_defined
+#endif
+
+#include <stdlib.h>
+
+//! \brief module handle
+static CLCC_DYNLIB_HANDLE module = NULL;
+
+// Variables holding function entry points
+#ifndef CLCC_GENERATE_DOCUMENTATION
+PFNCLGETPLATFORMIDS __oclGetPlatformIDs = NULL;
+PFNCLGETPLATFORMINFO __oclGetPlatformInfo = NULL;
+PFNCLGETDEVICEIDS __oclGetDeviceIDs = NULL;
+PFNCLGETDEVICEINFO __oclGetDeviceInfo = NULL;
+PFNCLCREATECONTEXT __oclCreateContext = NULL;
+PFNCLCREATECONTEXTFROMTYPE __oclCreateContextFromType = NULL;
+PFNCLRETAINCONTEXT __oclRetainContext = NULL;
+PFNCLRELEASECONTEXT __oclReleaseContext = NULL;
+PFNCLGETCONTEXTINFO __oclGetContextInfo = NULL;
+PFNCLCREATECOMMANDQUEUE __oclCreateCommandQueue = NULL;
+PFNCLRETAINCOMMANDQUEUE __oclRetainCommandQueue = NULL;
+PFNCLRELEASECOMMANDQUEUE __oclReleaseCommandQueue = NULL;
+PFNCLGETCOMMANDQUEUEINFO __oclGetCommandQueueInfo = NULL;
+PFNCLSETCOMMANDQUEUEPROPERTY __oclSetCommandQueueProperty = NULL;
+PFNCLCREATEBUFFER __oclCreateBuffer = NULL;
+PFNCLCREATEIMAGE2D __oclCreateImage2D = NULL;
+PFNCLCREATEIMAGE3D __oclCreateImage3D = NULL;
+PFNCLRETAINMEMOBJECT __oclRetainMemObject = NULL;
+PFNCLRELEASEMEMOBJECT __oclReleaseMemObject = NULL;
+PFNCLGETSUPPORTEDIMAGEFORMATS __oclGetSupportedImageFormats = NULL;
+PFNCLGETMEMOBJECTINFO __oclGetMemObjectInfo = NULL;
+PFNCLGETIMAGEINFO __oclGetImageInfo = NULL;
+PFNCLCREATESAMPLER __oclCreateSampler = NULL;
+PFNCLRETAINSAMPLER __oclRetainSampler = NULL;
+PFNCLRELEASESAMPLER __oclReleaseSampler = NULL;
+PFNCLGETSAMPLERINFO __oclGetSamplerInfo = NULL;
+PFNCLCREATEPROGRAMWITHSOURCE __oclCreateProgramWithSource = NULL;
+PFNCLCREATEPROGRAMWITHBINARY __oclCreateProgramWithBinary = NULL;
+PFNCLRETAINPROGRAM __oclRetainProgram = NULL;
+PFNCLRELEASEPROGRAM __oclReleaseProgram = NULL;
+PFNCLBUILDPROGRAM __oclBuildProgram = NULL;
+PFNCLUNLOADCOMPILER __oclUnloadCompiler = NULL;
+PFNCLGETPROGRAMINFO __oclGetProgramInfo = NULL;
+PFNCLGETPROGRAMBUILDINFO __oclGetProgramBuildInfo = NULL;
+PFNCLCREATEKERNEL __oclCreateKernel = NULL;
+PFNCLCREATEKERNELSINPROGRAM __oclCreateKernelsInProgram = NULL;
+PFNCLRETAINKERNEL __oclRetainKernel = NULL;
+PFNCLRELEASEKERNEL __oclReleaseKernel = NULL;
+PFNCLSETKERNELARG __oclSetKernelArg = NULL;
+PFNCLGETKERNELINFO __oclGetKernelInfo = NULL;
+PFNCLGETKERNELWORKGROUPINFO __oclGetKernelWorkGroupInfo = NULL;
+PFNCLWAITFOREVENTS __oclWaitForEvents = NULL;
+PFNCLGETEVENTINFO __oclGetEventInfo = NULL;
+PFNCLRETAINEVENT __oclRetainEvent = NULL;
+PFNCLRELEASEEVENT __oclReleaseEvent = NULL;
+PFNCLGETEVENTPROFILINGINFO __oclGetEventProfilingInfo = NULL;
+PFNCLFLUSH __oclFlush = NULL;
+PFNCLFINISH __oclFinish = NULL;
+PFNCLENQUEUEREADBUFFER __oclEnqueueReadBuffer = NULL;
+PFNCLENQUEUEWRITEBUFFER __oclEnqueueWriteBuffer = NULL;
+PFNCLENQUEUECOPYBUFFER __oclEnqueueCopyBuffer = NULL;
+PFNCLENQUEUEREADIMAGE __oclEnqueueReadImage = NULL;
+PFNCLENQUEUEWRITEIMAGE __oclEnqueueWriteImage = NULL;
+PFNCLENQUEUECOPYIMAGE __oclEnqueueCopyImage = NULL;
+PFNCLENQUEUECOPYIMAGETOBUFFER __oclEnqueueCopyImageToBuffer = NULL;
+PFNCLENQUEUECOPYBUFFERTOIMAGE __oclEnqueueCopyBufferToImage = NULL;
+PFNCLENQUEUEMAPBUFFER __oclEnqueueMapBuffer = NULL;
+PFNCLENQUEUEMAPIMAGE __oclEnqueueMapImage = NULL;
+PFNCLENQUEUEUNMAPMEMOBJECT __oclEnqueueUnmapMemObject = NULL;
+PFNCLENQUEUENDRANGEKERNEL __oclEnqueueNDRangeKernel = NULL;
+PFNCLENQUEUETASK __oclEnqueueTask = NULL;
+PFNCLENQUEUENATIVEKERNEL __oclEnqueueNativeKernel = NULL;
+PFNCLENQUEUEMARKER __oclEnqueueMarker = NULL;
+PFNCLENQUEUEWAITFOREVENTS __oclEnqueueWaitForEvents = NULL;
+PFNCLENQUEUEBARRIER __oclEnqueueBarrier = NULL;
+PFNCLGETEXTENSIONFUNCTIONADDRESS __oclGetExtensionFunctionAddress = NULL;
+#endif // CLCC_GENERATE_DOCUMENTATION
+
+
+//! \brief Unloads OpenCL dynamic library, should not be called directly
+static void clewExit(void)
+{
+ if (module != NULL)
+ {
+ // Ignore errors
+ CLCC_DYNLIB_CLOSE(module);
+ module = NULL;
+ }
+}
+
+//! \param path path to dynamic library to load
+//! \return CLEW_ERROR_OPEN_FAILED if the library could not be opened
+//! CLEW_ERROR_ATEXIT_FAILED if atexit(clewExit) failed
+//! CLEW_SUCCESS when the library was succesfully loaded
+int clewInit(const char* path)
+{
+ int error = 0;
+
+ // Check if already initialized
+ if (module != NULL)
+ {
+ return CLEW_SUCCESS;
+ }
+
+ // Load library
+ module = CLCC_DYNLIB_OPEN(path);
+
+ // Check for errors
+ if (module == NULL)
+ {
+ return CLEW_ERROR_OPEN_FAILED;
+ }
+
+ // Set unloading
+ error = atexit(clewExit);
+
+ if (error)
+ {
+ // Failure queing atexit, shutdown with error
+ CLCC_DYNLIB_CLOSE(module);
+ module = NULL;
+
+ return CLEW_ERROR_ATEXIT_FAILED;
+ }
+
+ // Determine function entry-points
+ __oclGetPlatformIDs = (PFNCLGETPLATFORMIDS )CLCC_DYNLIB_IMPORT(module, "clGetPlatformIDs");
+ __oclGetPlatformInfo = (PFNCLGETPLATFORMINFO )CLCC_DYNLIB_IMPORT(module, "clGetPlatformInfo");
+ __oclGetDeviceIDs = (PFNCLGETDEVICEIDS )CLCC_DYNLIB_IMPORT(module, "clGetDeviceIDs");
+ __oclGetDeviceInfo = (PFNCLGETDEVICEINFO )CLCC_DYNLIB_IMPORT(module, "clGetDeviceInfo");
+ __oclCreateContext = (PFNCLCREATECONTEXT )CLCC_DYNLIB_IMPORT(module, "clCreateContext");
+ __oclCreateContextFromType = (PFNCLCREATECONTEXTFROMTYPE )CLCC_DYNLIB_IMPORT(module, "clCreateContextFromType");
+ __oclRetainContext = (PFNCLRETAINCONTEXT )CLCC_DYNLIB_IMPORT(module, "clRetainContext");
+ __oclReleaseContext = (PFNCLRELEASECONTEXT )CLCC_DYNLIB_IMPORT(module, "clReleaseContext");
+ __oclGetContextInfo = (PFNCLGETCONTEXTINFO )CLCC_DYNLIB_IMPORT(module, "clGetContextInfo");
+ __oclCreateCommandQueue = (PFNCLCREATECOMMANDQUEUE )CLCC_DYNLIB_IMPORT(module, "clCreateCommandQueue");
+ __oclRetainCommandQueue = (PFNCLRETAINCOMMANDQUEUE )CLCC_DYNLIB_IMPORT(module, "clRetainCommandQueue");
+ __oclReleaseCommandQueue = (PFNCLRELEASECOMMANDQUEUE )CLCC_DYNLIB_IMPORT(module, "clReleaseCommandQueue");
+ __oclGetCommandQueueInfo = (PFNCLGETCOMMANDQUEUEINFO )CLCC_DYNLIB_IMPORT(module, "clGetCommandQueueInfo");
+ __oclSetCommandQueueProperty = (PFNCLSETCOMMANDQUEUEPROPERTY )CLCC_DYNLIB_IMPORT(module, "clSetCommandQueueProperty");
+ __oclCreateBuffer = (PFNCLCREATEBUFFER )CLCC_DYNLIB_IMPORT(module, "clCreateBuffer");
+ __oclCreateImage2D = (PFNCLCREATEIMAGE2D )CLCC_DYNLIB_IMPORT(module, "clCreateImage2D");
+ __oclCreateImage3D = (PFNCLCREATEIMAGE3D )CLCC_DYNLIB_IMPORT(module, "clCreateImage3D");
+ __oclRetainMemObject = (PFNCLRETAINMEMOBJECT )CLCC_DYNLIB_IMPORT(module, "clRetainMemObject");
+ __oclReleaseMemObject = (PFNCLRELEASEMEMOBJECT )CLCC_DYNLIB_IMPORT(module, "clReleaseMemObject");
+ __oclGetSupportedImageFormats = (PFNCLGETSUPPORTEDIMAGEFORMATS )CLCC_DYNLIB_IMPORT(module, "clGetSupportedImageFormats");
+ __oclGetMemObjectInfo = (PFNCLGETMEMOBJECTINFO )CLCC_DYNLIB_IMPORT(module, "clGetMemObjectInfo");
+ __oclGetImageInfo = (PFNCLGETIMAGEINFO )CLCC_DYNLIB_IMPORT(module, "clGetImageInfo");
+ __oclCreateSampler = (PFNCLCREATESAMPLER )CLCC_DYNLIB_IMPORT(module, "clCreateSampler");
+ __oclRetainSampler = (PFNCLRETAINSAMPLER )CLCC_DYNLIB_IMPORT(module, "clRetainSampler");
+ __oclReleaseSampler = (PFNCLRELEASESAMPLER )CLCC_DYNLIB_IMPORT(module, "clReleaseSampler");
+ __oclGetSamplerInfo = (PFNCLGETSAMPLERINFO )CLCC_DYNLIB_IMPORT(module, "clGetSamplerInfo");
+ __oclCreateProgramWithSource = (PFNCLCREATEPROGRAMWITHSOURCE )CLCC_DYNLIB_IMPORT(module, "clCreateProgramWithSource");
+ __oclCreateProgramWithBinary = (PFNCLCREATEPROGRAMWITHBINARY )CLCC_DYNLIB_IMPORT(module, "clCreateProgramWithBinary");
+ __oclRetainProgram = (PFNCLRETAINPROGRAM )CLCC_DYNLIB_IMPORT(module, "clRetainProgram");
+ __oclReleaseProgram = (PFNCLRELEASEPROGRAM )CLCC_DYNLIB_IMPORT(module, "clReleaseProgram");
+ __oclBuildProgram = (PFNCLBUILDPROGRAM )CLCC_DYNLIB_IMPORT(module, "clBuildProgram");
+ __oclUnloadCompiler = (PFNCLUNLOADCOMPILER )CLCC_DYNLIB_IMPORT(module, "clUnloadCompiler");
+ __oclGetProgramInfo = (PFNCLGETPROGRAMINFO )CLCC_DYNLIB_IMPORT(module, "clGetProgramInfo");
+ __oclGetProgramBuildInfo = (PFNCLGETPROGRAMBUILDINFO )CLCC_DYNLIB_IMPORT(module, "clGetProgramBuildInfo");
+ __oclCreateKernel = (PFNCLCREATEKERNEL )CLCC_DYNLIB_IMPORT(module, "clCreateKernel");
+ __oclCreateKernelsInProgram = (PFNCLCREATEKERNELSINPROGRAM )CLCC_DYNLIB_IMPORT(module, "clCreateKernelsInProgram");
+ __oclRetainKernel = (PFNCLRETAINKERNEL )CLCC_DYNLIB_IMPORT(module, "clRetainKernel");
+ __oclReleaseKernel = (PFNCLRELEASEKERNEL )CLCC_DYNLIB_IMPORT(module, "clReleaseKernel");
+ __oclSetKernelArg = (PFNCLSETKERNELARG )CLCC_DYNLIB_IMPORT(module, "clSetKernelArg");
+ __oclGetKernelInfo = (PFNCLGETKERNELINFO )CLCC_DYNLIB_IMPORT(module, "clGetKernelInfo");
+ __oclGetKernelWorkGroupInfo = (PFNCLGETKERNELWORKGROUPINFO )CLCC_DYNLIB_IMPORT(module, "clGetKernelWorkGroupInfo");
+ __oclWaitForEvents = (PFNCLWAITFOREVENTS )CLCC_DYNLIB_IMPORT(module, "clWaitForEvents");
+ __oclGetEventInfo = (PFNCLGETEVENTINFO )CLCC_DYNLIB_IMPORT(module, "clGetEventInfo");
+ __oclRetainEvent = (PFNCLRETAINEVENT )CLCC_DYNLIB_IMPORT(module, "clRetainEvent");
+ __oclReleaseEvent = (PFNCLRELEASEEVENT )CLCC_DYNLIB_IMPORT(module, "clReleaseEvent");
+ __oclGetEventProfilingInfo = (PFNCLGETEVENTPROFILINGINFO )CLCC_DYNLIB_IMPORT(module, "clGetEventProfilingInfo");
+ __oclFlush = (PFNCLFLUSH )CLCC_DYNLIB_IMPORT(module, "clFlush");
+ __oclFinish = (PFNCLFINISH )CLCC_DYNLIB_IMPORT(module, "clFinish");
+ __oclEnqueueReadBuffer = (PFNCLENQUEUEREADBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueReadBuffer");
+ __oclEnqueueWriteBuffer = (PFNCLENQUEUEWRITEBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueWriteBuffer");
+ __oclEnqueueCopyBuffer = (PFNCLENQUEUECOPYBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyBuffer");
+ __oclEnqueueReadImage = (PFNCLENQUEUEREADIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueReadImage");
+ __oclEnqueueWriteImage = (PFNCLENQUEUEWRITEIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueWriteImage");
+ __oclEnqueueCopyImage = (PFNCLENQUEUECOPYIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyImage");
+ __oclEnqueueCopyImageToBuffer = (PFNCLENQUEUECOPYIMAGETOBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyImageToBuffer");
+ __oclEnqueueCopyBufferToImage = (PFNCLENQUEUECOPYBUFFERTOIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyBufferToImage");
+ __oclEnqueueMapBuffer = (PFNCLENQUEUEMAPBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueMapBuffer");
+ __oclEnqueueMapImage = (PFNCLENQUEUEMAPIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueMapImage");
+ __oclEnqueueUnmapMemObject = (PFNCLENQUEUEUNMAPMEMOBJECT )CLCC_DYNLIB_IMPORT(module, "clEnqueueUnmapMemObject");
+ __oclEnqueueNDRangeKernel = (PFNCLENQUEUENDRANGEKERNEL )CLCC_DYNLIB_IMPORT(module, "clEnqueueNDRangeKernel");
+ __oclEnqueueTask = (PFNCLENQUEUETASK )CLCC_DYNLIB_IMPORT(module, "clEnqueueTask");
+ __oclEnqueueNativeKernel = (PFNCLENQUEUENATIVEKERNEL )CLCC_DYNLIB_IMPORT(module, "clEnqueueNativeKernel");
+ __oclEnqueueMarker = (PFNCLENQUEUEMARKER )CLCC_DYNLIB_IMPORT(module, "clEnqueueMarker");
+ __oclEnqueueWaitForEvents = (PFNCLENQUEUEWAITFOREVENTS )CLCC_DYNLIB_IMPORT(module, "clEnqueueWaitForEvents");
+ __oclEnqueueBarrier = (PFNCLENQUEUEBARRIER )CLCC_DYNLIB_IMPORT(module, "clEnqueueBarrier");
+ __oclGetExtensionFunctionAddress = (PFNCLGETEXTENSIONFUNCTIONADDRESS )CLCC_DYNLIB_IMPORT(module, "clGetExtensionFunctionAddress");
+
+ return CLEW_SUCCESS;
+}
+
+//! \param error CL error code
+//! \return a string representation of the error code
+const char* clewErrorString(cl_int error)
+{
+ static const char* strings[] =
+ {
+ // Error Codes
+ "CL_SUCCESS" // 0
+ , "CL_DEVICE_NOT_FOUND" // -1
+ , "CL_DEVICE_NOT_AVAILABLE" // -2
+ , "CL_COMPILER_NOT_AVAILABLE" // -3
+ , "CL_MEM_OBJECT_ALLOCATION_FAILURE" // -4
+ , "CL_OUT_OF_RESOURCES" // -5
+ , "CL_OUT_OF_HOST_MEMORY" // -6
+ , "CL_PROFILING_INFO_NOT_AVAILABLE" // -7
+ , "CL_MEM_COPY_OVERLAP" // -8
+ , "CL_IMAGE_FORMAT_MISMATCH" // -9
+ , "CL_IMAGE_FORMAT_NOT_SUPPORTED" // -10
+ , "CL_BUILD_PROGRAM_FAILURE" // -11
+ , "CL_MAP_FAILURE" // -12
+
+ , "" // -13
+ , "" // -14
+ , "" // -15
+ , "" // -16
+ , "" // -17
+ , "" // -18
+ , "" // -19
+
+ , "" // -20
+ , "" // -21
+ , "" // -22
+ , "" // -23
+ , "" // -24
+ , "" // -25
+ , "" // -26
+ , "" // -27
+ , "" // -28
+ , "" // -29
+
+ , "CL_INVALID_VALUE" // -30
+ , "CL_INVALID_DEVICE_TYPE" // -31
+ , "CL_INVALID_PLATFORM" // -32
+ , "CL_INVALID_DEVICE" // -33
+ , "CL_INVALID_CONTEXT" // -34
+ , "CL_INVALID_QUEUE_PROPERTIES" // -35
+ , "CL_INVALID_COMMAND_QUEUE" // -36
+ , "CL_INVALID_HOST_PTR" // -37
+ , "CL_INVALID_MEM_OBJECT" // -38
+ , "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR" // -39
+ , "CL_INVALID_IMAGE_SIZE" // -40
+ , "CL_INVALID_SAMPLER" // -41
+ , "CL_INVALID_BINARY" // -42
+ , "CL_INVALID_BUILD_OPTIONS" // -43
+ , "CL_INVALID_PROGRAM" // -44
+ , "CL_INVALID_PROGRAM_EXECUTABLE" // -45
+ , "CL_INVALID_KERNEL_NAME" // -46
+ , "CL_INVALID_KERNEL_DEFINITION" // -47
+ , "CL_INVALID_KERNEL" // -48
+ , "CL_INVALID_ARG_INDEX" // -49
+ , "CL_INVALID_ARG_VALUE" // -50
+ , "CL_INVALID_ARG_SIZE" // -51
+ , "CL_INVALID_KERNEL_ARGS" // -52
+ , "CL_INVALID_WORK_DIMENSION" // -53
+ , "CL_INVALID_WORK_GROUP_SIZE" // -54
+ , "CL_INVALID_WORK_ITEM_SIZE" // -55
+ , "CL_INVALID_GLOBAL_OFFSET" // -56
+ , "CL_INVALID_EVENT_WAIT_LIST" // -57
+ , "CL_INVALID_EVENT" // -58
+ , "CL_INVALID_OPERATION" // -59
+ , "CL_INVALID_GL_OBJECT" // -60
+ , "CL_INVALID_BUFFER_SIZE" // -61
+ , "CL_INVALID_MIP_LEVEL" // -62
+ , "CL_INVALID_GLOBAL_WORK_SIZE" // -63
+ };
+
+ return strings[-error];
+}
diff --git a/source/blender/opencl/intern/clew.h b/source/blender/opencl/intern/clew.h
new file mode 100644
index 00000000000..bb7e0134dcf
--- /dev/null
+++ b/source/blender/opencl/intern/clew.h
@@ -0,0 +1,1317 @@
+#ifndef CLCC_CLEW_HPP_INCLUDED
+#define CLCC_CLEW_HPP_INCLUDED
+
+//////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2009 Organic Vectory B.V.
+// Written by George van Venrooij
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file license.txt)
+//////////////////////////////////////////////////////////////////////////
+
+//! \file clew.h
+//! \brief OpenCL run-time loader header
+//!
+//! This file contains a copy of the contents of CL.H and CL_PLATFORM.H from the
+//! official OpenCL spec. The purpose of this code is to load the OpenCL dynamic
+//! library at run-time and thus allow the executable to function on many
+//! platforms regardless of the vendor of the OpenCL driver actually installed.
+//! Some of the techniques used here were inspired by work done in the GLEW
+//! library (http://glew.sourceforge.net/)
+
+// Run-time dynamic linking functionality based on concepts used in GLEW
+#ifdef __OPENCL_CL_H
+#error cl.h included before clew.h
+#endif
+
+#ifdef __OPENCL_CL_PLATFORM_H
+#error cl_platform.h included before clew.h
+#endif
+
+#ifndef CLCC_GENERATE_DOCUMENTATION
+// Prevent cl.h inclusion
+#define __OPENCL_CL_H
+// Prevent cl_platform.h inclusion
+#define __CL_PLATFORM_H
+#endif // CLCC_GENERATE_DOCUMENTATION
+
+/*******************************************************************************
+* Copyright (c) 2008-2009 The Khronos Group Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and/or associated documentation files (the
+* "Materials"), to deal in the Materials without restriction, including
+* without limitation the rights to use, copy, modify, merge, publish,
+* distribute, sublicense, and/or sell copies of the Materials, and to
+* permit persons to whom the Materials are furnished to do so, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Materials.
+*
+* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+******************************************************************************/
+#ifdef __APPLE__
+/* Contains #defines for AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER below */
+#include <AvailabilityMacros.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef CLCC_GENERATE_DOCUMENTATION
+
+#if defined(_WIN32)
+#define CL_API_ENTRY
+#define CL_API_CALL __stdcall
+#else
+#define CL_API_ENTRY
+#define CL_API_CALL
+#endif
+
+#if defined(__APPLE__)
+//JBKK removed for compatibility with blender trunk #define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#define CL_API_SUFFIX__VERSION_1_0
+#define CL_EXTENSION_WEAK_LINK __attribute__((weak_import))
+#else
+#define CL_API_SUFFIX__VERSION_1_0
+#define CL_EXTENSION_WEAK_LINK
+#endif
+
+#if defined(_WIN32) && defined(_MSC_VER)
+
+/* scalar types */
+typedef signed __int8 cl_char;
+typedef unsigned __int8 cl_uchar;
+typedef signed __int16 cl_short;
+typedef unsigned __int16 cl_ushort;
+typedef signed __int32 cl_int;
+typedef unsigned __int32 cl_uint;
+typedef signed __int64 cl_long;
+typedef unsigned __int64 cl_ulong;
+
+typedef unsigned __int16 cl_half;
+typedef float cl_float;
+typedef double cl_double;
+
+
+/*
+* Vector types
+*
+* Note: OpenCL requires that all types be naturally aligned.
+* This means that vector types must be naturally aligned.
+* For example, a vector of four floats must be aligned to
+* a 16 byte boundary (calculated as 4 * the natural 4-byte
+* alignment of the float). The alignment qualifiers here
+* will only function properly if your compiler supports them
+* and if you don't actively work to defeat them. For example,
+* in order for a cl_float4 to be 16 byte aligned in a struct,
+* the start of the struct must itself be 16-byte aligned.
+*
+* Maintaining proper alignment is the user's responsibility.
+*/
+typedef signed __int8 cl_char2[2];
+typedef signed __int8 cl_char4[4];
+typedef signed __int8 cl_char8[8];
+typedef signed __int8 cl_char16[16];
+typedef unsigned __int8 cl_uchar2[2];
+typedef unsigned __int8 cl_uchar4[4];
+typedef unsigned __int8 cl_uchar8[8];
+typedef unsigned __int8 cl_uchar16[16];
+
+typedef signed __int16 cl_short2[2];
+typedef signed __int16 cl_short4[4];
+typedef signed __int16 cl_short8[8];
+typedef signed __int16 cl_short16[16];
+typedef unsigned __int16 cl_ushort2[2];
+typedef unsigned __int16 cl_ushort4[4];
+typedef unsigned __int16 cl_ushort8[8];
+typedef unsigned __int16 cl_ushort16[16];
+
+typedef signed __int32 cl_int2[2];
+typedef signed __int32 cl_int4[4];
+typedef signed __int32 cl_int8[8];
+typedef signed __int32 cl_int16[16];
+typedef unsigned __int32 cl_uint2[2];
+typedef unsigned __int32 cl_uint4[4];
+typedef unsigned __int32 cl_uint8[8];
+typedef unsigned __int32 cl_uint16[16];
+
+typedef signed __int64 cl_long2[2];
+typedef signed __int64 cl_long4[4];
+typedef signed __int64 cl_long8[8];
+typedef signed __int64 cl_long16[16];
+typedef unsigned __int64 cl_ulong2[2];
+typedef unsigned __int64 cl_ulong4[4];
+typedef unsigned __int64 cl_ulong8[8];
+typedef unsigned __int64 cl_ulong16[16];
+
+typedef float cl_float2[2];
+typedef float cl_float4[4];
+typedef float cl_float8[8];
+typedef float cl_float16[16];
+
+typedef double cl_double2[2];
+typedef double cl_double4[4];
+typedef double cl_double8[8];
+typedef double cl_double16[16];
+/* There are no vector types for half */
+
+#else
+
+#include <stdint.h>
+
+/* scalar types */
+typedef int8_t cl_char;
+typedef uint8_t cl_uchar;
+typedef int16_t cl_short __attribute__((aligned(2)));
+typedef uint16_t cl_ushort __attribute__((aligned(2)));
+typedef int32_t cl_int __attribute__((aligned(4)));
+typedef uint32_t cl_uint __attribute__((aligned(4)));
+typedef int64_t cl_long __attribute__((aligned(8)));
+typedef uint64_t cl_ulong __attribute__((aligned(8)));
+
+typedef uint16_t cl_half __attribute__((aligned(2)));
+typedef float cl_float __attribute__((aligned(4)));
+typedef double cl_double __attribute__((aligned(8)));
+
+/*
+* Vector types
+*
+* Note: OpenCL requires that all types be naturally aligned.
+* This means that vector types must be naturally aligned.
+* For example, a vector of four floats must be aligned to
+* a 16 byte boundary (calculated as 4 * the natural 4-byte
+* alignment of the float). The alignment qualifiers here
+* will only function properly if your compiler supports them
+* and if you don't actively work to defeat them. For example,
+* in order for a cl_float4 to be 16 byte aligned in a struct,
+* the start of the struct must itself be 16-byte aligned.
+*
+* Maintaining proper alignment is the user's responsibility.
+*/
+typedef int8_t cl_char2[2] __attribute__((aligned(2)));
+typedef int8_t cl_char4[4] __attribute__((aligned(4)));
+typedef int8_t cl_char8[8] __attribute__((aligned(8)));
+typedef int8_t cl_char16[16] __attribute__((aligned(16)));
+typedef uint8_t cl_uchar2[2] __attribute__((aligned(2)));
+typedef uint8_t cl_uchar4[4] __attribute__((aligned(4)));
+typedef uint8_t cl_uchar8[8] __attribute__((aligned(8)));
+typedef uint8_t cl_uchar16[16] __attribute__((aligned(16)));
+
+typedef int16_t cl_short2[2] __attribute__((aligned(4)));
+typedef int16_t cl_short4[4] __attribute__((aligned(8)));
+typedef int16_t cl_short8[8] __attribute__((aligned(16)));
+typedef int16_t cl_short16[16] __attribute__((aligned(32)));
+typedef uint16_t cl_ushort2[2] __attribute__((aligned(4)));
+typedef uint16_t cl_ushort4[4] __attribute__((aligned(8)));
+typedef uint16_t cl_ushort8[8] __attribute__((aligned(16)));
+typedef uint16_t cl_ushort16[16] __attribute__((aligned(32)));
+
+typedef int32_t cl_int2[2] __attribute__((aligned(8)));
+typedef int32_t cl_int4[4] __attribute__((aligned(16)));
+typedef int32_t cl_int8[8] __attribute__((aligned(32)));
+typedef int32_t cl_int16[16] __attribute__((aligned(64)));
+typedef uint32_t cl_uint2[2] __attribute__((aligned(8)));
+typedef uint32_t cl_uint4[4] __attribute__((aligned(16)));
+typedef uint32_t cl_uint8[8] __attribute__((aligned(32)));
+typedef uint32_t cl_uint16[16] __attribute__((aligned(64)));
+
+typedef int64_t cl_long2[2] __attribute__((aligned(16)));
+typedef int64_t cl_long4[4] __attribute__((aligned(32)));
+typedef int64_t cl_long8[8] __attribute__((aligned(64)));
+typedef int64_t cl_long16[16] __attribute__((aligned(128)));
+typedef uint64_t cl_ulong2[2] __attribute__((aligned(16)));
+typedef uint64_t cl_ulong4[4] __attribute__((aligned(32)));
+typedef uint64_t cl_ulong8[8] __attribute__((aligned(64)));
+typedef uint64_t cl_ulong16[16] __attribute__((aligned(128)));
+
+typedef float cl_float2[2] __attribute__((aligned(8)));
+typedef float cl_float4[4] __attribute__((aligned(16)));
+typedef float cl_float8[8] __attribute__((aligned(32)));
+typedef float cl_float16[16] __attribute__((aligned(64)));
+
+typedef double cl_double2[2] __attribute__((aligned(16)));
+typedef double cl_double4[4] __attribute__((aligned(32)));
+typedef double cl_double8[8] __attribute__((aligned(64)));
+typedef double cl_double16[16] __attribute__((aligned(128)));
+
+/* There are no vector types for half */
+
+#endif
+
+/******************************************************************************/
+
+// Macro names and corresponding values defined by OpenCL
+
+#define CL_CHAR_BIT 8
+#define CL_SCHAR_MAX 127
+#define CL_SCHAR_MIN (-127-1)
+#define CL_CHAR_MAX CL_SCHAR_MAX
+#define CL_CHAR_MIN CL_SCHAR_MIN
+#define CL_UCHAR_MAX 255
+#define CL_SHRT_MAX 32767
+#define CL_SHRT_MIN (-32767-1)
+#define CL_USHRT_MAX 65535
+#define CL_INT_MAX 2147483647
+#define CL_INT_MIN (-2147483647-1)
+#define CL_UINT_MAX 0xffffffffU
+#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
+#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
+#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
+
+#define CL_FLT_DIG 6
+#define CL_FLT_MANT_DIG 24
+#define CL_FLT_MAX_10_EXP +38
+#define CL_FLT_MAX_EXP +128
+#define CL_FLT_MIN_10_EXP -37
+#define CL_FLT_MIN_EXP -125
+#define CL_FLT_RADIX 2
+#if defined(_MSC_VER)
+// MSVC doesn't understand hex floats
+#define CL_FLT_MAX 3.402823466e+38F
+#define CL_FLT_MIN 1.175494351e-38F
+#define CL_FLT_EPSILON 1.192092896e-07F
+#else
+#define CL_FLT_MAX 0x1.fffffep127f
+#define CL_FLT_MIN 0x1.0p-126f
+#define CL_FLT_EPSILON 0x1.0p-23f
+#endif
+
+#define CL_DBL_DIG 15
+#define CL_DBL_MANT_DIG 53
+#define CL_DBL_MAX_10_EXP +308
+#define CL_DBL_MAX_EXP +1024
+#define CL_DBL_MIN_10_EXP -307
+#define CL_DBL_MIN_EXP -1021
+#define CL_DBL_RADIX 2
+#if defined(_MSC_VER)
+// MSVC doesn't understand hex floats
+#define CL_DBL_MAX 1.7976931348623158e+308
+#define CL_DBL_MIN 2.2250738585072014e-308
+#define CL_DBL_EPSILON 2.2204460492503131e-016
+#else
+#define CL_DBL_MAX 0x1.fffffffffffffp1023
+#define CL_DBL_MIN 0x1.0p-1022
+#define CL_DBL_EPSILON 0x1.0p-52
+#endif
+
+#include <stddef.h>
+
+
+// CL.h contents
+/******************************************************************************/
+
+typedef struct _cl_platform_id * cl_platform_id;
+typedef struct _cl_device_id * cl_device_id;
+typedef struct _cl_context * cl_context;
+typedef struct _cl_command_queue * cl_command_queue;
+typedef struct _cl_mem * cl_mem;
+typedef struct _cl_program * cl_program;
+typedef struct _cl_kernel * cl_kernel;
+typedef struct _cl_event * cl_event;
+typedef struct _cl_sampler * cl_sampler;
+
+typedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */
+typedef cl_ulong cl_bitfield;
+typedef cl_bitfield cl_device_type;
+typedef cl_uint cl_platform_info;
+typedef cl_uint cl_device_info;
+typedef cl_bitfield cl_device_address_info;
+typedef cl_bitfield cl_device_fp_config;
+typedef cl_uint cl_device_mem_cache_type;
+typedef cl_uint cl_device_local_mem_type;
+typedef cl_bitfield cl_device_exec_capabilities;
+typedef cl_bitfield cl_command_queue_properties;
+
+typedef intptr_t cl_context_properties;
+typedef cl_uint cl_context_info;
+typedef cl_uint cl_command_queue_info;
+typedef cl_uint cl_channel_order;
+typedef cl_uint cl_channel_type;
+typedef cl_bitfield cl_mem_flags;
+typedef cl_uint cl_mem_object_type;
+typedef cl_uint cl_mem_info;
+typedef cl_uint cl_image_info;
+typedef cl_uint cl_addressing_mode;
+typedef cl_uint cl_filter_mode;
+typedef cl_uint cl_sampler_info;
+typedef cl_bitfield cl_map_flags;
+typedef cl_uint cl_program_info;
+typedef cl_uint cl_program_build_info;
+typedef cl_int cl_build_status;
+typedef cl_uint cl_kernel_info;
+typedef cl_uint cl_kernel_work_group_info;
+typedef cl_uint cl_event_info;
+typedef cl_uint cl_command_type;
+typedef cl_uint cl_profiling_info;
+
+typedef struct _cl_image_format {
+ cl_channel_order image_channel_order;
+ cl_channel_type image_channel_data_type;
+} cl_image_format;
+
+
+
+/******************************************************************************/
+
+// Error Codes
+#define CL_SUCCESS 0
+#define CL_DEVICE_NOT_FOUND -1
+#define CL_DEVICE_NOT_AVAILABLE -2
+#define CL_COMPILER_NOT_AVAILABLE -3
+#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4
+#define CL_OUT_OF_RESOURCES -5
+#define CL_OUT_OF_HOST_MEMORY -6
+#define CL_PROFILING_INFO_NOT_AVAILABLE -7
+#define CL_MEM_COPY_OVERLAP -8
+#define CL_IMAGE_FORMAT_MISMATCH -9
+#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10
+#define CL_BUILD_PROGRAM_FAILURE -11
+#define CL_MAP_FAILURE -12
+
+#define CL_INVALID_VALUE -30
+#define CL_INVALID_DEVICE_TYPE -31
+#define CL_INVALID_PLATFORM -32
+#define CL_INVALID_DEVICE -33
+#define CL_INVALID_CONTEXT -34
+#define CL_INVALID_QUEUE_PROPERTIES -35
+#define CL_INVALID_COMMAND_QUEUE -36
+#define CL_INVALID_HOST_PTR -37
+#define CL_INVALID_MEM_OBJECT -38
+#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39
+#define CL_INVALID_IMAGE_SIZE -40
+#define CL_INVALID_SAMPLER -41
+#define CL_INVALID_BINARY -42
+#define CL_INVALID_BUILD_OPTIONS -43
+#define CL_INVALID_PROGRAM -44
+#define CL_INVALID_PROGRAM_EXECUTABLE -45
+#define CL_INVALID_KERNEL_NAME -46
+#define CL_INVALID_KERNEL_DEFINITION -47
+#define CL_INVALID_KERNEL -48
+#define CL_INVALID_ARG_INDEX -49
+#define CL_INVALID_ARG_VALUE -50
+#define CL_INVALID_ARG_SIZE -51
+#define CL_INVALID_KERNEL_ARGS -52
+#define CL_INVALID_WORK_DIMENSION -53
+#define CL_INVALID_WORK_GROUP_SIZE -54
+#define CL_INVALID_WORK_ITEM_SIZE -55
+#define CL_INVALID_GLOBAL_OFFSET -56
+#define CL_INVALID_EVENT_WAIT_LIST -57
+#define CL_INVALID_EVENT -58
+#define CL_INVALID_OPERATION -59
+#define CL_INVALID_GL_OBJECT -60
+#define CL_INVALID_BUFFER_SIZE -61
+#define CL_INVALID_MIP_LEVEL -62
+#define CL_INVALID_GLOBAL_WORK_SIZE -63
+
+// OpenCL Version
+#define CL_VERSION_1_0 1
+
+// cl_bool
+#define CL_FALSE 0
+#define CL_TRUE 1
+
+// cl_platform_info
+#define CL_PLATFORM_PROFILE 0x0900
+#define CL_PLATFORM_VERSION 0x0901
+#define CL_PLATFORM_NAME 0x0902
+#define CL_PLATFORM_VENDOR 0x0903
+#define CL_PLATFORM_EXTENSIONS 0x0904
+
+// cl_device_type - bitfield
+#define CL_DEVICE_TYPE_DEFAULT (1 << 0)
+#define CL_DEVICE_TYPE_CPU (1 << 1)
+#define CL_DEVICE_TYPE_GPU (1 << 2)
+#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3)
+#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF
+
+// cl_device_info
+#define CL_DEVICE_TYPE 0x1000
+#define CL_DEVICE_VENDOR_ID 0x1001
+#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002
+#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003
+#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004
+#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B
+#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C
+#define CL_DEVICE_ADDRESS_BITS 0x100D
+#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E
+#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F
+#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010
+#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011
+#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012
+#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013
+#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014
+#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015
+#define CL_DEVICE_IMAGE_SUPPORT 0x1016
+#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017
+#define CL_DEVICE_MAX_SAMPLERS 0x1018
+#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019
+#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A
+#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B
+#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C
+#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D
+#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E
+#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F
+#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020
+#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021
+#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022
+#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023
+#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024
+#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025
+#define CL_DEVICE_ENDIAN_LITTLE 0x1026
+#define CL_DEVICE_AVAILABLE 0x1027
+#define CL_DEVICE_COMPILER_AVAILABLE 0x1028
+#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029
+#define CL_DEVICE_QUEUE_PROPERTIES 0x102A
+#define CL_DEVICE_NAME 0x102B
+#define CL_DEVICE_VENDOR 0x102C
+#define CL_DRIVER_VERSION 0x102D
+#define CL_DEVICE_PROFILE 0x102E
+#define CL_DEVICE_VERSION 0x102F
+#define CL_DEVICE_EXTENSIONS 0x1030
+#define CL_DEVICE_PLATFORM 0x1031
+
+// cl_device_fp_config - bitfield
+#define CL_FP_DENORM (1 << 0)
+#define CL_FP_INF_NAN (1 << 1)
+#define CL_FP_ROUND_TO_NEAREST (1 << 2)
+#define CL_FP_ROUND_TO_ZERO (1 << 3)
+#define CL_FP_ROUND_TO_INF (1 << 4)
+#define CL_FP_FMA (1 << 5)
+
+// cl_device_mem_cache_type
+#define CL_NONE 0x0
+#define CL_READ_ONLY_CACHE 0x1
+#define CL_READ_WRITE_CACHE 0x2
+
+// cl_device_local_mem_type
+#define CL_LOCAL 0x1
+#define CL_GLOBAL 0x2
+
+// cl_device_exec_capabilities - bitfield
+#define CL_EXEC_KERNEL (1 << 0)
+#define CL_EXEC_NATIVE_KERNEL (1 << 1)
+
+// cl_command_queue_properties - bitfield
+#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0)
+#define CL_QUEUE_PROFILING_ENABLE (1 << 1)
+
+// cl_context_info
+#define CL_CONTEXT_REFERENCE_COUNT 0x1080
+#define CL_CONTEXT_DEVICES 0x1081
+#define CL_CONTEXT_PROPERTIES 0x1082
+
+// cl_context_properties
+#define CL_CONTEXT_PLATFORM 0x1084
+
+// cl_command_queue_info
+#define CL_QUEUE_CONTEXT 0x1090
+#define CL_QUEUE_DEVICE 0x1091
+#define CL_QUEUE_REFERENCE_COUNT 0x1092
+#define CL_QUEUE_PROPERTIES 0x1093
+
+// cl_mem_flags - bitfield
+#define CL_MEM_READ_WRITE (1 << 0)
+#define CL_MEM_WRITE_ONLY (1 << 1)
+#define CL_MEM_READ_ONLY (1 << 2)
+#define CL_MEM_USE_HOST_PTR (1 << 3)
+#define CL_MEM_ALLOC_HOST_PTR (1 << 4)
+#define CL_MEM_COPY_HOST_PTR (1 << 5)
+
+// cl_channel_order
+#define CL_R 0x10B0
+#define CL_A 0x10B1
+#define CL_RG 0x10B2
+#define CL_RA 0x10B3
+#define CL_RGB 0x10B4
+#define CL_RGBA 0x10B5
+#define CL_BGRA 0x10B6
+#define CL_ARGB 0x10B7
+#define CL_INTENSITY 0x10B8
+#define CL_LUMINANCE 0x10B9
+
+// cl_channel_type
+#define CL_SNORM_INT8 0x10D0
+#define CL_SNORM_INT16 0x10D1
+#define CL_UNORM_INT8 0x10D2
+#define CL_UNORM_INT16 0x10D3
+#define CL_UNORM_SHORT_565 0x10D4
+#define CL_UNORM_SHORT_555 0x10D5
+#define CL_UNORM_INT_101010 0x10D6
+#define CL_SIGNED_INT8 0x10D7
+#define CL_SIGNED_INT16 0x10D8
+#define CL_SIGNED_INT32 0x10D9
+#define CL_UNSIGNED_INT8 0x10DA
+#define CL_UNSIGNED_INT16 0x10DB
+#define CL_UNSIGNED_INT32 0x10DC
+#define CL_HALF_FLOAT 0x10DD
+#define CL_FLOAT 0x10DE
+
+// cl_mem_object_type
+#define CL_MEM_OBJECT_BUFFER 0x10F0
+#define CL_MEM_OBJECT_IMAGE2D 0x10F1
+#define CL_MEM_OBJECT_IMAGE3D 0x10F2
+
+// cl_mem_info
+#define CL_MEM_TYPE 0x1100
+#define CL_MEM_FLAGS 0x1101
+#define CL_MEM_SIZE 0x1102
+#define CL_MEM_HOST_PTR 0x1103
+#define CL_MEM_MAP_COUNT 0x1104
+#define CL_MEM_REFERENCE_COUNT 0x1105
+#define CL_MEM_CONTEXT 0x1106
+
+// cl_image_info
+#define CL_IMAGE_FORMAT 0x1110
+#define CL_IMAGE_ELEMENT_SIZE 0x1111
+#define CL_IMAGE_ROW_PITCH 0x1112
+#define CL_IMAGE_SLICE_PITCH 0x1113
+#define CL_IMAGE_WIDTH 0x1114
+#define CL_IMAGE_HEIGHT 0x1115
+#define CL_IMAGE_DEPTH 0x1116
+
+// cl_addressing_mode
+#define CL_ADDRESS_NONE 0x1130
+#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131
+#define CL_ADDRESS_CLAMP 0x1132
+#define CL_ADDRESS_REPEAT 0x1133
+
+// cl_filter_mode
+#define CL_FILTER_NEAREST 0x1140
+#define CL_FILTER_LINEAR 0x1141
+
+// cl_sampler_info
+#define CL_SAMPLER_REFERENCE_COUNT 0x1150
+#define CL_SAMPLER_CONTEXT 0x1151
+#define CL_SAMPLER_NORMALIZED_COORDS 0x1152
+#define CL_SAMPLER_ADDRESSING_MODE 0x1153
+#define CL_SAMPLER_FILTER_MODE 0x1154
+
+// cl_map_flags - bitfield
+#define CL_MAP_READ (1 << 0)
+#define CL_MAP_WRITE (1 << 1)
+
+// cl_program_info
+#define CL_PROGRAM_REFERENCE_COUNT 0x1160
+#define CL_PROGRAM_CONTEXT 0x1161
+#define CL_PROGRAM_NUM_DEVICES 0x1162
+#define CL_PROGRAM_DEVICES 0x1163
+#define CL_PROGRAM_SOURCE 0x1164
+#define CL_PROGRAM_BINARY_SIZES 0x1165
+#define CL_PROGRAM_BINARIES 0x1166
+
+// cl_program_build_info
+#define CL_PROGRAM_BUILD_STATUS 0x1181
+#define CL_PROGRAM_BUILD_OPTIONS 0x1182
+#define CL_PROGRAM_BUILD_LOG 0x1183
+
+// cl_build_status
+#define CL_BUILD_SUCCESS 0
+#define CL_BUILD_NONE -1
+#define CL_BUILD_ERROR -2
+#define CL_BUILD_IN_PROGRESS -3
+
+// cl_kernel_info
+#define CL_KERNEL_FUNCTION_NAME 0x1190
+#define CL_KERNEL_NUM_ARGS 0x1191
+#define CL_KERNEL_REFERENCE_COUNT 0x1192
+#define CL_KERNEL_CONTEXT 0x1193
+#define CL_KERNEL_PROGRAM 0x1194
+
+// cl_kernel_work_group_info
+#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0
+#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1
+#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2
+
+// cl_event_info
+#define CL_EVENT_COMMAND_QUEUE 0x11D0
+#define CL_EVENT_COMMAND_TYPE 0x11D1
+#define CL_EVENT_REFERENCE_COUNT 0x11D2
+#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3
+
+// cl_command_type
+#define CL_COMMAND_NDRANGE_KERNEL 0x11F0
+#define CL_COMMAND_TASK 0x11F1
+#define CL_COMMAND_NATIVE_KERNEL 0x11F2
+#define CL_COMMAND_READ_BUFFER 0x11F3
+#define CL_COMMAND_WRITE_BUFFER 0x11F4
+#define CL_COMMAND_COPY_BUFFER 0x11F5
+#define CL_COMMAND_READ_IMAGE 0x11F6
+#define CL_COMMAND_WRITE_IMAGE 0x11F7
+#define CL_COMMAND_COPY_IMAGE 0x11F8
+#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9
+#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA
+#define CL_COMMAND_MAP_BUFFER 0x11FB
+#define CL_COMMAND_MAP_IMAGE 0x11FC
+#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD
+#define CL_COMMAND_MARKER 0x11FE
+#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF
+#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200
+
+// command execution status
+#define CL_COMPLETE 0x0
+#define CL_RUNNING 0x1
+#define CL_SUBMITTED 0x2
+#define CL_QUEUED 0x3
+
+// cl_profiling_info
+#define CL_PROFILING_COMMAND_QUEUED 0x1280
+#define CL_PROFILING_COMMAND_SUBMIT 0x1281
+#define CL_PROFILING_COMMAND_START 0x1282
+#define CL_PROFILING_COMMAND_END 0x1283
+
+/********************************************************************************************************/
+
+/********************************************************************************************************/
+
+// Function signature typedef's
+
+// Platform API
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETPLATFORMIDS)(cl_uint /* num_entries */,
+ cl_platform_id * /* platforms */,
+ cl_uint * /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETPLATFORMINFO)(cl_platform_id /* platform */,
+ cl_platform_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Device APIs
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETDEVICEIDS)(cl_platform_id /* platform */,
+ cl_device_type /* device_type */,
+ cl_uint /* num_entries */,
+ cl_device_id * /* devices */,
+ cl_uint * /* num_devices */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETDEVICEINFO)(cl_device_id /* device */,
+ cl_device_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Context APIs
+typedef CL_API_ENTRY cl_context (CL_API_CALL *
+PFNCLCREATECONTEXT)(const cl_context_properties * /* properties */,
+ cl_uint /* num_devices */,
+ const cl_device_id * /* devices */,
+ void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */,
+ void * /* user_data */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_context (CL_API_CALL *
+PFNCLCREATECONTEXTFROMTYPE)(const cl_context_properties * /* properties */,
+ cl_device_type /* device_type */,
+ void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */,
+ void * /* user_data */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINCONTEXT)(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASECONTEXT)(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETCONTEXTINFO)(cl_context /* context */,
+ cl_context_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Command Queue APIs
+typedef CL_API_ENTRY cl_command_queue (CL_API_CALL *
+PFNCLCREATECOMMANDQUEUE)(cl_context /* context */,
+ cl_device_id /* device */,
+ cl_command_queue_properties /* properties */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINCOMMANDQUEUE)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASECOMMANDQUEUE)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETCOMMANDQUEUEINFO)(cl_command_queue /* command_queue */,
+ cl_command_queue_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLSETCOMMANDQUEUEPROPERTY)(cl_command_queue /* command_queue */,
+ cl_command_queue_properties /* properties */,
+ cl_bool /* enable */,
+ cl_command_queue_properties * /* old_properties */) CL_API_SUFFIX__VERSION_1_0;
+
+// Memory Object APIs
+typedef CL_API_ENTRY cl_mem (CL_API_CALL *
+PFNCLCREATEBUFFER)(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ size_t /* size */,
+ void * /* host_ptr */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_mem (CL_API_CALL *
+PFNCLCREATEIMAGE2D)(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ const cl_image_format * /* image_format */,
+ size_t /* image_width */,
+ size_t /* image_height */,
+ size_t /* image_row_pitch */,
+ void * /* host_ptr */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_mem (CL_API_CALL *
+PFNCLCREATEIMAGE3D)(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ const cl_image_format * /* image_format */,
+ size_t /* image_width */,
+ size_t /* image_height */,
+ size_t /* image_depth */,
+ size_t /* image_row_pitch */,
+ size_t /* image_slice_pitch */,
+ void * /* host_ptr */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINMEMOBJECT)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASEMEMOBJECT)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETSUPPORTEDIMAGEFORMATS)(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ cl_mem_object_type /* image_type */,
+ cl_uint /* num_entries */,
+ cl_image_format * /* image_formats */,
+ cl_uint * /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETMEMOBJECTINFO)(cl_mem /* memobj */,
+ cl_mem_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETIMAGEINFO)(cl_mem /* image */,
+ cl_image_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Sampler APIs
+typedef CL_API_ENTRY cl_sampler (CL_API_CALL *
+PFNCLCREATESAMPLER)(cl_context /* context */,
+ cl_bool /* normalized_coords */,
+ cl_addressing_mode /* addressing_mode */,
+ cl_filter_mode /* filter_mode */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINSAMPLER)(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASESAMPLER)(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETSAMPLERINFO)(cl_sampler /* sampler */,
+ cl_sampler_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Program Object APIs
+typedef CL_API_ENTRY cl_program (CL_API_CALL *
+PFNCLCREATEPROGRAMWITHSOURCE)(cl_context /* context */,
+ cl_uint /* count */,
+ const char ** /* strings */,
+ const size_t * /* lengths */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_program (CL_API_CALL *
+PFNCLCREATEPROGRAMWITHBINARY)(cl_context /* context */,
+ cl_uint /* num_devices */,
+ const cl_device_id * /* device_list */,
+ const size_t * /* lengths */,
+ const unsigned char ** /* binaries */,
+ cl_int * /* binary_status */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINPROGRAM)(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASEPROGRAM)(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLBUILDPROGRAM)(cl_program /* program */,
+ cl_uint /* num_devices */,
+ const cl_device_id * /* device_list */,
+ const char * /* options */,
+ void (*pfn_notify)(cl_program /* program */, void * /* user_data */),
+ void * /* user_data */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLUNLOADCOMPILER)(void) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETPROGRAMINFO)(cl_program /* program */,
+ cl_program_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETPROGRAMBUILDINFO)(cl_program /* program */,
+ cl_device_id /* device */,
+ cl_program_build_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Kernel Object APIs
+typedef CL_API_ENTRY cl_kernel (CL_API_CALL *
+PFNCLCREATEKERNEL)(cl_program /* program */,
+ const char * /* kernel_name */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLCREATEKERNELSINPROGRAM)(cl_program /* program */,
+ cl_uint /* num_kernels */,
+ cl_kernel * /* kernels */,
+ cl_uint * /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINKERNEL)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASEKERNEL)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLSETKERNELARG)(cl_kernel /* kernel */,
+ cl_uint /* arg_index */,
+ size_t /* arg_size */,
+ const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETKERNELINFO)(cl_kernel /* kernel */,
+ cl_kernel_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETKERNELWORKGROUPINFO)(cl_kernel /* kernel */,
+ cl_device_id /* device */,
+ cl_kernel_work_group_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Event Object APIs
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLWAITFOREVENTS)(cl_uint /* num_events */,
+ const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETEVENTINFO)(cl_event /* event */,
+ cl_event_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRETAINEVENT)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLRELEASEEVENT)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+// Profiling APIs
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLGETEVENTPROFILINGINFO)(cl_event /* event */,
+ cl_profiling_info /* param_name */,
+ size_t /* param_value_size */,
+ void * /* param_value */,
+ size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+// Flush and Finish APIs
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLFLUSH)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLFINISH)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
+
+// Enqueued Commands APIs
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEREADBUFFER)(cl_command_queue /* command_queue */,
+ cl_mem /* buffer */,
+ cl_bool /* blocking_read */,
+ size_t /* offset */,
+ size_t /* cb */,
+ void * /* ptr */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEWRITEBUFFER)(cl_command_queue /* command_queue */,
+ cl_mem /* buffer */,
+ cl_bool /* blocking_write */,
+ size_t /* offset */,
+ size_t /* cb */,
+ const void * /* ptr */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUECOPYBUFFER)(cl_command_queue /* command_queue */,
+ cl_mem /* src_buffer */,
+ cl_mem /* dst_buffer */,
+ size_t /* src_offset */,
+ size_t /* dst_offset */,
+ size_t /* cb */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEREADIMAGE)(cl_command_queue /* command_queue */,
+ cl_mem /* image */,
+ cl_bool /* blocking_read */,
+ const size_t * /* origin[3] */,
+ const size_t * /* region[3] */,
+ size_t /* row_pitch */,
+ size_t /* slice_pitch */,
+ void * /* ptr */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEWRITEIMAGE)(cl_command_queue /* command_queue */,
+ cl_mem /* image */,
+ cl_bool /* blocking_write */,
+ const size_t * /* origin[3] */,
+ const size_t * /* region[3] */,
+ size_t /* input_row_pitch */,
+ size_t /* input_slice_pitch */,
+ const void * /* ptr */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUECOPYIMAGE)(cl_command_queue /* command_queue */,
+ cl_mem /* src_image */,
+ cl_mem /* dst_image */,
+ const size_t * /* src_origin[3] */,
+ const size_t * /* dst_origin[3] */,
+ const size_t * /* region[3] */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUECOPYIMAGETOBUFFER)(cl_command_queue /* command_queue */,
+ cl_mem /* src_image */,
+ cl_mem /* dst_buffer */,
+ const size_t * /* src_origin[3] */,
+ const size_t * /* region[3] */,
+ size_t /* dst_offset */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUECOPYBUFFERTOIMAGE)(cl_command_queue /* command_queue */,
+ cl_mem /* src_buffer */,
+ cl_mem /* dst_image */,
+ size_t /* src_offset */,
+ const size_t * /* dst_origin[3] */,
+ const size_t * /* region[3] */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY void * (CL_API_CALL *
+PFNCLENQUEUEMAPBUFFER)(cl_command_queue /* command_queue */,
+ cl_mem /* buffer */,
+ cl_bool /* blocking_map */,
+ cl_map_flags /* map_flags */,
+ size_t /* offset */,
+ size_t /* cb */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY void * (CL_API_CALL *
+PFNCLENQUEUEMAPIMAGE)(cl_command_queue /* command_queue */,
+ cl_mem /* image */,
+ cl_bool /* blocking_map */,
+ cl_map_flags /* map_flags */,
+ const size_t * /* origin[3] */,
+ const size_t * /* region[3] */,
+ size_t * /* image_row_pitch */,
+ size_t * /* image_slice_pitch */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */,
+ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEUNMAPMEMOBJECT)(cl_command_queue /* command_queue */,
+ cl_mem /* memobj */,
+ void * /* mapped_ptr */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUENDRANGEKERNEL)(cl_command_queue /* command_queue */,
+ cl_kernel /* kernel */,
+ cl_uint /* work_dim */,
+ const size_t * /* global_work_offset */,
+ const size_t * /* global_work_size */,
+ const size_t * /* local_work_size */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUETASK)(cl_command_queue /* command_queue */,
+ cl_kernel /* kernel */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUENATIVEKERNEL)(cl_command_queue /* command_queue */,
+ void (*user_func)(void *),
+ void * /* args */,
+ size_t /* cb_args */,
+ cl_uint /* num_mem_objects */,
+ const cl_mem * /* mem_list */,
+ const void ** /* args_mem_loc */,
+ cl_uint /* num_events_in_wait_list */,
+ const cl_event * /* event_wait_list */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEMARKER)(cl_command_queue /* command_queue */,
+ cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEWAITFOREVENTS)(cl_command_queue /* command_queue */,
+ cl_uint /* num_events */,
+ const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *
+PFNCLENQUEUEBARRIER)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
+
+// Extension function access
+//
+// Returns the extension function address for the given function name,
+// or NULL if a valid function can not be found. The client must
+// check to make sure the address is not NULL, before using or
+// calling the returned function address.
+//
+typedef CL_API_ENTRY void * (CL_API_CALL * PFNCLGETEXTENSIONFUNCTIONADDRESS)(const char * /* func_name */) CL_API_SUFFIX__VERSION_1_0;
+
+
+#define CLEW_STATIC
+
+#ifdef CLEW_STATIC
+# define CLEWAPI extern
+#else
+# ifdef CLEW_BUILD
+# define CLEWAPI extern __declspec(dllexport)
+# else
+# define CLEWAPI extern __declspec(dllimport)
+# endif
+#endif
+
+#if defined(_WIN32)
+#define CLEW_FUN_EXPORT extern
+#else
+#define CLEW_FUN_EXPORT CLEWAPI
+#endif
+
+#define CLEW_GET_FUN(x) x
+
+
+// Variables holding function entry points
+CLEW_FUN_EXPORT PFNCLGETPLATFORMIDS __oclGetPlatformIDs ;
+CLEW_FUN_EXPORT PFNCLGETPLATFORMINFO __oclGetPlatformInfo ;
+CLEW_FUN_EXPORT PFNCLGETDEVICEIDS __oclGetDeviceIDs ;
+CLEW_FUN_EXPORT PFNCLGETDEVICEINFO __oclGetDeviceInfo ;
+CLEW_FUN_EXPORT PFNCLCREATECONTEXT __oclCreateContext ;
+CLEW_FUN_EXPORT PFNCLCREATECONTEXTFROMTYPE __oclCreateContextFromType ;
+CLEW_FUN_EXPORT PFNCLRETAINCONTEXT __oclRetainContext ;
+CLEW_FUN_EXPORT PFNCLRELEASECONTEXT __oclReleaseContext ;
+CLEW_FUN_EXPORT PFNCLGETCONTEXTINFO __oclGetContextInfo ;
+CLEW_FUN_EXPORT PFNCLCREATECOMMANDQUEUE __oclCreateCommandQueue ;
+CLEW_FUN_EXPORT PFNCLRETAINCOMMANDQUEUE __oclRetainCommandQueue ;
+CLEW_FUN_EXPORT PFNCLRELEASECOMMANDQUEUE __oclReleaseCommandQueue ;
+CLEW_FUN_EXPORT PFNCLGETCOMMANDQUEUEINFO __oclGetCommandQueueInfo ;
+CLEW_FUN_EXPORT PFNCLSETCOMMANDQUEUEPROPERTY __oclSetCommandQueueProperty ;
+CLEW_FUN_EXPORT PFNCLCREATEBUFFER __oclCreateBuffer ;
+CLEW_FUN_EXPORT PFNCLCREATEIMAGE2D __oclCreateImage2D ;
+CLEW_FUN_EXPORT PFNCLCREATEIMAGE3D __oclCreateImage3D ;
+CLEW_FUN_EXPORT PFNCLRETAINMEMOBJECT __oclRetainMemObject ;
+CLEW_FUN_EXPORT PFNCLRELEASEMEMOBJECT __oclReleaseMemObject ;
+CLEW_FUN_EXPORT PFNCLGETSUPPORTEDIMAGEFORMATS __oclGetSupportedImageFormats ;
+CLEW_FUN_EXPORT PFNCLGETMEMOBJECTINFO __oclGetMemObjectInfo ;
+CLEW_FUN_EXPORT PFNCLGETIMAGEINFO __oclGetImageInfo ;
+CLEW_FUN_EXPORT PFNCLCREATESAMPLER __oclCreateSampler ;
+CLEW_FUN_EXPORT PFNCLRETAINSAMPLER __oclRetainSampler ;
+CLEW_FUN_EXPORT PFNCLRELEASESAMPLER __oclReleaseSampler ;
+CLEW_FUN_EXPORT PFNCLGETSAMPLERINFO __oclGetSamplerInfo ;
+CLEW_FUN_EXPORT PFNCLCREATEPROGRAMWITHSOURCE __oclCreateProgramWithSource ;
+CLEW_FUN_EXPORT PFNCLCREATEPROGRAMWITHBINARY __oclCreateProgramWithBinary ;
+CLEW_FUN_EXPORT PFNCLRETAINPROGRAM __oclRetainProgram ;
+CLEW_FUN_EXPORT PFNCLRELEASEPROGRAM __oclReleaseProgram ;
+CLEW_FUN_EXPORT PFNCLBUILDPROGRAM __oclBuildProgram ;
+CLEW_FUN_EXPORT PFNCLUNLOADCOMPILER __oclUnloadCompiler ;
+CLEW_FUN_EXPORT PFNCLGETPROGRAMINFO __oclGetProgramInfo ;
+CLEW_FUN_EXPORT PFNCLGETPROGRAMBUILDINFO __oclGetProgramBuildInfo ;
+CLEW_FUN_EXPORT PFNCLCREATEKERNEL __oclCreateKernel ;
+CLEW_FUN_EXPORT PFNCLCREATEKERNELSINPROGRAM __oclCreateKernelsInProgram ;
+CLEW_FUN_EXPORT PFNCLRETAINKERNEL __oclRetainKernel ;
+CLEW_FUN_EXPORT PFNCLRELEASEKERNEL __oclReleaseKernel ;
+CLEW_FUN_EXPORT PFNCLSETKERNELARG __oclSetKernelArg ;
+CLEW_FUN_EXPORT PFNCLGETKERNELINFO __oclGetKernelInfo ;
+CLEW_FUN_EXPORT PFNCLGETKERNELWORKGROUPINFO __oclGetKernelWorkGroupInfo ;
+CLEW_FUN_EXPORT PFNCLWAITFOREVENTS __oclWaitForEvents ;
+CLEW_FUN_EXPORT PFNCLGETEVENTINFO __oclGetEventInfo ;
+CLEW_FUN_EXPORT PFNCLRETAINEVENT __oclRetainEvent ;
+CLEW_FUN_EXPORT PFNCLRELEASEEVENT __oclReleaseEvent ;
+CLEW_FUN_EXPORT PFNCLGETEVENTPROFILINGINFO __oclGetEventProfilingInfo ;
+CLEW_FUN_EXPORT PFNCLFLUSH __oclFlush ;
+CLEW_FUN_EXPORT PFNCLFINISH __oclFinish ;
+CLEW_FUN_EXPORT PFNCLENQUEUEREADBUFFER __oclEnqueueReadBuffer ;
+CLEW_FUN_EXPORT PFNCLENQUEUEWRITEBUFFER __oclEnqueueWriteBuffer ;
+CLEW_FUN_EXPORT PFNCLENQUEUECOPYBUFFER __oclEnqueueCopyBuffer ;
+CLEW_FUN_EXPORT PFNCLENQUEUEREADIMAGE __oclEnqueueReadImage ;
+CLEW_FUN_EXPORT PFNCLENQUEUEWRITEIMAGE __oclEnqueueWriteImage ;
+CLEW_FUN_EXPORT PFNCLENQUEUECOPYIMAGE __oclEnqueueCopyImage ;
+CLEW_FUN_EXPORT PFNCLENQUEUECOPYIMAGETOBUFFER __oclEnqueueCopyImageToBuffer ;
+CLEW_FUN_EXPORT PFNCLENQUEUECOPYBUFFERTOIMAGE __oclEnqueueCopyBufferToImage ;
+CLEW_FUN_EXPORT PFNCLENQUEUEMAPBUFFER __oclEnqueueMapBuffer ;
+CLEW_FUN_EXPORT PFNCLENQUEUEMAPIMAGE __oclEnqueueMapImage ;
+CLEW_FUN_EXPORT PFNCLENQUEUEUNMAPMEMOBJECT __oclEnqueueUnmapMemObject ;
+CLEW_FUN_EXPORT PFNCLENQUEUENDRANGEKERNEL __oclEnqueueNDRangeKernel ;
+CLEW_FUN_EXPORT PFNCLENQUEUETASK __oclEnqueueTask ;
+CLEW_FUN_EXPORT PFNCLENQUEUENATIVEKERNEL __oclEnqueueNativeKernel ;
+CLEW_FUN_EXPORT PFNCLENQUEUEMARKER __oclEnqueueMarker ;
+CLEW_FUN_EXPORT PFNCLENQUEUEWAITFOREVENTS __oclEnqueueWaitForEvents ;
+CLEW_FUN_EXPORT PFNCLENQUEUEBARRIER __oclEnqueueBarrier ;
+CLEW_FUN_EXPORT PFNCLGETEXTENSIONFUNCTIONADDRESS __oclGetExtensionFunctionAddress ;
+
+
+#define clGetPlatformIDs CLEW_GET_FUN(__oclGetPlatformIDs )
+#define clGetPlatformInfo CLEW_GET_FUN(__oclGetPlatformInfo )
+#define clGetDeviceIDs CLEW_GET_FUN(__oclGetDeviceIDs )
+#define clGetDeviceInfo CLEW_GET_FUN(__oclGetDeviceInfo )
+#define clCreateContext CLEW_GET_FUN(__oclCreateContext )
+#define clCreateContextFromType CLEW_GET_FUN(__oclCreateContextFromType )
+#define clRetainContext CLEW_GET_FUN(__oclRetainContext )
+#define clReleaseContext CLEW_GET_FUN(__oclReleaseContext )
+#define clGetContextInfo CLEW_GET_FUN(__oclGetContextInfo )
+#define clCreateCommandQueue CLEW_GET_FUN(__oclCreateCommandQueue )
+#define clRetainCommandQueue CLEW_GET_FUN(__oclRetainCommandQueue )
+#define clReleaseCommandQueue CLEW_GET_FUN(__oclReleaseCommandQueue )
+#define clGetCommandQueueInfo CLEW_GET_FUN(__oclGetCommandQueueInfo )
+#define clSetCommandQueueProperty CLEW_GET_FUN(__oclSetCommandQueueProperty )
+#define clCreateBuffer CLEW_GET_FUN(__oclCreateBuffer )
+#define clCreateImage2D CLEW_GET_FUN(__oclCreateImage2D )
+#define clCreateImage3D CLEW_GET_FUN(__oclCreateImage3D )
+#define clRetainMemObject CLEW_GET_FUN(__oclRetainMemObject )
+#define clReleaseMemObject CLEW_GET_FUN(__oclReleaseMemObject )
+#define clGetSupportedImageFormats CLEW_GET_FUN(__oclGetSupportedImageFormats )
+#define clGetMemObjectInfo CLEW_GET_FUN(__oclGetMemObjectInfo )
+#define clGetImageInfo CLEW_GET_FUN(__oclGetImageInfo )
+#define clCreateSampler CLEW_GET_FUN(__oclCreateSampler )
+#define clRetainSampler CLEW_GET_FUN(__oclRetainSampler )
+#define clReleaseSampler CLEW_GET_FUN(__oclReleaseSampler )
+#define clGetSamplerInfo CLEW_GET_FUN(__oclGetSamplerInfo )
+#define clCreateProgramWithSource CLEW_GET_FUN(__oclCreateProgramWithSource )
+#define clCreateProgramWithBinary CLEW_GET_FUN(__oclCreateProgramWithBinary )
+#define clRetainProgram CLEW_GET_FUN(__oclRetainProgram )
+#define clReleaseProgram CLEW_GET_FUN(__oclReleaseProgram )
+#define clBuildProgram CLEW_GET_FUN(__oclBuildProgram )
+#define clUnloadCompiler CLEW_GET_FUN(__oclUnloadCompiler )
+#define clGetProgramInfo CLEW_GET_FUN(__oclGetProgramInfo )
+#define clGetProgramBuildInfo CLEW_GET_FUN(__oclGetProgramBuildInfo )
+#define clCreateKernel CLEW_GET_FUN(__oclCreateKernel )
+#define clCreateKernelsInProgram CLEW_GET_FUN(__oclCreateKernelsInProgram )
+#define clRetainKernel CLEW_GET_FUN(__oclRetainKernel )
+#define clReleaseKernel CLEW_GET_FUN(__oclReleaseKernel )
+#define clSetKernelArg CLEW_GET_FUN(__oclSetKernelArg )
+#define clGetKernelInfo CLEW_GET_FUN(__oclGetKernelInfo )
+#define clGetKernelWorkGroupInfo CLEW_GET_FUN(__oclGetKernelWorkGroupInfo )
+#define clWaitForEvents CLEW_GET_FUN(__oclWaitForEvents )
+#define clGetEventInfo CLEW_GET_FUN(__oclGetEventInfo )
+#define clRetainEvent CLEW_GET_FUN(__oclRetainEvent )
+#define clReleaseEvent CLEW_GET_FUN(__oclReleaseEvent )
+#define clGetEventProfilingInfo CLEW_GET_FUN(__oclGetEventProfilingInfo )
+#define clFlush CLEW_GET_FUN(__oclFlush )
+#define clFinish CLEW_GET_FUN(__oclFinish )
+#define clEnqueueReadBuffer CLEW_GET_FUN(__oclEnqueueReadBuffer )
+#define clEnqueueWriteBuffer CLEW_GET_FUN(__oclEnqueueWriteBuffer )
+#define clEnqueueCopyBuffer CLEW_GET_FUN(__oclEnqueueCopyBuffer )
+#define clEnqueueReadImage CLEW_GET_FUN(__oclEnqueueReadImage )
+#define clEnqueueWriteImage CLEW_GET_FUN(__oclEnqueueWriteImage )
+#define clEnqueueCopyImage CLEW_GET_FUN(__oclEnqueueCopyImage )
+#define clEnqueueCopyImageToBuffer CLEW_GET_FUN(__oclEnqueueCopyImageToBuffer )
+#define clEnqueueCopyBufferToImage CLEW_GET_FUN(__oclEnqueueCopyBufferToImage )
+#define clEnqueueMapBuffer CLEW_GET_FUN(__oclEnqueueMapBuffer )
+#define clEnqueueMapImage CLEW_GET_FUN(__oclEnqueueMapImage )
+#define clEnqueueUnmapMemObject CLEW_GET_FUN(__oclEnqueueUnmapMemObject )
+#define clEnqueueNDRangeKernel CLEW_GET_FUN(__oclEnqueueNDRangeKernel )
+#define clEnqueueTask CLEW_GET_FUN(__oclEnqueueTask )
+#define clEnqueueNativeKernel CLEW_GET_FUN(__oclEnqueueNativeKernel )
+#define clEnqueueMarker CLEW_GET_FUN(__oclEnqueueMarker )
+#define clEnqueueWaitForEvents CLEW_GET_FUN(__oclEnqueueWaitForEvents )
+#define clEnqueueBarrier CLEW_GET_FUN(__oclEnqueueBarrier )
+#define clGetExtensionFunctionAddress CLEW_GET_FUN(__oclGetExtensionFunctionAddress )
+
+#endif // CLCC_GENERATE_DOCUMENTATION
+
+#define CLEW_SUCCESS 0 //!< Success error code
+#define CLEW_ERROR_OPEN_FAILED -1 //!< Error code for failing to open the dynamic library
+#define CLEW_ERROR_ATEXIT_FAILED -2 //!< Error code for failing to queue the closing of the dynamic library to atexit()
+
+//! \brief Load OpenCL dynamic library and set function entry points
+int clewInit (const char*);
+//! \brief Convert an OpenCL error code to its string equivalent
+const char* clewErrorString (cl_int error);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // CLCC_CLEW_HPP_INCLUDED
diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c
index b75243c5feb..6ca4ad15859 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -574,7 +574,7 @@ static PyGetSetDef bpy_bmesh_getseters[] = {
static PyGetSetDef bpy_bmvert_getseters[] = {
/* generic */
{(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_SELECT},
+ {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
{(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
{(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
@@ -597,7 +597,7 @@ static PyGetSetDef bpy_bmvert_getseters[] = {
static PyGetSetDef bpy_bmedge_getseters[] = {
/* generic */
{(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_SELECT},
+ {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
{(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
{(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
@@ -622,7 +622,7 @@ static PyGetSetDef bpy_bmedge_getseters[] = {
static PyGetSetDef bpy_bmface_getseters[] = {
/* generic */
{(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_SELECT},
+ {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
{(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
{(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
@@ -647,7 +647,7 @@ static PyGetSetDef bpy_bmloop_getseters[] = {
/* generic */
// flags are available but not used for loops.
// {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- // {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_SELECT},
+ // {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
{(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
{(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
@@ -2065,7 +2065,7 @@ static PyObject *bpy_bmelemseq_index_update(BPy_BMElemSeq *self)
int index = 0;
const char htype = bm_iter_itype_htype_map[self->itype];
- BM_ITER_BPY_BM_SEQ(ele, &iter, self) {
+ BM_ITER_BPY_BM_SEQ (ele, &iter, self) {
BM_elem_index_set(ele, index); /* set_dirty! */
index++;
}
@@ -2278,7 +2278,7 @@ static Py_ssize_t bpy_bmelemseq_length(BPy_BMElemSeq *self)
BMHeader *ele;
Py_ssize_t tot = 0;
- BM_ITER_BPY_BM_SEQ(ele, &iter, self) {
+ BM_ITER_BPY_BM_SEQ (ele, &iter, self) {
tot++;
}
return tot;
@@ -2409,7 +2409,7 @@ static int bpy_bmelemseq_contains(BPy_BMElemSeq *self, PyObject *value)
if (value_bm_ele->bm == self->bm) {
BMElem *ele, *ele_test = value_bm_ele->ele;
BMIter iter;
- BM_ITER_BPY_BM_SEQ(ele, &iter, self) {
+ BM_ITER_BPY_BM_SEQ (ele, &iter, self) {
if (ele == ele_test) {
return 1;
}
@@ -3115,6 +3115,21 @@ PyObject *BPy_BMElem_CreatePyObject(BMesh *bm, BMHeader *ele)
int bpy_bm_generic_valid_check(BPy_BMGeneric *self)
{
if (LIKELY(self->bm)) {
+
+ /* far too slow to enable by default but handy
+ * to uncomment for debugging tricky errors,
+ * note that this will throw error on entering a
+ * function where the actual error will be caused by
+ * the previous action. */
+#if 0
+ if (BM_mesh_validate(self->bm) == FALSE) {
+ PyErr_Format(PyExc_ReferenceError,
+ "BMesh used by %.200s has become invalid",
+ Py_TYPE(self)->tp_name);
+ return -1;
+ }
+#endif
+
return 0;
}
else {
@@ -3184,7 +3199,7 @@ void *BPy_BMElem_PySeq_As_Array(BMesh **r_bm, PyObject *seq, Py_ssize_t min, Py_
}
/* trick so we can ensure all items have the same mesh,
* and allows us to pass the 'bm' as NULL. */
- else if (do_bm_check && (bm && bm != item->bm)) {
+ else if (do_bm_check && (bm && bm != item->bm)) {
PyErr_Format(PyExc_ValueError,
"%s: %d %s is from another mesh",
error_prefix, i, BPy_BMElem_StringFromHType(htype));
diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.c b/source/blender/python/bmesh/bmesh_py_types_customdata.c
index f25222c89da..d484ad5c87e 100644
--- a/source/blender/python/bmesh/bmesh_py_types_customdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_customdata.c
@@ -271,13 +271,16 @@ static PyObject *bpy_bmlayeritem_copy_from(BPy_BMLayerItem *self, BPy_BMLayerIte
}
else if ((self->htype != value->htype) ||
- (self->type != value->type) ||
- (self->index != value->index))
+ (self->type != value->type))
{
PyErr_SetString(PyExc_ValueError,
"layer.copy_from(other): layer type mismatch");
}
+ else if (self->index == value->index) {
+ Py_RETURN_NONE;
+ }
+
data = bpy_bm_customdata_get(self->bm, self->htype);
if ((bpy_bmlayeritem_get(self) == NULL) ||
diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c
index ad97d741f9b..5999040a2ab 100644
--- a/source/blender/python/generic/bpy_internal_import.c
+++ b/source/blender/python/generic/bpy_internal_import.c
@@ -226,7 +226,7 @@ static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject
char *name;
int found = 0;
PyObject *globals = NULL, *locals = NULL, *fromlist = NULL;
- int level = -1; /* relative imports */
+ int level = 0; /* relative imports */
PyObject *newmodule;
//PyObject_Print(args, stderr, 0);
diff --git a/source/blender/python/generic/idprop_py_api.c b/source/blender/python/generic/idprop_py_api.c
index 9fd120b11aa..15eeb5934d8 100644
--- a/source/blender/python/generic/idprop_py_api.c
+++ b/source/blender/python/generic/idprop_py_api.c
@@ -277,7 +277,7 @@ static PyObject *BPy_IDGroup_Map_GetItem(BPy_IDProperty *self, PyObject *item)
IDProperty *idprop;
const char *name;
- if (self->prop->type != IDP_GROUP) {
+ if (self->prop->type != IDP_GROUP) {
PyErr_SetString(PyExc_TypeError, "unsubscriptable object");
return NULL;
}
@@ -483,7 +483,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(PyObject *name_obj, IDProperty
int BPy_Wrap_SetMapItem(IDProperty *prop, PyObject *key, PyObject *val)
{
- if (prop->type != IDP_GROUP) {
+ if (prop->type != IDP_GROUP) {
PyErr_SetString(PyExc_TypeError, "unsubscriptable object");
return -1;
}
diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c
index 0e5122787b8..3a405575926 100644
--- a/source/blender/python/generic/py_capi_utils.c
+++ b/source/blender/python/generic/py_capi_utils.c
@@ -483,6 +483,8 @@ void PyC_SetHomePath(const char *py_path_bundle)
\nThis may make python import function fail\n");
#endif
+
+#if 0 /* disable for now [#31506] - campbell */
#ifdef _WIN32
/* cmake/MSVC debug build crashes without this, why only
* in this case is unknown.. */
@@ -490,6 +492,7 @@ void PyC_SetHomePath(const char *py_path_bundle)
BLI_setenv("PYTHONPATH", py_path_bundle);
}
#endif
+#endif
{
static wchar_t py_path_bundle_wchar[1024];
diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c
index e2acef7bb73..de23b3bf109 100644
--- a/source/blender/python/intern/bpy_driver.c
+++ b/source/blender/python/intern/bpy_driver.c
@@ -122,7 +122,7 @@ static void bpy_pydriver_update_dict(const float evaltime)
void BPY_driver_reset(void)
{
PyGILState_STATE gilstate;
- int use_gil = 1; /* !PYC_INTERPRETER_ACTIVE; */
+ int use_gil = TRUE; /* !PYC_INTERPRETER_ACTIVE; */
if (use_gil)
gilstate = PyGILState_Ensure();
@@ -193,7 +193,7 @@ float BPY_driver_exec(ChannelDriver *driver, const float evaltime)
return 0.0f;
}
- use_gil = 1; /* !PYC_INTERPRETER_ACTIVE; */
+ use_gil = TRUE; /* !PYC_INTERPRETER_ACTIVE; */
if (use_gil)
gilstate = PyGILState_Ensure();
diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c
index f3f05e93930..1d3099db189 100644
--- a/source/blender/python/intern/bpy_interface.c
+++ b/source/blender/python/intern/bpy_interface.c
@@ -178,7 +178,7 @@ void BPY_modules_update(bContext *C)
/* refreshes the main struct */
BPY_update_rna_module();
- if(bpy_context_module)
+ if (bpy_context_module)
bpy_context_module->ptr.data = (void *)C;
}
@@ -223,6 +223,7 @@ void BPY_python_start(int argc, const char **argv)
{
#ifndef WITH_PYTHON_MODULE
PyThreadState *py_tstate = NULL;
+ const char *py_path_bundle = BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL);
/* not essential but nice to set our name */
static wchar_t program_path_wchar[FILE_MAX]; /* python holds a reference */
@@ -233,7 +234,7 @@ void BPY_python_start(int argc, const char **argv)
PyImport_ExtendInittab(bpy_internal_modules);
/* allow to use our own included python */
- PyC_SetHomePath(BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL));
+ PyC_SetHomePath(py_path_bundle);
/* without this the sys.stdout may be set to 'ascii'
* (it is on my system at least), where printing unicode values will raise
@@ -245,7 +246,11 @@ void BPY_python_start(int argc, const char **argv)
/* Python 3.2 now looks for '2.xx/python/include/python3.2d/pyconfig.h' to
* parse from the 'sysconfig' module which is used by 'site',
* so for now disable site. alternatively we could copy the file. */
- Py_NoSiteFlag = 1;
+ if (py_path_bundle) {
+ Py_NoSiteFlag = 1;
+ }
+
+ Py_FrozenFlag = 1;
Py_Initialize();
@@ -655,7 +660,7 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
PyObject *pyctx = (PyObject *)CTX_py_dict_get(C);
PyObject *item = PyDict_GetItemString(pyctx, member);
PointerRNA *ptr = NULL;
- int done = 0;
+ int done = FALSE;
if (item == NULL) {
/* pass */
@@ -668,7 +673,7 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
//result->ptr = ((BPy_StructRNA *)item)->ptr;
CTX_data_pointer_set(result, ptr->id.data, ptr->type, ptr->data);
- done = 1;
+ done = TRUE;
}
else if (PySequence_Check(item)) {
PyObject *seq_fast = PySequence_Fast(item, "bpy_context_get sequence conversion");
@@ -698,7 +703,7 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
}
Py_DECREF(seq_fast);
- done = 1;
+ done = TRUE;
}
}
diff --git a/source/blender/python/intern/bpy_library.c b/source/blender/python/intern/bpy_library.c
index a5350b984c1..1d02acbe983 100644
--- a/source/blender/python/intern/bpy_library.c
+++ b/source/blender/python/intern/bpy_library.c
@@ -291,7 +291,8 @@ static void bpy_lib_exit_warn_idname(BPy_Library *self, const char *name_plural,
PyErr_Fetch(&exc, &val, &tb);
if (PyErr_WarnFormat(PyExc_UserWarning, 1,
"load: '%s' does not contain %s[\"%s\"]",
- self->abspath, name_plural, idname)) {
+ self->abspath, name_plural, idname))
+ {
/* Spurious errors can appear at shutdown */
if (PyErr_ExceptionMatches(PyExc_Warning)) {
PyErr_WriteUnraisable((PyObject *)self);
@@ -306,7 +307,8 @@ static void bpy_lib_exit_warn_type(BPy_Library *self, PyObject *item)
PyErr_Fetch(&exc, &val, &tb);
if (PyErr_WarnFormat(PyExc_UserWarning, 1,
"load: '%s' expected a string type, not a %.200s",
- self->abspath, Py_TYPE(item)->tp_name)) {
+ self->abspath, Py_TYPE(item)->tp_name))
+ {
/* Spurious errors can appear at shutdown */
if (PyErr_ExceptionMatches(PyExc_Warning)) {
PyErr_WriteUnraisable((PyObject *)self);
diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c
index 8f5a9fec86b..10562271941 100644
--- a/source/blender/python/intern/bpy_operator.c
+++ b/source/blender/python/intern/bpy_operator.c
@@ -389,7 +389,7 @@ static PyObject *pyop_getrna(PyObject *UNUSED(self), PyObject *value)
return NULL;
}
ot = WM_operatortype_find(opname, TRUE);
- if (ot == NULL) {
+ if (ot == NULL) {
PyErr_Format(PyExc_KeyError, "_bpy.ops.get_rna(\"%s\") not found", opname);
return NULL;
}
diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c
index dbb25eb854b..77ccf802663 100644
--- a/source/blender/python/intern/bpy_props.c
+++ b/source/blender/python/intern/bpy_props.c
@@ -60,6 +60,7 @@ static EnumPropertyItem property_flag_items[] = {
{PROP_HIDDEN, "HIDDEN", 0, "Hidden", ""},
{PROP_SKIP_SAVE, "SKIP_SAVE", 0, "Skip Save", ""},
{PROP_ANIMATABLE, "ANIMATABLE", 0, "Animatable", ""},
+ {PROP_LIB_EXCEPTION, "LIBRARY_EDITABLE", 0, "Library Editable", ""},
{0, NULL, 0, NULL, NULL}};
static EnumPropertyItem property_flag_enum_items[] = {
@@ -67,6 +68,7 @@ static EnumPropertyItem property_flag_enum_items[] = {
{PROP_SKIP_SAVE, "SKIP_SAVE", 0, "Skip Save", ""},
{PROP_ANIMATABLE, "ANIMATABLE", 0, "Animatable", ""},
{PROP_ENUM_FLAG, "ENUM_FLAG", 0, "Enum Flag", ""},
+ {PROP_LIB_EXCEPTION, "LIBRARY_EDITABLE", 0, "Library Editable", ""},
{0, NULL, 0, NULL, NULL}};
/* subtypes */
@@ -385,7 +387,7 @@ PyDoc_STRVAR(BPy_BoolProperty_doc,
"\n"
BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE'].\n"
" :type subtype: string\n"
@@ -434,6 +436,7 @@ static PyObject *BPy_BoolProperty(PyObject *self, PyObject *args, PyObject *kw)
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -457,7 +460,7 @@ BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
" :arg default: sequence of booleans the length of *size*.\n"
" :type default: sequence\n"
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['COLOR', 'TRANSLATION', 'DIRECTION', "
"'VELOCITY', 'ACCELERATION', 'MATRIX', 'EULER', 'QUATERNION', 'AXISANGLE', "
@@ -524,6 +527,7 @@ static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -547,7 +551,7 @@ PyDoc_STRVAR(BPy_IntProperty_doc,
"\n"
BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE'].\n"
" :type subtype: string\n"
@@ -600,6 +604,7 @@ static PyObject *BPy_IntProperty(PyObject *self, PyObject *args, PyObject *kw)
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -624,7 +629,7 @@ BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
" :arg default: sequence of ints the length of *size*.\n"
" :type default: sequence\n"
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['COLOR', 'TRANSLATION', 'DIRECTION', "
"'VELOCITY', 'ACCELERATION', 'MATRIX', 'EULER', 'QUATERNION', 'AXISANGLE', "
@@ -696,6 +701,7 @@ static PyObject *BPy_IntVectorProperty(PyObject *self, PyObject *args, PyObject
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -721,7 +727,7 @@ PyDoc_STRVAR(BPy_FloatProperty_doc,
"\n"
BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE'].\n"
" :type subtype: string\n"
@@ -784,6 +790,7 @@ static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw)
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -810,7 +817,7 @@ BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
" :arg default: sequence of floats the length of *size*.\n"
" :type default: sequence\n"
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['COLOR', 'TRANSLATION', 'DIRECTION', "
"'VELOCITY', 'ACCELERATION', 'MATRIX', 'EULER', 'QUATERNION', 'AXISANGLE', 'XYZ', "
@@ -890,6 +897,7 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -910,7 +918,7 @@ PyDoc_STRVAR(BPy_StringProperty_doc,
"\n"
BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg subtype: Enumerator in ['FILE_PATH', 'DIR_PATH', 'FILENAME', 'NONE'].\n"
" :type subtype: string\n"
@@ -960,6 +968,7 @@ static PyObject *BPy_StringProperty(PyObject *self, PyObject *args, PyObject *kw
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -1210,7 +1219,7 @@ BPY_PROPDEF_DESC_DOC
" is disabled otherwise a set which may only contain string identifiers\n"
" used in *items*.\n"
" :type default: string or set\n"
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'ENUM_FLAG'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'ENUM_FLAG', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
" :arg items: sequence of enum items formatted:\n"
" [(identifier, name, description, number), ...] where the identifier is used\n"
@@ -1312,6 +1321,7 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw)
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -1367,7 +1377,7 @@ PyDoc_STRVAR(BPy_PointerProperty_doc,
" :type type: class\n"
BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
BPY_PROPDEF_UPDATE_DOC
);
@@ -1413,6 +1423,7 @@ static PyObject *BPy_PointerProperty(PyObject *self, PyObject *args, PyObject *k
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
bpy_prop_callback_assign(prop, update_cb);
RNA_def_property_duplicate_pointers(srna, prop);
@@ -1432,7 +1443,7 @@ PyDoc_STRVAR(BPy_CollectionProperty_doc,
" :type type: class\n"
BPY_PROPDEF_NAME_DOC
BPY_PROPDEF_DESC_DOC
-" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE'].\n"
+" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE'].\n"
" :type options: set\n"
);
static PyObject *BPy_CollectionProperty(PyObject *self, PyObject *args, PyObject *kw)
@@ -1471,6 +1482,7 @@ static PyObject *BPy_CollectionProperty(PyObject *self, PyObject *args, PyObject
if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN);
if ((opts & PROP_ANIMATABLE) == 0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
if (opts & PROP_SKIP_SAVE) RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ if (opts & PROP_LIB_EXCEPTION) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
}
RNA_def_property_duplicate_pointers(srna, prop);
}
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index f20e029c7b6..fe18fd040eb 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -986,7 +986,7 @@ static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self)
ret = PyUnicode_FromFormat("bpy.data.%s[%R].%s",
BKE_idcode_to_name_plural(GS(id->name)),
tmp_str,
- path);
+ path);
}
MEM_freeN((void *)path);
@@ -1702,7 +1702,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb
/* this is really nasty!, so we can fake the operator having direct properties eg:
* layout.prop(self, "filepath")
- * ... which infact should be
+ * ... which in fact should be
* layout.prop(self.properties, "filepath")
*
* we need to do this trick.
@@ -6347,7 +6347,7 @@ PyObject *BPY_rna_module(void)
void BPY_update_rna_module(void)
{
- if(rna_module_ptr) {
+ if (rna_module_ptr) {
#if 0
RNA_main_pointer_create(G.main, rna_module_ptr);
#else
diff --git a/source/blender/python/mathutils/mathutils_Quaternion.c b/source/blender/python/mathutils/mathutils_Quaternion.c
index d1da4660f3b..5ac1214409f 100644
--- a/source/blender/python/mathutils/mathutils_Quaternion.c
+++ b/source/blender/python/mathutils/mathutils_Quaternion.c
@@ -196,7 +196,8 @@ static PyObject *Quaternion_cross(QuaternionObject *self, PyObject *value)
return NULL;
if (mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value,
- "Quaternion.cross(other), invalid 'other' arg") == -1) {
+ "Quaternion.cross(other), invalid 'other' arg") == -1)
+ {
return NULL;
}
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c
index a071c0be611..ab1192bfdfc 100644
--- a/source/blender/quicktime/apple/quicktime_export.c
+++ b/source/blender/quicktime/apple/quicktime_export.c
@@ -707,8 +707,8 @@ void quicktime_verify_image_type(RenderData *rd, ImageFormatData *imf)
if (imf->imtype == R_IMF_IMTYPE_QUICKTIME) {
if ((rd->qtcodecsettings.codecType == 0) ||
(rd->qtcodecsettings.codecSpatialQuality < 0) ||
- (rd->qtcodecsettings.codecSpatialQuality > 100)) {
-
+ (rd->qtcodecsettings.codecSpatialQuality > 100))
+ {
rd->qtcodecsettings.codecType = kJPEGCodecType;
rd->qtcodecsettings.codec = (int)anyCodec;
rd->qtcodecsettings.codecSpatialQuality = (codecHighQuality * 100) / codecLosslessQuality;
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index c2b0e1e777f..150bfae4731 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -168,7 +168,7 @@ void RE_make_stars(Render *re, Scene *scenev3d, void (*initfunc)(void),
float vec[4], fx, fy, fz;
float fac, starmindist, clipend;
float mat[4][4], stargrid, maxrand, maxjit, force, alpha;
- int x, y, z, sx, sy, sz, ex, ey, ez, done = 0;
+ int x, y, z, sx, sy, sz, ex, ey, ez, done = FALSE;
unsigned int totstar= 0;
if (initfunc) {
@@ -559,7 +559,7 @@ static void GetTextureCoordinate(const SMikkTSpaceContext * pContext, float fUV[
MTFace *tface= RE_vlakren_get_tface(pMesh->obr, vlr, pMesh->obr->actmtface, NULL, 0);
const float *coord;
- if (tface != NULL) {
+ if (tface != NULL) {
coord= tface->uv[vert_index];
fUV[0]= coord[0]; fUV[1]= coord[1];
}
@@ -585,7 +585,7 @@ static void SetTSpace(const SMikkTSpaceContext * pContext, const float fvTangent
SRenderMeshToTangent * pMesh = (SRenderMeshToTangent *) pContext->m_pUserData;
VlakRen *vlr= RE_findOrAddVlak(pMesh->obr, face_num);
float * ftang= RE_vlakren_get_nmap_tangent(pMesh->obr, vlr, 1);
- if (ftang!=NULL) {
+ if (ftang!=NULL) {
copy_v3_v3(&ftang[iVert*4+0], fvTangent);
ftang[iVert*4+3]=fSign;
}
@@ -683,7 +683,7 @@ static void calc_vertexnormals(Render *UNUSED(re), ObjectRen *obr, int do_tangen
}
}
- if (do_nmap_tangent != 0) {
+ if (do_nmap_tangent != FALSE) {
SRenderMeshToTangent mesh2tangent;
SMikkTSpaceContext sContext;
SMikkTSpaceInterface sInterface;
@@ -1575,7 +1575,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
float pa_time, pa_birthtime, pa_dietime;
float random, simplify[2], pa_co[3];
const float cfra= BKE_scene_frame_get(re->scene);
- int i, a, k, max_k=0, totpart, dosimplify = 0, dosurfacecache = 0, use_duplimat = 0;
+ int i, a, k, max_k=0, totpart, do_simplify = FALSE, do_surfacecache = FALSE, use_duplimat = FALSE;
int totchild=0;
int seed, path_nbr=0, orco1=0, num;
int totface, *origindex = 0;
@@ -1697,7 +1697,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
if (psys->flag & PSYS_USE_IMAT) {
/* psys->imat is the original emitter's inverse matrix, ob->obmat is the duplicated object's matrix */
mult_m4_m4m4(duplimat, ob->obmat, psys->imat);
- use_duplimat = 1;
+ use_duplimat = TRUE;
}
/* 2.6 setup strand rendering */
@@ -1744,10 +1744,10 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
svert= strandbuf->vert;
if (re->r.mode & R_SPEED)
- dosurfacecache= 1;
+ do_surfacecache = TRUE;
else if ((re->wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) && (re->wrld.ao_gather_method == WO_AOGATHER_APPROX))
if (ma->amb != 0.0f)
- dosurfacecache= 1;
+ do_surfacecache = TRUE;
totface= psmd->dm->getNumTessFaces(psmd->dm);
origindex= psmd->dm->getTessFaceDataArray(psmd->dm, CD_ORIGINDEX);
@@ -1860,7 +1860,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
get_particle_uvco_mcol(part->from, psmd->dm, parent->fuv, num, &sd);
}
- dosimplify = psys_render_simplify_params(psys, cpa, simplify);
+ do_simplify = psys_render_simplify_params(psys, cpa, simplify);
if (strandbuf) {
int orignum= (origindex)? origindex[cpa->num]: cpa->num;
@@ -1892,7 +1892,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
strand->vert= svert;
copy_v3_v3(strand->orco, sd.orco);
- if (dosimplify) {
+ if (do_simplify) {
float *ssimplify= RE_strandren_get_simplify(obr, strand, 1);
ssimplify[0]= simplify[0];
ssimplify[1]= simplify[1];
@@ -1903,7 +1903,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
copy_v3_v3(snor, sd.surfnor);
}
- if (dosurfacecache && num >= 0) {
+ if (do_surfacecache && num >= 0) {
int *facenum= RE_strandren_get_face(obr, strand, 1);
*facenum= num;
}
@@ -2084,7 +2084,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
break;
}
- if (dosurfacecache)
+ if (do_surfacecache)
strandbuf->surface= cache_strand_surface(re, obr, psmd->dm, mat, timeoffset);
/* 4. clean up */
@@ -3263,8 +3263,8 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
float *orco=0;
int need_orco=0, need_stress=0, need_nmap_tangent=0, need_tangent=0;
int a, a1, ok, vertofs;
- int end, do_autosmooth=0, totvert = 0;
- int use_original_normals= 0;
+ int end, do_autosmooth = FALSE, totvert = 0;
+ int use_original_normals = FALSE;
int recalc_normals = 0; // false by default
int negative_scale;
@@ -3339,7 +3339,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
/* attempt to autsmooth on original mesh, only without subsurf */
if (do_autosmooth && me->totvert==totvert && me->totface==dm->getNumTessFaces(dm))
- use_original_normals= 1;
+ use_original_normals= TRUE;
ms = (totvert==me->totvert)?me->msticky:NULL;
@@ -3354,7 +3354,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
for (a=0; a<totvert; a++, mvert++) {
ver= RE_findOrAddVert(obr, obr->totvert++);
copy_v3_v3(ver->co, mvert->co);
- if (do_autosmooth==0) { /* autosmooth on original unrotated data to prevent differences between frames */
+ if (do_autosmooth == FALSE) { /* autosmooth on original unrotated data to prevent differences between frames */
normal_short_to_float_v3(ver->n, mvert->no);
mul_m4_v3(mat, ver->co);
mul_transposed_m3_v3(imat, ver->n);
@@ -3416,7 +3416,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
if ( mface->mat_nr==a1 ) {
float len;
- int reverse_verts = negative_scale!=0 && do_autosmooth==0;
+ int reverse_verts = (negative_scale != 0 && do_autosmooth == FALSE);
int rev_tab[] = {reverse_verts==0 ? 0 : 2, 1, reverse_verts==0 ? 2 : 0, 3};
v1= reverse_verts==0 ? mface->v1 : mface->v3;
v2= mface->v2;
@@ -4318,7 +4318,7 @@ static void finalize_render_object(Render *re, ObjectRen *obr, int timeoffset)
/* Baking lets us define a quad split order */
split_quads(obr, re->r.bake_quad_split);
}
- else if(BKE_object_is_animated(re->scene, ob))
+ else if (BKE_object_is_animated(re->scene, ob))
split_quads(obr, 1);
else {
if ((re->r.mode & R_SIMPLIFY && re->r.simplify_flag & R_SIMPLE_NO_TRIANGULATE) == 0)
@@ -4703,7 +4703,7 @@ void RE_Database_Free(Render *re)
free_strand_surface(re);
re->totvlak=re->totvert=re->totstrand=re->totlamp=re->tothalo= 0;
- re->i.convertdone= 0;
+ re->i.convertdone = FALSE;
re->bakebuf= NULL;
@@ -5045,7 +5045,7 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l
re->lampren.first= re->lampren.last= NULL;
slurph_opt= 0;
- re->i.partsdone= 0; /* signal now in use for previewrender */
+ re->i.partsdone = FALSE; /* signal now in use for previewrender */
/* in localview, lamps are using normal layers, objects only local bits */
if (re->lay & 0xFF000000)
@@ -5164,7 +5164,7 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l
if (re->test_break(re->tbh))
RE_Database_Free(re);
else
- re->i.convertdone= 1;
+ re->i.convertdone = TRUE;
re->i.infostr= NULL;
re->stats_draw(re->sdh, &re->i);
@@ -5651,8 +5651,8 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned
// NT check for fluidsim special treatment
fluidmd = (FluidsimModifierData *)modifiers_findByType(obi->ob, eModifierType_Fluidsim);
if (fluidmd && fluidmd->fss && (fluidmd->fss->type & OB_FLUIDSIM_DOMAIN)) {
- // use preloaded per vertex simulation data, only does calculation for step=1
- // NOTE/FIXME - velocities and meshes loaded unnecessarily often during the database_fromscene_vectors calls...
+ /* use preloaded per vertex simulation data, only does calculation for step=1 */
+ /* NOTE/FIXME - velocities and meshes loaded unnecessarily often during the database_fromscene_vectors calls... */
load_fluidsimspeedvectors(re, obi, oldobi->vectors, step);
}
else {
diff --git a/source/blender/render/intern/source/envmap.c b/source/blender/render/intern/source/envmap.c
index eebcf23a7a6..6714fe1a29d 100644
--- a/source/blender/render/intern/source/envmap.c
+++ b/source/blender/render/intern/source/envmap.c
@@ -505,7 +505,7 @@ static void render_envmap(Render *re, EnvMap *env)
void make_envmaps(Render *re)
{
Tex *tex;
- int do_init= 0, depth= 0, trace;
+ int do_init = FALSE, depth= 0, trace;
if (!(re->r.mode & R_ENVMAP)) return;
@@ -559,7 +559,7 @@ void make_envmaps(Render *re)
if (env->ok==0 && depth==0) env->recalc= 1;
if (env->ok==0) {
- do_init= 1;
+ do_init = TRUE;
render_envmap(re, env);
if (depth==env->depth) env->recalc= 0;
diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c
index e712950f4f8..c0382834987 100644
--- a/source/blender/render/intern/source/initrender.c
+++ b/source/blender/render/intern/source/initrender.c
@@ -549,7 +549,7 @@ void initparts(Render *re)
/* this is render info for caller, is not reset when parts are freed! */
re->i.totpart= 0;
re->i.curpart= 0;
- re->i.partsdone= 0;
+ re->i.partsdone = FALSE;
/* just for readable code.. */
xminb= re->disprect.xmin;
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index d7b06a78322..170d2efd60c 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -450,7 +450,8 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer *
}
if (re->rectx < 2 || re->recty < 2 || (BKE_imtype_is_movie(rd->im_format.imtype) &&
- (re->rectx < 16 || re->recty < 16) )) {
+ (re->rectx < 16 || re->recty < 16) ))
+ {
BKE_report(re->reports, RPT_ERROR, "Image too small");
re->ok= 0;
return;
@@ -1302,7 +1303,7 @@ static int composite_needs_render(Scene *sce, int this_scene)
bNode *node;
if (ntree==NULL) return 1;
- if (sce->use_nodes==0) return 1;
+ if (sce->use_nodes == FALSE) return 1;
if ((sce->r.scemode & R_DOCOMP)==0) return 1;
for (node= ntree->nodes.first; node; node= node->next) {
@@ -1432,7 +1433,7 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree)
ntreeCompositTagRender(re->scene);
ntreeCompositTagAnimated(ntree);
- ntreeCompositExecTree(ntree, &re->r, G.background==0);
+ ntreeCompositExecTree(ntree, &re->r, 1, G.background==0);
}
/* ensure we get either composited result or the active layer */
@@ -1596,7 +1597,7 @@ static void do_render_composite_fields_blur_3d(Render *re)
if (re->r.scemode & R_FULL_SAMPLE)
do_merge_fullsample(re, ntree);
else {
- ntreeCompositExecTree(ntree, &re->r, G.background==0);
+ ntreeCompositExecTree(ntree, &re->r, 1, G.background==0);
}
ntree->stats_draw= NULL;
@@ -1833,7 +1834,8 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *r
if (scene->r.mode & R_BORDER) {
if (scene->r.border.xmax <= scene->r.border.xmin ||
- scene->r.border.ymax <= scene->r.border.ymin) {
+ scene->r.border.ymax <= scene->r.border.ymin)
+ {
BKE_report(reports, RPT_ERROR, "No border area selected.");
return 0;
}
@@ -2074,18 +2076,18 @@ static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovie
/* write movie or image */
if (BKE_imtype_is_movie(scene->r.im_format.imtype)) {
- int dofree = 0;
+ int do_free = FALSE;
unsigned int *rect32 = (unsigned int *)rres.rect32;
/* note; the way it gets 32 bits rects is weak... */
if (rres.rect32 == NULL) {
rect32 = MEM_mapallocN(sizeof(int)*rres.rectx*rres.recty, "temp 32 bits rect");
RE_ResultGet32(re, rect32);
- dofree = 1;
+ do_free = TRUE;
}
ok= mh->append_movie(&re->r, scene->r.sfra, scene->r.cfra, (int *)rect32,
rres.rectx, rres.recty, re->reports);
- if (dofree) {
+ if (do_free) {
MEM_freeN(rect32);
}
printf("Append frame %d", scene->r.cfra);
@@ -2376,7 +2378,7 @@ void RE_layer_load_from_file(RenderLayer *layer, ReportList *reports, const char
{
ImBuf *ibuf = IMB_loadiffname(filename, IB_rect);
- if (ibuf && (ibuf->rect || ibuf->rect_float)) {
+ if (ibuf && (ibuf->rect || ibuf->rect_float)) {
if (ibuf->x == layer->rectx && ibuf->y == layer->recty) {
if (ibuf->rect_float==NULL)
IMB_float_from_rect(ibuf);
diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c
index ac48a5f41f2..0aeee7e22e8 100644
--- a/source/blender/render/intern/source/pixelshading.c
+++ b/source/blender/render/intern/source/pixelshading.c
@@ -566,7 +566,7 @@ void shadeSunView(float col_r[3], const float view[3])
GroupObject *go;
LampRen *lar;
float sview[3];
- int do_init= 1;
+ int do_init = TRUE;
for (go=R.lights.first; go; go= go->next) {
lar= go->lampren;
@@ -581,7 +581,7 @@ void shadeSunView(float col_r[3], const float view[3])
if (sview[2] < 0.0f)
sview[2] = 0.0f;
normalize_v3(sview);
- do_init= 0;
+ do_init = FALSE;
}
GetSkyXYZRadiancef(lar->sunsky, sview, colorxyz);
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index f550cd82061..726d89a7c3e 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -721,7 +721,7 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, con
shi.lay= origshi->lay;
shi.passflag= SCE_PASS_COMBINED; /* result of tracing needs no pass info */
shi.combinedflag= 0xFFFFFF; /* ray trace does all options */
- //shi.do_preview= 0; // memset above, so don't need this
+ //shi.do_preview = FALSE; // memset above, so don't need this
shi.light_override= origshi->light_override;
shi.mat_override= origshi->mat_override;
@@ -1176,13 +1176,13 @@ static QMCSampler *get_thread_qmcsampler(Render *re, int thread, int type, int t
for (qsa=re->qmcsamplers[thread].first; qsa; qsa=qsa->next) {
if (qsa->type == type && qsa->tot == tot && !qsa->used) {
- qsa->used= 1;
+ qsa->used = TRUE;
return qsa;
}
}
qsa= QMC_initSampler(type, tot);
- qsa->used= 1;
+ qsa->used = TRUE;
BLI_addtail(&re->qmcsamplers[thread], qsa);
return qsa;
@@ -1483,8 +1483,8 @@ void ray_trace(ShadeInput *shi, ShadeResult *shr)
float diff[3];
int do_tra, do_mir;
- do_tra= ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha!=1.0f && (shi->depth <= shi->mat->ray_depth_tra));
- do_mir= ((shi->mat->mode & MA_RAYMIRROR) && shi->ray_mirror!=0.0f && (shi->depth <= shi->mat->ray_depth));
+ do_tra = ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha != 1.0f && (shi->depth <= shi->mat->ray_depth_tra));
+ do_mir = ((shi->mat->mode & MA_RAYMIRROR) && shi->ray_mirror != 0.0f && (shi->depth <= shi->mat->ray_depth));
/* raytrace mirror and refract like to separate the spec color */
if (shi->combinedflag & SCE_PASS_SPEC)
@@ -2195,7 +2195,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, const float lampco[3],
float adapt_thresh = lar->adapt_thresh;
int min_adapt_samples=4, max_samples = lar->ray_totsamp;
float *co;
- int do_soft=1, full_osa=0, i;
+ int do_soft = TRUE, full_osa = FALSE, i;
float min[3], max[3];
RayHint bb_hint;
@@ -2210,8 +2210,8 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, const float lampco[3],
else
shadfac[3]= 1.0f;
- if (lar->ray_totsamp < 2) do_soft = 0;
- if ((R.r.mode & R_OSA) && (R.osa > 0) && (shi->vlr->flag & R_FULL_OSA)) full_osa = 1;
+ if (lar->ray_totsamp < 2) do_soft = FALSE;
+ if ((R.r.mode & R_OSA) && (R.osa > 0) && (shi->vlr->flag & R_FULL_OSA)) full_osa = TRUE;
if (full_osa) {
if (do_soft) max_samples = max_samples/R.osa + 1;
diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c
index 58a4e7c9828..7e8a1fbc53e 100644
--- a/source/blender/render/intern/source/render_texture.c
+++ b/source/blender/render/intern/source/render_texture.c
@@ -1367,7 +1367,7 @@ int multitex_ext_safe(Tex *tex, float *texvec, TexResult *texres)
{
int use_nodes= tex->use_nodes, retval;
- tex->use_nodes= 0;
+ tex->use_nodes = FALSE;
retval= multitex_nodes(tex, texvec, NULL, NULL, 0, texres, 0, 0, NULL, NULL);
tex->use_nodes= use_nodes;
@@ -1714,7 +1714,7 @@ static void compatible_bump_uv_derivs(CompatibleBump *compat_bump, ShadeInput *s
compat_bump->nn[1] = -shi->vn[1];
compat_bump->nn[2] = -shi->vn[2];
ortho_basis_v3v3_v3(compat_bump->nu, compat_bump->nv, compat_bump->nn);
- compat_bump->nunvdone= 1;
+ compat_bump->nunvdone = TRUE;
}
if (tf) {
@@ -1766,7 +1766,7 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
// render normal is negated
negate_v3_v3(compat_bump->nn, shi->vn);
ortho_basis_v3v3_v3(compat_bump->nu, compat_bump->nv, compat_bump->nn);
- compat_bump->nunvdone= 1;
+ compat_bump->nunvdone = TRUE;
}
// two methods, either constant based on main image resolution,
@@ -1946,7 +1946,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
ntap_bump->fPrevMagnitude = 1.0f;
ntap_bump->iPrevBumpSpace = 0;
- ntap_bump->init_done = 1;
+ ntap_bump->init_done = TRUE;
}
// resolve image dimensions
@@ -2064,7 +2064,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
texres->nor = nvec;
/* replaced newbump with code based on listing 1 and 2 of
- * [Mik10] Mikkelsen M. S.: Bump Mapping Unparametrized Surfaces on the GPU.
+ * [Mik10] Mikkelsen M. S.: Bump Mapping Unparameterized Surfaces on the GPU.
* -> http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf */
if ( mtex->texflag & MTEX_BUMP_OBJECTSPACE )
@@ -2171,8 +2171,8 @@ void do_material_tex(ShadeInput *shi, Render *re)
float *co = NULL, *dx = NULL, *dy = NULL;
float fact, facm, factt, facmm, stencilTin=1.0;
float texvec[3], dxt[3], dyt[3], tempvec[3], norvec[3], warpvec[3]={0.0f, 0.0f, 0.0f}, Tnor=1.0;
- int tex_nr, rgbnor= 0, warpdone=0;
- int use_compat_bump = 0, use_ntap_bump = 0;
+ int tex_nr, rgbnor= 0, warp_done = FALSE;
+ int use_compat_bump = FALSE, use_ntap_bump = FALSE;
int found_nmapping = 0, found_deriv_map = 0;
int iFirstTimeNMap=1;
@@ -2195,24 +2195,24 @@ void do_material_tex(ShadeInput *shi, Render *re)
found_deriv_map = (tex->type==TEX_IMAGE) && (tex->imaflag & TEX_DERIVATIVEMAP);
use_compat_bump= (mtex->texflag & MTEX_COMPAT_BUMP);
- use_ntap_bump= ((mtex->texflag & (MTEX_3TAP_BUMP|MTEX_5TAP_BUMP|MTEX_BICUBIC_BUMP))!=0 || found_deriv_map!=0) ? 1 : 0;
+ use_ntap_bump = ((mtex->texflag & (MTEX_3TAP_BUMP|MTEX_5TAP_BUMP|MTEX_BICUBIC_BUMP))!=0 || found_deriv_map!=0) ? TRUE : FALSE;
/* XXX texture node trees don't work for this yet */
if (tex->nodetree && tex->use_nodes) {
- use_compat_bump = 0;
- use_ntap_bump = 0;
+ use_compat_bump = FALSE;
+ use_ntap_bump = FALSE;
}
/* case displacement mapping */
- if (shi->osatex==0 && use_ntap_bump) {
- use_ntap_bump = 0;
- use_compat_bump = 1;
+ if (shi->osatex == 0 && use_ntap_bump) {
+ use_ntap_bump = FALSE;
+ use_compat_bump = TRUE;
}
/* case ocean */
if (tex->type == TEX_OCEAN) {
- use_ntap_bump = 0;
- use_compat_bump = 0;
+ use_ntap_bump = FALSE;
+ use_compat_bump = FALSE;
}
/* which coords */
@@ -2322,7 +2322,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
}
else texres.nor= NULL;
- if (warpdone) {
+ if (warp_done) {
add_v3_v3v3(tempvec, co, warpvec);
co= tempvec;
}
@@ -2409,7 +2409,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
warpvec[0]= mtex->warpfac*warpnor[0];
warpvec[1]= mtex->warpfac*warpnor[1];
warpvec[2]= mtex->warpfac*warpnor[2];
- warpdone= 1;
+ warp_done = TRUE;
}
#if 0
if (mtex->texflag & MTEX_VIEWSPACE) {
@@ -2425,7 +2425,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
}
}
}
-#endif
+#endif
}
/* mapping */
@@ -2681,7 +2681,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
}
}
}
- if ((use_compat_bump || use_ntap_bump || found_nmapping) && (shi->mat->mode & MA_TANGENT_V)!=0) {
+ if ((use_compat_bump || use_ntap_bump || found_nmapping) && (shi->mat->mode & MA_TANGENT_V) != 0) {
const float fnegdot = -dot_v3v3(shi->vn, shi->tang);
// apply Gram-Schmidt projection
madd_v3_v3fl(shi->tang, shi->vn, fnegdot);
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 0dc7f35dc56..2fd8e49d34e 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -683,7 +683,7 @@ static void sky_tile(RenderPart *pa, RenderLayer *rl)
for (y=pa->disprect.ymin; y<pa->disprect.ymax; y++) {
for (x=pa->disprect.xmin; x<pa->disprect.xmax; x++, od+=4) {
float col[4];
- int sample, done= 0;
+ int sample, done = FALSE;
for (sample= 0; sample<totsample; sample++) {
float *pass= rlpp[sample]->rectf + od;
@@ -692,7 +692,7 @@ static void sky_tile(RenderPart *pa, RenderLayer *rl)
if (done==0) {
shadeSkyPixel(col, x, y, pa->thread);
- done= 1;
+ done = TRUE;
}
if (pass[3]==0.0f) {
@@ -748,7 +748,7 @@ static void atm_tile(RenderPart *pa, RenderLayer *rl)
float *zrect= RE_RenderLayerGetPass(rlpp[sample], SCE_PASS_Z) + od;
float *rgbrect = rlpp[sample]->rectf + 4*od;
float rgb[3] = {0};
- int done= 0;
+ int done = FALSE;
for (go=R.lights.first; go; go= go->next) {
@@ -780,7 +780,7 @@ static void atm_tile(RenderPart *pa, RenderLayer *rl)
if (done==0) {
copy_v3_v3(rgb, tmp_rgb);
- done = 1;
+ done = TRUE;
}
else {
rgb[0] = 0.5f*rgb[0] + 0.5f*tmp_rgb[0];
@@ -1935,7 +1935,7 @@ void add_halo_flare(Render *re)
RenderResult *rr= re->result;
RenderLayer *rl;
HaloRen *har;
- int a, mode, do_draw=0;
+ int a, mode, do_draw = FALSE;
/* for now, we get the first renderlayer in list with halos set */
for (rl= rr->layers.first; rl; rl= rl->next)
@@ -1954,7 +1954,7 @@ void add_halo_flare(Render *re)
har= R.sortedhalos[a];
if (har->flarec) {
- do_draw= 1;
+ do_draw = TRUE;
renderflare(rr, rl->rectf, har);
}
}
@@ -1988,7 +1988,7 @@ typedef struct BakeShade {
unsigned int *rect;
float *rect_float;
- int usemask;
+ int use_mask;
char *rect_mask; /* bake pixel mask */
float dxco[3], dyco[3];
@@ -2408,12 +2408,12 @@ static int get_next_bake_face(BakeShade *bs)
ObjectRen *obr;
VlakRen *vlr;
MTFace *tface;
- static int v= 0, vdone= 0;
+ static int v= 0, vdone = FALSE;
static ObjectInstanceRen *obi= NULL;
if (bs==NULL) {
vlr= NULL;
- v= vdone= 0;
+ v= vdone = FALSE;
obi= R.instancetable.first;
return 0;
}
@@ -2507,7 +2507,7 @@ static void shade_tface(BakeShade *bs)
bs->rect_float= bs->ibuf->rect_float;
bs->quad= 0;
- if (bs->usemask) {
+ if (bs->use_mask) {
if (bs->ibuf->userdata==NULL) {
BLI_lock_thread(LOCK_CUSTOM1);
if (bs->ibuf->userdata==NULL) /* since the thread was locked, its possible another thread alloced the value */
@@ -2594,7 +2594,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
BakeShade *handles;
ListBase threads;
Image *ima;
- int a, vdone=0, usemask=0, result=BAKE_RESULT_OK;
+ int a, vdone = FALSE, use_mask = FALSE, result = BAKE_RESULT_OK;
/* initialize render global */
R= *re;
@@ -2605,7 +2605,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
/* do we need a mask? */
if (re->r.bake_filter)
- usemask = 1;
+ use_mask = TRUE;
/* baker uses this flag to detect if image was initialized */
for (ima= G.main->image.first; ima; ima= ima->id.next) {
@@ -2642,7 +2642,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
handles[a].actob= actob;
handles[a].zspan= MEM_callocN(sizeof(ZSpan), "zspan for bake");
- handles[a].usemask = usemask;
+ handles[a].use_mask = use_mask;
handles[a].do_update = do_update; /* use to tell the view to update */
@@ -2655,7 +2655,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
PIL_sleep_ms(50);
/* calculate progress */
- for (vdone=0, a=0; a<re->r.threads; a++)
+ for (vdone = FALSE, a=0; a<re->r.threads; a++)
vdone+= handles[a].vdone;
if (progress)
*progress = (float)(vdone / (float)re->totvlak);
diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c
index 4a9e4be7f86..bc61a26564d 100644
--- a/source/blender/render/intern/source/renderdatabase.c
+++ b/source/blender/render/intern/source/renderdatabase.c
@@ -1205,7 +1205,9 @@ static int panotestclip(Render *re, int do_pano, float *v)
float abs4;
short c=0;
- if (do_pano==0) return testclip(v);
+ if (do_pano == FALSE) {
+ return testclip(v);
+ }
abs4= fabs(v[3]);
diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index 53d06893a3f..a266914c085 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -161,7 +161,7 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
double a, b, c, disc, nray[3], npos[3];
double t0, t1 = 0.0f, t2= 0.0f, t3;
float p1[3], p2[3], ladist, maxz = 0.0f, maxy = 0.0f, haint;
- int snijp, doclip=1, use_yco=0;
+ int snijp, do_clip = TRUE, use_yco = FALSE;
*intens= 0.0f;
haint= lar->haint;
@@ -196,7 +196,9 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
/* rotate maxz */
- if (shi->co[2]==0.0f) doclip= 0; /* for when halo at sky */
+ if (shi->co[2]==0.0f) {
+ do_clip = FALSE; /* for when halo at sky */
+ }
else {
p1[0]= shi->co[0]-lar->co[0];
p1[1]= shi->co[1]-lar->co[1];
@@ -206,7 +208,9 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
maxz*= lar->sh_zfac;
maxy= lar->imat[0][1]*p1[0]+lar->imat[1][1]*p1[1]+lar->imat[2][1]*p1[2];
- if ( fabs(nray[2]) < FLT_EPSILON ) use_yco= 1;
+ if (fabsf(nray[2]) < FLT_EPSILON) {
+ use_yco = TRUE;
+ }
}
/* scale z to make sure volume is normalized */
@@ -261,7 +265,7 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
if (ok1==0 && ok2==0) return;
/* intersction point with -ladist, the bottom of the cone */
- if (use_yco==0) {
+ if (use_yco == FALSE) {
t3= ((double)(-ladist)-npos[2])/nray[2];
/* de we have to replace one of the intersection points? */
@@ -294,12 +298,12 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
}
/* calculate t0: is the maximum visible z (when halo is intersected by face) */
- if (doclip) {
- if (use_yco==0) t0= (maxz-npos[2])/nray[2];
- else t0= (maxy-npos[1])/nray[1];
+ if (do_clip) {
+ if (use_yco == FALSE) t0 = (maxz - npos[2]) / nray[2];
+ else t0 = (maxy - npos[1]) / nray[1];
- if (t0<t1) return;
- if (t0<t2) t2= t0;
+ if (t0 < t1) return;
+ if (t0 < t2) t2= t0;
}
/* calc points */
@@ -1803,7 +1807,7 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
shr->diff[1]= sss[1]*col[1];
shr->diff[2]= sss[2]*col[2];
- if (shi->combinedflag & SCE_PASS_SHADOW) {
+ if (shi->combinedflag & SCE_PASS_SHADOW) {
shr->shad[0]= shr->diff[0];
shr->shad[1]= shr->diff[1];
shr->shad[2]= shr->diff[2];
diff --git a/source/blender/render/intern/source/sss.c b/source/blender/render/intern/source/sss.c
index 690598d8c05..061cb7852db 100644
--- a/source/blender/render/intern/source/sss.c
+++ b/source/blender/render/intern/source/sss.c
@@ -652,7 +652,7 @@ static void create_octree_node(ScatterTree *tree, ScatterNode *node, float *mid,
{
ScatterNode *subnode;
ScatterPoint **subrefpoints, **tmppoints= tree->tmppoints;
- int index, nsize[8], noffset[8], i, subco, usednodes, usedi;
+ int index, nsize[8], noffset[8], i, subco, used_nodes, usedi;
float submid[3], subsize[3];
/* stopping condition */
@@ -684,16 +684,16 @@ static void create_octree_node(ScatterTree *tree, ScatterNode *node, float *mid,
/* here we check if only one subnode is used. if this is the case, we don't
* create a new node, but rather call this function again, with different
* size and middle position for the same node. */
- for (usedi=0, usednodes=0, i=0; i<8; i++) {
+ for (usedi=0, used_nodes=0, i=0; i<8; i++) {
if (nsize[i]) {
- usednodes++;
+ used_nodes++;
usedi = i;
}
if (i != 0)
noffset[i]= noffset[i-1]+nsize[i-1];
}
- if (usednodes<=1) {
+ if (used_nodes <= 1) {
subnode_middle(usedi, mid, subsize, submid);
create_octree_node(tree, node, submid, subsize, refpoints, depth+1);
return;
@@ -874,7 +874,7 @@ static void sss_create_tree_mat(Render *re, Material *mat)
re->r.mode &= ~R_OSA;
re->sss_points= &points;
re->sss_mat= mat;
- re->i.partsdone= 0;
+ re->i.partsdone = FALSE;
if (!(re->r.scemode & R_PREVIEWBUTS))
re->result= NULL;
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c
index 78e0810fb77..cfbdf04d75a 100644
--- a/source/blender/render/intern/source/zbuf.c
+++ b/source/blender/render/intern/source/zbuf.c
@@ -1703,13 +1703,13 @@ void projectverto(const float v1[3], float winmat[][4], float adr[4])
/* calcs homogenic coord of vertex v1 */
float x, y, z;
- x= v1[0];
- y= v1[1];
- z= v1[2];
- adr[0]= x*winmat[0][0] + z*winmat[2][0] + winmat[3][0];
- adr[1]= y*winmat[1][1] + z*winmat[2][1] + winmat[3][1];
- adr[2]= z*winmat[2][2] + winmat[3][2];
- adr[3]= z*winmat[2][3] + winmat[3][3];
+ x = v1[0];
+ y = v1[1];
+ z = v1[2];
+ adr[0] = x * winmat[0][0] + z * winmat[2][0] + winmat[3][0];
+ adr[1] = y * winmat[1][1] + z * winmat[2][1] + winmat[3][1];
+ adr[2] = z * winmat[2][2] + winmat[3][2];
+ adr[3] = z * winmat[2][3] + winmat[3][3];
//printf("hoco %f %f %f %f\n", adr[0], adr[1], adr[2], adr[3]);
}
@@ -1721,13 +1721,13 @@ void projectvert(const float v1[3], float winmat[][4], float adr[4])
/* calcs homogenic coord of vertex v1 */
float x, y, z;
- x= v1[0];
- y= v1[1];
- z= v1[2];
- adr[0]= x*winmat[0][0]+ y*winmat[1][0]+ z*winmat[2][0]+ winmat[3][0];
- adr[1]= x*winmat[0][1]+ y*winmat[1][1]+ z*winmat[2][1]+ winmat[3][1];
- adr[2]= x*winmat[0][2]+ y*winmat[1][2]+ z*winmat[2][2]+ winmat[3][2];
- adr[3]= x*winmat[0][3]+ y*winmat[1][3]+ z*winmat[2][3]+ winmat[3][3];
+ x = v1[0];
+ y = v1[1];
+ z = v1[2];
+ adr[0] = x * winmat[0][0] + y * winmat[1][0] + z * winmat[2][0] + winmat[3][0];
+ adr[1] = x * winmat[0][1] + y * winmat[1][1] + z * winmat[2][1] + winmat[3][1];
+ adr[2] = x * winmat[0][2] + y * winmat[1][2] + z * winmat[2][2] + winmat[3][2];
+ adr[3] = x * winmat[0][3] + y * winmat[1][3] + z * winmat[2][3] + winmat[3][3];
}
/* ------------------------------------------------------------------------- */
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index 2b83a55d7bb..a8c94865aa5 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -130,7 +130,7 @@ static void wm_region_test_render_do_draw(ScrArea *sa, ARegion *ar)
RenderEngine *engine = (rv3d) ? rv3d->render_engine : NULL;
if (engine && (engine->flag & RE_ENGINE_DO_DRAW)) {
- ar->do_draw = 1;
+ ar->do_draw = TRUE;
engine->flag &= ~RE_ENGINE_DO_DRAW;
}
}
@@ -661,15 +661,15 @@ static int wm_draw_update_test_window(wmWindow *win)
{
ScrArea *sa;
ARegion *ar;
- int do_draw = 0;
+ int do_draw = FALSE;
for (ar = win->screen->regionbase.first; ar; ar = ar->next) {
if (ar->do_draw_overlay) {
wm_tag_redraw_overlay(win, ar);
- ar->do_draw_overlay = 0;
+ ar->do_draw_overlay = FALSE;
}
if (ar->swinid && ar->do_draw)
- do_draw = 1;
+ do_draw = TRUE;
}
for (sa = win->screen->areabase.first; sa; sa = sa->next) {
@@ -677,7 +677,7 @@ static int wm_draw_update_test_window(wmWindow *win)
wm_region_test_render_do_draw(sa, ar);
if (ar->swinid && ar->do_draw)
- do_draw = 1;
+ do_draw = TRUE;
}
}
@@ -737,7 +737,7 @@ void wm_tag_redraw_overlay(wmWindow *win, ARegion *ar)
if (ar && win) {
if (wm_automatic_draw_method(win) != USER_DRAW_TRIPLE)
ED_region_tag_redraw(ar);
- win->screen->do_draw_paintcursor = 1;
+ win->screen->do_draw_paintcursor = TRUE;
}
}
@@ -778,9 +778,9 @@ void wm_draw_update(bContext *C)
else // if (drawmethod == USER_DRAW_TRIPLE)
wm_method_draw_triple(C, win);
- win->screen->do_draw_gesture = 0;
- win->screen->do_draw_paintcursor = 0;
- win->screen->do_draw_drag = 0;
+ win->screen->do_draw_gesture = FALSE;
+ win->screen->do_draw_paintcursor = FALSE;
+ win->screen->do_draw_drag = FALSE;
wm_window_swap_buffers(win);
@@ -816,7 +816,7 @@ void wm_draw_region_clear(wmWindow *win, ARegion *ar)
if (ELEM(drawmethod, USER_DRAW_OVERLAP, USER_DRAW_OVERLAP_FLIP))
wm_flush_regions_down(win->screen, &ar->winrct);
- win->screen->do_draw = 1;
+ win->screen->do_draw = TRUE;
}
void WM_redraw_windows(bContext *C)
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index fd3e287a6a5..3533b8a19f6 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -194,7 +194,7 @@ void wm_event_do_notifiers(bContext *C)
/* cache & catch WM level notifiers, such as frame change, scene/screen set */
for (win = wm->windows.first; win; win = win->next) {
- int do_anim = 0;
+ int do_anim = FALSE;
CTX_wm_window_set(C, win);
@@ -229,7 +229,7 @@ void wm_event_do_notifiers(bContext *C)
{
if (note->category == NC_SCENE) {
if (note->data == ND_FRAME)
- do_anim = 1;
+ do_anim = TRUE;
}
}
if (ELEM5(note->category, NC_SCENE, NC_OBJECT, NC_GEOM, NC_SCENE, NC_WM)) {
@@ -331,17 +331,17 @@ static int wm_handler_ui_call(bContext *C, wmEventHandler *handler, wmEvent *eve
ScrArea *area = CTX_wm_area(C);
ARegion *region = CTX_wm_region(C);
ARegion *menu = CTX_wm_menu(C);
- static int do_wheel_ui = 1;
+ static int do_wheel_ui = TRUE;
int is_wheel = ELEM(event->type, WHEELUPMOUSE, WHEELDOWNMOUSE);
int retval;
/* UI is quite aggressive with swallowing events, like scrollwheel */
/* I realize this is not extremely nice code... when UI gets keymaps it can be maybe smarter */
- if (do_wheel_ui == 0) {
+ if (do_wheel_ui == FALSE) {
if (is_wheel)
return WM_HANDLER_CONTINUE;
else if (wm_event_always_pass(event) == 0)
- do_wheel_ui = 1;
+ do_wheel_ui = TRUE;
}
/* we set context to where ui handler came from */
@@ -369,7 +369,7 @@ static int wm_handler_ui_call(bContext *C, wmEventHandler *handler, wmEvent *eve
/* event not handled in UI, if wheel then we temporarily disable it */
if (is_wheel)
- do_wheel_ui = 0;
+ do_wheel_ui = FALSE;
return WM_HANDLER_CONTINUE;
}
@@ -1539,7 +1539,8 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa
/* a bit weak, might become arg for WM_event_fileselect? */
/* XXX also extension code in image-save doesnt work for this yet */
if (RNA_struct_find_property(handler->op->ptr, "check_existing") &&
- RNA_boolean_get(handler->op->ptr, "check_existing")) {
+ RNA_boolean_get(handler->op->ptr, "check_existing"))
+ {
char *path = RNA_string_get_alloc(handler->op->ptr, "filepath", NULL, 0);
/* this gives ownership to pupmenu */
uiPupMenuSaveOver(C, handler->op, (path) ? path : "");
@@ -1863,7 +1864,7 @@ static void wm_paintcursor_tag(bContext *C, wmPaintCursor *pc, ARegion *ar)
for (; pc; pc = pc->next) {
if (pc->poll == NULL || pc->poll(C)) {
wmWindow *win = CTX_wm_window(C);
- win->screen->do_draw_paintcursor = 1;
+ win->screen->do_draw_paintcursor = TRUE;
wm_tag_redraw_overlay(win, ar);
}
}
@@ -1902,10 +1903,10 @@ static void wm_event_drag_test(wmWindowManager *wm, wmWindow *win, wmEvent *even
if (wm->drags.first == NULL) return;
if (event->type == MOUSEMOVE)
- win->screen->do_draw_drag = 1;
+ win->screen->do_draw_drag = TRUE;
else if (event->type == ESCKEY) {
BLI_freelistN(&wm->drags);
- win->screen->do_draw_drag = 1;
+ win->screen->do_draw_drag = TRUE;
}
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
event->type = EVT_DROP;
@@ -1921,7 +1922,7 @@ static void wm_event_drag_test(wmWindowManager *wm, wmWindow *win, wmEvent *even
event->customdatafree = 1;
/* clear drop icon */
- win->screen->do_draw_drag = 1;
+ win->screen->do_draw_drag = TRUE;
/* restore cursor (disabled, see wm_dragdrop.c) */
// WM_cursor_restore(win);
@@ -1930,7 +1931,7 @@ static void wm_event_drag_test(wmWindowManager *wm, wmWindow *win, wmEvent *even
/* overlap fails otherwise */
if (win->screen->do_draw_drag)
if (win->drawmethod == USER_DRAW_OVERLAP)
- win->screen->do_draw = 1;
+ win->screen->do_draw = TRUE;
}
@@ -2024,7 +2025,7 @@ void wm_event_do_handlers(bContext *C)
/* Note: setting subwin active should be done here, after modal handlers have been done */
if (event->type == MOUSEMOVE) {
/* state variables in screen, cursors. Also used in wm_draw.c, fails for modal handlers though */
- ED_screen_set_subwinactive(C, event);
+ ED_screen_set_subwinactive(C, event);
/* for regions having custom cursors */
wm_paintcursor_test(C, event);
}
@@ -2612,7 +2613,8 @@ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *wi
if (owin != win) {
if (mx - owin->posx >= 0 && my - owin->posy >= 0 &&
- mx - owin->posx <= owin->sizex && my - owin->posy <= owin->sizey) {
+ mx - owin->posx <= owin->sizex && my - owin->posy <= owin->sizey)
+ {
evt->x = mx - (int)owin->posx;
evt->y = my - (int)owin->posy;
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 56052b895ab..3d1902409e8 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -333,8 +333,9 @@ static int wm_read_exotic(Scene *UNUSED(scene), const char *name)
retval = BKE_READ_EXOTIC_OK_BLEND;
}
else {
- //XXX waitcursor(1);
#if 0 /* historic stuff - no longer used */
+ WM_cursor_wait(TRUE);
+
if (is_foo_format(name)) {
read_foo(name);
retval = BKE_READ_EXOTIC_OK_OTHER;
@@ -344,7 +345,9 @@ static int wm_read_exotic(Scene *UNUSED(scene), const char *name)
{
retval = BKE_READ_EXOTIC_FAIL_FORMAT;
}
- //XXX waitcursor(0);
+#if 0
+ WM_cursor_wait(FALSE);
+#endif
}
}
}
@@ -373,6 +376,9 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
int G_f = G.f;
ListBase wmbase;
+ /* assume automated tasks with background, don't write recent file list */
+ const int do_history = (G.background == FALSE) && (CTX_wm_manager(C)->op_undo_depth == 0);
+
/* put aside screens to match with persistent windows later */
/* also exit screens and editors */
wm_window_match_init(C, &wmbase);
@@ -390,8 +396,6 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
/* match the read WM with current WM */
wm_window_match_do(C, &wmbase);
WM_check(C); /* opens window(s), checks keymaps */
-
-// XXX mainwindow_set_filename_to_title(G.main->name);
if (retval == BKE_READ_FILE_OK_USERPREFS) {
/* in case a userdef is read from regular .blend */
@@ -400,8 +404,9 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
if (retval != BKE_READ_FILE_FAIL) {
G.relbase_valid = 1;
- if (!G.background) /* assume automated tasks with background, don't write recent file list */
+ if (do_history) {
write_history();
+ }
}
@@ -449,7 +454,6 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
}
#endif
- // XXX undo_editmode_clear();
BKE_reset_undo();
BKE_write_undo(C, "original"); /* save current state */
}
@@ -542,8 +546,7 @@ int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory
/* XXX */
G.save_over = 0; // start with save preference untitled.blend
G.fileflags &= ~G_FILE_AUTOPLAY; /* disable autoplay in startup.blend... */
-// mainwindow_set_filename_to_title(""); // empty string re-initializes title to "Blender"
-
+
// refresh_interface_font();
// undo_editmode_clear();
diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c
index 97a431d296b..14a25cc13e0 100644
--- a/source/blender/windowmanager/intern/wm_gesture.c
+++ b/source/blender/windowmanager/intern/wm_gesture.c
@@ -154,7 +154,7 @@ int wm_gesture_evaluate(wmGesture *gesture)
if (val == 6) printf("tweak south-west\n");
if (val == 7) printf("tweak west\n");
if (val == 8) printf("tweak north-west\n");
-#endif
+#endif
return val;
}
}
@@ -357,7 +357,7 @@ void wm_gesture_tag_redraw(bContext *C)
ARegion *ar = CTX_wm_region(C);
if (screen)
- screen->do_draw_gesture = 1;
+ screen->do_draw_gesture = TRUE;
wm_tag_redraw_overlay(win, ar);
}
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index 877b8a92296..73f59a5fbae 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -37,6 +37,7 @@
#include "BLI_blenlib.h"
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
#include "BKE_blender.h"
#include "BKE_context.h"
@@ -449,7 +450,7 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt)
if (steve->flag & WM_JOB_PROGRESS)
WM_event_add_notifier(C, NC_WM | ND_JOB, NULL);
- steve->do_update = 0;
+ steve->do_update = FALSE;
}
if (steve->ready) {
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index 22d1cbe5e11..18caa8c2afe 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -785,8 +785,8 @@ char *WM_keymap_item_to_string(wmKeyMapItem *kmi, char *str, int len)
if (kmi->shift == KM_ANY &&
kmi->ctrl == KM_ANY &&
kmi->alt == KM_ANY &&
- kmi->oskey == KM_ANY) {
-
+ kmi->oskey == KM_ANY)
+ {
strcat(buf, "Any ");
}
else {
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index d96198413e0..4c396d2d6d3 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -2189,6 +2189,8 @@ static void WM_OT_collada_export(wmOperatorType *ot)
ot->invoke = wm_collada_export_invoke;
ot->exec = wm_collada_export_exec;
ot->poll = WM_operator_winactive;
+
+ ot->flag |= OPTYPE_PRESET;
WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna, "selected", 0, "Selection Only",
@@ -3216,7 +3218,8 @@ static int radial_control_get_path(PointerRNA *ctx_ptr, wmOperator *op,
PropertyType prop_type = RNA_property_type(*r_prop);
if (((flags & RC_PROP_REQUIRE_BOOL) && (prop_type != PROP_BOOLEAN)) ||
- ((flags & RC_PROP_REQUIRE_FLOAT) && prop_type != PROP_FLOAT)) {
+ ((flags & RC_PROP_REQUIRE_FLOAT) && prop_type != PROP_FLOAT))
+ {
MEM_freeN(str);
BKE_reportf(op->reports, RPT_ERROR,
"Property from path %s is not a float", name);
@@ -4075,7 +4078,7 @@ static EnumPropertyItem *rna_id_itemf(bContext *UNUSED(C), PointerRNA *UNUSED(pt
}
RNA_enum_item_end(&item, &totitem);
- *do_free = 1;
+ *do_free = TRUE;
return item;
}
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index af3ba02ed4d..e6eff908e33 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -238,8 +238,8 @@ wmWindow *wm_window_copy(bContext *C, wmWindow *winorig)
BLI_strncpy(win->screenname, win->screen->id.name + 2, sizeof(win->screenname));
win->screen->winid = win->winid;
- win->screen->do_refresh = 1;
- win->screen->do_draw = 1;
+ win->screen->do_refresh = TRUE;
+ win->screen->do_draw = TRUE;
win->drawmethod = -1;
win->drawdata = NULL;
@@ -477,7 +477,7 @@ wmWindow *WM_window_open(bContext *C, rcti *rect)
/* uses screen->temp tag to define what to do, currently it limits
* to only one "temp" window for render out, preferences, filewindow, etc */
-/* type is #define in WM_api.h */
+/* type is defined in WM_api.h */
void WM_window_open_temp(bContext *C, rcti *position, int type)
{